- PVSM.RU - https://www.pvsm.ru -
Возможности подсистемы хранения данных одноплатного компьютера Raspberry Pi можно расширить, подключив к нему NVMe-диск [1]. Такие диски обычно подключают к PCIe, что даёт им потенциальную возможность считывать и записывать данные на скорости более 3000 Мб/с.
Я уже слышу слова критиков этой идеи, в частности, касающиеся реально достижимой скорости работы с данными, поэтому сразу сделаю оговорку.
Раскрыть весь потенциал NVMe-накопителя на Raspberry Pi 4 не удастся. Но у NVMe-диска есть пара преимуществ перед обычной SD-картой. Это — надёжность и скорость. Покупка подобного диска и адаптера к нему не потребует заметно больше средств, чем покупка более старого диска M.2. А если понадобится, то NVMe-диску можно найти и другое применение (ниже, при разговоре о CM4, я ещё к этому вернусь).
Если у вас имеется внешний SSD с интерфейсом USB или M.2-диск, то вы тоже можете воспользоваться этим руководством.
Вот список компонентов, которые использованы в этом проекте:

Компоненты, готовые к сборке
Вставьте NVMe-диск в адаптер и подключите его к компьютеру для того чтобы быстро его проверить.

Внутренняя печатная плата не закреплена. Поэтому проверьте всё при открытом корпусе
Я мог бы выбрать и более быстрый диск, не WD Blue, а, например, Samsung EVO 970 Plus. Но такой диск дороже на £50-60. Скорость передачи данных будет ограничена интерфейсом USB3 Raspberry Pi, поэтому тратиться на более быстрый диск смысла нет.
Загрузим [6] 32-битную RaspiOS.
Мои инструкции должны сработать и на Ubuntu 20.04. Если при этом возникнут какие-то сложности — взгляните на этот материал [7].
Теперь запишем ОС на SD-карту, создадим файл boot.txt в первом разделе, подключим карту к Raspberry Pi и загрузимся. После этого подключимся к плате:
ssh pi@raspberrypi.local
Обновим систему:
sudo apt update -qy
&& sudo apt upgrade -qy
Проверим версию загрузчика:
sudo vcgencmd bootloader_version
Sep 3 2020 13:11:43
version c305221a6d7e532693cc7ff57fddfc8649def167 (release)
timestamp 1599135103
Теперь включим загрузку с USB-накопителей, перейдя по пути Advanced Options > Boot Order > USB Boot.

Включение загрузки с USB-накопителей
Мы занимаемся настройкой Raspberry Pi, а поэтому нам ничто не мешает зайти в раздел настроек Options > GPU Memory и изменить размер видеопамяти с 65 Мб на 16 Мб. Если Raspberry Pi не используется для работы с графическими программами, то мы, благодаря этому, ничего не потеряем, а лишь вернём системе немного оперативной памяти.

А вы знали о том, что можно вернуть Raspberry Pi немного оперативной памяти?
Выключим Raspberry Pi.
Теперь воспользуемся компьютером, который применялся для записи ОС на SD-карту, или другим Raspberry Pi. Подключим к компьютеру NVMe-диск по USB и SD-карту с помощью кардридера. Я, для решения этой задачи, воспользовался компьютером Intel NUC с установленной на нём Linux.
После выполнения на этом компьютере команды lsblk должны быть выведены сведения о нашем диске:
alex@nuc7:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 29.7G 0 disk
├─sdb1 8:17 1 256M 0 part
└─sdb2 8:18 1 29.5G 0 part
sdc 8:32 0 465.8G 0 disk
├─sdc1 8:33 0 256M 0 part
└─sdc2 8:34 0 29.5G 0 part
Теперь отзеркалим SD-карту на NVMe-диск. При этом нужно очень внимательно следить за правильностью имён накопителей. Иначе можно перезаписать загрузочный диск компьютера, на котором осуществляется подготовка NVMe-диска к работе:
sudo -I
root@nuc7:~# time dd if=/dev/sdb of=/dev/sdc bs=1M
Теперь нужно загрузить Raspberry Pi по USB и попробовать подключиться к плате:
ssh pi@raspberrypi.local
Далее, установим hdparm для исследования производительности диска:
sudo apt install -qy hdparm
Проверим скорость работы диска.

Хороший прирост производительности в сравнении с SD-картой!
Попробуем записать на диск файл размером 500 Мб из памяти:
pi@raspberrypi:~ $ dd if=/dev/zero of=test bs=1048576 count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 2.63385 s, 199 MB/s
pi@raspberrypi:~ $
Правда, если сравнить это с тем, что показывает Samsung EVO 970 Plus на моём шестиядерном Intel NUC, то это будет, так сказать, просто небо и земля.

Исследование производительности разных дисков и интерфейсов
Если посмотреть на скорость буферизованного чтения данных, то очевидным становится то, что интерфейс USB3 Raspberry Pi не даёт диску работать в полную силу:
Интересно то, что на той же операции SD-карта даёт результаты, которые лучше, чем результаты M.2 SSD, а именно — 43,35 Мб/с.
Тут хочется отметить то, что у нас есть шанс раскрыть потенциал NVMe-дисков тогда, когда широко распространится плата CM4 (Raspberry Pi Compute Module 4), имеющая один PCIe-канал. К ней можно будет напрямую подключать подобные диски. Вот [8] видео, в котором идёт речь о CM4 и о различных возможностях ввода-вывода платы.
Теперь в вашем распоряжении есть новое хранилище данных для Raspberry Pi, более быстрое и надёжное, чем SD-карта.
Планируете ли вы подключить NVMe-диск к Raspberry Pi?
Автор: ru_vds
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/359514
Ссылки в тексте:
[1] NVMe-диск: https://en.wikipedia.org/wiki/NVM_Express
[2] Image: https://habr.com/ru/company/ruvds/blog/530948/
[3] Raspberry Pi 4: https://amzn.to/2IXvwz7
[4] USB-адаптер NVMe: https://www.ebay.co.uk/itm/10Gbps-M-2-NVME-to-USB-3-1-SSD-Enclosure-Adapter-Type-C-SSD-External-Case-Box-UK/254730206784?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
[5] NVMe-диск: https://amzn.to/2IXwwDk
[6] Загрузим: https://www.raspberrypi.org/software/operating-systems/
[7] материал: https://medium.com/@zsmahi/make-ubuntu-server-20-04-boot-from-an-ssd-on-raspberry-pi-4-33f15c66acd4
[8] Вот: https://www.youtube.com/watch?v=yiHgmNBOzkc
[9] Image: https://ruvds.com/ru-rub/news/read/126?utm_source=habr&utm_medium=article&utm_campaign=perevod&utm_content=rasshirenie_vozmozhnostej_raspberry_pi_s_pomoshhyu_zagruzochnogo_nvme_diska
[10] Image: http://ruvds.com/ru-rub?utm_source=habr&utm_medium=article&utm_campaign=perevod&utm_content=rasshirenie_vozmozhnostej_raspberry_pi_s_pomoshhyu_zagruzochnogo_nvme_diska#order
[11] Источник: https://habr.com/ru/post/530948/?utm_source=habrahabr&utm_medium=rss&utm_campaign=530948
Нажмите здесь для печати.