pátek 12. ledna 2018

Synology NAS - výměna disku za větší bez ztráty dat (klonováním disku)

Došlo místo a tak jsem potřeboval vyměnit disk ve svém Synology za větší. Vzhledem k tomu, že na stávajícím disku bylo skoro 3.5 TB dat, řešil jsem jak to udělat efektivně - tj. s co nejmenším počtem kopírování dat.
Pozor: než nakoupíte disk(y), doporučuji ověřte si kompatibilitu na stránkách výrobce. Já to neudělal a řešil jsem (naštěstí jenom) problém s uchycením disku v rámečku a NASu. To vyřešila vrtačka a frézka. Ale zejména u starších zařízení se vám může stát, že NAS nebude umět velké disky.

Návod předpokládá, že máte jeden disk, který je součástí jedné diskové skupiny a na kterém je jeden svazek jako JBOD:
Disk -> Disková Skupina -> Svazek -> Sdílená složka

Postup funguje pokud je disk rozdělen v GPT. Pokud je menší než 1 TB, bude s největší pravděpodobností používat MBR, který neumí disky větší než 2 TB.

Pro úsporu času jsem zvolil postup s naklonováním menšího disku na větší. V tomto případě bude probíhat přesun dat jen jednou. Použil jsem distribuci CloneZilla na USB klíčence a starší desktop s nativním SATA2 řadičem. Dejte si pozor který disk je který, ať si nepřepíšete data!

Až bude disk na klonován (4 TB mi trvalo cca 8 hodin), můžete ho vložit do Synology místo starého. Pokud klonování proběhlo bez chyb, Synology by mělo bez problémů nastartovat a fungovat. Jenže si bude myslet, že tam je stále ten původní - menší - disk a podle toho bude zobrazovat původní kapacitu.

A proto nyní přichází největší pakárna z celého postupu. Donutit Synology načíst info o větším disku. Synology používá Linux RAID a LVM, takže to není tak jednoduché.

Příprava

Na zařízení je nutné povolit připojení přes SSH a rovnou se můžete připojit např. pomocí PuTTY (oficiální návod ve znalostní bázi Synology).
Všechny zde uvedené příkazy je nutné zadávat jako root, takže jako admin zadejte sudo -i a heslo uživatele admin.
Pro snažší práci uvedeme Synology do "nouzového" módu syno_poweroff_task -d. Příkaz zastaví všechny služby kromě SSH.
A teď je potřeba zjistit si označení:
  • fyzického disku (/dev/sdX)
  • RAID zařízení (/dev/mdY)
  • LVM volume groupy (/dev/vgZ/volume_Z)
Tyto údaje závisí na konfiguraci vašeho Synology a tak zde budu používat velká písmena X, Y a Z.

Rozšíření oddílu na naklonovaném disku

Toto je nejjednodušší krok: prázdné místo je na konci disku, takže k tomu stačí pár příkazů v utilitě parted (je potřeba editovat přímo fyzický disk!):
parted /dev/sdX

Přepnutí jednotek na sektory:
(parted) unit s

Zobrazení volného místa:
(parted) print free
print free
Model: WDC WD80EFZX-68UW8N0 (scsi)
Disk /dev/sdc: 15628053168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start         End           Size          File system     Name  Flags
        34s           255s          222s          Free Space
 1      256s          4980735s      4980480s      ext4                  raid
 2      4980736s      9175039s      4194304s      linux-swap(v1)        raid
        9175040s      9437183s      262144s       Free Space
 3      9437184s      15628052992s  15618615808s                        raid
        15628052992s  15628053134s                Free Space

Zde je potřeba zkontrolovat, zda je tabulka oddílů ve formátu GPT a zapsat si číslo rozšiřovaného oddílu a celkový počet sektorů - zvýrazněno tučně.

Nyní přistoupíme k rozšíření oddílu až na konec:
(parted) resizepart A B

Kde A je číslo rozšiřovaného oddílu a B koncový počet sektorů. Podle příkladu nahoře to tedy bude:
(parted) resizepart 3 15628053134


Zvětšení disku v RAID a LVM

Normálně by mělo stačit zvětšit RAID příkazem mdadm --grow /dev/mdY --size max.
Ale to by bylo moc jednoduché :) Musíme rozložit a znovu složit softwarové RAID pole.

Takže nejdříve je nutné deaktivovat LVM (volume groups):
vgchange -a n

Pak můžeme rozložit RAID pole:
mdadm -S /dev/mdY

Které následně složíme a vynutíme znovunačtení kapacity disku:
mdadm -A /dev/mdY -U devicesize /dev/sdX

Nyní konečně lze rozšířit RAID pole, v tomto případě na maximální velikost:
mdadm --grow /dev/mdY --size max

A nakonec ověříme, že se to povedlo:
mdadm --detail /dev/mdY

Nyní se můžeme vrhnout na LVM.

Rozšíříme fyzický svazek:
pvresize /dev/mdY

