Заметка, как напоминался и сборник практических действий которые нужно сделать в системе чтобы расширить системный раздел, по такому же принципу можно и любой другой имеющий в основе LVM.
Есть система развернутая внутри облака “VMware vCloud 5.1” (по умолчанию происходит инсталляция с использованием поддержки LVM), установленная на один диск размером 16 Gb, через некоторое время к системе добавили еще один диск размером 10 Gb, поэтому встала задача, как распределить дисковое пространство для добавленного диска.
[ekzorchik@server ~]$ uname -a && cat /etc/redhat-release
Linux server 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
CentOS release 6.4 (Final)
[ekzorchik@server ~]$ sudo fdisk -l
[sudo] password for ekzorchik: 712mbddr@@
Disk /dev/sda: 17.2 GB, 17179869184 bytes – единственный диск в системе
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00077193
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 2089 16264192 8e Linux LVM
Disk /dev/mapper/vg_server-lv_root: 14.5 GB, 14537457664 bytes
255 heads, 63 sectors/track, 1767 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_server-lv_swap: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Выключим VM и добавим ей диск размером 10Gb:
[ekzorchik@server ~]$ sudo poweroff
Далее для полного выключения, нужно выделить VM и сделать ей Power Off через Web интерфейс управления внутри облака.
Т.к. почему-то VM (виртуальная машина) как бы не полностью выключается.
Далее все как обычно при работе с VM добавляем ей жесткий диск размером 10Gb и переводим VM в состояние Power ON.
Далее снова запускаем утилиту fdisk с ключом “–l” для отображения устройства с нераспределенным дисковым пространством:
[ekzorchik@server ~]$ sudo fdisk -l | grep sdb
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Далее необходимо создать новый раздел с файловой системой LVM (8e), который займёт имеющееся нераспределённое дисковое пространство:*
[ekzorchik@server ~]$ sudo fdisk /dev/sdb -b 2048 (это размер сектора, по умолчанию значение равно 512)
Note: sector size is 2048 (not 512)
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x38b106ef.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): <нажимаем клавишу Enter>
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): <нажимаем клавишу Enter>
Using default value 1305
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe3376a96
Device Boot Start End Blocks Id System
/dev/sdb1 1 1305 10482381 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Перезагружаемся:
[ekzorchik@server ~]$ sudo reboot
Запускаем утилиту lvm:
[ekzorchik@server ~]$ sudo lvm
[sudo] password for ekzorchik:
Преобразуем раздел /dev/sda1 в физический том, чтобы LVM мог использовать его:
lvm> pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created
Отобразим, какие группы томом присутствуют в системе:
lvm> vgscan
Reading all physical volumes. This may take a while…
Found volume group “vg_server” using metadata type lvm2
Добавляем новый физический том в группу томов (vg_server):
lvm> vgextend vg_server /dev/sdb1
Volume group “vg_server” successfully extended
Выводим информацию о группе томов:
lvm> vgdisplay
— Volume group —
VG Name vg_server
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 25.50 GiB
PE Size 4.00 MiB
Total PE 6528
Alloc PE / Size 3970 / 15.51 GiB
Free PE / Size 2558 / 9.99 GiB
VG UUID mYgbiC-iJUK-agBM-Faqv-frvX-LWi0-Ra8yqZ
Группа состоит из двух томов. Первый том относиться к корневой дисковой системе. Второй, размером 1 Гб – это swap.
Увеличим размер логического тома vg_server на всё доступное свободное дисковое пространство в группе:
[ekzorchik@server ~]$ ls /dev/vg_server
lv_root lv_swap
lvm> lvextend -l +100%FREE /dev/vg_server/lv_root
Extending logical volume lv_root to 23.53 GiB
Logical volume lv_root successfully resized
Отображаем информацию о группе томов:
lvm> vgdisplay
— Volume group —
VG Name vg_server
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 25.50 GiB
PE Size 4.00 MiB
Total PE 6528
Alloc PE / Size 6528 / 25.50 GiB
Free PE / Size 0 / 0
VG UUID mYgbiC-iJUK-agBM-Faqv-frvX-LWi0-Ra8yqZ
lvm> exit
Exiting.
На заметку: Обратите внимание на значение в строке Free PE / Size. Здесь показывается размер свободного дискового пространства доступного группе томов.
Как видим, группе было выделено все доступное дисковое пространство, но операционная система по-прежнему отображает только старые значения размера файловой системы. Для того чтобы мы могли полностью использовать новое дисковое пространство, нам необходимо изменить размер смонтированной корневой файловой системы на величину размера первого логического тома:
[ekzorchik@server ~]$ sudo resize2fs -p /dev/vg_server/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_server/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_server/lv_root to 6168576 (4k) blocks.
The filesystem on /dev/vg_server/lv_root is now 6168576 blocks long.
Проверяем размер дискового пространства файловой системы:
[ekzorchik@server ~]$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_server-lv_root
24G 757M 22G 4% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 485M 32M 429M 7% /boot
Размер корневой файловой системы /dev/mapper/vg_server-lv_root увеличился на 10 Гб.
Отлично работает. Цель достигнута. С уважением ekzorchik.
Спасибо, а главное практичный и жизненный материал. Респект тебе, данная заметка заслуживание уважения в целом как и весь твой блог.
Спасибо!!! Все работает!