안녕하세요...라즈베리파이당 눈팅만 하는 냥입니다...
요근래 라즈베리파이에 SSD 관련 이야기가 많아서,
이미 알고 계신 이야기일수도 있지만, 모르시는 분들도 계실듯 하여 잠시 정리할겸 글을 올립니다.
고려해야 하는 사항을 요약하면 다음과 같습니다.
1. M.2 NVME든 SATA SSD 든 최대소비전력을 고려해야함
2. 라즈베리파이4의 경우 USB 3.0 을 통해 연결이 되므로, 외장하드든, 어댑터든 UASP 를 지원해야 최대성능을 보장
3. TRIM 지원을 위해서는 어댑터의 컨트롤러에서도 지원해야 하고 SSD 에서도 지원해야 함
좀더 풀어서 설명을 하면,
1. M.2 NVME 든 SATA SSD 든 최대소비전력을 고려해야함
라즈베리파이의 USB 포트를 통한 최대 공급 가능 전력은 최대값이 존재합니다.
( 참고 : https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md )
예를 들어 라즈베리파이4의 경우 USB 공급 전력의 총 합은 1.2A 입니다.
M.2 SATA 모델 2개
- PM881 : 3.3V * 0.9A = 소비전력 2.97W ( 5V 기준 0.594A - 라즈베리파이4 기준 1.2 A 이내로 사용 가능 )
- 860EVO : 3.3V * 1.7A = 소비전력 5.61W ( 5V 기준 1.122A - 라즈베리파이4 기준 1.2A 이내로 사용 가능하나 여유가 없음 )
M.2 NVME PCIE 모델 2개
- PM981A : 3.3V * 2.8A = 소비전력 9.24 ( 5V 기준 1.848A - 라즈베리파이 기준 1.2A 초과로 사용 불가 )
- SN520 : 3.3V * 1.5A = 소비전력 4.95 ( 5V 기준 0.99A - 라즈베리파이 기준 1.2A 이내로 사용 가능 )
중요한건 각 제조사의 Specification 을 확인하여 idle 시 peak 시의 소비전력을 확인하셔야 합니다.
인쇄된 Specification 과, 실제 Technical Specification 이 다른경우가 많습니다. (용량별 소비전력도 다름)
또한 USB Adapter 자체의 소비전력도 고려해야 하므로, SSD 의 소비전력 + 마진전력도 고려해야합니다. (심지어 어댑터의 LED 도 미세하지만 전력을 소비함)
실제로 PM981A 의 경우 초기부팅시 정상적으로 동작하는 경우도 있으나, DISK IO 테스트시 소비전력이 올라가면 동작이 전력부족으로 동작을 멈춥니다.
만약 SSD 사용중에 고장이 나거나 문제가 생기는 분들은, 처음 이용시에는 소비전력에 문제가 없으나 과부하시 혹은 라즈베리파이에서 공급되는 전력이 일시적으로 부족하여 USB 를 통한 전원공급이 1.2A 이하가 될 경우 문제가 발생되는것이라 예상합니다.
일반적으로 M.2 NVME PCIE 의 경우 M.2 SATA 보다 고성능이므로, 고전력, 고발열입니다.
참고로 라즈베리파이4의 USB 3.0 대역폭 내에서 최대성능은 M.2 SATA 로도 충분합니다.
(NVME PCIe 용 어댑터는 M.2 SATA 어댑터보다 더 비쌉니다)
(참고: 정 필요할 경우 USB SSD 에 별도의 외부전원공급을 통해서 해결할수도 있습니다. - 유전원USB허브 등 이용)
2. 라즈베리파이4의 경우 USB 3.0 을 통해 연결이 되므로, 외장하드든, 어댑터든 UASP 를 지원해야 최대성능을 보장
위는 M.2 SATA 어댑터 ( ASMedia - ASM1051E 칩)
아래는 M.2 NVME PCIe 어댑터 입니다. ( JMicron - JMS583 칩)
사진에는 안나왔지만 NVME PCIe 어댑터는 현재 Realtek RTL9210 칩 어댑터 를사용중 ( 대표적 모델 Orico M2PV-C3 )
주) JMicron - JMS583 칩은 몇가지 문제로 인해 라즈베리파이에서 사용하지 않고 있습니다.
NVME PCIe to USB 어댑터 ( JMicron - JMS583 , JMicron 컨트롤러 시장에 먼저 출시었지만 현재는 이후 출시된 ASMedia 나 Realtek 제품을 더 추천하는 경우가 있음)
외장하드도 마찬가지로 결국 PCIe 혹은 SATA SSD 를 USB 를 통해 연결될 경우, 이러한 컨트롤러를 통해 제어되며, 따라서 UASP (USB Attached SCSI Protocol) 를 제대로 지원해야 최대 성능을 지원합니다.
또한 같은 컨트롤러라도 제조사에 따라 펌웨어 버젼에 의해 지원을 할수도 있고 안할수도 있습니다.
어댑터 컨트롤러 ASMedia ASM1051E 를 확인할 수 있으며 Driver 의 UASP 를 확인할 수 있음
하나 더 중요한건 UAS 로 UASP 를 지원하는것 처럼 나오지만 실제 지원을 안할수도 있습니다. (디스크 IO 테스트나 벤치를 돌릴 경우, 쓰기 및 읽기 속도고 현저하게 느려짐 - 쓰기 속도가 1Mbyte 도 안나오는 경우도 있음 )
이 경우 해결책은, 펌웨어 업데이트를 통해 정상동작을 확인하거나, 아니면 라즈베리파이 부팅시 uas 를 비활성화 하고 사용할수밖에 없습니다.
( 참고 : https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245931 )
( UASP 적용 여부에 따른 벤치마킹 참고자료 : https://www.jeffgeerling.com/blog/2020/uasp-makes-raspberry-pi-4-disk-io-50-faster )
3. TRIM 지원을 위해서는 어댑터의 컨트롤러에서도 지원해야 하고 SSD 에서도 지원해야 함
예를 들어 ASMedia - ASM1051E 의 경우 구매당시 TRIM 을 지원하지 않지만 특정 펌웨어버젼에서 TRIM 을 지원하는것을 알고 펌웨어 업데이트를 통해 TRIM 을 활성화 할 수 있었습니다. (참고 : ASM1051E의 경우 https://www.usbdev.ru/files/asmedia/asmt2115firmware/ 에서 140509_A1_82_40 버젼이 Trim 지원 , 따라서 제가 가지고 있는 ASMedia - ASM1051E , Realtek RTL9210 , JMicron JMS583 는 전부 Trim 지원 가능 )
외장SSD 를 이용하든 M.2 SATA 를 이용하든, M.2 NVME PCIE 를 이용하든, 그리고 DRAM이 있는 SSD 든, DRAMLESS SSD 든
라즈베리파이4의 USB 3.0 대역폭 내에서는 어차피 최대성능을 다 이용하지 못하므로, 적당히 본인에게 맞는 SSD 를 선택하면 될 것 같습니다. 참고로 ( ASMedia ASM1051E 어댑터와, PM881 128GB 조합의 경우 : 알리에서 어댑터4$ + ssd 2만원 이하 )
마지막으로, 왜 이런 라즈베리파이와 M.2 NVME 를 가지고 기행을 했는가 하면...
라즈베리파이 클러스터를 스토리지(microsd, usb)없이 PXE boot 와 root NFS mount 를 이용한 Cluster 를 구성하려다보니
tftp + nfs 역할을 하는 서버의 IO 성능이 중요하여, M.2 SSD 를 적용하며 정리된 내용입니다. ( 나머지는 SSD는 Prometheus , Grafana, Postgres 등 설치목적 )
( Raspberrypi 4 2GB 의 tftp nfs 서버에 16개의 raspberry pi 4 4GB 이 PXE boot 를 통해 접근중 )
NFS 부팅이므로, OS 가 가벼울수록 유리한 관계로, DietPi 를 OS 로 이용중에 있습니다. ( archlinux 나 aplinelinux 면 더 좋겠지만...)
headless 서버라 외부전원과 이더넷 케이블만 연결된 관계로(microsd X, usb X, hdmi X) 소비전력은 라즈베리파이 공식문서에서처럼(Typical bare-board active current consumption) 600mA 정도 나오는것을 확인할 수 있습니다.
긴 글 읽어주셔서 감사드리며, 도움이 되셨길 바랍니다.
M.2 SATA
- PM881
- 860EVO
M.2 NVME
- PM981A
- SN520 ( 주의 : 키 모양이 B+M 키인거만 보고 M.2 SATA 인줄 알고 샀는데 알고보니 M.2 NVMe 였습니다 )
감사합니다.
골치아프네.
글 감사합니다.
https://wiki.odroid.com/odroid-xu4/software/jms578_fw_update#how_to_use
https://www.devwithimagination.com/2021/01/03/raspberry-pi-usb-boot-with-jms578-based-usb-to-sata-enclosures/
https://zelkun.tistory.com/entry/057-Raspberry-Pi4-%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B44-USB30-SSD-%EC%99%B8%EC%9E%A5%ED%95%98%EB%93%9C-%EC%9D%B8%EC%8B%9D%EB%AC%B8%EC%A0%9CUSAP