FreeBSD: Расширяем раздел жесткого диска Добавляем свободное место

Всем привет!
Несколько месяцев назад получил алерт от Zabbix, что на почтовом сервере осталось менее 20% места на основном разделе.
Т.к. сервер виртуализирован с помощью VmWare ESXi, то добавить объем жесткому диску не проблема.
Но надо правильно приготовить:)
Решил повторить опыт и поделиться что и как я делал.

Исходные данные:

  1. FreeBSD 12.1
  2. Исходный размер жесткого диска – 25GB
  3. Swap раздел – 1GB
  4. Новый размер диска – 50GB

Смотрим помощью gpart что у нас есть:

# gpart show
=>      40  52428720  ada0  GPT  (25G)
        40      1024     1  freebsd-boot  (512K)
      1064  50330624     2  freebsd-ufs  (24G)
  50331688   2097072     3  freebsd-swap  (1.0G)

Так же посмотрим информацию о SWAP:
# swapinfo -h
Device          1K-blocks     Used    Avail Capacity
/dev/ada0p3       1048536       0B     1.0G     0%

Записываем все, выключаем сервер и накидываем объем диска.
Загружаемся.
Если у вас реальный сервер на котором крутится процессы использующие запись в своп, то лучше все делать в однопользовательском (Single Mode) режиме.
Проверим что у нас добавилось:
# gpart show ada0
=>      40  52428720  ada0  GPT  (50G) [CORRUPT]
        40      1024     1  freebsd-boot  (512K)
      1064  50330624     2  freebsd-ufs  (24G)
  50331688   2097072     3  freebsd-swap  (1.0G)

Получаем сообщение, что GPT таблица имеет статус CORRUPT, чиним:
# gpart recover ada0

# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064   50330624     2  freebsd-ufs  (24G)
   50331688    2097072     3  freebsd-swap  (1.0G)
   52428760   52428800        - free -  (25G)

Видим, что в конце нам стало доступно 25GB свободного места, чтобы добавить их ко второму разделу, нужно удалить swap.
Отключаем swap:
# swapoff /dev/ada0p3

Удалим SWAP раздел, в моем случае это 3 раздел ada0

# gpart delete -i 3 ada0

Проверяем, что у нас осталось:)
# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064   50330624     2  freebsd-ufs  (24G)
   50331688   54525872        - free -  (26G)

Видим, что у нас остался один раздел (слайс), swap уничтожен.

 HandBook советует следующие операции по изменению размера разделов производить при размонтированных файловых системах, на боевых серверах крайне рекомендую к этому прислушаться! 

Отключаем безопасность GEOM:

# sysctl kern.geom.debugflags=16

Решаем, что для swap-раздела оставляем 2GB, а основной раздел увеличиваем до 48GB (25GB+25GB-2GB)
# gpart resize -i 2 -s 48G -a 4k ada0

-i 2 – указывает на раздел

Еще раз проверяем:

# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064  100663296     2  freebsd-ufs  (48G)
  100664360    4193200        - free -  (2.0G)

Создадим на оставшемся свободном месте раздел для подкачки:
# gpart add -t freebsd-swap -a 4k ada0
ada0p3 added

# gpart show ada0
=>       40  104857520  ada0  GPT  (50G)
         40       1024     1  freebsd-boot  (512K)
       1064  100663296     2  freebsd-ufs  (48G)
  100664360    4193200     3  freebsd-swap  (2.0G)

Все на месте, как мы и планировали, осталось расширить файловую систему,
при этом еще раз получаем предупреждение, что мы планируем делать изменения на примонтированной файловой системе и рекомендуют сделать резервную копию данных перед этой операцией:
# growfs /dev/ada0p2
Device is mounted read-write; resizing will result in temporary write suspension for /.
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/ada0p2, mounted on /, from 24GB to 48GB? [yes/no]

Подключаем файл подкачки:
# swapon /dev/ada0p3

Проверяем размер файловой системы:
# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ada0p2     46G    1,3G     42G     3%    /
devfs          1,0K    1,0K      0B   100%    /dev

Наличие свопа:
# swapinfo -h
Device          1K-blocks     Used    Avail Capacity
/dev/ada0p3       2096600       0B     2.0G     0%

Возвращаем на место настройки GEOM
# sysctl kern.geom.debugflags=0

Собственно все.

0 0 голосовать
Рейтинг статьи
Подписаться
Уведомление о
guest
0 Комментарий
Встроенные отзывы
Просмотр всех комментариев