vCenter üzerindeki Linux sanal sunucularda LVM disk genişletme operasyonu

Ecren Nur Esen
TurkNet Technology

--

Herkese merhaba, Cloud Infrastructe alanındaki stajımda tecrübe edindiğim LVM disk genişletme operasyonunu burada basitçe anlatmak istedim umarım fayda görebileceğiniz bir yazı olur.

Öncelikle vCenter’da ilgili sanal makineye ulaşıyoruz ve ardından hemen sağ üst tarafta bulunan edit setting yazan icon’a tıklıyoruz.

Karşımıza sunucu hakkında birçok değişikliğin yapılabildiği bir panel açılıyor. Eğer sunucuya yeni bir Hard Disk eklemek istiyorsanız sunucunuzu power off duruma getirmeniz gerekmemektedir fakat yeni bir Hard Disk eklemek istemiyor var olan hard diskinizi büyütmek istiyorsanız sunucuyu power off duruma getirmeniz gerekmektedir.

Hangisini yapacağınızdan emin değilseniz size birkaç önerme ile gelebilirim. Mevcut diskinizin boyutu zaten büyükse, ekleyeceğiniz diskin boyutu büyükse veya mevcut disk üzerindeki verileri taşımak veya yapılandırmak istiyorsanız ikinci bir diski eklemek çok daha mantıklıdır.

Sonuç olarak, disk boyutu artışı için belirli bir eşik olmamakla birlikte, mevcut hard diskin boyutunu artırma seçeneği genellikle daha basit ve tercih edilen bir seçenekken, büyük disk artışları için yeni bir hard disk eklemek daha uygun olabilir. İhtiyaçlarınızı ve mevcut durumu değerlendirerek en uygun seçeneği belirleyebilirsiniz.

Add New Device > Hard Disk seçtiğimiz anda mevcut disklerimizin altına yeni bir disk gelecek.

Burada diskinize istediğiniz boyutu kaynaklarınız doğrultusunda belirleyebilirsiniz.

Burada dikkat etmemiz gereken bir diğer husus ise eklediğimiz disklerin eklenme sırasına göre alfabetik artan isimlendirilmesidir örneğin yukarıdaki gibi bir yapımız olduğunu düşünürsek isimlendirmeleri yanlarındaki gibi olacaktır. Bu isimlendirme sadece disklerin sıralamasını yansıtır ve üzerindeki herhangi bir fiziksel veya mantıksal yapıyı temsil etmez.

Önemli bir nokta, sistemde yeni bir disk eklenmesi veya mevcut bir diskin çıkarılması durumunda, disk isimlendirmesinin değişebileceğidir. Örneğin, bir disk çıkarıldığında, diğer disklerin isimlendirmesi birer harf geri kayabilir.

Sol taraftaki oktan özellikler kısmını genişletirseniz bu diske ait ayarları görebilirsiniz. Disk Provisioning ayarını değiştirmeyi unutmayın. Disk Provisioning ayarları sanal makine disklerinin fiziksel depolamada nasıl ayrıldığı ve tahsis edildiği konusunda farklı stratejileri ifade eder.

Burada karşınıza 3 farklı strateji çıkacak;

Thick Provisioning Lazy Zeroed (Kalın Hesaplama Lazy Zeroed):

  • Bu provizyonlama yöntemi, belirli bir disk alanını önceden tahsis eder, ancak gerçek fiziksel depolama alanı sadece veri yazıldıkça tahsis edilir.

Thick Provisioning Eager Zeroed (Kalın Hesaplama Eager Zeroed):

  • Bu provizyonlama yöntemi, belirli bir disk alanını önceden tahsis eder ve fiziksel depolama alanı, sanal makine oluşturulurken tamamen sıfırlanır (zeroed).

Thin Provisioning (İnce Hesaplama):

  • Bu provizyonlama yöntemi, sanal makine diskine belirli bir boyut atar, ancak gerçek fiziksel depolama alanı yalnızca gerektiğinde tahsis edilir.

Hangi provizyonlama yönteminin en uygun olduğu, ihtiyaçlarınıza ve kullanım senaryonuza bağlıdır. Daha hızlı disk erişimi ve veri yazma performansı için Thick Provisioning tercih edilebilirken, depolama alanı verimliliği ve paylaşım için Thin Provisioning tercih edilebilir. Güvenlik ise Thick Provisioning Eager Zeroed ile daha iyi sağlanır. Bu konuda daha detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

