Добавляем свободное место с lvm на CentOS

Добавляем свободное место с lvm на CentOSВ моем случае, добавить свободное место понадобилось на виртуальной машине с asterisk под hyper-v. Средствами hyper-v можно легко увеличить размер виртуального жесткого диска, но в lvm linux место само собой не добавится. Оставлю здесь простую инструкцию, как увеличить количество свободного места. Может кому еще пригодится.

Обстановка

Размер виртуального диска — 10 Гб. А linux видит только 4.

[root@asterisk ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      2.5G  2.3G  150M  98% /
tmpfs                 503M     0  503M   0% /dev/shm
/dev/sda1             485M   46M  414M  10% /boot
/dev/sdb1              20G  5.8G   13G  31% /var/spool/asterisk

Раздел /dev/sdb1 использует отдельный виртуальный диск и его не рассматриваем.

Что мы имеем

Командой fdisk -l смотрим информацию об устройствах и свободном месте.

[root@asterisk ~]# fdisk -l

Disk /dev/sda: 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: 0x00063da9

   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         653     4729856   8e  Linux LVM
Partition 2 does not end on cylinder boundary.

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0xe4711a31

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+  83  Linux

Disk /dev/mapper/VolGroup-lv_root: 2726 MB, 2726297600 bytes
255 heads, 63 sectors/track, 331 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/VolGroup-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

Обращаем внимание на /dev/sda.

Создаем новый раздел

[root@asterisk ~]# fdisk /dev/sda

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): 3
First cylinder (653-1305, default 653):
Using default value 653
Last cylinder, +cylinders or +size{K,M,G} (653-1305, default 1305):
Using default value 1305

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

Command (m for help): p

Disk /dev/sda: 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: 0x00063da9

   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         653     4729856   8e  Linux LVM
Partition 2 does not end on cylinder boundary.
/dev/sda3             653        1305     5239532+  8e  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.
[root@asterisk ~]# reboot

Создаем том LVM

После перезагрузки, когда система увидела новый раздел /dev/sda3, преобразуем его в физический том.

[root@asterisk ~]# lvm
lvm> pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created
lvm> vgextend VolGroup /dev/sda3
  Volume group "VolGroup" successfully extended
lvm> vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  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               9.50 GiB
  PE Size               4.00 MiB
  Total PE              2432
  Alloc PE / Size       1154 / 4.51 GiB
  Free  PE / Size       1278 / 4.99 GiB
  VG UUID               oGSitO-rR6e-Ykj5-UYi3-on0J-GoUA-PzHgBL

lvm> lvextend -l +100%FREE /dev/VolGroup/lv_root
  Extending logical volume lv_root to 7.53 GiB
  Logical volume lv_root successfully resized
lvm> vgdisplay
  --- Volume group ---
  VG Name               VolGroup
  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               9.50 GiB
  PE Size               4.00 MiB
  Total PE              2432
  Alloc PE / Size       2432 / 9.50 GiB
  Free  PE / Size       0 / 0
  VG UUID               oGSitO-rR6e-Ykj5-UYi3-on0J-GoUA-PzHgBL

lvm> quit

Список виртуальных томов и групп можно увидеть командой lvs .

[root@asterisk ~]# lvm
lvm> lvs
  LV      VG       Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert
  lv_root VolGroup -wi-ao--- 2.54g
  lv_swap VolGroup -wi-ao--- 1.97g

Последний штрих

Осталось только изменить размер корневой файловой системы на величину нового тома.

[root@asterisk ~]# resize2fs -p /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 1974272 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 1974272 blocks long.

Результат

В итоге у нас появилось дополнительных почти 5 Гб свободного места.

[root@asterisk ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      7.5G  2.3G  4.9G  32% /
tmpfs                 503M     0  503M   0% /dev/shm
/dev/sda1             485M   46M  414M  10% /boot
/dev/sdb1              20G  5.8G   13G  31% /var/spool/asterisk

 

4 thoughts on “Добавляем свободное место с lvm на CentOS

  1. Alex

    Thank NIX to wrote simple steps!
    If you get an error on last step like: resize2fs: Bad magic number
    — you can try this command: lvresize -r -l+100%FREE VolGroup/root
    It helped me on CentOS 7.

  2. Антон

    Я правильно понимаю, что в случае использования LVM мы не можем тупо расширить /dev/sda2 на свободное место, а обязательно должны создавать новую партицию сразу за второй и дальше уже с этим работать?

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

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