Raspberry Pi 5をM.2 NVMe SSDからブートしてベンチマークしてみた
3行まとめ
- Raspberry Pi 5はM.2 NVMe SSDから簡単にブートできる
- Raspberry Pi 5 + M.2 NVMe SSDは良い感じに高速
- M.2 NVMe SSDをケースに内蔵できるのでスッキリ
はじめに
ついに日本でもRaspberry Pi 5が発売されましたね。
早速、Raspberry Pi 5を入手したので、M.2 NVMe SSDからブートして、ストレージのベンチマーク測定をしてみました。
機材
使用した機材は以下の通りです。
名称 | リンク |
---|---|
Raspberry Pi 5 8GB | スイッチサイエンス |
Raspberry Pi 5用アクティブクーラー | スイッチサイエンス |
Geekworm X1001 V1.1 PCIe NVMe M.2 拡張ボード | Amazon |
Geekworm Raspberry Pi 5 ケース | Amazon |
KIOXIA EXCERIA G2 SSD-CK1.0N3G2/N | Amazon |
ORICO M.2 SSD 外付けケース | Amazon |
M.2 NVMe SSDからのブート
M.2 NVMe SSDからのブートは、以下の記事を参考にしました。
上記の記事と同じように、以下の手順で進めました。
- microSDカードにRaspberry Pi OSを書き込み
- microSDカードからブート
- ブートローダーをアップデート(今回は最新だったので省略)
- ブート設定を変更
-
sudo rpi-eeprom-config --edit
を実行 -
BOOT_ORDER=0xf416
に書き換え -
PCIE_PROBE=1
を追加
-
- M.2外付けケースにM.2 NVMe SSDを取り付け
- M.2 NVMe SSDにRaspberry Pi OSを書き込み
- M.2 NVMe SSDの
config.txt
の末尾にdtparam=nvme
を追加 - Raspberry Pi 5にM.2 NVMe SSDを取り付け
- M.2 NVMe SSDからブート
ちなみにGIGAZINEの記事にあるdtparam=pciex1
の追加は不要でした。
電源問題に遭遇
M.2 NVMe SSDからのブート自体は問題なく行えたのですが、「アクティブクーラーとM.2 NVMe SSDを組み合わせると数回に1回しか起動しない」という問題に遭遇しました。
具体的には、「起動時にアクティブクーラーが回った時点で電源が切れ、再起動してしまう」という現象が発生しました。
何度か試すと起動に成功し、一度起動してしまえば問題なく動作しました。恐らくアクティブクーラーによって電圧降下が生じているのだと思われます。
この辺りは、5V/5Aを安定して供給できる電源アダプタの登場が待たれますね。
環境
ベンチマーク測定を行った環境は以下の通りです。
$ uname -a
Linux raspi5b8g-1 6.1.0-rpi8-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.73-1+rpt1 (2024-01-25) aarch64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
$ grep Model /proc/cpuinfo
Model : Raspberry Pi 5 Model B Rev 1.0
$ rpi-eeprom-update
BOOTLOADER: up to date
CURRENT: Fri Jan 5 15:57:40 UTC 2024 (1704470260)
LATEST: Fri Jan 5 15:57:40 UTC 2024 (1704470260)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release.
$ rpi-eeprom-config
[all]
BOOT_UART=1
POWER_OFF_ON_HALT=0
BOOT_ORDER=0xf416
PCIE_PROBE=1
$ free -h
total used free shared buff/cache available
Mem: 7.9Gi 223Mi 7.3Gi 5.1Mi 403Mi 7.6Gi
Swap: 99Mi 0B 99Mi
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 805M 5.1M 800M 1% /run
/dev/nvme0n1p2 917G 1.7G 869G 1% /
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 5.0M 48K 5.0M 1% /run/lock
/dev/nvme0n1p1 510M 63M 448M 13% /boot/firmware
tmpfs 805M 0 805M 0% /run/user/1000
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 931.5G 0 disk
|-nvme0n1p1 259:1 0 512M 0 part /boot/firmware
`-nvme0n1p2 259:2 0 931G 0 part /
$ sudo apt install fio
$ fio --version
fio-3.33
$ cat <<EOS > fio.config
[global]
ioengine=libaio
iodepth=1
size=1g
direct=1
runtime=60
directory=/tmp
stonewall
[Seq-Read]
bs=1m
rw=read
[Seq-Write]
bs=1m
rw=write
[Rand-Read-512K]
bs=512k
rw=randread
[Rand-Write-512K]
bs=512k
rw=randwrite
[Rand-Read-4K]
bs=4k
rw=randread
[Rand-Write-4K]
bs=4k
rw=randwrite
[Rand-Read-4K-QD32]
iodepth=32
bs=4k
rw=randread
[Rand-Write-4K-QD32]
iodepth=32
bs=4k
rw=randwrite
EOS
測定結果
fio
コマンドを使いM.2 NVMe SSDのベンチマーク測定を行いました。結果は以下の通りです。
$ fio -f fio.config
項目 | 速度 | IOPS |
---|---|---|
Seq-Read | 430MB/s | 409 |
Seq-Write | 404MB/s | 385 |
Rand-Read-512K | 413MB/s | 787 |
Rand-Write-512K | 394MB/s | 751 |
Rand-Read-4K | 55MB/s | 13.4k |
Rand-Write-4K | 132MB/s | 32.1k |
Rand-Read-4K-QD32 | 441MB/s | 108.0k |
Rand-Write-4K-QD32 | 291MB/s | 70.9k |
過去に測定したRaspberry Pi 4とUSB SSDの組み合わせと比較してみると、かなり早いですね。
おわりに
Raspberry Pi 5とM.2 NVMe SSDの組み合わせは、アクティブクーラーとの組み合わせに若干の問題がありつつも、すんなりと動作しました。また、動作もとても高速でした。
円安の関係もあり、Raspberry Pi 5 8GBはちょっとお高めではありますが、ホームサーバーとしては十分に使えるマシンになりそうです。
Discussion