TRIM이란
- TRIM은 ATA 인터페이스를 위한 명령어
- TRIM 명령어는 인터페이스마다, 운영 체제에 따라 이름도 모두 다르지만, 일반적으로 "Trim"이라고 칭함
- TRIM은 SSD(Solid State Drive)에 어떤 데이터를 삭제할 수 있는지 알려줌
- TRIM은 능동적 데이터 재배치와 함께 SSD(Solid State Drive)를 말끔하게 정리함
- TRIM은 매우 유용하지만 필수 기능은 아님
- 일부 운영 체제의 경우 Trim을 지원하지 않기 때문에 SSD 제조업체들은 Trim을 사용하지 않는다는 가정하에 드라이브를 설계, 생성 및 검증함
- TRIM 명령을 사용하면 운영 체제에서 더 이상 사용되지 않는 것으로 간주되는 데이터 블록을 SATA SSD에서 삭제 가능
- TRIM은 지원되는 운영 체제에 대한 Write amplification(쓰기 증폭)를 해결 가능
- 운영 체제에서 파일이 삭제된 경우 파일은 파일 시스템에서 삭제로 표시되지만 디스크 컨텐츠는 실제로 지워지지 않음 → TRIM의 도입으로 파일이 삭제된 경우 운영 체제에서 유효한 데이터를 포함하지 않는 LBA로 TRIM 명령을 전송
TRIM의 역할
- TRIM 명령어는 특정 영역에 더 이상 사용하지 않는 데이터가 있음을 SSD에 알려줌
- 사용자의 관점에서는 해당 데이터는 문서에서 삭제된 것임 → 실제 SSD(Solid State Drive)가 정보를 읽고 쓰는 방식 때문에 해당 데이터는 사용자의 명령에 의해 드라이브에서 삭제된 상태가 아님
- 사용자의 관점에서 삭제는 SSD에서 해당 데이터를 포함하는 SSD 영역은 더 이상 사용하지 않는 것으로 표시됨
- TRIM 명령어는 해당 데이터가 삭제될 수 있음을 드라이브에 알려줌 → 컴퓨터가 유휴 상태가 되면, 능동적 데이터 재배치를 통해 해당 데이터는 삭제
- TRIM 명령어가 존재하지 않았을 경우, SSD(Solid State Drive)는 드라이브의 일부 구간에 유효하지 않은 정보가 포함되어 있다는 것을 알지 못하며 추후 컴퓨터가 해당 위치에 새 정보를 쓰기 위해 이를 드라이브에 알려줄 때 비로소 인식
- 드라이브는 기존 정보를 삭제한 다음에야 새 정보를 쓸 수 있음 → 단순히 새 정보를 쓰는 시간보다 더 많은 시간이 걸림
- TRIM과 능동형 GC(Garbage Collect)을 활용한다면 SSD는 쓰기 명령을 더 빨리 실행 가능
- TRIM을 사용하면 SSD(Solid State Drive)의 수명에도 영향 有
- 유휴 시간 동안 삭제 가능한 셀을 SSD에 알려주고, 드라이브는 남아 있는 데이터가 채워진 셀과 쓰기 가능한 빈 셀을 정리하므로 불필요한 삭제 및 다시 쓰기를 하지 않아도 됨(SSD 블록의 수명을 균형있게 해줌)
TRIM의 이점
- 쓰기 과정에 많은 시간을 사용하여 유효하지 않은 데이터를 삭제하는 대신에 컴퓨터가 유휴 상태일 때 SSD(Solid State Drive)에서 데이터를 삭제하여 시간을 절약 가능
- TRIM는 능동형 GC(Garbage Collect)이 함께 작동하여 SSD의 수명을 늘릴 수 있음
- 능동형 GC(Garbage Collect)은 데이터 중에 관련 세그먼트를 나란히 위치할 수 있도록 이동시키므로 역동적이고 효과적인 Ware leveling 가능
TRIM 지원 환경
1. TRIM을 지원하는 SSD 환경(TRIM & GC를 지원)
- Intel RAID controller를 사용하기에 SSD에 TRIM 사용 불가
- SSD에서 TRIM을 지원하는 지 확인하는 방법
- hdparm -I /dev/sda 명령어
- lsblk -D 명령어
- /sys/block/sda/queue/discard_max_bytes 내용 확인
- /sys/block/sda/queue/discard_granularity 내용 확인
2. TRIM을 지원하는 커널 버전 → uname -r으로 확인 가능
- 일반 SSD TRIM 지원 : Linux kernel 2.6.33 이상
- NVMe SSD TRIM 지원 : Linux kernel 3.3 이상
- RHEL6부터 TRIM 지원
3. 파일 시스템 확인 → TRIM 기능을 활성화 하기 위해 ext4 또는 xfs를 사용 → mount | grep -i "/dev/sd"로 확인
ext4에 TRIM을 적용하기 위해서는 명령어로 discard를 추가하거나 또는 /etc/fstab에 아래 discard를 추가
# 명령어로 파일시스템에 TRIM 가능하도록 설정 $ mount -t ext4 -o discard /dev/sda3 / # 영구적으로 파일시스템에 TRIM 가능하도록 설정 $ vi /etc/fstab /dev/sda1 / ext4 defaults,discard 0 0
※ TRIM 사용 시 주의 사항
- TRIM을 사용하는 조건은 까다롭기에 Linux 커널 버전, SSD TRIM 지원, 파일시스템(ext4, xfs)을 충족해야 실행 가능
- 위 조건을 모두 충족하더라도, 현재 사용하고 있는 RAID contoller가 Intel RAID controller를 사용하는 경우 TRIM 사용 불가
- Intel RAID controller에서 Window는 지원하는데, 아직 Linux는 지원 X
- 향후 Inter RAID controller가 Linux도 TRIM을 실행할 수 있는 것을 대비하여 학습 진행
- Boss card RAID contoller를 사용하는 경우 TRIM 사용 가능
'하드웨어(Hardware)' 카테고리의 다른 글
물리 서버 구조 (0) | 2024.03.09 |
---|---|
DELL 서버의 OMSA 관련 명령어(srvadmin-services.sh) (0) | 2022.07.23 |
[DELL] 서버 하드웨어 재시작 3가지 방법 (0) | 2022.07.21 |
[DELL] BIOS의 System Profile (0) | 2022.07.20 |
서버 전원 PSU redundant(Power Supply 이중화)이란 (0) | 2022.07.20 |