Rozšíříme logický svazek:
lvextend /dev/vgZ/volume_Z /dev/mdX

A ověříme, že dopadlo i toto:
vgdisplay -v


Rozšíření filesystemu

Než budeme moci přistupovat k datům, je potřeba aktivovat volume groups:
vgchange -a y

Před rozšířením je dobré zkontrolovat filesystem, jestli neobsahuje chyby:
e2fsck -f /dev/vgY/volume_Z

A konečně rozšíříme filesystem na celý disk:
resize2fs /dev/vgY/volume_Z

Poslední dva kroky budou trvat hodně dlouho v závislosti na nové velikosti disku.

Restart Synology

Nakonec stačí restartovat Synology příkazem:
reboot

Závěr

Při tomto postupu, jsem vycházel článku How I upgraded my Synology NAS to a bigger disk, nicméně jsem ho musel modifikovat tak, aby fungoval na aktuální verzi Synology DSM 6.1.
Postup je sice docela krkolomný a zdlouhavý, ale výhodou je, že budete disk kopírovat pouze jednou a neztratíte žádná data. Nemusíte tak znovu konfigurovat sdílené složky, oprávnění k nim a další nastavení.
Na celé operaci zabere nejvíce času klonování disku (na starém Dell Optiplex 380 byla rychlost cca 500 GB/hod) a poté kontrola a rozšíření souborového systému. Změna oddílů na disku, rozložení a složení pole je v porovnání s tím velmi rychlé a zabere jen pár minut.

Výše popsaný postup se nehodí, pokud na Synology máte složité konfigurace RAID nebo nemáte disk zcela zaplněný - CloneZilla kopíruje disk po sektorech a nerozlišuje obsazené a volné místo.


8 komentářů:

  1. Mám dotaz, mně se konkrétně týká ta problematika výměny menšího disku za větší a právě nový větší disk si myslí, že je stejně velký jak ten malý. Na mně je právě teď ta pakárna. Jenže, v Synology manager nevidím nikde tu utilitu "parted" resp. nějaký příkazový řádek. Stejně tak nevím, proč u správce úložiště v menu svazek > upravit není možno svazek zvětšit na max (není vysvíceno černě, jen šedě a tudíž nedostupné). Kontaktoval jsem podporu Synology, uvidím, zda se ozvou.

    OdpovědětVymazat
    Odpovědi
    1. Přímo v DSM není možnost příkazového řádku.

      Je potřeba v DSM povolit SSH (Secure Shell) a následně se můžete připojit např. s PuTTY - v článku odkazuji na oficiální návod na znalostní bázi Synology (odstavec Příprava hned první věta).

      Vymazat
  2. Dobrý den, nešlo by zvětšit oddíl i přes MiniTool Partition Wizard Home Edition jak je třeba tady v kroku 3?

    http://www.viralsvet.cz/jak-zkopirovatnaklonovat-starou-pametovou-kartu-na-novou/

    OdpovědětVymazat
    Odpovědi
    1. Dobrý den,

      teoreticky ano, ale tento nástroj neznám.

      Záleží, zda MiniTool PW podporuje operace s "neznámými" oddíly (s oddíly s neznámým souborovým systémem - jak je vidět v části "Rozšíření oddílu na naklonovaném disku", nástroj parted na oddílu 3 nerozezná filesystem).

      Většina nástrojů pod Windows vám nedovolí u oddílů s neznámým FS jinou operaci než smazat.

      Vymazat
  3. Tak jsem to zkusil MPW to neumí, asi z důvodu jak jste říkal. Zkusil jsem to i přes GPARTED LIVE CD, ale tam mě to taky úpravu nedovolilo...Tak jsem zase zkoušel Váš návod, ale zaseskl jsem se hned na začátku. Jak zjistím ty proměné X,Y,Z? Přes NAS nebo přes PUTTY? Děkuji
    RONE

    OdpovědětVymazat
  4. A teď jsem zjistil, že nový fizický disk je SDA, ale ten při výpisu FREE má partition DOS a ne GPT. GPT má ten druhý fyzický disk, který jsem neměnil. To je asi špatně, že?
    RONE

    OdpovědětVymazat
    Odpovědi
    1. Dobrý den,

      pokud disk není formátován jako GPT, předpokládám že je menší než 1 TB. Také nevím, jak přesně máte nakonfigurovaný storage na Synology - využíváte diskové skupiny a svazky podle schematu na začátku?

      Vymazat
  5. Dobrý den, tak to jsem to špatně pochopil...já mám fyzicky dva disky jako JBOD (4TB a 2TB)a jeden jsem chtěl vyměnit za větší(z 2TB na 4TB). Jeden je teď DOS a druhý je GPT. Udělal klon a vše funguje dál, ale je tam ten problém s tím volným místem...takže toto Vaše řešení asi nelze použít a budu to muset přeinstalovat celé. Ale nevadí, alespoň jsem zase zkusil nové věci ;-)
    RONE

    OdpovědětVymazat