라즈베리파이4 B 설치가이드(10) 저장장치 선택 및 I/O 성능 측정

Updated:

라즈베리파이4 B 설치 가이드 중에 잠시 쉬어가는(?) 글이 되겠습니다. 마냥 노는 시간은 아니고 라즈베리파이에서 사용할 추가 저장장치(스토리지)를 선택해보는 시간이 되겠습니다.

라즈베리파이는 싱글보드 컴퓨터로 부팅OS를 저장하는 Micro SD port와 USB 포트 4개가 사용 가능합니다. 부팅은 Micro SD port에 삽입된 카드로 진행되며, USB 포트를 통해서 HDD나 SSD 등을 추가로 연결할 수 있습니다. PCI/SATA 등의 인터페이스는 없기에, USB 포트 4개에 연결가능한 저장장치가 고려대상입니다.

이전 버전인 라즈베리파이3 B+에서 유저들이 공통적으로 지적하던 성능 문제가 있는데, I/O throughput 성능이 좋지 않다는 것입니다. 라즈베리파이3까지는 USB 2.0 포트 를 지원합니다. USB2.0 포트도 1개의 루트 컨트롤러가 4개 USB 포트와 BT/WIFI 칩셋을 함께 컨트롤하게 때문에 I/O throughput 성능이 그리 좋지 않았습니다.

제가 라즈베리파이4 B 출시되고 여러가지 변화 중에 제일 큰 개선점으로 꼽는 것이 USB3.0 지원과 USB 컨트롤러 독립입니다. 이를 통해서 I/O throughput에 큰 향상이 있을 것으로 기대됩니다. 그럼 라즈베리파이4 B에서 각 저장장치 별 성능도 측정하고 결과도 함께 살펴보겠습니다.

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 정도입니다. 라즈베리파이4의 USB 컨트롤러 성능 개선으로 SSD를 사용할때의 속도가 크게 향상되었을 것으로 기대합니다. 라즈베리파이3까지는 SSD를 연결하면 비싼 장치를 구매하고 성능을 다 이용하지 못하게 되는 셈이었습니다.

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는 현재 구하기가 어렵구요.) 저는 삼성전자에서 출시한 내구성이 강화된 SD card 모델인 Samsung PRO endurance를 사용하고 있습니다.

이 글에서는 USB memory stick은 I/O 성능 측정을 생략하였습니다. USB memory stick의 I/O 성능이 궁금하시면 라즈베리파이3 B+ 설치가이드(6) 저장장치 선택 및 I/O 성능 측정을 참고 삼아 보시길 추천합니다.

4. 성능 비교(HDD vs SSD vs Micro SD card)

하드디스크와 SSD, 그리고 SD Card 장치 별 성능을 비교 측정해보겠습니다. benchmark 프로그램으로 hdparm, dd, iozone을 사용하여 저장장치 별로 read/write 속도를 측정하였습니다. 테스트 설정은 Jeff Geerling 블로그를 참고하였습니다.

Samsung SSD T5 500GB SEAGATE HDD ST2000DM001 2TB Samsung PRO endurance 32GB
순서대로, Samsung SSD T5, SEAGATE HDD, 그리고 Samsung PRO endurance

HDD, SSD, Micro SD card 1개 모델을 선정하여 I/O 성능 테스트를 진행하였습니다. SD card의 경우는 라즈베리파이의 Micro SD Port와 USB 3.0 Port에서 결과값을 측정하여, Port 별 성능도 가늠할 수 있게 하였습니다. SSD는 삼성의 외장형 모델 T5를, HDD는 시게이트의 2TB 용량의 모델입니다. SD card의 Samsung PRO endurance 카드는 내구성이 강화된 모델입니다.

benchmark interface hdparm buffered dd write 4K rand read 4K rand write
Samsung SSD T5 500GB USB 3.0 port 349.62 MB/sec 189.67 MB/sec 12.70 MB/sec 15.86 MB/sec
SEAGATE HDD ST2000DM001 2TB USB 3.0 port 196.84 MB/sec 164.67 MB/sec 0.78 MB/sec 1.27 MB/sec
Samsung PRO endurance 32GB Micro SD Port 43.12 MB/sec 27.87 MB/sec 9.48 MB/sec 2.39 MB/sec
Samsung PRO endurance 32GB USB 3.0 Port 16.06 MB/sec 10.33 MB/sec 3.78 MB/sec 2.24 MB/sec

Jeff Geerling 블로그의 테스트 스크립트를 사용한 결과입니다. 테스트 스크립트 내용을 간략히 보면 hdparm 테스트가 100MB, dd 테스트가 약 400MB write를 합니다. iozone은 4K 단위의 사이즈로 100MB 만큼 테스트를 진행합니다. 즉, hdparm과 dd 테스트는 대용량 쓰기를, iozone 테스트는 작은 단위의 쓰기를 합니다.

아래는 비교하기 편하게, 동일 결과를 그래프로 그렸습니다.

Benchmark Chart

결과 그래프를 보면, 단연코 SSD의 성능 향상이 크게 보입니다. 라즈베리파이3 B+에서 측정했던 결과를 보면 SSD 측정치가 hdparm 33.18 MB/sec, dd write 35.50 MB/sec 이었습니다. 라즈베리파이4 B 측정치가 각각 349.62 MB/sec, 189.67 MB/sec 입니다. USB 3.0 port 지원과 USB controller 독립의 결과로 볼 수 있겠습니다.

HDD의 hdparm, dd write 속도도 매우 놀라운 향상이 있었습니다. 반면, 라즈베리파이3 B+에서 측정했던 결과 대비 rand read/write는 큰 차이가 없습니다. HDD의 특성 답게 rand read/write는 성능 향상을 기대하기 어려울 것 같습니다.

마지막으로 Samsung PRO endurance 카드는 라즈베리파이3 대비 큰 성능 차이가 나지 않았습니다. 오히려 항목 별로 약간 떨어지는 경우도 있습니다. USB 3.0 port가 되었어도 Micro SD port에 장착했을 경우, 성능이 더 좋은 것은 여전하네요.

5. 결론

라즈베리파이4 B에서 USB 3.0 port 지원과 USB controller 독립으로 SSD의 I/O 성능이 엄청난 향상을 가져온 것을 확인할 수 있습니다. 라즈베리파이 사용 목적에 따라 각 저장장치 특성을 고려하여 저장장치를 구성하면 되겠습니다만 NAS나 HTPC를 구성하실때, 저장장치로 SSD를 사용하는 것이 라즈베리파이의 I/O 성능을 최대로 이끌어 낼 수 있는 방법입니다. Micro SD Card 경우는 내구성이 강화된 모델을 사용하길 추천합니다.


더 많은 라즈베리파이 이야기 Pi Guide 보러가기


Leave a Comment