Ardından sunucumuza bağlanıyoruz ve artırdığımız diskin işletim sistemine de yansıması için gerekli adımları uygulamaya başlıyoruz.

Şimdi karşımıza yeni bir Volume Group oluşturularak disk artırma işlemi ve Logical Volume’un boyutunu artırarak disk artırma olmak üzere iki yol çıkıyor. Bunlardan genel anlamda bahsedecek olursak bir veya daha çok LV’nin birleşmesi ile VG’ler oluşur yani özetle Volume Group, fiziksel disklerin bir araya getirildiği ve mantıksal bir depolama birimi oluşturulduğu bir yapıdır. Yeni bir VG oluşturmak, yeni bir depolama alanı birimi oluşturmak anlamına gelir. Bu işlem, daha sonra bu VG üzerindeki LV’leri oluşturarak ve yöneterek disk yönetimini daha esnek hale getirir. Örneğin bir veritabanı büyümesi veya dosya depolama gereksinimlerinin artması gibi durumlarda LV büyümesine gidilirken toplam depolama alanının artırılması veya var olan fiziksel diski daha büyük bir diskle değiştirmek gerektiğinde VG büyümesine gidilir.

Sunucumuza SSH ile artık bağlanabiliriz. Diskleri görüntülemek için aşağıdaki komutu çalıştırdığımızda eklediğimiz diskin gelmemiş olduğunu görebiliriz. Unutmamanız gereken diğer şey bu komutu kullanabilmek için root kullanıcısı olmanız gerekmektedir.

fdisk -l 

Böyle bir durumda örneğin aşağıdaki komutlardan yararlanabiliriz;

. sda diskini taramak istediğimizde aşağıdaki komutu çalıştırabiliriz, burada sda yı sdb veya sdc ile değiştirip o diski tarayıp eklediğimiz diskin görünmesini sağlayabiliriz. Fakat bu işlemleri yaparken dikkatli olmak gerekir verilerinizin yedeklemesini yapmış olmanız önemlidir zira disk tarama işlemi disk yapılandırmasını değiştirme veya disk tanımlarını güncelleme potansiyeline sahiptir. Yanlış yapılandırılmış veya hatalı bir şekilde gerçekleştirilen disk tarama işlemleri, veri kaybına veya sistem istikrarsızlığına neden olabilir.

echo 1 > /sys/block/sda/device/rescan

Daha genel kapsamlı bir taramada aşağıdaki komutu kullanabiliriz. Bu komut, SCSI arabirimine yeni eklenen veya değişiklik yapılan aygıtların sistem tarafından yeniden taramasını tetikler. Aynı şekilde bu komutu kullanırken de dikkatli olmakta fayda var.

echo "- - -" | tee /sys/class/scsi_host/host*/scan 

Bu işlemlerin sonunda artık fdisk -l komutu ile yeni eklediğimiz diski görebiliyor olacağız.

Benim eklediğim diskin sde olarak geldiğini farz edelim sizde kendinize uygun değiştirebilirsiniz.

fdisk /dev/sde

/dev/sde olarak belirtilen bir disk üzerindeki bölüm tablosunu düzenlemek için kullanılan bir komuttur.

fdisk komutu, Linux ve diğer UNIX benzeri işletim sistemlerinde kullanılan bir disk bölümleme aracıdır. Diskin bölüm tablosunu değiştirmenizi sağlar, yeni bölümler oluşturmanıza, var olan bölümleri düzenlemenize veya silmenize izin verir.

ardından karşınıza yukarıdaki gibi bir ekran gelecektir burada yapabileceğiniz işlemleri görmek için help yazabilirsiniz fakat direkt olarak disk ekleme işlemine devam etmek için N yazarak devam edebilirsiniz.

ardından karşınıza partition type seçmek için bir alan gelecek temel fark şudur: primary bölümler doğrudan bölüm tablosunda tanımlanır ve bağımsız olarak kullanılırken, extended bölümler daha fazla bölüm oluşturmak için kullanılır ve altında mantıksal bölümleri barındırır. Ben burda default değer yani primary seçerek devam edeceğim.

hemen sonra sizden bir partition number isteyecek;

Bu numaralar, bölümlerin farklı disk alanlarını temsil etmek için kullanılır. eğer daha önce sde de bir bölüm kullanmış olsaydık default değer 2 olacaktı şuan ilk kez yaptığımız için 1 default gösteriyor, bu şekilde ilerliyoruz. Zaten primary partition type da maksimum 4 bölüm oluşturabiliriz.

