ZFS. Расширить дисковое пространство пула
Добавим виртуальное устройство VDEV (MIRROR, RAIDZ1, RAIDZ2) в уже созданный пул RAIDZ1
РАСШИРИТЬ ПУЛ, ДОБАВИВ ОТДЕЛЬНЫЙ ДИСК В УЖЕ СОЗДАННОЕ ВИРТУАЛЬНОЕ УСТРОЙСТВО (НАПРИМЕР, В MIRROR ИЛИ В RAIDZ1), НЕЛЬЗЯ!
МОЖНО ЛИШЬ ДОБАВИТЬ В ТЕКУЩИЙ ПУЛ АНАЛОГИЧНОЕ ВИРТУАЛЬНОЕ УСТРОЙСТВО ТОМУ, КОТОРОЕ УЖЕ РАБОТАЕТ В ПУЛЕ.
НАПРИМЕР, ЕСЛИ ОРИГИНАЛЬНЫЙ ПУЛ СОБРАН НА ОСНОВЕ MIRROR, ТО И ДОБАВИТЬ В НЕГО МОЖНО ТОЛЬКО VDEV MIRROR ИЗ ДИСКОВ АНАЛОГИЧНОГО ОБЪЕМА
НАПРИМЕР, У НАС ЕСТЬ ПУЛ pool01 НА ОСНОВЕ ВИРТУАЛЬНОГО УСТРОЙСТВА ТИПА RAIDZ1
zpool status
pool: pool01
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
pool01 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
gpt/d1 ONLINE 0 0 0
gpt/d2 ONLINE 0 0 0
gpt/d3 ONLINE 0 0 0
НЕОБХОДИМО РАСШИРИТЬ ДИСКОВОЕ ПРОСТРАНСТВО
СНАЧАЛА ОТФОРМАТИРУЕМ НОВЫЕ ДИСКИ АНАЛОГИЧНОГО ОБЪЕМА С GPT МЕТКАМИ
gpart create -s gpt ada3
gpart create -s gpt ada4
gpart create -s gpt ada5
(
// при ошибке "gpart: geom 'ada0': File exists" делаем:
gpart delete -i 1 ada3
gpart destroy ada3
)
gpart add -t freebsd-zfs -l d4 ada3
gpart add -t freebsd-zfs -l d5 ada4
gpart add -t freebsd-zfs -l d6 ada5
// СОБЕРЕМ ТАКОЕ ЖЕ VDEV (RAIDZ1 из 3-х дисков), КАК И В СУЩЕСТВУЮЩЕМ В ПУЛЕ УСТРОЙСТВЕ, И ДОБАВИМ ЕГО В ПУЛ
// !!!ВНИМАНИЕ!!!
// КАК ТОЛЬКО НОВОЕ VDEV БУДЕТ ДОБАВЛЕНО К СУЩЕСТВУЮЩЕМУ ПУЛУ И ОБЪЕМ ПУЛА БУДЕТ УВЕЛИЧЕН,
// НЕ БУДЕТ СПОСОБА УДАЛИТЬ ЭТОТ ИЛИ ОРИГИНАЛЬНЫЙ VDEV ИЗ ПУЛА.
// ТЕПЕРЬ НОВЫЙ VDEV - ЧАСТЬ ПУЛА, И ДАЛЕЕ ОБЪЕМ ПУЛА МОЖНО ТОЛЬКО УВЕЛИЧИТЬ НОВЫМ VDEV!
// ЕДИНСТВЕННЫЙ СПОСОБ УМЕНЬШИТЬ ОБЪЕМ ТЕКУЩЕГО ПУЛА - ЭТО СДЕЛАТЬ РЕЗЕРВНУЮ КОПИЮ ДАННЫХ ПУЛА,
// УНИЧТОЖИТЬ ТЕКУЩИЙ ПУЛ И СОБРАТЬ НОВЫЙ!
zpool add pool01 raidz /dev/gpt/d4 /dev/gpt/d5 /dev/gpt/d6
// ОБЪЕМ ПУЛА УВЕЛИЧЕН В 2 РАЗА
zpool status
...
pool: pool01
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
pool01 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
gpt/d1 ONLINE 0 0 0
gpt/d2 ONLINE 0 0 0
gpt/d3 ONLINE 0 0 0
raidz1-1 ONLINE 0 0 0
gpt/d4 ONLINE 0 0 0
gpt/d5 ONLINE 0 0 0
gpt/d6 ONLINE 0 0 0
...
df -h
...
Filesystem Size Used Avail Capacity Mounted on
...
pool01 3.5G 144K 3.5G 0% /mnt/pool01
...