Увеличение диска в CentOS на ESXi

Материал из База знаний
Перейти к: навигация, поиск

Увеличение диска в CentOS на ESXi

Схожая статья: Изменение размера диска в Linux без потери данных

Одним из решений проблемы с "резиновым" диском, может стать использование Thin Provision в ESXi и LVM + ReiserFS(либо xfs) в клиентской системе ан базе CentOS (как один из вариантов и рассмотренных здесь).

Итак, имеем:

  1. ESXi host,
  2. VM с CentOS
  3. Один или несколько дисков в Thin Provision (имеется возможность динамически увеличивать размер диска на горячую)

Предполагаем, что на клиентской ОС уже установлен VMWare Tools и поддержка ReiserFS. VMWare Tools не является обязательным условием, но желательно чтобы был. Лучше устанавливать поддержку ReiserFS после установки VMWare Tools.

Можно подключить диск на горячую, здесь написано как.

Просмотр существующих PV:

pvdisplay

Создание PV (если диск /dev/sdb):

pvcreate /dev/sdb

Лучше создавать прямо на диске, не прибегая к помощи fdisk, т.к. передвигать разделы значительно сложнее и без перезагрузки не реально (я не нашел как). Просмотр VG:

vgdisplay

Создание VG (имя Volume Group - vg1, PV - /dev/sdb):

vgcreate vg1 /dev/sdb

Просмотр LV:

lvdisplay

Создание Logical Volume на vg1 размером 2Гб с именем lv1:

lvcreate -n lv1 -L2G vg1

Либо занять все доступное место:

lvcreate -n lv1 -l 100%FREE vg1

Форматирование lv1 в файловую систему reiserfs:

mkfs.reiserfs /dev/sdb

Далее, предположим, что на виртуальном хосте увеличился диск /dev/sdb, скажем на 2 Гб, для примера. Что делаем для увеличения файловой системы на виртуальной машине, под управлением CentOS:

  1. for scsi_device in /sys/class/scsi_device/*; do echo 1 > $scsi_device/device/rescan; done - перечитаем свойства дисков
  2. pvresize /dev/sdb - увеличиваем размер PV до максимального размера
  3. vgdisplay - смотрим значение Free, допустим, оно равно 2 Гб
  4. lvresize -L +2G /dev/vg1/lv1 - увеличиваем LV1 на 2 Гб
  5. либо так: lvresize -l +100%FREE /dev/vg1/lv1 - увеличение LV1 до максимума
  6. resize_reiserfs /dev/vg1/lv1 - увеличиваем файловую систему на LV1
  7. либо, если файловая система xfs, так: xfs_growfs /dev/vg1/lv1

Проверяем:

df -k

Можно еще проверить с помощью fsck, но тогда надо размонтировать раздел.


Можно сделать все то же самое, только на ext4 файловой системе. Вот скрипт для увеличения файловой системы, после ее увеличения в ESXi:

before=`df -k|grep export`
for scsi_device in /sys/class/scsi_device/*;do echo 1 > $scsi_device/device/rescan; done
pvresize /dev/sdb
lvresize -l +100%FREE /dev/vg1/disk1
resize2fs /dev/vg1/disk1
now=`df -k|grep export`
echo -en "\n---------------\n\tSize,Kb Used,kb Avail,kb Use% Mounted\nBefore:\t"
echo $before
echo -en "Now: \t"
echo $now