Linux LVM ile Dinamik Depolama Yönetimi: Üretim Ortamlarında Disk Genişletme

 · 

Linux LVM ile Dinamik Depolama Yönetimi: Üretim Ortamlarında Disk Genişletme

Linux LVM ile Dinamik Depolama Yönetimi: Üretim Ortamlarında Disk Genişletme

Linux sistemlerinde disk alanının yetersiz kalması, özellikle kritik servisler için hızlı ve kesintisiz müdahale gerektiren bir durumdur. Geleneksel disk bölümleme yöntemleri, disk boyutları sabitlendiği için sonradan genişletme veya küçültme gibi işlemlerde ciddi kısıtlamalar getirir. Bu noktada LVM (Logical Volume Manager), işletim sistemine bağlı kalmaksızın depolama birimlerini dinamik olarak yönetebilme esnekliği sunar.

LVM, birden fazla fiziksel diski veya disk bölümünü bir araya getirerek tek bir depolama havuzu oluşturmanızı ve bu havuzdan mantıksal disk birimleri (Logical Volumes) türetmenizi sağlar. Bu yapı, üretim ortamlarında disk genişletme, küçültme, snapshot alma ve depolama katmanını soyutlama gibi işlemleri canlı sistem üzerinde dahi kolaylaştırır.

LVM Nedir? Temel Kavramlar

LVM'nin temel çalışma mantığı üç ana katmandan oluşur:

  • Physical Volume (PV): Fiziksel diskler veya disk bölümleri (örneğin, /dev/sdb1, /dev/sdc). LVM'in kullanabileceği ham depolama birimleridir.
  • Volume Group (VG): Bir veya daha fazla PV'nin bir araya gelerek oluşturduğu depolama havuzu. Tüm mantıksal birimler bu havuzdan türetilir. Bir VG, birden fazla fiziksel diskten oluşabilir ve bu sayede depolama kapasitesi kolayca artırılabilir.
  • Logical Volume (LV): VG üzerinden oluşturulan, işletim sistemi tarafından dosya sistemi olarak formatlanıp bağlanan sanal disk bölümleridir. Bunlar, işletim sistemi için tıpkı fiziksel bir disk bölümü gibi görünür.

LVM Bileşenleri ve Çalışma Prensibi

Physical Volume (PV) Oluşturma

LVM kullanmadan önce, fiziksel diskleri veya disk bölümlerini LVM'in anlayacağı bir formata dönüştürmeniz gerekir. Bu işlem, diskin tamamını veya belirli bir bölümünü PV olarak işaretler.

sudo pvcreate /dev/sdb1

Yukarıdaki komut, /dev/sdb1 disk bölümünü bir PV olarak başlatır. Disk bölümü yerine doğrudan disk (/dev/sdb) de kullanılabilir, ancak bölümlendirme daha esnektir.

Volume Group (VG) Oluşturma

PV'ler oluşturulduktan sonra, bunları bir VG içinde birleştiririz. Bu, LVM'in gerçek depolama havuzudur.

sudo vgcreate veritabanivolume /dev/sdb1 /dev/sdc1

Bu komut, /dev/sdb1 ve /dev/sdc1 PV'lerini kullanarak veritabanivolume adında bir VG oluşturur. Bu VG artık her iki disk bölümünün toplam kapasitesine sahiptir.

Logical Volume (LV) Oluşturma

VG oluşturulduktan sonra, bu havuzdan ihtiyaç duyulan boyutta mantıksal birimler türetilir. Bu LV'ler, işletim sisteminde kullanılacak disk bölümleridir.

sudo lvcreate -L 50G -n app_data veritabanivolume

Bu komut, veritabanivolume VG'sinden 50 GB boyutunda ve app_data adında bir LV oluşturur. LV oluşturulduktan sonra formatlanmalı ve bağlanmalıdır.

sudo mkfs.ext4 /dev/veritabanivolume/app_data

Yukarıdaki komut, yeni oluşturulan LV'yi ext4 dosya sistemiyle formatlar.

sudo mkdir /mnt/appdata sudo mount /dev/veritabanivolume/app_data /mnt/appdata

Bu komutlar, LV'yi /mnt/appdata dizinine bağlar. Kalıcı bağlama için /etc/fstab dosyasına ekleme yapılmalıdır.

Gerçek Dünya Senaryosu: Üretim Ortamında Disk Genişletme

Bir e-ticaret uygulamasının veritabanı sunucusunda, /var/lib/mysql dizininin bulunduğu LVM tabanlı disk bölümü hızla doluyor. Mevcut LV'nin boyutu 200 GB ve VG'de boş alan kalmamış durumda. Sistem yöneticisi olarak, hizmet kesintisi yaşanmadan bu disk bölümünü genişletmeniz gerekiyor.

Mevcut Durumu Gözlemleme

Öncelikle mevcut disk kullanımını ve LVM yapısını kontrol edelim:

df -h /var/lib/mysql

Çıktı, doluluk oranını gösterir.

sudo vgdisplay sudo lvdisplay

Bu komutlar, VG'lerin ve LV'lerin mevcut boyutlarını, kullanılan ve boş alanları gösterir. Varsayalım ki db_vg adında bir VG ve bu VG içinde mysql_lv adında bir LV var ve bu LV /var/lib/mysql dizinine bağlı.

Yeni Disk Ekleme ve PV Oluşturma

Sunucuya fiziksel olarak yeni bir 100 GB disk (/dev/sdd) eklenir. Bu diski LVM için hazırlamamız gerekiyor:

sudo fdisk /dev/sdd # Yeni disk bölümü oluşturma (örneğin, /dev/sdd1) sudo pvcreate /dev/sdd1

fdisk ile yeni diske birincil bölüm (örneğin /dev/sdd1) oluşturulur ve ardından bu bölüm PV olarak işaretlenir.

VG'ye PV Ekleme

Yeni PV'yi (/dev/sdd1) mevcut db_vg Volume Group'a ekleyerek VG'nin kapasitesini artırırız:

sudo vgextend db_vg /dev/sdd1

Bu komutun ardından vgdisplay çalıştırıldığında, db_vg'nin kapasitesinin 100 GB arttığını göreceksiniz. Artık LV'yi genişletmek için yeterli alan var.

LV'yi Genişletme

mysql_lv adlı Logical Volume'u 50 GB daha genişletelim. Mevcut boyut 200 GB ise, yeni boyut 250 GB olacak.

sudo lvextend -L +50G /dev/db_vg/mysql_lv

Alternatif olarak, VG'deki tüm boş alanı kullanmak isterseniz:

sudo lvextend -l +100%FREE /dev/db_vg/mysql_lv

lvextend komutu LV'nin mantıksal boyutunu artırır, ancak dosya sistemini henüz genişletmez.

Dosya Sistemini Genişletme

LV genişletildikten sonra, dosya sisteminin de yeni boyutu algılayıp kullanması için genişletilmesi gerekir. Dosya sistemine bağlı olarak komut değişir:

ext2/ext3/ext4 için:

sudo resize2fs /dev/db_vg/mysql_lv

Bu komut, LV üzerindeki ext4 dosya sistemini LV'nin yeni boyutuna göre otomatik olarak genişletir. Bu işlem genellikle sistem canlıyken yapılabilir.

XFS için:

sudo xfs_growfs /mnt/mysql_data # LV'nin bağlandığı dizin

XFS dosya sistemleri için xfs_growfs komutu kullanılır. Bu komut da canlı sistem üzerinde çalıştırılabilir.

Tüm bu adımların ardından df -h /var/lib/mysql komutu ile disk boyutunun arttığını ve doluluk oranının düştüğünü teyit edebilirsiniz.

LVM Yönetiminde Dikkat Edilmesi Gerekenler

  • Yedekleme: LVM esneklik sunsa da, kritik verilerin düzenli yedeklemesi her zaman önemlidir.
  • Snapshotlar: LVM, LV'lerin anlık görüntülerini (snapshot) alabilme yeteneği sunar. Bu, özellikle büyük bir güncelleme veya değişiklik öncesi hızlı bir geri dönüş noktası oluşturmak için çok değerlidir.
  • I/O Performansı: Birden fazla farklı hızlı diski tek bir VG'de birleştirmek, performans açısından en yavaş diskin hızına düşebilir. Performans kritik sistemlerde disk seçimi ve RAID seviyeleri bu bağlamda dikkatlice planlanmalıdır.
  • Dokümantasyon: Karmaşık LVM yapılarını belgelemek, uzun vadeli yönetim ve sorun giderme için hayati öneme sahiptir.

LVM, özellikle dinamik depolama ihtiyaçları olan ve kaynaklarını verimli kullanmak isteyen IT altyapıları için vazgeçilmez bir araçtır. Doğru planlama ve uygulama ile sistem yöneticilerine disk yönetimi konusunda önemli bir esneklik ve kontrol sağlar.

← Blog Listesine Dön