Blog

LVM Yönetimi ve Yapılandırması – Bölüm 1

LVM (Logical Volume Management) kullanıcılara daha kolay ve esnek bir depolama yönetimi deyimi sunar. Klasik disk yönetiminin sınırlamalarını aşarak depolama birimlerini dinamik olarak kolay bir şekilde artırmakla birlikte depolama birimlerin bir havuz altında toplayarak yönetimi kolaylaştırır.

LVM bir veya daha fazla fiziksel disk grubunu  bir Volume Group altında toplayarak Volume’ler oluşturur. Eğer Logical Volume’de yer kalmaz ise Volume Group’dan yer alınarak genişletilebilir. Volume Group’ta alan ihtiyacı duyulursa fiziksel veya sanal bir disk eklenerek Volume Group genişletilir.

Logical Volume’lerin boyutları artıralabileceği gibi eğer dosya sistemi destekliyorsa boyutu da  azaltılabilir.

LVM’in diğer bir artısı da Logical Volume’ün snapshot’ı (anlık görüntüsü) alınarak mevcut durumu korunabilir.  İhtiyaç durumunda önceki haline geri dönülebilir. Yedek almak için de kullanılabilir. LVM mantıksal birimlerini kullanmanın üçüncü önemli avantajı, arızalı donanımı kolayca değiştirebilme seçeneğidir. Bir sabit disk arızalıysa (bad sector vb.), veriler birim grubu içinde başka bir fiziksel bölüme taşınıp arızalı disk birim grubundan çıkarılır ve yeni bir sabit disk, herhangi bir kesinti olmadan dinamik olarak eklenir.

LVM yapısı fiziksel veya sanal diskler üzerine kurgulanmıştır. Bu yapıda sırayla Physical Volume (PV), Volume Group (VG) ve Logical Volume (LV) bulunmaktadır.

Physical Volume (PV) : Fiziksel depolama cihazlarını bir araya getiren katmandır. Yönetim için diske bir başlık yazarak katmana dahil eder. Sanal disklerden de Physical Volume oluşturulabilir.

Volume Group (VG): LVM yapısının merkezidir. Physical Volume’leri birleştirerek bir depolama havuzu oluşturur.

Logical Volume (LV): Volume Group içinden oluşturulan bölümlerdir. Bir nevi fiziksel diskteki bölümler gibi denebilir. Uygulama ve kullanıcı verileri bu katmanla etkileşimde bulunur. Aynı Volume Group üzerindeki Logical Volume’ler birbirlerinden farklı dosya sistemleriyle oluşturulabilir.

Bir Logical Volume oluşturmak için diagramdaki süreç işletilir.

Raw diskler de direk PV’ye eklenebilir. Ancak disk alanının tamamı LVM olarak kullanılmayacaksa fdisk ile bir partition oluşturulur. Diskin partition yapılandırması ile ilgili bilgiler MBR’da (Elbette GPT’de kullanılabilir.) tutulur.

Partition veya disk, pvcreate komutu ile PV’ye eklenerek LVM Label ile etiketlenir. LVM Label, fiziksel bölüme atanan benzersiz bir UUID’dir.

vgcreate komutu ile PV’ler VG’ye eklenerek Volume Group oluşturulur. Metadata, Volume Group içinde yer alan fiziksel bölümler, logical bölümler, volumelerin boyutları, ne zaman oluşturuldukları, kaldırıldıkları kısacası Volume Group’la ilgili bütün bilgileri içinde barındırır.

lvcreate komutu ile Volume Group’lardan Logical Volume’ler oluşturulur. Logical Volume’un linear, striped ve mirrored olarak çeşitleri vardır.

Linear Logical Volume

Bir Logical Volume’un birden fazla fiziksel diskle oluşmasıdır. Veri ilk önce bir diske yazılmaya başlar. Disk dolduğu zaman diğer diskten verilen alana yazmaya devam eder.

Striped Logical Volume

Veriyi tek bir diske yazmak yerine belirlenen stripe size (block size diye de adlandırılır.) boyutuna göre birden fazla diske sırayla yazabilen Volume’lerdir. Örneğin, stripe size 128 KB olarak belirlenmişse ve sizin işlem yaptığınız veri, bu boyuttan büyükse verileriniz 128 KB’lık parçalara bölünerek sırayla disklere yazılmaya başlar. Genelde I/O performansını artırmak için kullanılır.

Mirrored Logical Volume

Birden fazla fiziksel bölüm üzerinde verinin kopyalarını tutar. Bu şekilde Physical Volume’e bağlı bir diskte arıza oluşması durumunda, veri kaybına karşı sizi korur. Mirrored Logical Volume’deki bir fiziksel disk arızalanadığında, volume linear volume olarak erişilebilir hale gelir. Log dosyası, mirror’ların hangi blocklarının senkronize olduğunu tutar.

Extents – LE and PE Mapping

Bir VG içindeki her bir bölüm extents isminde sabit boyutlu küçük parçalara bölünür. Physcal Volume’lerdeki parçalara Physical Extents (PE), Logical Volume’lerdeki parçalara Logical Extents (LE) denir. Logical Volume’lerin kapsamı ve boyutu LE ve PE eşleşmesiyle oluşur. Bu eşleşme sayesinde Logical Volume’ler kolay bir şekilde küçültülüp büyütülebilir.

LVM Yapısını Oluşturmak

Yapacağımız çalışmaya, Ubuntu 20.04 kurulu sanal sunucumuza iki adet sanal disk bağlayarak başlıyoruz. lsblk komut çıktısı ile disk yapılandırmamızı görüntülüyoruz. sdc ve sdd isimli diskler yeni eklediğimiz disklerdir. Bu iki diski kullanarak LVM yapılandıracağız.

