Образ виртуальной машины 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
Было сделано на работающей системе, проблем не возникло.