FreeBSD — увеличение размера ZFS корневого раздела. Способ первый.

Имеем 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.