blog.vyoralek.cz

Jaký vybrat SSD M.2 NVMe disk pro ARM počítače

Pokud jste si pořídili ARM minipočítač s NVMe konektorem pak vás to může stejně jako mě lákat si ho osadit SSD M.2 diskem.

Dnes si ukážeme jak si takový disk vybrat, namontovat a nakonec jak na něj přesunout celý operační systém v případě Armbianu + Ubuntu.

Výběr disku

Patrně nejsložitější část z celého článku. Poradit obecně jak se rozhodnout není úplně jednoduché, jelikož se jednotlivé výběry mohou významně lišit na základě desky – přesto se o to pokusím, resp. popíšu jak jsem uvažoval já při výběru pro NanoPi T4.

Co zvážit?

  1. velikost disku – nikde jsem nenašel fyzické limity, které nás však zřejmě nebudou trápit, díky finančnímu limitu, jelikož cena roste s velikostí velmi rychle. Já jsem si zvolil z mého pohledu aktuálně nejvýhodnější kompromis – 500GB – který poskytuje dostatek prostoru jak dnes, tak i na poměrně dlouhou dobu do budoucna. Ve srovnání se standardní interní eMMC pamětí 16GB v případě NanoPi T4 je to opravdu masivní skok.
  2. životnost – další důležitý parametr disku je vyjádřen zkratkou TBW – terabytes written – a udává kolik terabajtů dat je teoreticky možné na disk zapsat. Logicky tak čím je toto číslo větší, tím déle disk pravděpodobně vydrží. Pro aktuální SSD NVMe disky jsou čísla v rozmezí mezi 150-600TBW (výjmečně pak až 1200TBW). Doporučuji si tedy porovnat disky, která se vám líbí, jelikož často za stejnou cenu můžeme mít i dvojnásobnou TBW.
  3. rychlost zápisu/čtení – vzhledem k omezením ARMových minipočítačů můžete víceméně tento údaj ignorovat – maxima disků na nich rozhodně nedostáhnete.
  4. fyzická velikost disku – dejte si pozor, že pro ARMové počítače budete potřebovat disk s délkou 80mm. K dispozici jsou však i disky menší či větší.
  5. rozhraní disku – aby toho nebylo málo na první pohled stejně vypadají M.2 SATA a M.2 NVMe disky – zásadní rozdíl je jen v konektoru – SATA mají dvě mezery, NVMe disky pouze jednu.

Já jsem si nakonec vybral disk od firmy WD v kapacitě 500GB a 300TBW – k zakoupení např. na Alza.cz

Co naopak nedoporučuji je disk značky ADATA XPG SX6000 Lite, který v NanoPi T4 nešel vůbec vidět – nakonec jsem ho vrátil a musím se přiznat, že až poté jsem si nastudoval pořádněji všechny možnosti 🙂

Instalace disku

Jak výběr disku není úplně jednoduchý, tak instalace jako taková pak jednoduchá je. Stačí disk opatrně zasunou do PCI-E M.2 slotu – nelze dát obráceně – a disk na druhé straně uchytit šroubkem.

To je vše! – žádné kabely, či napájení jako v případě SATA disků – paráda.

SSD M.2 NVMe disk uchycený v NanoPi T4
SSD M.2 NVMe disk uchycený v NanoPi T4

Inicializace disku

Prvním krokem při inicializaci nového disku bude tzv. partition table nebo-li tabulka rozdělení.

Ještě než začneme je potřeba znát cestu k zařízení. Pro naše účely ARM minipočítačů a operačního systému Ubuntu by to měla být cesta /dev/nvme0n1.

🥁Veškeré operace je potřeba provádět jako administrátor, tj. pod uživatelem root a nebo s příkazem sudo.

Spustíme aplikaci parted příkazem:

parted /dev/nvme0n1

a aplikace by měla naskočit ve vlastní konzoli:

GNU Parted 3.2
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Zadáme příkaz mklabel a aplikace se nám zeptat na typ – vyplníme msdos. Pozor maximální velikost disku je 2TB, což ale stále v případě SSD zřejmě nebude problém 🙂

(parted) mklabel
New disk label type? msdos

💡Obecně je možno použít dva typy – gpt, tzv. GUID, který je vhodný na disku větší než 2TB a počítače s UEFI a nebo dos, tzv. Master boot record.

