라즈베리파이3 B+ 설치가이드(6) 저장장치 선택 및 I/O 성능 측정
Updated:
라즈베리파이3 B+ 설치 가이드 중에 잠시 쉬어가는(?) 글이 되겠습니다. 마냥 노는 시간은 아니고 라즈베리파이에서 사용할 추가 저장장치(스토리지)를 선택해보는 시간이 되겠습니다.
라즈베리파이는 싱글보드 컴퓨터로 부팅OS를 저장하는 Micro SD port와 USB 포트 4개가 사용 가능합니다. 부팅은 Micro SD port에 삽입된 카드로 진행되며, USB 포트를 통해서 HDD나 SSD 등을 추가로 연결할 수 있습니다. PCI/SATA 등의 인터페이스는 없기에, USB 포트 4개에 연결가능한 저장장치가 고려대상입니다.
라즈베리파이 B 3+ 성능에는 유저들이 공통적으로 지적하는 문제가 있는데, I/O throughtput 성능이 좋지 않다는 것입니다. 일단, 라즈베리파이는 USB 2.0 포트 4개를 지원합니다. USB 3.0 시대에, USB 2.0이 웬말인가 싶겠지만.. 이마저도 1개의 루트 컨트롤러가 4개 USB 포트와 BT/WIFI 칩셋을 함께 컨트롤하고 있습니다. 이런 이유로 라즈베리파이는 I/O throughtput 성능이 그리 좋지 않습니다. 각 저장장치 별 성능도 측정하고 결과도 함께 살펴보겠습니다.
1. 하드디스크(HDD)
HDD(Hard Disk Drive)는 비교하는 저장장치들 중에 사이즈 당 가격이 제일 싼 장치입니다. HDD의 동작 원리를 간단히 설명하면, 내부 모터에 의한 플래터의 회전에 따라 헤드가 데이터를 읽어서 HDD의 컨트롤러에 데이터를 보내 처리하는 구조입니다. 모터에 의한 물리적인 동작이 있기 때문에 수명을 보통 10만 시간 정도로 봅니다. 토렌트 등으로 헤비하게 돌린다면 수명이 빨리 닳을 것이라고 봅니다.
모터에 의한 진동과 소음이 존재합니다. 그리고 헤드가 읽고 쓰기 동작에서도 소음이 있습니다. 무소음 NAS를 구현하고자 하는 분들에게는 단점이 될 것입니다. 또한, 모터 동작으로인해 작동 중에는 충격에 취약합니다. 만약, 자동차 내부에 라즈베리파이를 동작시킬 계획이라면 HDD 사용하지 않는 것이 좋습니다.
HDD는 소모전력이 다소 있습니다. 기기별로 다르겠지만, 800mA에서 2A사이 수준입니다. 라즈베리파이에서 공급가능한 전류가 1.2A이기때문에 HDD를 연결하면 라즈베리파이 전원으로는 HDD 구동이 불가합니다. 그래서 HDD를 연결하려면, 전원 공급이 따로 이뤄져야 합니다. 외장HDD의 경우는 USB로 연결이 되는데 USB 전원 라인을 따로 분리해놓은 y케이블이 있습니다. 이런 y케이블로 전용 전원을 공급해줘야 합니다. 일반HDD(SATA 인터페이스)는 SATA-USB 변환 케이블이 필요합니다. 보통 SATA-USB 변환 케이블에는 전원 공급 라인이 따로 설계되어 있으므로 문제가 되지 않습니다.
2. SSD
SSD(Solid State Drive)는 비교적 비싼 저장장치에 속합니다. SSD의 가장 큰 장점은 빠른 데이터 입/출력 속도입니다. SSD는 컨트롤러에 따라 다르지만, 요즘 350~550MB/s 정도입니다. 다만, 이렇게 성능이 좋은 SSD 이지만 라즈베리파이에 달게 되면 라즈베리파이의 USB 컨트롤러 성능때문에 속도가 크게 떨어집니다. 비싼 장치를 구매하고 성능을 다 이용하지 못하게 되는 셈이죠.
SSD는 flash memory를 사용한 기기이기 때문에, 전기적으로 구동합니다. 전기적으로 동작하기 때문에 소음이 없습니다. 물리적 동작이 없기때문에 작동 중에도 충격을 줘도 안전합니다. 그리고 크기가 작고, 소모전력이 작습니다. 24시간 구동 시키는 NAS를 생각한다면 전력면에서는 좋은 장치가 될 것입니다.
메모리 타입에 따라서 SLC, MLC, TLC 등으로 나누는데, 이는 셀당 저장 방식을 의미합니다. SLC는 셀당 1비트를 저장, MLC는 셀당 2비트를 저장, TLC는 셀당 3비트를 저장합니다. 안정성은 SLC->MLC->TLC 순으로 좋습니다.(SLC가 안정성이 제일 좋지만 비쌈) 셀당 쓰기 가능한 비트 수가 높을 수록 같은 셀에 쓰기를 자주하게 되므로 안정성이 떨어지게 되는 것입니다.
SSD 장치가 막 시장에 나온 초창기에 특성상 셀당 수명이 정해져 있어서, 토렌트 등을 돌리면 단기간에 망가진다는 말이 많았습니다. 하지만 SSD 기술이 많이 발전하면서, 많이 극복된 것으로 보입니다. 플레이웨어즈 테스트 결과를 보면 삼성 840 TLC 모델로 총 수백 테라바이트 기록이 가능했고 이는 하루 24시간 토렌트를 구동해도 10년 동작 사용 가능한 수준입니다.
3. Micro SD Card(그리고 USB memory Stick)
Flash Memory 타입으로 Micro SD card와 USB memroy stick도 있습니다. SSD와 마찬가지로 flash memory를 사용하였지만, 성격이 좀 다른 타입입니다.
Micro sd card는 라즈베리파이의 Micro SD port에 바로 장착이 가능하며, Micro SD Card를 USB 포트에 장착하기 위해서는 카드 리더(USB 아답터)가 필요합니다. USB memory Stick은 USB 포트에 바로 꽂을 수 있겠습니다. micro SD Card나 USB memory Stick은 모두 flash memory를 사용한 기기입니다. 저장장치 사이즈 당 가격은 SSD보다 살짝 비싼 편입니다. 편의상 SD Card와 USB memory Stick을 합쳐서 메모리 카드라고 지칭하겠습니다.
Micro SD card와 USB memory stick은 SSD와 마찬가지로 flash memory를 사용하였습니다. 따라서 SSD와 동일하게 전기적으로 구동하기에 소음이 없고, 소모전력이 낮습니다.
SD card의 최대 단점은 안정성인데, SSD와 동일하게 flash memory를 사용하였지만, 이를 구동하는 컨트롤러 등의 설계에 많은 차이점이 있습니다. SSD가 PC에서 사용하기 위해 적당한 크기에 높은 성능과 안정성을 갖추었다면, SD Card는 휴대성이 중요하기 때문에, 성능과 안정성 등에서의 기능이 많이 삭제된 설계를 가졌습니다. 따라서 SD card는 SSD와 같은 메모리 타입을 사용하지만 성능과 안정성이 떨어지는 차이점이 발생하는 것입니다.
SD card는 낮은 안정성 때문에, 기기가 종종 망가지는 경우가 발생합니다. 이때문에 라즈베리파이를 24시간 구동시켜놨더니, 카드가 죽었다고 말하는 사람들이 종종 있습니다. 그래서 라즈베리파이에서는 부팅용으로 그나마 안정성이 높은 MLC 카드를 고집하는 유저들도 생겼습니다.(SLC는 현재 구하기가 어렵구요.)
4. 성능 비교(HDD vs SSD vs Micro SD card vs USB memory)
하드디스크와 SSD, SD Card, 그리고 USB memory stick 장치 별 성능을 비교 측정해보겠습니다. benchmark 프로그램으로 hdparm, dd, iozone을 사용하여 저장장치 별로 read/write 속도를 측정하였습니다. 테스트 설정은 Jeff Geerling 블로그를 참고하였습니다.



