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.

14 comments

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.

        • Aha, pak zkuste hledat HDD hat a nebo Raspberry HDD USB… popř. možná se někdo najde zde s konkrétním doporučením 😉

  • Ahoj, díky za pěkný návod. Zrovna řeším přesun na SSD u Banana Pi M1+ kde mě běží Armbian. Docela zajímavá deska ta NanoPC-T4, jak jseš s ní spokojen?

    • Ahoj, mám doma dvě verze NanoPi – M4 a T4. Při té ceně se mi už více líbí M4 kde je M2 SSD slot. Při dnešních cenách je pak jednoduché si místo na systém pořádně rozšířit a také zrychlit. Oproti Orange Pi jsou obě desky super stabilní. Jediná nevýhoda je teplota CPU – topí to fakt s pasivních hodně. Jestli máš nějaké dotazy dej vědět.

      • Dík za info. Časem si NanoPC-T4 asi pořídím. U toho mýho Banana Pi sice přenesu systém na SSD, ale pro boot stejně vyžaduje SD kartu.
        Předpokládám, že mluvíš o NanoPC-T4, který má M2 slot (NanoPi M4 ho nemá). 😉

        • Ups, máš pravdu. Je to T4. Jestli použiješ link z článku budu rád 🙂

  • Dobrý den,

    předem bych chtěl poděkovat za váš blog, opravdu super práce.

    Přemýšlím o zakoupení Rock PI 4 a přidání NVMe disku jako máte Vy. Ale ještě předtím jsem se chtěl zeptat jestli umí rock pi boobovat čistě z NVMe bez přítomnosti SD karty nebo emmc modulu.

    Děkuji a přeji vše nejlepší do nového roku.

    PR

    • Přímo tuhle desku bohužel neznám. Když se koukám na Internet v nějakých starších diskuzích se píše, že to bez SD/eMMC nejde, nicméně podle tohoto návodu wiki.radxa.com/Rockpi4/Linux_system_runs_on_M.2_NVME_SSD to vypadá, že by to mohlo jít. V mém případě NanoPC T4 vlastně přesně nevím jestli se bootloader přesunul, jelikož jsem použil utilitu Armbianu nand-sata-install, ale počítám, že to nyní bootuje přímo z SSD.

      Snad vám to pomůže. Vše nejlepší také.

      • Dobrý den,

        Až zpětně jsem si všiml, že vy nemáte RockPi 4 ale NanoPC T4 😉
        Těch desek je už tolik, aby se v tom čert vyznal. O to více děkuji za vaši odpověď a nasměrování.

        Já hledám desku která by právě uměla boot přímo z přidaného NVME SSD.
        Kamarád vlastní ROCKPro64 (tahle deska by měla být výkonnostně je v kategorii vašeho NanoPC T4) a tam se nám právě boot z připojeného NVME SSD nedaří. RockPi 4 bude možná bude „slabší“ než ROCKPro64 a NanoPC T4.

        Těžké vybrat.

        PR

        • Ano, sám jsem strávil několik hodin s výběrem a stejně jsem si nebyl jistý. Začal jsem kdysi s OrangePi, které se bohužel občas sekly. Pak jsem zkusil NanoPi M4, který mě velmi překvapil stabilitou, ale zklamal umístěním čipu – dávat větrák zespoda desky mi přijde fakt nešikovné. Naproti tomu NanoPC T4 má dle mě vše vyřešeno úžasně a funguje bez jediného zaseknutí. Jediné nevýhoda související ale s čipem, že to opravdu dost topí, pokud to začnete pořádně využívat. Nicméně výkon z mého pohledu famozní 🙂

          • Ahoj, zajímá mně, jaké problémy se stabilitou Oranžády jsi měl. Nebylo to teplotou chipů? Měl jsi tam chladiče nebo dokonce ventilátor a chladiče ? Ze zkušenosti s většími hračkami je to většinou teplotní závislost (přehřátí chipu a nebo špatné kondenzátory).
            Nemám nic proti NanoPi (původně jsem si ty klony vybral) – snad jen to, že je 4x dražší než ostatní klony a 2x dražší než naprosto suprový originál který je zcela stabilní a s obrovskou podporou). Tak jsem skončil u Oranžády, a tak mě zajímá kde ten problém se stabilitou vzniká.
            Kokr

          • Tak už jsem zjistil proč se oranžáda seká, oni ji totiž už z fabriky přetaktovávají z 1.2 na 1.6, no a když se trochu zatíží, tak začne hořet a ochrana to zpomaluje až se to sekne celé. Píše o tom Petr Stehlík v sérii článků o Orange Pi https://www.root.cz/clanky/linux-na-orange-pi-plus-sata-je-chytak/ . Jsou ti číňánci pěkní vyčůránci 🙂
            zdraví Kokr