вторник, 7 апреля 2015 г.

lvm resize

Шпаргалка о том, как увеличить/изменить обычный раздел или lvm том, например, на вирт. машине.
В инете нашел только инструкции как создать новый раздел и присоединить его к тому.
Тут по-другому. Я буду просто увеличивать корневой раздел в установленной Убунте с разделами установленными по умолчанию.

Ubuntu 14.04 с LVM.

Device       ID   System
/dev/sda1   83   Linux (boot)
/dev/sda2    5    Extended
/dev/sda5    8e  Linux LVM


0) Увеличить диск sda на гипервизоре (обычно требуется выключение машины).

1) Увеличить сами разделы Extended и Linux LVM (sda2 и sda5) в таблице разделов.
Можно разными способами. Например с помощью gparted или fdisk.
Я буду пользоваться fdisk. Прямо в работающей системе нужно удалить разделы /dev/sda5 и /dev/sda2. Затем создать такие же, но уже с нужным размером. После чего записать измененную таблицу на диск. После этого сообщить ядру об изменениях в помощью partprobe(8).

$ sudo fdisk /dev/sda

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): p

Disk /dev/sda: 11.8 GB, 11811160064 bytes
255 heads, 63 sectors/track, 1435 cylinders, total 23068672 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000e5c3d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758    20969471    10233857    5  Extended
Partition 2 does not start on physical sector boundary.
/dev/sda5          501760    20969471    10233856   8e  Linux LVM

Command (m for help): d
Partition number (1-5): 5

Command (m for help): d
Partition number (1-5): 2

Command (m for help): p

Disk /dev/sda: 11.8 GB, 11811160064 bytes
255 heads, 63 sectors/track, 1435 cylinders, total 23068672 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000e5c3d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
Partition number (1-4, default 2):
Using default value 2
First sector (499712-23068671, default 499712):
Using default value 499712
Last sector, +sectors or +size{K,M,G} (499712-23068671, default 23068671):
Using default value 23068671

Command (m for help): p

Disk /dev/sda: 11.8 GB, 11811160064 bytes
255 heads, 63 sectors/track, 1435 cylinders, total 23068672 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000e5c3d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          499712    23068671    11284480    5  Extended


Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (501760-23068671, default 501760):
Using default value 501760
Last sector, +sectors or +size{K,M,G} (501760-23068671, default 23068671):
Using default value 23068671

Command (m for help): p

Disk /dev/sda: 11.8 GB, 11811160064 bytes
255 heads, 63 sectors/track, 1435 cylinders, total 23068672 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000e5c3d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          499712    23068671    11284480    5  Extended
/dev/sda5          501760    23068671    11283456   83  Linux


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

Command (m for help): p

Disk /dev/sda: 11.8 GB, 11811160064 bytes
255 heads, 63 sectors/track, 1435 cylinders, total 23068672 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000e5c3d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          499712    23068671    11284480    5  Extended
/dev/sda5          501760    23068671    11283456   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.

$ sudo partprobe /dev/sda

Всё, измененная таблица разделов на диске и ядро знает о ней.


2)  Теперь нужно сообщить lvm'у об изменениях

 2.1) Меняем размер physical volume:
          $ sudo pvresize /dev/sda5
           Physical volume "/dev/sda5" changed
           1 physical volume(s) resized / 0 physical volume(s) not resized

 2.2) Меняем размер logical volume:
         $ sudo lvextend -l +100%FREE <vg_name>/<lv_name>
          Extending logical volume <name> to <size>
          Logical volume <name> successfully resized

3) Расширяем файловую систему на нашем логическом разделе
  $ sudo resize2fs /dev/<vg_name>/<lv_name>
   resize2fs 1.42.9 (4-Feb-2014)
   Filesystem at /dev/<vg_name>/<lv_name> is mounted on /; on-line resizing required
   old_desc_blocks = 1, new_desc_blocks = 1
   The filesystem on /dev/<vg_name>/<lv_name> is now 2689024 blocks long.

Готово!



P. S. посмотреть vg_name:
$ sudo vgdisplay
посмотреть lv_name:
$ sudo lvdisplay
Из вывода последней команды можно получить и vg_name.

P. S. 2. Хорошая статья по LVM:
https://wiki.archlinux.org/index.php/LVM#Advanced_options
Видео от Яндекса на такую же тему:
http://www.youtube.com/watch?v=8bLpJ1IIF9A
http://www.youtube.com/watch?v=j5tGHiwO6gg