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. 우분투 무선 라우터(공유기) 만들기

    Date2020.08.16 Views3506
    Read More
  2. ASUS 공유기 ssh 접속

    Date2021.01.11 Views3157
    Read More
  3. [칼리리눅스 모의해킹] Xerosploit 소개 및 설치

    Date2020.01.19 Views2390
    Read More
  4. [칼리리눅스 모의해킹] Xerosploit 활용 서비스거부 공격 (Dos)

    Date2020.01.19 Views1999
    Read More
  5. dnsmasq 'failed to create listening socket for port 53' 에러 다루기

    Date2021.07.07 Views1589
    Read More
  6. Ubuntu 22.04에서 DNS 캐시 삭제(flush)하기

    Date2022.11.03 Views1580
    Read More
  7. SFTP 'Received message too long' 에러 처리

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

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

    Date2021.07.26 Views900
    Read More
  10. Ubuntu Desktop 'Failed to set new fan speed' 에러 처리

    Date2023.01.15 Views786
    Read More
Board Pagination Prev 1 2 Next
/ 2

menu