🥧

Raspberry Pi 5をM.2 NVMe SSDからブートしてベンチマークしてみた

2024/02/17に公開

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からのブートは、以下の記事を参考にしました。

https://zenn.dev/usagi1975/articles/2023-12-29-000_raspi5_boot_nvme

上記の記事と同じように、以下の手順で進めました。

  1. microSDカードにRaspberry Pi OSを書き込み
  2. microSDカードからブート
  3. ブートローダーをアップデート(今回は最新だったので省略)
  4. ブート設定を変更
    1. sudo rpi-eeprom-config --editを実行
    2. BOOT_ORDER=0xf416に書き換え
    3. PCIE_PROBE=1を追加
  5. M.2外付けケースにM.2 NVMe SSDを取り付け
  6. M.2 NVMe SSDにRaspberry Pi OSを書き込み
  7. M.2 NVMe SSDのconfig.txtの末尾にdtparam=nvmeを追加
  8. Raspberry Pi 5にM.2 NVMe SSDを取り付け
  9. M.2 NVMe SSDからブート

ちなみにGIGAZINEの記事にあるdtparam=pciex1の追加は不要でした。

https://gigazine.net/news/20240126-raspberry-pi-5-ssd-boot/

電源問題に遭遇

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の組み合わせと比較してみると、かなり早いですね。

https://zenn.dev/yuyakato/articles/2f7f280b3d1c1e

おわりに

Raspberry Pi 5とM.2 NVMe SSDの組み合わせは、アクティブクーラーとの組み合わせに若干の問題がありつつも、すんなりと動作しました。また、動作もとても高速でした。

円安の関係もあり、Raspberry Pi 5 8GBはちょっとお高めではありますが、ホームサーバーとしては十分に使えるマシンになりそうです。

Discussion