SSD + TRIM + WearLeveling 과 Linux Kernel 과의 관계성 검토

대문 / 검토 / SSD + TRIM + WearLeveling 과 Linux Kernel 과의 관계성 검토

SSD + TRIM + WearLeveling 과 Linux Kernel 과의 관계성 검토

1.1. 시작하기전에

이 문서는 SSD, TRIM, Wear-Leveling, Linux kernel version 에 대한 상관관계에 대해서 정리한 것입니다.

1.2. 기술적 근거

SSD에서 Wear-Leveling과 TRIM기능이 정상적인 동작을 하기 위해서는 파일시스템으로부터 긴밀하게 관련 정보를 받아야 한다고 합니다.

Linux kernel v2.6.28을 기점으로 ATA/ATAPI device의 RPM회전수 정의에 의해서 SSD를 감지할수 있다고 합니다.

Linux kernel v2.6.33을 기점으로 TRIM에 대한 공식적인 지원을 통해서 mount 시에 "discard" 옵션을 주어 이를 활성화 할수 있다고 합니다.

그리고 SSD는 탐색시간이 일반 HDD와는 비교가 안될정도로 빠르므로 Noop scheduler를 선택하는것도 필요합니다. 다행히 이것은 꽤 오래된 커널버젼도 지원하고 있고 필수적인 요소도 아닙니다.

SLC type의 NAND flash는 10만회정도 쓰기가 가능하고 MLC type의 NAND flash는 1만회 정도의 쓰기가 가능합니다. 대부분의 보급형 SSD는 MLC이므로 1만여회만 동일한 곳에 쓰기를 하게 되면 수명이 끝날수 밖에 없습니다. 때문에 일단 Wear-Leveling을 하지 않으면 결코 SSD는 수명단축을 초래할수 밖에 없다는 것이 문제입니다.

1.3. 결론

SSD를 사용하기 위해서는 되도록이면 적어도 Linux kernel v2.6.28이상의 버젼을 사용해야 수명단축을 피할수 있습니다. (그렇다고 그 이전 버젼에서는 SSD의 수명단축이 아주 심하다라고 할 수는 없습니다.)

그리고 SSD를 사용하는 가장 큰 이유인 빠른 속도를 위해서는 TRIM을 사용해야 하겠는데 이것은 Liunux kernel v2.6.33이상의 버젼을 사용해야 한다는 결론입니다.

1.4. 참고자료

Retrieved from https://www.minzkn.com:443/moniwiki/wiki.php/SSD_SATA_TRIM_WEARLEVELING_WITH_LINUX_KERNEL
last modified 2024-05-17 23:26:16