Современные дистрибутивы Linux, работающие на VMware vSphere, могут динамически управлять хранением данных. Можно создавать новые файловые системы или расширять существующие без необходимости остановки и перезагрузки сервера. Приведем несколько примеров, для ОС Red Hat и CentOS 5.x версий.
Рассмотрим Linux тома, если вы решили использовать весь диск под простую файловую систему, то лучше не использовать разбиение диска, а использовать LVM, что в дальнейшем упростит возможность управления пространством. Вы конечно можете не использовать LVM для нового диска, а просто отформатировать его в ext3 например, но я не рекомендую вам делать это, LVM имеет много преимуществ, которые мы рассмотрим дальше.
Если вы собираетесь использовать утилиты разметки диска, вы должны знать следующее:
- Чтобы избежать снижения производительности файловой системы, вам необходимо указать начала раздела в соответствии с началом устройства хранения используя команду fdisk.
- Использование разделов усложняет процесс расширения файловой системы по сравнению с использованием обычных дисков.
Если у вас не получится сравнять начало файловой системы с началом устройства хранения, то вы потеряете до 15% производительности.
Добавление нового диска без перезагрузки
После того как новый виртуальный диск будет добавлен к виртуальной машине Linux, необходимо пересканировать новые диски. Это можно выполнить командой ниже, где host0 нужно заменить на SCSI ID добавленных дисков.
# echo «- — -» > /sys/class/scsi_host/host0/scan
Для того, чтобы посмотреть добавились диски или нет используйте команду dmesg, ищите сообщение «Attached scsi disk».
# dmesg | tail -n 10 | grep Attached
sd 0:0:1:0: Attached scsi disk sdb
Теперь необходимо создать физический том LVM, группы томов, логический том и файловую систему на диске.
# pvcreate /dev/sdb
Physical volume «/dev/sdb» successfully created
# vgcreate VolGroup01 /dev/sdb
Volume group «VolGroup01» successfully created
# lvcreate -n LogVol00 -l+100%VG VolGroup01
Logical volume «LogVol00» created
# mkfs.ext3 /dev/VolGroup01/LogVol00
Если вы уверены, что вам не нужен LVM, то можете просто отформатировать диск
# mkfs.ext3 /dev/sdb
Теперь новый том готов для монтирования.
Изменение размеров существующих дисков Linux
После того как виртуальному диску был изменен размер, нужно пересканировать изменения в Linux. Вы должны знать SCSI ID диска изменившего размер, и заменить 0:0:1:0 на свой SCSI ID в исходном примере:
# echo 1 > /sys/bus/scsi/devices/0:0:1:0/rescan
Проверяем, что изменения применились успешно, в выводе команды dmesg ищем сообщение «capacity change».
# dmesg | tail -n 10 | grep change
sdb: detected capacity change from 8589934592 to 17179869184
Если не используется LVM, то расширение диска можно произвести
# resize2fs /dev/sdb
Другие способы расширения LVM тома.
Расширение тома LVM и файловой системы, без разделов (партиций)
Пересканируем физический том LVM, sdb заменяем на свой
# pvresize /dev/sdb
Расширяем логический LVM том до нового полного размера группы томов(Volume Group):
# lvextend -l+100%VG /dev/VolGroup01/LogVol00
Теперь вы можете изменить размер смонтированной файловой системы:
# resize2fs /dev/VolGroup01/LogVol00
Расширение тома LVM и файловой системы с использованием разделов (партиций)
Вы не можете изменить расширить размер физического тома LVM с разделами (партициями) без перезагрузки сервера. Но вы можете создать диск и расширить группу томов (Volume Group)
Создание нового раздела (партиции) для диска:
# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (3134-3916, default 3134):
Using default value 3134
Last cylinder or +size or +sizeM or +sizeK (3134-3916, default 3916):
Using default value 3916
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
Перечитаем таблицу разделов (партиций)
# partprobe /dev/sdb
Создадим новый физический том LVM для нового раздела
# pvcreate /dev/sdb2
Добавим новый физический том LVM к существующей группе томов (Volume Group)
# vgextend VolGroup01 /dev/sdb2
Расширяем логический том LVM до максимального размера группы томов (Volume Group)
# lvextend -l+100%VG /dev/VolGroup01/LogVol00
В результате вы можете расширить ext3 файловую систему
# resize2fs /dev/VolGroup01/LogVol00