Имеем FreeBSD 9.0 RELEASE установленную в качестве гостевой ОС в VMWare vSphere 5.0. Корневой раздел в ZFS (swap тоже на ZFS). Ситуация — пожалели место — места стало нехватать.
# gpart show => 34 209715133 da0 GPT (100G) 34 94 1 freebsd-boot (47k) 128 209715039 2 freebsd-zfs (100G)
Увеличиваем размер корневого радела. Для этого в свойствах виртуальной машины просто вводим новый размер диска. Не мелочимся — добавим еще 100 Гб. Смотрим.
# camcontrol readcap da0 -h Device Size: 200 G, Block Length: 512 bytes # gpart show => 34 209715133 da0 GPT (100G) 34 94 1 freebsd-boot (47k) 128 209715039 2 freebsd-zfs (100G)
Не нашел способа заставить на горячую gpart увидеть измененный размер диска.
Перезагружаемся. Смотрим.
# gpart show => 34 209715133 da0 GPT (200G) [CORRUPT] 34 94 1 freebsd-boot (47k) 128 209715039 2 freebsd-zfs (100G)
Наш диск по мнению gpart поврежден. Исправляем. Смотрим что получилось.
# gpart recover da0 da0 recovered # gpart show => 34 419430333 da0 GPT (200G) 34 94 1 freebsd-boot (47k) 128 209715039 2 freebsd-zfs (100G) 209715167 209715200 - free - (100G)
Все отлично — система добавленные 100 Гб видит. Смотрим статус ZFS.
freebsd# zpool status -v pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 da0p2 ONLINE 0 0 0 errors: No known data errors # zfs list zroot NAME USED AVAIL REFER MOUNTPOINT zroot 7.26G 90.7G 350M /
Делаем resize раздела с помощью gpart.
# gpart show => 34 419430333 da0 GPT (200G) 34 94 1 freebsd-boot (47k) 128 209715039 2 freebsd-zfs (100G) 209715167 209715200 - free - (100G) # gpart resize -i 2 da0 gpart: Device busy freebsd# sysctl kern.geom.debugflags=16 kern.geom.debugflags: 0 -> 16 freebsd# gpart resize -i 2 da0 da0p2 resized # gpart show => 34 419430333 da0 GPT (200G) 34 94 1 freebsd-boot (47k) 128 419430239 2 freebsd-zfs (200G) # sysctl kern.geom.debugflags=0 kern.geom.debugflags: 16 -> 0
Разрешаем авторасширение ZFS, по умолчанию выключено.
# zpool set autoexpand=on zroot
Смотрим состояние ZFS.
# zfs list zroot NAME USED AVAIL REFER MOUNTPOINT zroot 7.26G 93G 350M / # zpool status -v pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 da0p2 ONLINE 0 0 0 errors: No known data errors
Отдаем команду ZFS использовать все доступное пространство — ключик -e.
# zpool online -e zroot da0p2
Смотрим что получилось.
# zfs list zroot NAME USED AVAIL REFER MOUNTPOINT zroot 7.26G 189G 350M / # zpool status -v pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 da0p2 ONLINE 0 0 0 errors: No known data errors