Raspberry Pi 5はRaspberry Piシリーズで初めてPCI Express(PCIe)に対応しており、PCIeをM.2に変換するボードを使えばM.2 SSDを認識させたり、M.2 SSDを起動ディスクに設定したりできます。「どのモデルのM.2 SSDなら認識できるのか?」「M.2 SSDを起動ディスクに設定すると、どれだけ高速になるのか?」といった疑問を解消するべく、実際に複数種のM.2 SSDを用意して接続手順や転送速度を確かめてみました。

Raspberry Pi 5 - Raspberry Pi

https://www.raspberrypi.com/products/raspberry-pi-5/

NVMe SSD boot with the Raspberry Pi 5 - Geekworm Wiki

https://wiki.geekworm.com/NVMe_SSD_boot_with_the_Raspberry_Pi_5

・目次

◆1:技適についての前置き

◆2:PCIeをM.2に変換するHAT

◆3:M.2 SSDを起動ディスクに設定する手順

◆4:5種類のSSDで相性をチェック

◆5:転送速度を測定してみた

◆1:技適についての前置き

今回使うRaspberry Pi 5はRaspberry Pi財団からGIGAZINE編集部に直接送られてきたもので、技術基準適合証明を受けていません。そこで、「技適未取得機器を用いた実験等の特例制度」の届出を行っています。なお、日本では代理店による技適申請の後でRaspberry Pi 5が発売される予定です。



◆2:PCIeをM.2に変換するHAT

Raspberry PiにM.2 SSDを認識させるには、PCIeをM.2に変換するボード(HAT)が必要です。今回はGeekwormの「X1000 Pcie M.2 Key-M NVMe SSD PIP PCIe Peripheral Board for Raspberry Pi 5(以下、X1000)」を買ってみました。

Geekworm X1000 Pcie M.2 Key-M NVMe SSD PIP PCIe Peripheral Board for R

https://geekworm.com/products/x1000



X1000のパッケージはこんな感じ。



箱の中にはX1000本体と接続ケーブル、SSDを固定する用のネジなどが入っていました。



Raspberry PiにX100を取り付けるとこんな感じ。



「Solidigm P41 Plus 512GB」を取り付けてみました。X100にはSSDを固定するためのネジが付属していますが、Type2230かType2242のSSDしかネジ穴を使えません。そこで、今回は輪ゴムで固定しています。



◆3:M.2 SSDを起動ディスクに設定する手順

SSDを接続したら、「Raspberry PiにSSDを認識させる」「SSDにRaspberry Pi OSをインストールする」「起動ディスクを切り替える」という手順でSSDから起動できるようにします。

・Raspberry PiにSSDを認識させる

まず、SSDと「Raspberry Pi OSをインストール済みのmicroSDカード」をRaspberry Piに装着し、起動します。



システムが起動したら、「/boot/config.txt」に以下の2行を追加します。

dtparam=pciex1
dtparam=nvme

2行追加して保存したら、システムを再起動します。

・SSDにRaspberry Pi OSをインストールする

続いて、SSDにRaspberry Pi OSをインストールします。OSのインストール方法は複数ありますが、今回は「microSDカードの中身を丸ごとSSDにコピーする」という方法でインストールします。

まず、Raspberry Piメニューの「Accessories」の中にある「SD Card Copier」をクリックして起動します。



SD Card Copierが起動したら「Copy From Device」でコピー元のmicroSDカードを指定し、「Copy To Device」でコピー先のSSDを指定。続いて「New Partition UUIDs」にチェックを入れてから「Start」をクリックします。



「SSDの中身がすべて消える」という警告が表示されたら「Yes」をクリック。



コピーが完了するまでしばらく待ちます。



コピーが完了したら「OK」をクリックしてSD Card Copierを終了します。



・起動ディスクを切り替える

SSDの準備が完了したら、EEPROMを書き換えてSSDからシステムを起動できるようにします。EEPROMを書き換えるには以下のコマンドを実行します。

sudo rpi-eeprom-config --edit

エディタで設定ファイルが開いたら、「BOOT_ORDER=0xf41」と記されている部分を「BOOT_ORDER=0xf416」に書き換えて保存します。

EEPROMを書き換えたら、システムをシャットダウンしてmicroSDカードを抜き、もう一度起動します。



これでSSDからシステムを起動できるはずでしたが、今回はエラーが出て起動できませんでした。



Geekwormのフォーラムを調べてみると、EEPROMに「PCIE_PROBE=1」という行を追加するとうまくいくという情報を発見。以下のコマンドを再度実行して、末尾に「PCIE_PROBE=1」という行を追加し、保存しました。

sudo rpi-eeprom-config --edit

再起動してみると、無事にOSが起動しました。



◆4:5種類のSSDで相性をチェック

Raspberry PiとX1000を組み合わせた場合、SSDの種類によっては認識できないことがあるとのこと。そこで、「Solidigm P41 Plus 512GB」「Samsung 950 PRO 256GB」「WD Black SN750」「Monster Storage MS950 2TB」「Intel Optane 16GB」という5種類のSSDを用意して、どのSSDなら問題なく起動できるのか確かめてみました。



