Современные дистрибутивы 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