HDD, SSD, USB memory stick에서 각 1개씩, 그리고 Micro SD card 2개 모델을 선정하여 I/O 성능 테스트를 진행하였습니다. SD card의 경우는 라즈베리파이의 Micro SD Port와 USB Port에서 모두 결과값을 측정하여, Port 별 성능도 가늠할 수 있게 하였습니다. SSD는 삼성의 외장형 모델 T5를, HDD는 시게이트의 2TB 용량의 모델입니다. SD card의 Samsung PRO endurance 카드는 내구성이 강화된 모델이고, EVO Plus는 일반형으로 PRO endurance 보다 가격이 저렴합니다. USB memory stick은 MUF-64BA 모델로 64GB 사이즈의 USB3.0 모델입니다.
benchmark | interface | hdparm buffered | dd write | 4K rand read | 4K rand write |
---|---|---|---|---|---|
Samsung SSD T5 500GB | USB port | 33.18 MB/sec | 35.50 MB/sec | 10.87 MB/sec | 12.71 MB/sec |
SEAGATE HDD ST2000DM001 2TB | USB port | 33.12 MB/sec | 34.83 MB/sec | 0.77 MB/sec | 1.30 MB/sec |
Samsung PRO endurance 32GB | Micro SD Port | 22.34 MB/sec | 19.00 MB/sec | 7.15 MB/sec | 2.12 MB/sec |
Samsung PRO endurance 32GB | USB Port | 17.50 MB/sec | 10.50 MB/sec | 4.39 MB/sec | 2.40 MB/sec |
Samsung EVO Plus 32GB | Micro SD Port | 22.32 MB/sec | 16.50 MB/sec | 7.86 MB/sec | 1.81 MB/sec |
Samsung EVO Plus 32GB | USB Port | 16.25 MB/sec | 10.30 MB/sec | 5.34 MB/sec | 2.29 MB/sec |
Samsung USB Memory MUF-64BA | USB Port | 22.49 MB/sec | 20.50 MB/sec | 3.08 MB/sec | 0.73 MB/sec |
Jeff Geerling 블로그의 테스트 스크립트를 사용한 결과입니다. 테스트 스크립트 내용을 간략히 보면 hdparm 테스트가 100MB, dd 테스트가 약 400MB write를 합니다. iozone은 4K 단위의 사이즈로 100MB 만큼 테스트를 진행합니다. 즉, hdparm과 dd 테스트는 대용량 쓰기를, iozone 테스트는 작은 단위의 쓰기를 합니다.
아래는 비교하기 편하게, 동일 결과를 그래프로 그렸습니다.

