LVM’e yeni disk eklemek

LVM Logical Volume Manager

LVM (Logical Volume Manager) sisteminin en büyük artısı normal disk bölümlemeye göre dinamik bölümleme yapılabilmesidir. Aynı zamanda bir disk bölümünü birden fazla diske yayabilmek gibi güzel bir özelliğe de sahiptir. Kısaca “/” (root) bölümünü sadece bir disk kapasitesi ile sınırlamanıza gerek kalmaz. Bilgisayar bağlayacağınız fiziksel disklerin tüm kapasitesinin tamamını “/” bölümü altında toplayabilirsiniz. Elimde boşta duran 160GB genişliğindeki diski kullanıma sokmak amacıyla, mevcut LVM yöntemi ile bölümlenmiş sistemime eklemeye karar verdim. Eğer sizinde sisteminiz LVM üzerine kuruluysa ve disk alanınızı genişletmek istiyorsanız aşağıdaki örneklerde bu işlemi nasıl yapıldığını görebilirsiniz.

Öncelikle bilgisayarı kapatıp elimizdeki boş diskin montajını yapıyoruz. Bilgisayarı açtıktan sonra bir konsol açıp diskin işletim sistemi tarafından görülüp görülmediğini kontrol ediyoruz. Bunun için “fdisk -l” ya da “blkid” komutlarını kullanabiliriz. Ben “blkid” komutu ile kontrol edeceğim;

# blkid
/dev/sda1: UUID=”21bb621d-2280-46a3-8028-f82cc6fe212e” TYPE=”ext2″ PARTUUID=”f766819f-01″
/dev/sda5: UUID=”rByLel-2MTQ-5dO0-GEjk-haYB-WtBH-Ikc90i” TYPE=”LVM2_member” PARTUUID=”f766819f-05″
/dev/mapper/lvm–vg-root: UUID=”be915777-adab-4977-85b5-da3a4dc6222f” TYPE=”ext4″
/dev/mapper/lvm–vg-swap_1: UUID=”4f892988-6bef-48d8-be65-d1855f7f1175″ TYPE=”swap”
/dev/sdb: PTUUID=”7028afac” PTTYPE=”dos”

Görüldüğü üzere mevcut LVM sistemi ile hazırlanmış “sda” bölümleri ve LVM sisteminin “mapper” sanal cihazlarının altında yeni taktığım boş disk “sdb” olarak görülmekte. “fdisk -l” komutu ile bakıldığında ise şu şekilde görünmektedir:

# fdisk -l

Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 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
Disklabel type: dos
Disk identifier: 0xf766819f

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 625141759 624140290 297.6G 5 Extended
/dev/sda5 1001472 625141759 624140288 297.6G 8e Linux LVM

Disk /dev/sdb: 149.1 GiB, 160041885696 bytes, 312581808 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
Disklabel type: dos
Disk identifier: 0x7028afac

Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 312581807 312579760 149.1G 83 Linux

Disk /dev/mapper/lvm–vg-root: 293.6 GiB, 315277443072 bytes, 615776256 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 /dev/mapper/lvm–vg-swap_1: 4 GiB, 4278190080 bytes, 8355840 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

Görünüşe göre yeni taktığım disk tam anlamı ile boş değilmiş 🙂 Neyse önemli değil sonuçta boşaltacağız.

İşlemlere başlamadan önce mevcut LVM yapımızı bir görelim.

# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root lvm-vg -wi-ao—- 293.62g
swap_1 lvm-vg -wi-ao—- 3.98g

Görüldüğü üzere bir volume grubu (lvm-vg) ve iki mantıksal bölüm (“root” ve “swap”) bulunmakta. “df” komutu ile kullanımdaki LVM bölümlerin boyutlarını görebilirsiniz:

# df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 394M 12M 383M 3% /run
/dev/mapper/lvm–vg-root 297.6G 1.9G 295,7G 1% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 472M 105M 343M 24% /boot
tmpfs 394M 0 394M 0% /run/user/1000

Bundan sonra yapılacak işlemlerden sonra kalın harflerle belirttiğim LVM bölümünün boyutu yeni disk boyutu kadar artacak.

Öncelikle yeni diskte “Birincil Bölüm” oluşturarak işle başlıyoruz:

# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-312581807, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-312581807, default 312581807): 312581807

Created a new partition 1 of type ‘Linux’ and of size 149.1 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Sonrasında Fiziksel Volümleri oluşturuyoruz:

# pvcreate /dev/sdb1
WARNING: vfat signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
Wiping vfat signature on /dev/sdb1.
Physical volume “/dev/sdb1” successfully created

Fiziksel volümlerin oluştuğüunu teyit etmek için aşağıdaki komutu çalıştırıyoruz:

# lvmdiskscan -l
WARNING: only considering LVM devices
/dev/sda5 [ 297.61 GiB] LVM physical volume
/dev/sdb1 [ 149.05 GiB] LVM physical volume
0 LVM physical volume whole disks
2 LVM physical volumes

Sonraki adım olarak “/” bölümüne yeni alanı ekleyip genişletme işlemlerini yapıyoruz:

# vgextend lvm-vg /dev/sdb1
Volume group “lvm-vg” successfully extended

# lvm lvextend -l +100%FREE /dev/lvm-vg/root
Size of logical volume lvm-vg/root changed from 293.62 GiB (75168 extents) to 442.67 GiB (113324 extents).
Logical volume root successfully resized.

# resize2fs -p /dev/mapper/lvm–vg-root
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mapper/lvm–vg-root is mounted on /; on-line resizing required
old_desc_blocks = 19, new_desc_blocks = 28
The filesystem on /dev/mapper/lvm–vg-root is now 116043776 (4k) blocks long.

Ve böylece iki diski tek bölüm altında birleştirmiş olduk:

# df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 394M 12M 383M 3% /run
/dev/mapper/hmrt–vg-root 436G 1.9G 414G 1% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 472M 105M 343M 24% /boot
tmpfs 394M 0 394M 0% /run/user/1000