Odstranění vdev z ZFS poolu

ZFS letos dostalo od Oracle milý dárek. Po dlouhé době je konečně možné odstranit VDEV ze zpoolu a opravit tak například chybu administrátora, kdy místo přidání disku do existujícího vdevu jej přidal rovnou do zpoolu jako další vdev.

Ovšem neradujme se předčasně. Ano, ZFS od letošního roku (Solaris 11.4 beta, nebo FreeBSD 11.2) umožní odstranit celý VDEV, ovšem tato funkce není určená k běžnému přestavování zpoolu, spíše jen jako záchrana po překlepu administrátora.

ZFS při odstranění vdevu totiž jen vytvoří „virtuální“ vdev (který je navíc schovaný před zrakem administrátora a není vidět ve výpisech standardních nástrojů), který rozprostře na zbývající zařízení.

An virtual (pseudo device) is created to move the data off the (removed) pool devices so the pool must have enough space to absorb the creation of the pseudo device.

Což, vzhledem k tomu, že ZFS pracuje se všemi vdevy stylem RAID-0 (přidání vdevu do zpoolu nejen zvětší dostupný prostor, ale také významně zrychlí celý pool), může vést k výkonnostním problémům.

Which should be used as an exception rather than the rule for pool configuration on production systems.

Dalším bodem, na který je potřeba si dát pozor je nemožnost odstranit vdev z poolu, ze kterého se bootuje. GRUB tuto možnost zatím nepodporuje.

Odstranění se provádí příkazem zpool remove tank-name vdev-name, tedy například:

zpool remove tank mirror-0

Průběh odstraňování můžeme sledovat (ostatně jako průběh všech zpool operací) na výpisu:

zpool status 1

Kde parametr 1 znamená, že se bude výpis automaticky obnovovat každou 1s.

Příspěvek byl publikován v rubrice FreeBSD, ZFS. Můžete si uložit jeho odkaz mezi své oblíbené záložky.