결과 그래프를 보면, SSD와 HDD가 hdparm buffered, dd write 항목에서 30 MB/sec 이상을 기록하며, SD 카드들보다 훨씬 좋은 결과를 보여줬습니다. 다만, HDD는 iozone 4K random read/write 결과가 매우 낮습니다. HDD는 대용량 쓰기는 잘하나, 작은 단위의 잦은 write 동작에는 큰 지연이 발생했다고 볼 수 있습니다.
Samsung PRO endurance 카드와 Samsung EVO Plus 카드 사이에는 큰 성능 차이는 나지 않았습니다. hdparm과 dd 결과는 SSD, HDD 보다는 떨어지는 수준입니다. iozone 4K random read/write는 HDD 보다는 좋네요. 그리고, 동일 카드로 라즈베리파이 Micro SD port와 USB Port 사이에 성능 차이가 발생하였습니다. 두 카드에서 모두 Micro SD port에 장착했을 경우의 성능이 더 좋은 것으로 나타났습니다.
USB memory stick(MUF-64BA)는 dd write 성능이 Micro sd card 2개 모델 보다 뛰어났습니다. 대신 Micro sd card 타입의 저장장치들 보다 iozone 4K random read/write 결과가 매우 낮습니다. HDD와 유사하게 작은 단위의 잦은 억세스에 지연이 발생한 것으로 보입니다.
5. 결론
라즈베리파이 사용 목적에 따라 각 저장장치 특성을 고려하여 저장장치를 구성하면 되겠습니다. 스토리지 중에 속도가 가장 빠른 것은 SSD 타입입니다. NAS나 HTPC를 구성하실때, 저장장치로 SSD를 사용하는 것이 라즈베리파이의 떨어지는 I/O throughtput 성능을 보강할 수 있는 방법입니다. Micro SD Card는 내구성이 강화된 모델을 사용하길 추천합니다.
더 많은 라즈베리파이 이야기 Pi Guide 보러가기
Leave a Comment