検証の結果、「Solidigm P41 Plus 512GB」「Samsung 950 PRO 256GB」「WD Black SN750」の3種は問題なくシステムを起動可能でした。



一方で、「Monster Storage MS950 2TB」と「Intel Optane 16GB」は認識されませんでした。なお、記事作成時点で出荷されているX1000は今回使った個体と設計が異なるため、認識できるSSDに違いがある可能性もあります。



◆5:転送速度を測定してみた

SSDからシステムを起動することでどれだけの高速化が可能なのか検証するべく、microSDカード「SUNEAST ULTIMATE PRO 64GB」と3種のSSDの転送速度を比較してみます。



転送速度はJames A. Chambers氏が公開しているベンチマークツールを用いて測定します。ベンチマークテストを実行するには、以下のコマンドを実行するだけでOK。

sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash

まず、microSDカード「SUNEAST ULTIMATE PRO 64GB」の測定結果は以下の通り。

テストSUNEAST ULTIMATE PRO 64GBHDParm Disk Read90.06 MB/sHDParm Cached Disk Read84.92 MB/sDD Disk Write73.9 MB/sFIO 4k random read6301 IOPS (25206 KB/s)FIO 4k random write2760 IOPS (11040 KB/s)IOZone 4k read28098 KB/sIOZone 4k write14015 KB/sIOZone 4k random read20072 KB/sIOZone 4k random write13969 KB/sスコア3905

続いて、「Solidigm P41 Plus 512GB」での測定結果が以下。すべての項目でmicroSDカードよりも圧倒的に高速な値を記録しています。

テストSolidigm P41 Plus 512GBHDParm Disk Read436.50 MB/sHDParm Cached Disk Read433.61 MB/sDD Disk Write254 MB/sFIO 4k random read105567 IOPS (422268 KB/s)FIO 4k random write55501 IOPS (222005 KB/s)IOZone 4k read124515 KB/sIOZone 4k write145062 KB/sIOZone 4k random read68056 KB/sIOZone 4k random write153531 KB/sスコア33144

Raspberry Pi 5では正式にはPCIe 2.0に対応しているのですが、「/boot/config.txt」に「dtparam=pciex1_gen=3」という行を追加することで強制的にPCIe 3.0で接続させることができます。PCIe 3.0接続の状態で「Solidigm P41 Plus 512GB」の転送速度を測定した結果が以下。すべての項目でPCIe 2.0よりも高速化しました。

テストSolidigm P41 Plus 512GBHDParm Disk Read750.34 MB/sHDParm Cached Disk Read737.25 MB/sDD Disk Write355 MB/sFIO 4k random read113149 IOPS (452596 KB/s)FIO 4k random write59708 IOPS (238833 KB/s)IOZone 4k read153439 KB/sIOZone 4k write184383 KB/sIOZone 4k random read74630 KB/sIOZone 4k random write232813 KB/sスコア43776

PCIe 3.0接続の方が高速な転送が可能なことが分かったので、「Samsung 950 PRO 256GB」と「WD Black SN750」もPCIe 3.0接続で転送速度を測定し、4種のストレージの転送速度を表にまとめてみました。

テストSUNEAST ULTIMATE PRO 64GBSolidigm P41 Plus 512GBSamsung 950 PRO 256GBWD Black SN750HDParm Disk Read90.06 MB/s750.34 MB/s681.17 MB/s847.31 MB/sHDParm Cached Disk Read84.92 MB/s737.25 MB/s629.75 MB/s827.47 MB/sDD Disk Write73.9 MB/s355 MB/s371 MB/s371 MB/sFIO 4k random read6301 IOPS (25206 KB/s)113149 IOPS (452596 KB/s)172100 IOPS (688403 KB/s)96603 IOPS (386415 KB/s)FIO 4k random write2760 IOPS (11040 KB/s)59708 IOPS (238833 KB/s)59362 IOPS (237449 KB/s)59708 IOPS (238833 KB/s)IOZone 4k read28098 KB/s153439 KB/s185135 KB/s177499 KB/sIOZone 4k write14015 KB/s184383 KB/s134749 KB/s169424 KB/sIOZone 4k random read20072 KB/s74630 KB/s50434 KB/s53822 KB/sIOZone 4k random write13969 KB/s232813 KB/s149835 KB/s219808 KB/sスコア3905437763681841236

単位を「MB/s」にそろえてグラフ化したものが以下。グラフをクリックすると大きい画像で確認できます。SSDの種類によって速度にバラつきがありますが、どのSSDもmicroSDカードと比べて圧倒的に高速なデータ転送が可能でした。



◆「Raspberry Pi 5」でレビューして欲しい点を教えて!

「こうするとどうなるかやってみて!」「こういうことできる?」「こんな時どうなる?」など実際に使うからこそ試して欲しいポイントを以下のリンク先から教えてください〜。他の誰かと内容が重なってもOK、むしろ多ければ多いほど「やはりこういう点が気になるのだな〜」というのがわかるので助かるのです。そして次のレビュー記事作成に反映されてお役立ち!

• Discord | "「Raspberry Pi 5」がGIGAZINE編集部に届いたのでレビューするけど何が知りたい?" | GIGAZINE(ギガジン)