Tím máme připravenou tabulku rozdělení disku a ještě je potřeba do ní přidat nějaký záznam o rozdělení (partition). Pro naše účely si vystačíme s jedním svazkem.

Jelikož budeme chtít svazek typu ext4 musíme opustit apliakci parted a použijeme aplikací jinou – fdisk:

fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):

Opět v aplikací běží vlastní konzole, která očekává příkazy. My stiskneme následující tlačítka:

  • n – pro vytvoření nového svazku
  • p – pro nastavení svazku jako primárního (primary)
  • 1 – pro nastavení pořadového čísla svazku
  • 2x Enter pro potvrzení výchozí nastavení začátku a konce – použijeme celý disk
  • w – pro zapsání změn na disk

Nyní ještě disk zformátujeme na formát ext4:

mke2fs -t ext4 -L rootfs /dev/nvme0n1p1

Další postup záleží na tom, jak chceme SSD použít, tj:

  1. buď jako další disk, na který budeme odkládat data – systém bude stále startovat z aktuální disku, povětšinou SD karty a nebo eMMC.
  2. a nebo chceme SSD disk použít rovnou i jako systémový – a právě tento postup si ukážeme detailněji.

Jen dodám, že v případě první varianty bude potřeba disk namapovat pomocí příkazu mount do nějaké složky a pak ideálně i upravit soubor fstab tak, aby se disk po restartu automaticky připojoval.

Přesun systému na nový disk

V případě použití operačního systému Armbian, který mohu vřele už po několika letech zkušeností doporučit, je situace poměrně jednoduchá. Systém obsahuje aplikaci přímo pro tento účel s názvem nand-sata-install.

Tu můžeme spustit buďto přímo zadáním příkazu nand-sata-install a nebo si ji najdeme v armbian-config aplikaci v sekci System -> Install.

Po odkliknutí bychom měli vidět pouze jednu možnost, kterou vybereme, povtrdíme i následující dialog a zanedlouho bychom měli vidět už postup kopírování na cílový nvme disk.

Průvodce nás nakonci vyzve k restartu a tím je hotovo!

Bonus: Informace o disku

Poslední odstavec bude tak trochu bonusový 🙂 Občas se nám může hodit zjistit si o disku důležité informace. Pro NVMe disky v Ubuntu existuje takováto utilitka nvme-cli, která nám dokáže poměrně dost informací zobrazit.

Nainstalujeme ji pomocí:

apt install nvme-cli

A pro zobrazení informací o disku použijeme následující:

root@nanopct4:~ # nvme smart-log /dev/nvme0
Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning                    : 0
temperature                         : 58 C
available_spare                     : 100%
available_spare_threshold           : 10%
percentage_used                     : 0%
data_units_read                     : 6894
data_units_written                  : 77238
host_read_commands                  : 166617
host_write_commands                 : 1899232
controller_busy_time                : 0
power_cycles                        : 9
power_on_hours                      : 1
unsafe_shutdowns                    : 5
media_errors                        : 0
num_err_log_entries                 : 0
Warning Temperature Time            : 0
Critical Composite Temperature Time : 0
Thermal Management T1 Trans Count   : 0
Thermal Management T2 Trans Count   : 0
Thermal Management T1 Total Time    : 0
Thermal Management T2 Total Time    : 0

Z výše uvedeného jsou pro mě nejzajímavější dvě hodnoty:

  • temperature – aktuální teplota disku
  • percentage_used – což nemá nic společného s množstvím volného prostoru, ale udává životnost disku, tj. kolik už jste z ní spotřebovali.

4 komentáře

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

    • Nejsem úplně odborník na Raspberry, ale pamatuji si ještě z dřívejška, že byl u Raspberry problém v sdílené sběrnici s USB 2.0, díky čemuž jsou rychlosti pomalé – díky tomu snad 1Gbit karta neběží naplno. Čili je možné se dostat na maximum USB 2 což je okolo 60 MB/s, což je z pohledu SSD žalostně málo a proto to si myslím není zrovna populární používat s Raspberry. Pro tyto účely je tak asi lépe použít klasický plotnový disk a to by pak mohlo jít jak přes USB, tak i přes přídavné desk, kam je možné připojit i SATA. Prakticky ale s tímto zkušenosti nemám.

%d blogerům se to líbí: