Linux LVM disk genişletme ve snapshot alma

Bu teknik blog yazısında, bir sistem yöneticisinin en sık karşılaştığı depolama yönetimi senaryolarından ikisini, yani mevcut Linux LVM disk alanını genişletmeyi ve kritik anlar için LVM snapshot’ları almayı adım adım inceleyeceğiz. LVM (Logical Volume Manager), esnek depolama yönetimi yetenekleri sayesinde modern Linux sunucularında vazgeçilmez bir araçtır.

LVM Disk Alanı Genişletme: Adım Adım Rehber

Linux sunucunuzda çalışan bir uygulamanın veya veritabanının disk alanı yetersiz kaldığında, LVM sayesinde sistemin kesintiye uğramadan veya çok az kesintiyle disk alanını genişletmek mümkündür. Bu işlem, fiziksel disk ekleyerek veya mevcut bir diskteki boş alanı kullanarak gerçekleştirilebilir.

1. Yeni Fiziksel Diski/Bölümü Hazırlama

Öncelikle, sisteminize yeni bir fiziksel disk (örneğin `/dev/sdb`) eklediğinizi veya mevcut bir diskinizde kullanılmayan bir bölüm (örneğin `/dev/sda3`) oluşturduğunuzu varsayalım. Bu diski veya bölümü LVM için kullanıma hazırlamamız gerekiyor.

Yeni bir bölüm oluşturduysanız, bunu `fdisk`, `gdisk` veya `parted` gibi araçlarla yapabilirsiniz. Bölüm tipini “Linux LVM” olarak ayarlamanız iyi bir pratiktir.

# Diskleri listele
lsblk

# Yeni bir bölüm oluşturmak için fdisk kullanma örneği (yeni disk /dev/sdb için)
sudo fdisk /dev/sdb
# Komutlar: n (yeni bölüm), p (birincil), 1 (bölüm numarası), Enter (varsayılan başlangıç), Enter (varsayılan bitiş), t (tip değiştir), 8e (Linux LVM), w (kaydet ve çık)

# Bölümleri kontrol et
lsblk

2. Fiziksel Birim (Physical Volume – PV) Oluşturma

Yeni oluşturduğumuz bölümü veya diski LVM’ye tanıtmak için bir Fiziksel Birim (PV) oluşturmalıyız.

# /dev/sdb1 üzerinde bir PV oluştur
sudo pvcreate /dev/sdb1

# PV'leri listele ve durumu kontrol et
sudo pvs

3. Birim Grubu (Volume Group – VG) Genişletme

Şimdi, yeni oluşturduğumuz PV’yi mevcut Birim Grubumuza (VG) eklememiz gerekiyor. Mevcut VG’nizin adını `vgs` komutuyla öğrenebilirsiniz (örneğin, `myvg`).

# Mevcut VG'leri listele
sudo vgs

# 'myvg' adlı birim grubuna /dev/sdb1'i ekle
sudo vgextend myvg /dev/sdb1

# VG'leri tekrar listele ve serbest alanı kontrol et
sudo vgs

4. Mantıksal Birimi (Logical Volume – LV) Genişletme

VG’mizde artık daha fazla boş alan olduğuna göre, bu alanı kullanarak mevcut bir Mantıksal Birimi (LV) genişletebiliriz. Genişletmek istediğiniz LV’nin tam yolunu (örneğin, `/dev/myvg/data_lv`) `lvs` komutuyla öğrenebilirsiniz.

LV’yi belirli bir boyuta veya mevcut tüm boş alanı kullanarak genişletebilirsiniz.

# Mevcut LV'leri listele
sudo lvs

# 'data_lv' adlı LV'yi 10GB genişlet
sudo lvextend -L +10G /dev/myvg/data_lv

# VEYA, 'data_lv' adlı LV'yi VG'deki tüm boş alanı kullanarak genişlet
sudo lvextend -l +100%FREE /dev/myvg/data_lv

# LV'nin yeni boyutunu kontrol et
sudo lvs

5. Dosya Sistemini Genişletme

LVM seviyesinde genişletme yaptık, ancak işletim sistemi bu değişikliği henüz fark etmedi. Son adım, dosya sistemini de genişletmektir. Kullandığınız dosya sistemine göre komut değişir (yaygın olarak ext4 veya xfs).

# ext4 dosya sistemi için:
sudo resize2fs /dev/myvg/data_lv

# xfs dosya sistemi için:
sudo xfs_growfs /dev/myvg/data_lv

# Genişletmeyi kontrol et
df -h /dev/myvg/data_lv

Tebrikler! Disk alanınızı başarıyla genişlettiniz.

LVM Anlık Görüntü (Snapshot) Alma ve Yönetme

LVM snapshot’ları, bir Mantıksal Birimin belirli bir andaki durumunun anlık bir görüntüsünü almanızı sağlar. Bu, özellikle veri yedeklemesi, sistem güncellemelerinden önce bir geri dönüş noktası oluşturma veya test ortamları kurma gibi senaryolarda son derece kullanışlıdır. Snapshot’lar “copy-on-write” prensibiyle çalışır, yani orijinal veriler değiştiğinde sadece değişen bloklar snapshot alanına kopyalanır.

1. Anlık Görüntü Oluşturma

Bir snapshot oluşturmak için, hangi LV’nin snapshot’ını alacağınızı ve snapshot için ne kadar alan ayıracağınızı belirtmeniz gerekir. Snapshot boyutu, orijinal LV’de ne kadar veri değişikliği beklediğinize bağlıdır.

# 'data_lv' LV'sinin 5GB boyutunda bir snapshot'ını oluştur ve adını 'data_lv_snap' koy
sudo lvcreate --size 5G --snapshot --name data_lv_snap /dev/myvg/data_lv

# Snapshot'ı kontrol et
sudo lvs

2. Anlık Görüntüye Erişim

Snapshot’lar da birer LV olduğundan, bunları bağlayabilir (mount edebilir) ve orijinal LV’nin oluşturulduğu andaki içeriğini okuyabilirsiniz. Bu, bir yedekleme almak veya orijinal verileri etkilemeden dosya kurtarmak için idealdir.

# Snapshot için bir bağlama noktası oluştur
sudo mkdir /mnt/data_lv_snap

# Snapshot'ı bağla
sudo mount /dev/myvg/data_lv_snap /mnt/data_lv_snap

# Snapshot içeriğini kontrol et
ls -l /mnt/data_lv_snap

# İşlem bittiğinde snapshot'ı ayır
sudo umount /mnt/data_lv_snap

3. Anlık Görüntüden Geri Dönme (Rollback/Merge)

Eğer orijinal LV’de hatalı bir değişiklik yaptıysanız ve snapshot’taki duruma geri dönmek istiyorsanız, `lvconvert –merge` komutunu kullanabilirsiniz. DİKKAT: Bu işlem, orijinal LV’deki mevcut verileri snapshot’taki verilerle değiştirecektir!

# Geri döneceğiniz LV'nin bağlı OLMADIĞINDAN emin olun!
sudo umount /dev/myvg/data_lv

# Snapshot'ı orijinal LV'ye birleştir (geri dön)
sudo lvconvert --merge /dev/myvg/data_lv_snap

# İşlem tamamlandığında, orijinal LV'yi tekrar bağlayabilirsiniz
sudo mount /dev/myvg/data_lv /var/www/html

# Snapshot'ın otomatik olarak silindiğini kontrol et
sudo lvs

4. Anlık Görüntüyü Silme

Bir snapshot’a artık ihtiyacınız kalmadığında, ayırdığınız disk alanını geri kazanmak için onu silebilirsiniz.

# Eğer bağlıysa snapshot'ı ayır
sudo umount /dev/myvg/data_lv_snap

# Snapshot'ı sil
sudo lvremove /dev/myvg/data_lv_snap

# Snapshot'ın silindiğini kontrol et
sudo lvs

Sonuç

LVM, Linux sistem yöneticilerine depolama yönetimi konusunda inanılmaz bir esneklik ve güç sunar. Disk alanını kolayca genişletebilmek, kritik anlarda sistemin anlık görüntülerini alıp gerektiğinde geri dönebilmek veya veri yedeklemesi için kullanabilmek, LVM’i modern veri merkezlerinin vazgeçilmez bir parçası yapar.

Her zaman olduğu gibi, bu tür işlemleri yapmadan önce sisteminizin yedeğini almayı ve üretim ortamında uygulamadan önce bir test ortamında denemeyi unutmayın. Bu adımları dikkatlice takip ederek, LVM’in gücünden tam anlamıyla faydalanabilirsiniz.