あっきぃです。
日本ではRaspberry Pi 5の発売はまだですが、先週末には日本の技適に関する証書PDFがRaspberry Piのポータルにアップロードされ、進捗が見えてきています。残念ながらこのPDFをもって日本で買ったり使ったりして良いことにはなっておらず、製品(またはパッケージ等)にマークと番号が印字されたものが販売開始されて初めて適法に利用できるようになるため、もう少しの辛抱です。
https://pip.raspberrypi.com/categories/894-approvals
さて、今回はRaspberry Pi 5のNVMe SSD用アクセサリーボードの話題。PCI Expressポートを使用したNVMe SSDの接続用アクセサリーボードについて、公式から販売が予告されていますが、まだ発売はされていません。しかし、すでにサードパーティベンダーからはいくつものNVMe SSDの接続用アクセサリーボードが発売されています。何種類か入手して試してみましたので、それぞれの使用感をレポートしていきます。
3種類のボード
今回紹介するのはこちらの3種類です。
- Geekworm X1001 (写真の左上)
- PineBerry Pi HatDrive! Top (写真の左下)
- Pimoroni NVMe Base (写真の右下)
各ボードについて、それぞれ詳しく見ていきましょう。
コンパクトながら2280サイズに対応するX1001
GeekwormのX1001は、Pi 5上に搭載するタイプのボードです。GPIO接続は不要かつGPIO部分が空いているため、HATボードの接続等のGPIOポートアクセスが可能です。固定用のネジ穴は3つで、スペーサーをつけると3本足で立つ、少しふしぎな形になります。
NVMe SSDは2230、2242、2260、2280のサイズに対応しますが、SSDの固定のダボは2280で固定になっていて外せないため、写真のように2280サイズ以外のSSDを使う場合には、別のアダプター等に付属している固定ネジが必要になります。また、動作中はACTのLEDランプが点滅します。
HAT形状のHAT Drive! Top
2023年9月末に設立されたばかりという、ポーランドのPineBerry Piが販売するHAT Drive Top!は、HATサイズにまとまったコンパクトなボードです。コンパクトな分、対応するNVMe SSDのサイズは2230、2242のみとなります。通電中の電源ランプとACTランプを搭載しています。
Raspberry Piへの接続は、PCIeケーブルのみでも動作しましたが、GPIOポートに接続するための延長ピンソケットが付属しており、これを使用して他のHATボードなどとセットで搭載することができます。なお、延長ピンソケットの抜き差しは慣れるまでは少し大変な印象でした。
Pi 5の下に配置!NVMe Base
イギリスのPimoroniが販売するNVMe Baseは、先述の2つとは違い、Pi 5の下に搭載するタイプのボードです(ちなみに、Pineberry PiやGeekwormも同様にボトムに配置するタイプのボードがあるようです)。
SSDのサイズはX1001と同じく2230、2242、2260、2280に対応します。SSDの固定は付属のネジとナットを使用して固定します。
ボードの裏面は波紋のような模様が特徴的。また、FPCケーブルのカーブも面白い設計ですね。
組み立てたあとの様子。ボードが下にあるため、Pi 5の全ポートにアクセス可能なのが便利です。一方、SSDの交換については都度ネジを外す必要があるのが、用途によっては面倒に感じるかも知れません。また、公式ケースやPimoroniのPiBowとは組み合わせられないのも惜しいところです。NVMe Baseに対応したPiBowケースの登場に期待したいです。
Raspberry Pi 5でNVMeブートをするための手順
Pi 5でNVMeブートをするには、事前にPi 5のEEPROM上の設定に対してブート順序の変更が必要なため、MicroSDカードでOSを起動して、rpi-eeprom-configコマンドを実行して設定作業を行います。
コマンドを実行するとエディターに設定が表示されるため、以下の2つのパラメータについて設定します。
$ sudo rpi-eeprom-config --edit
[all]
# BOOT_ORDERを変更。fより右に6を含める
BOOT_ORDER=0xf416
# 追記する
PCIE_PROBE=1
BOOT_ORDERパラメータは、6がfよりも右に含まれるように書き換えます。Raspberry Piの起動時には、数字の右側から起動が試行されます。0xf416の場合は、NVMe、MicroSD、USBの順に試して、起動メディアがなければまたNVMeから再試行していきます。各数字の意味の詳細は公式のドキュメントを参照してください。
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_ORDER
PCIE_PROBEパラメータは、次期HAT(おそらくHAT+)の仕様をサポートしないボードのためのパラメーターで、設定するとCM4と同様のPCIe x1検出方法になります。この設定はX1001とNVMe Baseの場合は不要です。HatDrive! Topの場合のみGPIO接続時にパラメータが必要ですが、GPIOに接続しない場合は不要です(今後のHatDrive!の設計変更によってはGPIO接続時でも不要になる可能性があります)。
https://github.com/raspberrypi/rpi-eeprom/releases/tag/v2023.12.06-2712
設定後はファイルを保存して終了し、一度OSを再起動します。再起動後はOSをシャットダウンしておきます。
NVMe SSDへのOSの用意
NVMe SSDにRaspberry Pi OSをインストールするには、作業PCにNVMe SSDを接続するために、USBに変換するためのエククロージャが必要です。Amazon等で販売されているので、1つ用意しておくと良いでしょう。
USB変換を使用してPC等に接続するとUSBストレージとして認識するので、MicroSDカードのときと同様に、Raspberry Pi Imager等を使用してRaspberry Pi OSを書き込みます。
OSを書き込んだ後、再度PCに接続してブートパーティションをマウントし、/boot/config.txtをエディターで開いて、以下の設定をファイルの末尾に追記します。
[all]
dtparam=pciex1
dtparam=pciex1_gen=3
dtparam=pciex1は、PCI Expressの外部コネクターを有効にするためのオプションです(なくても動作しますが一応記述します)。有効化すると、ポートがPCI Express 2.0 x1として利用できるようになります。
しかし、公式にはサポートされていないものの、dtparam=pciex1_gen=3を追加することで、PCI Express 3.0 x1として利用できるように強制できます。ただし、起動できなかったり、不安定になる場合もあるようなので、不具合が生じた場合はこのパラメータと除いてみてください。
起動!
OSが用意できたらボードをPi 5に搭載して起動します。ユーザー会では引き続き電波暗箱を使用しているため、箱にボードを入れての試験となります。基本的にボードに因る性能差異はなかったため、HatDrive! Topで検証した内容を掲載します。PCIe 3.0×1で問題なく利用できたため、SSDの性能をより引き出すことができました。
まずはhdparmを使用したシーケンシャルリードのテスト。800MB/sという、ラズパイらしからぬ性能が出ています。
akkie@nvmepi1:~ $ sudo hdparm -t /dev/nvme0n1
/dev/nvme0n1:
Timing buffered disk reads: 2454 MB in 3.00 seconds = 817.58 MB/sec
続けてddコマンドでシーケンシャルライトのテスト。こちらも700MB/s弱の性能を叩き出していて、やはりラズパイらしからぬスピードです。
akkie@nvmepi1:~ $ dd if=/dev/zero of=a.zero bs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB, 9.8 GiB) copied, 15.0922 s, 695 MB/s
Raspberry Piのストレージをテストしてサイトに掲載するスクリプトを提供しているPi Benchmarksのスクリプトを使用したテスト結果は以下の通り。DDの書き込み方法が異なるためか、あるいは熱による性能低下によるものかは不明ですが、こちらは359MB/sにダウンしてしまいました。ランダムの読み書き性能は150〜200MB/sと、なかなかの数字となりました。
Category Test Result
HDParm Disk Read 798.84 MB/sec
HDParm Cached Disk Read 675.10 MB/sec
DD Disk Write 359 MB/s
FIO 4k random read 126419 IOPS (505679 KB/s)
FIO 4k random write 59883 IOPS (239532 KB/s)
IOZone 4k read 198011 KB/s
IOZone 4k write 144889 KB/s
IOZone 4k random read 57412 KB/s
IOZone 4k random write 167898 KB/s
Score: 37236
まとめ
色々なNVMeボードについて特徴を解説し、実際にボードをRaspberry Pi 5で利用するための手順について解説しました。
公式のNVMe HATボードがまだ登場していませんが、すでにサードパーティベンダーから、今回紹介したような、使い方やNVMe SSDのサイズに応じた様々なボードを選べるようになっているため、お好みで用意してみてはいかがでしょうか。
NVMe SSDを利用することで、MicroSDカードよりも高信頼かつ高速なRaspberry Piの環境が構築できます。サーバー用にRaspberry Pi 5を検討している方は、NVMe SSDの採用も合わせて検討すると良いでしょう。
コメント失礼致します
大変有用な記事ありがとうございます!
購入の参考にさせて頂きます
お手隙の際にNVMe SSDから起動した場合の各消費電力についても計測・記載して頂けると嬉しいです