Увеличение диска в CentOS на ESXi
Увеличение диска в CentOS на ESXi
Схожая статья: Изменение размера диска в Linux без потери данных
Одним из решений проблемы с "резиновым" диском, может стать использование Thin Provision в ESXi и LVM + ReiserFS(либо xfs) в клиентской системе ан базе CentOS (как один из вариантов и рассмотренных здесь).
Итак, имеем:
- ESXi host,
- VM с CentOS
- Один или несколько дисков в 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:
- for scsi_device in /sys/class/scsi_device/*; do echo 1 > $scsi_device/device/rescan; done - перечитаем свойства дисков
- pvresize /dev/sdb - увеличиваем размер PV до максимального размера
- vgdisplay - смотрим значение Free, допустим, оно равно 2 Гб
- lvresize -L +2G /dev/vg1/lv1 - увеличиваем LV1 на 2 Гб
- либо так: lvresize -l +100%FREE /dev/vg1/lv1 - увеличение LV1 до максимума
- resize_reiserfs /dev/vg1/lv1 - увеличиваем файловую систему на LV1
- либо, если файловая система 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