ZFS trim 실행 및 autotrim 설정하기

by ANTIBIOTICS posted Nov 03, 2022
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

특정 디스크 블록이 한번이라도 쓰여진(written) 적이 있다면 SSD 컨트롤러는 해당 블록을 사용중(in use)으로 인식합니다. 아무리 여유 공간이 많더라도 어느 순간에는 모든 블록이 사용중이며 접근할 수 없는 (in use and unavailable) 상태가 되며, 일부 블록에만 계속해서 덮어쓰기가 발생하여 SSD의 쓰기 성능과 수명에 악영향을 끼칩니다.

 

trim을 실행하면 커널은 현재 사용되지 않는 블록의 목록을 SSD 컨트롤러에게 전달하며, 컨트롤러는 이 블록을 페이지로 집계하여 제로필(zero-filling)합니다.

 

1.png

 

zpool status -t [ pool 이름 ]

 

현재 pool 상태를 조회합니다.

해당 pool에서 trim이 실행된 적이 없다면 untrimmed가 출력됩니다.

 

 

2.png

3.png

 

zpool trim [ pool 이름 ]

 

수동으로 trim을 실행합니다.

해당 pool 상태를 조회하면 위 사진과 같이 trim 진행상황을 알 수 있습니다.

 

 

4.png

 

zpool set autotrim=on [ pool 이름 ]

 

자동 trim은 비활성화되어 있으나 위와 같이 활성화할 수 있습니다.

 

자동 trim을 사용할 경우 적은 수의 디스크 블록을 자주 관리해야 하므로 SSD 컨트롤러에 부담이 됩니다. 특히 swap 메모리와 같이 잦은 빈도로 I/O가 발생하는 경우 오히려 상당한 성능 저하가 발생할 수 있습니다.

 

그러므로 정기적인 수동 trim이 권장됩니다. 수동 trim을 cron job으로 등록하여 매주 특정 요일에 실행하는 방법을 고려해볼 수 있습니다.

 

0 4 * * 0 /sbin/zpool trim rpool

(매주 일요일 새벽 4시에 trim을 실행하는 예시)


  1. Ubuntu에서 키보드 백라이트(조명) 밝기 설정하기

    Date2023.08.03 Views822
    Read More
  2. ident 데몬(oidentd) 활용한 ident 서비스 구축하기

    Date2023.07.05 Views734
    Read More
  3. Pop!_OS 22.04 LUKS 파티션에서 수동 TRIM이 작동하지 않는 문제

    Date2023.04.08 Views702
    Read More
  4. Ubuntu Desktop 'Failed to set new fan speed' 에러 처리

    Date2023.01.15 Views881
    Read More
  5. SFTP 'Received message too long' 에러 처리

    Date2023.01.10 Views2052
    Read More
  6. Ubuntu Desktop 모니터별 배경화면 설정하기

    Date2022.11.26 Views1248
    Read More
  7. ZFS trim 실행 및 autotrim 설정하기

    Date2022.11.03 Views766
    Read More
  8. Ubuntu 22.04에서 DNS 캐시 삭제(flush)하기

    Date2022.11.03 Views2231
    Read More
  9. nginx 'module "ngx_http_modsecurity_module.so" is not binary compatible' 에러 다루기

    Date2021.07.26 Views963
    Read More
  10. dnsmasq 'failed to create listening socket for port 53' 에러 다루기

    Date2021.07.07 Views1753
    Read More
Board Pagination Prev 1 2 Next
/ 2

menu