fdisk komutuyla diskler üzerinde bir partition oluşturuyoruz.

fdisk /dev/sdc
fdisk /dev/sdd

1 – n ile yeni bir partition oluşturuyoruz.
2 – p ile bölümü primary yapıyoruz.
3 – Bölüm numarasını 1-4 arası seçiyoruz. MBR disklerde en fazla 4 bölüm oluşturabilirsiniz. İlerde, MBR ve GPT disk yapılandırmaları için ayrı bir makale paylaşıyor olacağım.
4 – Disk üzerindeki başlangıç ve bitiş sektörlerini belirliyoruz. 2048’den başlamasının nedeni MBR yani disk yapılandırma tablosunun bulunduğu alan 0-2048 arasında olduğundandır. Varsayılan ayarlarla geçerek tüm disk alanı için bir bölüm oluşturuyoruz.
5 – Bölüm tipini t tuşuna basıp 8e olarak değiştiriyoruz. Böylece oluşturduğumuz bölümün LVM olarak kullanılacağını belirlemiş oluyoruz.
6 – w tuşu ile ayarları kaydediyoruz. Her iki disk içinde aynı işlemi yaparak bölüm oluşturma işlemimizi tamamlıyoruz.

lvmscan komutuyla sunucumuzdaki partitionları ve LVM bölümlerini görüntülüyoruz. Yeni oluşturduğumuz bölümler sdc1 ve sdd1 olarak görülüyor. Şu an sunucumuzda LVM için kullanılan bir disk ve partition olmadığını en son 4 satırdan görebilirsiniz.

İlk önce bir Physical Volume (PV) yaratıyoruz. Her iki diski de komutun içine yazdım. Ayrı ayrı da yazabilirsiniz.

pvcreate /dev/sdc1 /dev/sdd1

pvs komutu ile Physical Volume (PV) (PV) görüntülüyoruz. Dikkat ederseniz VG sütunu boş. Bunun nedeni PV’leri bir Volume Group (VG) eklemediğimiz içindir.

pvdisplay ile Physical Volume (PV)’u görüntülüyoruz. sdc1 için LVM Label’i en alttaki satırda görebilirsiniz. PV bir VG’de olmadığı için Allocatable bölümü NO, Physical Extent (PE) bölümleri de boş durumdadır.

vgcreate komutu ile bir Volume Group (VG) oluşturacağız. lvmgrups VG’nin ismidir. lvmgrups içinde olacak PV’leri de komutun içine ekleyerek grubu oluşturuyoruz.

vgcreate lvmgrups /dev/sdc1 /dev/sdd1

vgdisplay ile VG’yi görüntülüyoruz. Metadata Areas, bu VG’de iki PV’miz olduğu için 2 ‘dir. Metadata Sequence No, 1 sayısı, VG sıra numarasıdır. İkinci bir VG oluşturursak onun numarası da 2 olacak. VG’nib yazılabilir ve yeniden boyutlandırılabilir olduğu gösteriliyor. LV alanları 0. Çünkü daha Logical Volume (LV) oluşturmadık. VG size, iki PV’nin birleşimiyle oluşan alanın boyutudur. PE size, 4 MiB (MebiBayt), bir blok boyutunu gösterir. Yani bizim 4.99 GiB (GibiBayt) alanımız 4 MiB bloklara bölünerek 1278 adet PE oluşturulmuş. Alloc PE / Size, LV oluşturmadığımız için 0’dır. VG UUID ise LVM label’dır.

pvdisplay komutu ile tekrar PV’yi görüntüleyelim. VG Name, bağlı olduğu VG’yi gösteriyor. Allocatable YES olarak değişti. PE bölümleri de VG’ye dahil ettiğimiz için doldu.

pvdisplay /dev/dsc1

Logical Volume oluşturmak için lvcreate komutunu kullanıyoruz. -n argümanı ile LV’nin ismini belirliyoruz. lvmgrups ‘da LV’nin oluşturulacağı VG’nin ismidir.

lvcreate -L 1G -n dosyalarim lvmgrups

lvdisplay komutu ile oluşturduğumuz LV’yi görüntülüyoruz.

lvdisplay /dev/lvmgrup/dosyalarim 

LV’yi oluşturduk. Ancak kullanmak için bir dosya sistemi ile biçimlendirmeliyiz. Ext4 olarak biçimlendirelim.

mkfs.ext4 /dev/lvmgrups/dosyalarim

Sunucumuzda bu LV’yi kullanacak bir dizin oluşturup mount ediyoruz.

mkdir dosyalarim
mount /dev/lvmgrups/dosyalarim /dosyalarim

Son olarakta fstab içerisine yazarak mount işleminin kalıcı hale gelmesini sağlıyoruz. Bu şekilde sunucu yeniden başladığında otomatik olarak mount işlemi gerçekleşecek. UUID bilgisini mkfs komut çıktısındaki Filesystem UUID bölümünden alabilir veya blkid | grep /dev/lvmgrups/dosyalarim komutunu kullanabilirsiniz.

df -h komutu ile dosya sistemimizi görüntülüyoruz. En alt satırda oluşturduğumuz LV’nin dosyalarim dizinine mount olduğunu görüyoruz.

Bir sonraki makalemizde Striped Volume, Mirrored Volume oluşturmak ve VG’ye disk ekleyip çıkarmak konularını ele alacağız.

Faydalı olması dileğiyle,

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu