Z minulých dílů máme zmirrorovaný systémový disk a také jsme si ukázali co dělat v případě výpadku disku. Tentokrát je čas na zvětšení dostupného místa v zpoolu přidáním dalších datových disků.

Seriál o ZFS v FreeBSD

Tento článek je součástí krátkého seriálu o ZFS v FreeBSD

  1. Přidání disku
  2. Řešení vadného disku
  3. Zvětšení poolu (tento článek)
  4. Diskuse nad typy vdev
  5. Zvětšení vdevu mirror

Zvětšení poolu

Aktuálně tedy máme zabezpečený systémový disk proti výpadku, ale nemáme dostatek volného místa. To hned napravíme.

Přidáme další dva disky a do poolu přidáme další vdev typu mirror. Z těchto disků už nebudeme chtít bootovat (dva boot disky stačí). Jejich rozdělení se tedy zjednoduší:

V tomto případě budu přidávat disky da3 a da4

Nejprve vytvoříme prázdnou GPT:

gpart create -s gpt da3

A vytvoříme jeden oddíl přes celou velikost disku. Oddíl zarovnáme na 4k sektory:

gpart add -a 4k -t freebsd-zfs da3

a dílo zkontrolujeme:

[root@freebsd ~]# gpart show da3
=>       40  134217648  da3  GPT  (64G)
         40  134217640    1  freebsd-zfs  (64G)
  134217680          8       - free -  (4.0K)

S druhým diskem můžeme postupovat stejně, nebo si práci ulehčíme zkopírováním rozdelení:

gpart backup da3 | gpart restore -F da4

Teď už jen tyto dva oddíly přidáme jako další vdev do zpoolu. Opět je nutné nastavit ashift pro disky s 4k sektory.

sysctl vfs.zfs.min_auto_ashift=12

A přidat disky do poolu:

zpool add zroot mirror da3p1 da4p1

A zkontrolovat, co jsme spáchali:

[root@freebsd ~]# zpool status
  pool: zroot
 state: ONLINE
  scan: resilvered 1.43G in 0h2m with 0 errors on Sat May  6 10:30:24 2017
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            da1p3   ONLINE       0     0     0
            da2p3   ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            da3p1   ONLINE       0     0     0
            da4p1   ONLINE       0     0     0

errors: No known data errors

V poolu zroot jsou tedy dva vdevy typu mirror, každý po dvou diskách. Takto jsme vytvořili zpool, který se chová podobně jako raid10. ZFS automaticky stripuje přes všechny dostupné vdevy.

Tímto způsobem můžeme přidat tolik mirrorů, kolik potřebujeme a postupně tak zvětšovat dostupné místo v poolu.