윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT

SSD (Solid State Drive, 솔리드 스테이트 드라이브)

플래터(Platter, 하드디스크에 데이터 저장용으로 들어가는 금속 원판)대신 플래시 메모리 또는 메모리를 이용해 하드디스크 인터페이스(P-ATA, S-ATA)를 구현해 놓은 드라이브다. 따라서 하드디스크처럼 사용할 수 있다. 좀 쉽게 설명하자면, (정확한 표현은 아니지만) USB드라이브에 커넥터를 하드디스크처럼 만들어놓았다고 생각하면 된다.

(SSD는 메모리를 이용한 드라이브의 총칭이지만, 여기서는 플래시 메모리를 사용한 것을 기준으로 설명한다)

※ 장점
- 랜덤액세스(무작위읽기/쓰기)가 빠르다
- 스핀업(하드디스크 모터 기동)이 없어 빠르게 시작할 수 있다
- 모터가 없어 소음과 진동이 없고 발열도 작다
- 기계장치가 없어서 기계적인 고장은 없다
- 고온/저온에도 하드디스크에 비해 상대적으로 잘 견딘다
- 전력소모가 하드디스크 보다 적어 모바일기기에 좋다

※ 단점

- 약 40만원에 이르는 비싼 가격 (100GB기준, 1TB 하드디스크는 현재 12만원)
- 페이지(보통 4K) 단위의 읽기/쓰기, 블록(보통 512K) 단위의 초기화로 인한 비효율
- 프리징 현상 *
- 다시쓰기 불가 **
- 제한된 지우기 회수 ***
- 읽기/쓰기 성능의 심한 차이 ****

- '초기화'란 블록을 비우는 것을 말하는 것으로 블록의 모든 데이터를 1로 채운다. 쓰기 작업이란 페이지의 원하는 비트를 0으로 바꾸는 작업이다. 쓰기 작업으로 0이었던 데이터를 1로 바꾸지 못하기 때문에 초기화가 필요하다. 블록의 단위와 페이지의 단위가 다르기 때문에 4K 읽기/쓰기 성능이 비슷하지 않게 된다.

* 빈번한 읽기/쓰기로 인해 일시적(몇초~수십초)으로 읽기/쓰기가 전혀 안되는 현상. 플래시 메모리 컨트롤러의 문제로 현재는 그 빈도가 많이 줄었다.

** 파일을 지우거나 덮어쓸 때 문제가 된다. 어느 공간에 10101010 이라는 데이터가 있을때, 이를 01010101 로 바꾸려면 하드디스크는 해당 영역에 대해 쓰기만 1회만 시행하면 되지만, SSD는 해당 블록을 초기화(일종의 포맷)한 후 쓰기를 수행해야 한다. 즉 이중작업이라는 것이다. 이는 현재 사용되는 플래시 메모리의 근본적인 문제라 해결이 불가능하다. 예를 들어 하드디스크를 사용할때 윈도우에서 10GB파일을 지울때나 1KB파일을 지울때나 시간은 비슷할 것이다. 하지만 SSD는 파일을 지울때 10GB영역을 다음번 쓸때를 대비해 미리 초기화해놓는것이 좋기 때문에 이러게 할 경우 파일을 지울때 훨씬 더 느려진다. (SSD를 위한 파일 삭제 영역 초기화 기능은 윈도우 7부터 지원된다. 현재 나와있는 운영체제로는 유닉스 운영체제인 솔라리스(ZFS)가 유일하다) 쉽게 말하면 삭제하는데 쓰는 시간 만큼 오래 걸리는 것이다.

*** SLC 플래시 메모리의 경우 10만회, MLC플래시 메모리의 경우 1만회. 이 때문에 웨어레벨링(wear leveling, 하나의 셀에 집중된 쓰기를 분산시킴) 기술이 나왔다. 지우기란 위에서 말한 [초기화]를 말한다.

**** SLC 플래시 메모리를 사용한 경우 읽기가 쓰기보다 2배정도 빠르다. MLC 플래시 메모리를 사용한 경우는 4배차이가 난다. 약간이라면 모를까 2~4배나 차이나기 때문에 RAID 적용시에는 이로 인한 성능 저하가 있다 (하드디스크도 차이가 있지만 2배까지는 아니다)

※ 모바일 기기를 제외하고는 SSD구입에는 시기상조. SSD 1개보다는 = HDD 4개 RAID 가 더 좋을듯 하다.