Расширение диска через LVM в виртуальной машине Bitrix

Образ виртуальной машины Bitrix с Centos 7 и диском в 20 Гб был подключен к гипервизору. Так как объем в 20 Гб маловат и отсутствует LVM, это дело надо исправить. Физически диск в настройках гипервизора у ВМ расширен до 40 Гб.

Текущий объем корневого раздела:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  2.0G   16G  12% /
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M  8.8M  911M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
/dev/sda1       190M  126M   51M  72% /boot
tmpfs           184M     0  184M   0% /run/user/0

И объем доступного пространства:

fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00098f7f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     1460223      524288   82  Linux swap / Solaris
/dev/sda3         1460224    41058303    19799040   83  Linux

По умолчанию, в дистрибутиве нет утилит для работы с LVM, установка:

yum -y install lvm2

Далее открыть диск /dev/sda в fdisk и создать новый раздел:

fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
Selected partition 4
First sector (41058304-83886079, default 41058304): 
Using default value 41058304
Last sector, +sectors or +size{K,M,G} (41058304-83886079, default 83886079): 
Using default value 83886079
Partition 4 of type Linux and of size 20.4 GiB is set

Далее выбрать номер раздела и задать тип 8e (Linux LVM), записать изменения:

Command (m for help): t
Partition number (1-4, default 4): 4
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

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 or after you run partprobe(8) or kpartx(8)
Syncing disks.

После этого нужно сообщить ядру ОС, через partprobe об изменениях таблицы разделов, отправляя запрос операционной системе на повторное чтение таблицы разделов:

partprobe

Раздел создан и подхвачен системой, осталось настроить LVM. У меня уже есть краткая заметка по работе с LVM, здесь всё очень похоже, только PV будет создаваться на основе ранее созданного раздела /dev/sda4, а не целого диска:

pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.
pvs
  PV         VG Fmt  Attr PSize  PFree 
  /dev/sda4     lvm2 ---  20.42g 20.42g

Далее VG с понятным именем (под хранение данных):

vgcreate vg_data /dev/sda4
vgs
  VG      #PV #LV #SN Attr   VSize   VFree  
  vg_data   1   0   0 wz--n- <20.42g <20.42g

И LV:

lvcreate -n lv_data -l 100%FREE vg_data
  Logical volume "lv_data" created.
[root@localhost ~]# lvs
  LV      VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_data vg_data -wi-a----- <20.42g

После этого осталось создать файловую систему, я заюзал XFS:

mkfs.xfs /dev/vg_data/lv_data
meta-data=/dev/vg_data/lv_data   isize=512    agcount=4, agsize=1338112 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5352448, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2613, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

И конечный вариант – примонтировать в /home:

[root@localhost ~]# mount -o rw /dev/vg_data/lv_data /home/
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/sda3                     19G  2.2G   16G  13% /
devtmpfs                     909M     0  909M   0% /dev
tmpfs                        920M     0  920M   0% /dev/shm
tmpfs                        920M  8.9M  911M   1% /run
tmpfs                        920M     0  920M   0% /sys/fs/cgroup
/dev/sda1                    190M  126M   51M  72% /boot
tmpfs                        184M     0  184M   0% /run/user/0
/dev/mapper/vg_data-lv_data   21G   33M   21G   1% /home

Также надо не забыть прописать в fstab, чтобы после перезагрузки ничего не слетело:

/dev/vg_data/lv_data /home/ xfs defaults 0 0

P.S. В случае, если ОС не видит добавленного диска, нужно отдать информацию контроллеру перечитать список доступных устройств:

echo "- - -" >/sys/class/scsi_host/host0/scan
echo "- - -" >/sys/class/scsi_host/host1/scan
echo "- - -" >/sys/class/scsi_host/host2/scan

Кол-во host можно проверить так:

ll /sys/class/scsi_host

Было сделано на работающей системе, проблем не возникло.

Ваш комментарий будет первым

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *