Zvětšení zpoolu
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
- Přidání disku
- Řešení vadného disku
- Zvětšení poolu (tento článek)
- Diskuse nad typy vdev
- 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
ada4
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.