Mantıksal Birim Yönetiminde (LVM) Thin Provisioning Birimlerinin Kurulumu - Bölüm IV


Mantıksal Birim yönetimi, anlık görüntüler ve Thin Provisioning gibi harika özelliklere sahiptir. Daha önce (Bölüm – III) mantıksal hacmin anlık görüntüsünün nasıl alınacağını görmüştük. Bu yazıda LVM'de ince Provizyon hacimlerinin nasıl kurulacağını göreceğiz.

İnce Tedarik Nedir?

Thin Provisioning, lvm'de ince bir havuz içinde sanal diskler oluşturmak için kullanılır. Sunucumda 15GB depolama kapasitesine sahip olduğumu varsayalım. Zaten her biri 5 GB depolama alanına sahip 2 istemcim var. Üçüncü müşterisiniz, 5GB depolama alanı istediniz. O zamanlar 5GB'ın (Kalın Hacim) tamamını sağlamak için kullanıyorduk, ancak bu 5GB depolama alanından 2GB'ı kullanabilirsiniz ve daha sonra doldurabileceğiniz 3GB ücretsiz olacaktır.

Ancak ince Provizyonda yaptığımız şey, büyük hacim gruplarından birinin içinde ince bir havuz tanımlamak ve bu ince havuzun içindeki ince hacimleri tanımlamak için kullanırız. Böylece yazdığınız dosyalar depolanacak ve depolama alanınız 5GB olarak gösterilecektir. Ancak 5GB'ın tamamı diskin tamamını tahsis etmeyecektir. Diğer müşteriler için de aynı işlem yapılacaktır. Dediğim gibi 2 müşterim var ve sen benim 3. müşterimsin.

Peki istemcilere toplam ne kadar GB ayırdığımı varsayalım. Toplam 15GB zaten tamamlandı, Biri gelip 5GB istese verebilir miyim? Cevap “Evet“, burada Thin Provisioning'de 15GB tahsis etmiş olmama rağmen 4. Client için 5GB verebiliyorum.

Uyarı: 15 GB'tan itibaren, 15 GB'tan fazla Temel Hazırlık yapıyorsak buna Aşırı Temel Hazırlık denir.

Nasıl çalışır? ve Yeni Müşterilere depolamayı nasıl sağlıyoruz?

Size 5GB verdim ama sadece 2GB kullanabilirsiniz, geri kalan 3GB bedava olacak. Kalın Provizyonda bunu yapamayız çünkü ilk başta tüm alanı kendisi tahsis edecektir.

Thin Provisioning'de size 5GB tanımlıyorsam, birim tanımlarken tüm disk alanını ayırmaz, veri yazımınıza göre 5GB'a kadar büyür, Umarım anladınız! sizin gibi, diğer istemciler de tüm birimleri kullanmayacak, dolayısıyla yeni bir istemciye 5 GB ekleme şansı olacak. Buna Over Provisioning adı veriliyor.

Ancak her hacim büyümesinin takip edilmesi zorunludur, aksi takdirde sonu felaket olur. Aşırı Provizyon yapılırken, 4 istemcinin tümü verileri diske kötü bir şekilde yazarsa, 15GB'ınızı dolduracağı ve birimlerin düşmesine neden olacak şekilde taşması nedeniyle bir sorunla karşılaşabilirsiniz.

Gereksinimler

  1. Linux'ta LVM ile Disk Depolama Oluşturma – BÖLÜM 1
  2. Linux'ta LVM'ler Nasıl Genişletilir/Küçültülür – Bölüm II
  3. LVM'de Mantıksal Birimin Anlık Görüntüsünü Oluşturma/Geri Yükleme - Bölüm III
Sunucu Kurulumum
  1. İşletim Sistemi – LVM Kurulumlu CentOS 6.5
  2. Sunucu IP'si – 192.168.0.200

1. Adım: İnce Havuz ve Birimleri Ayarlayın

Thin havuz ve Thin Volume kurulumunu uygulamalı olarak yapalım. Öncelikle büyük boyutlu Volume grubuna ihtiyacımız var. Burada tanıtım amacıyla 15GB ile Cilt grubu oluşturuyorum. Şimdi aşağıdaki komutu kullanarak cilt grubunu listeleyin.

vgcreate -s 32M vg_thin /dev/sdb1

Daha sonra, ince havuzu ve birimleri oluşturmadan önce Mantıksal birim kullanılabilirliğinin boyutunu kontrol edin.

vgs
lvs

Yukarıdaki lvs çıktısında dosya sistemi için yalnızca varsayılan mantıksal birimlerin olduğunu ve takasın mevcut olduğunu görebiliriz.

İnce Havuz Oluşturma

Birim grubunda (vg_thin) 15GB'lık Thin havuz oluşturmak için aşağıdaki komutu kullanın.

lvcreate -L 15G --thinpool tp_tecmint_pool vg_thin
  1. -L – Birim grubunun boyutu
  2. –thinpool – İnce havuz oluşturmak için
  3. tp_tecmint_pool– İnce havuz adı
  4. vg_thin – Havuzu oluşturmak için ihtiyacımız olan birim grubu adı

Daha fazla ayrıntı elde etmek için 'lvdisplay' komutunu kullanabiliriz.

lvdisplay vg_thin/tp_tecmint_pool

Burada bu ince havuzda Sanal ince hacimler oluşturmadık. Resimde Tahsis Edilen havuz verilerinin %0,00'i gösterdiğini görüyoruz.

İnce Hacimler Oluşturma

Artık -V (Sanal) seçeneği ile ‘lvcreate’ komutu yardımıyla ince havuz içerisinde ince hacimleri tanımlayabiliriz.

lvcreate -V 5G --thin -n thin_vol_client1 vg_thin/tp_tecmint_pool

vg_thin birim grubumda tp_tecmint_pool içinde thin_vol_client1 adında bir İnce sanal birim oluşturdum. Şimdi aşağıdaki komutu kullanarak mantıksal birimleri listeleyin.

lvs 

Şu anda yukarıdaki ince hacmi oluşturduk, bu nedenle %0,00M değerini gösteren hiçbir veri yok.

Peki, diğer 2 istemci için 2 İnce birim daha oluşturayım. Burada artık havuzun (tp_tecmint_pool) altında 3 ince birimin oluşturulduğunu görebilirsiniz. Bu noktadan itibaren 15GB havuzun tamamını kullandığımı öğrendik.

Dosya Sistemi Oluşturma

Şimdi bağlama noktaları oluşturun ve bu üç ince birimi bağlayın ve aşağıdaki komutları kullanarak bazı dosyaları içine kopyalayın.

mkdir -p /mnt/client1 /mnt/client2 /mnt/client3

Oluşturulan dizinleri listeleyin.

ls -l /mnt/

Oluşturulan bu ince hacimler için dosya sistemini ‘mkfs’ komutunu kullanarak oluşturun.

mkfs.ext4 /dev/vg_thin/thin_vol_client1 && mkfs.ext4 /dev/vg_thin/thin_vol_client2 && mkfs.ext4 /dev/vg_thin/thin_vol_client3

Üç istemci biriminin tümünü 'mount' komutunu kullanarak oluşturulan bağlama noktasına bağlayın.

mount /dev/vg_thin/thin_vol_client1 /mnt/client1/ && mount /dev/vg_thin/thin_vol_client2 /mnt/client2/ && mount /dev/vg_thin/thin_vol_client3 /mnt/client3/

'df' komutunu kullanarak bağlama noktalarını listeleyin.

df -h

Burada, 3 istemci biriminin tamamının monte edildiğini ve dolayısıyla her istemci biriminde verilerin yalnızca %3 kullanıldığını görebiliriz. Öyleyse, biraz yer doldurmak için masaüstümdeki 3 bağlama noktasının tümüne biraz daha dosya ekleyelim.

Şimdi bağlama noktasını listeleyin ve her ince hacimde kullanılan alanı görün ve havuzda kullanılan boyutu görmek için ince havuzu listeleyin.

df -h
lvdisplay vg_thin/tp_tecmint_pool

Yukarıdaki komut, üç montaj pintini boyutlarıyla birlikte yüzde olarak gösterir.

13% of datas used out of 5GB for client1
29% of datas used out of 5GB for client2
49% of datas used out of 5GB for client3

İnce havuza bakarken verilerin yalnızca %30'unun tamamen yazıldığını görüyoruz. Bu, yukarıdaki üç istemci sanal biriminin toplamıdır.

Aşırı Tedarik

Şimdi 4. müşteri bana geldi ve 5GB depolama alanı istedi. Verebilir miyim? Çünkü zaten 3 client'a 15GB Pool vermiştim. Başka bir müşteriye 5GB daha fazla vermek mümkün mü? Evet vermek mümkün. Bu, Aşırı Hazırlama'yı kullandığımız zamandır; bu da, sahip olduğumdan daha fazla alan vermek anlamına gelir.

4. Client için 5GB oluşturup boyutunu doğrulayayım.

lvcreate -V 5G --thin -n thin_vol_client4 vg_thin/tp_tecmint_pool
lvs

Havuzda sadece 15GB boyutum var ancak ince havuz içinde 20GB'a kadar 4 cilt oluşturdum. Eğer dört istemci de tempoyu doldurmak için hacimlerine veri yazmaya başlarsa o zaman kritik bir durumla karşı karşıya kalacağız, aksi halde sorun olmayacak.

Şimdi thin_vol_client4'te dosya sistemi oluşturdum, sonra /mnt/client4 altına yerleştirdim ve bazı dosyaları içine kopyaladım.

lvs

Yukarıdaki resimde, yeni oluşturulan istemci 4'te kullanılan toplam boyutun %89,34'e kadar ve ince havuz boyutunun %59,19 olarak kullanıldığını görebiliriz. Tüm bu kullanıcılar hacime kötü yazmıyorsa taşma, düşme gibi sorunlar yaşanmayacaktır. Taşmayı önlemek için ince havuz boyutunu genişletmemiz gerekiyor.

Önemli: İnce havuzlar yalnızca mantıksal bir birimdir, dolayısıyla ince havuzun boyutunu genişletmemiz gerekirse, daha önce kullandığımız gibi aynı komutu kullanabiliriz. Mantıksal hacimler için genişletiyoruz ancak ince havuzun boyutunu azaltamıyoruz.

lvextend

Burada mantıksal ince havuzun (tp_tecmint_pool) nasıl genişletileceğini görebiliriz.

lvextend -L +15G /dev/vg_thin/tp_tecmint_pool

Daha sonra ince havuz boyutunu listeleyin.

lvs

Daha önce tp_tecmint_pool boyutumuz 15 GB ve 4 ince birimdi; bu da Tedarik'in 20 GB'ın üzerindeydi. Artık 30 GB'a kadar genişletildi, böylece aşırı Provizyonumuz normalleştirildi ve ince hacimlerde taşma, düşme yaşanmadı. Bu şekilde havuza daha da ince hacimler ekleyebilirsiniz.

Burada, büyük boyutlu bir birim grubu kullanarak ince bir havuz oluşturmayı ve Over-Provisioning kullanarak ve havuzu genişleterek ince havuz içinde ince hacimler oluşturmayı gördük. Bir sonraki makalede lvm Striping'in nasıl kurulacağını göreceğiz.