First sector ve Last sector değerlerine de default değerleri onaylayıp devam ediyoruz.

Sonrasında bölüm tipi seçmek istiyorum bunun için;

Tipleri görüntüleyebileceğimiz bir sayfa öneriyor. Listeleyebiliriz.

görüldüğü gibi birçok bölüm tipi mevcut ben buradan 8e hex kodlu Linux LVM seçip devam edeceğim.

ardından yaptığımız değişiklikleri kaydediyoruz.

pvcreate /dev/sde1

/dev/sde1 olarak belirtilen bir bölümü PV olarak tanımlamak için kullanılan bir LVM komutudur.

vgcreate vg_ismi /dev/sde1

komutu, Linux LVM sisteminde bir VG oluşturmak için kullanılan komuttur. vg_ismi kısmına istediğiniz değeri verebilirsiniz.

lvcreate –l 100%FREE –n lv_ismi vg_ismi 

Linux LVM sisteminde LV oluşturmak için kullanılan bir komuttur.

-l 100%FREEoluşturulacak LV’nin boyutunu belirtir. -l parametresi, boyutunun mantıksal birimlerde (logical extents) ifade edileceğini belirtir. 100%FREE ise, volume group'da kullanılabilir tüm alanın logical volume için ayrılmasını sağlar.

df –T 

bu komut ile dosya sistemi type’ına bakılmalıdır. örneğin benimki xfs bu yüzden mkfs.xfs kodunu kullanacağım siz kendi type’ınıza uygun komutu yazabilirsiniz.

mkfs.xfs  /dev /vg_ismi/lv_ismi 

XFS dosya sistemini belirli bir mantıksal birime (logical volume) uygulamak için kullanılan bir komuttur.

mkdir /data
vi /etc/fstab  

dosyası açılır ve bizim yapılandırmamız dosyanın en alt satırına eklenir. Ardından kaydedip dosyadan çıkılır. Buradaki /data aslında yukarıda oluşturduğum klasörün adı , lv_data ve vg_data da benim LV’min ve VG’min isimleridir.

En alt satıra eklenen argüman;

mount -a

/etc/fstab dosyasında tanımlanmış olan tüm dosya sistemlerini otomatik olarak bağlamak için kullanılır.

df -h

komutu ile kontrollerimizi sağladığımızda data diskini görebiliriz.

eğer artırma işlemimizde yeni bir VG oluşturarak değil de LV büyütme yoluna gitmiş olsaydık ise gidişat şu şekilde olacaktı;

fdisk /dev/sde

yine sırasıyla N > T > 8e > W şeklinde ilerlenir.

partprobe -s 

bu komut ile partitionları görebiliriz.

pvcreate /dev/sde2

bu komut ile yeni bir fiziksel bölüm oluşturduk.

vgdisplayname 

bu komut ile genişletmek istediğimiz alanın VG ismini öğrendik.

vgextend vg_name /dev/sde2

Bu komut, bir varlık grubuna yeni bir fiziksel birimi (physical volume) eklemek için kullanılır.

lvdisplay 

bu komut ile genişletme yapmak istediğimiz LV’nin ismini burdan görebiliriz.

lvextend /dev/vg_name/backup /dev/sde2 

/dev/vg_name/backup ifadesi, vg_name olarak belirtilen bir varlık grubunda yer alan backup adlı bir mantıksal birimi temsil eder. Bu komut, bu mantıksal birimi genişletmek amacıyla kullanılır.

lvextend /dev/vg_name/backup /dev/sde2 

Bu komutu kullanarak /dev/ubuntu-vg/backup adlı mantıksal birimi /dev/sde2 adlı bölümü kullanarak genişletirsiniz. Yani, backup mantıksal birimine /dev/sde2 adlı disk bölümündeki alanı ekleyerek bir genişleme yaparsınız.

df -T

yine yukarıda yaptığımız gibi type’ımızı kontrol ediyoruz.

xfs_growfs /dev/vg_name/backup

Bu komutu çalıştırdıktan sonra, XFS dosya sistemi /dev/vg_name/backup mantıksal birimindeki eklenen depolama alanını kullanabilir hale gelecektir.

--

--

Ecren Nur Esen
TurkNet Technology

Cloud Infrastructure intern at TurkNet İletişim Hizmetleri | Computer Engineering student at Gazi University