VMwareVMware ESXiVMware vCenter

VMKFSTOOLS –Punchzero | Shrink VMDK

Merhaba,

Virtual machine’lere disk verilirken genellikle az yer kaplaması açısından Thin disk veriliyor. Thin disk’ler, diğer disk method’larından farklıdır. Belirttiğiniz alanı datastore’dan allocated etmezler. Örneğin bir virtual machine’e 20GB thin disk ekliyorsunuz. İlk olarak bu disk’in datastore’da kaplayacağı alan 0 bayt olacaktır. Bu disk’in içerisine veri yazıldıkta disk büyümeye başlayacaktır. Ben disk içerisine 5GB’lık bir dosya kopyaladığımda bu disk aynı zamanda datastore’da da 5gb yer kaplayacaktır. Peki disk’in içerisinden 5GB’ı sildiğimizde bu disk datastore’da yine 0 bayt mı kaplayacaktır? Tabiki hayır.

ESXi üzeirnde bir thin, thick ile oluşturulmuş virtual machine’in disk’lerini küçültmek için vmkfstools komutlarını kullanabilirsiniz.

Ben bunun örneğini kendi demo ortamımdan göstereceğim. Üzerinde birtane thin disk olan virtual machine’ini inceliyoruz. İşletim sistemi olarak Redhat Linux kullandım.


/vmfs/volumes/53a07518-ef6f2cb9-39a3-001cc4dfef98/Linuxtest # du -ah
8.0K    ./Linuxtest.vmx
0       ./Linuxtest.vmxf
0       ./Linuxtest.vmsd
1.7G    ./Linuxtest-flat.vmdk
0       ./Linuxtest.vmdk
1.0M    ./Linuxtest.nvram
1.0M    ./vmware-1.log
1.0M    ./vmware-2.log
1.7G    .

Virtual machine’i ilk olarak kurduğumuzda disk’in boyutu 1.7Gb olarak gözükmekte. Aşağıdaki komut ile ben 500mb boyutunda bir dosya oluşturuyorum.

 dd if=/dev/zero of=test.file bs=500000000 count=1 

Yukarıdaki komut ile dosya oluşturduktan sonra ESXi’ın SSH’ından tekrar du -ah komutunu çalıştırıyoruz.


/vmfs/volumes/53a07518-ef6f2cb9-39a3-001cc4dfef98/Linuxtest # du -ah
8.0K    ./Linuxtest.vmx
0       ./Linuxtest.vmxf
0       ./Linuxtest.vmsd
2.2G    ./Linuxtest-flat.vmdk
0       ./Linuxtest.vmdk
1.0M    ./Linuxtest.nvram
1.0M    ./vmware-1.log
1.0M    ./vmware-2.log
1.0M    ./vmware.log
2.2G    .
/vmfs/volumes/53a07518-ef6f2cb9-39a3-001cc4dfef98/Linuxtest #

du-ah komutu ile görüldüğü gibi vmdk dosyası 2.2GB olmuş gözüküyor. Şimdi işletim sistemi içerisinde oluşturduğumuz dosyayı silin ve tekrar du -ah komutunu çalıştırın. VMDK boyutu değişmeyecektir.

Öncelikle Virtual machine’i shutdown konumuna getiriyoruz. Ardından ESXi host’a SSH ile bağlanıyoruz ve aşağıdaki komutu çalıştırıyoruz. Tabi komutu çalıştırırken vmdk’nın bulunduğu dizinde olmanız gereklidir.

 # vmkfstools --punchzero Linuxtest.vmdk 

Komutu çalıştırdıktan sonra bize aşağıdaki gibi bir sonuç çıkarıyor.

Not: Bu komutu çalıştırdıktan sonra işlemin bitme süresi tamamen vmdk’nın boyutuna bağlı olarak değişecektir.

 


/vmfs/volumes/53a07518-ef6f2cb9-39a3-001cc4dfef98/Linuxtest # vmkfstools --punchzero Linuxtest.vmdk
vmfsDisk: 1, rdmDisk: 0, blockSize: 1048576
Hole Punching: 100% done.

Hole Punhing 100% olduğunda işlemimiz tamamlanmış oluyor.

/vmfs/volumes/53a07518-ef6f2cb9-39a3-001cc4dfef98/Linuxtest # du -ah
8.0K    ./Linuxtest.vmx
0       ./Linuxtest.vmxf
0       ./Linuxtest.vmsd
1.7G    ./Linuxtest-flat.vmdk
0       ./Linuxtest.vmdk
1.0M    ./Linuxtest.nvram
1.0M    ./vmware-1.log
1.0M    ./vmware-2.log
1.0M    ./vmware-3.log
1.0M    ./vmware.log
1.8G    .
/vmfs/volumes/53a07518-ef6f2cb9-39a3-001cc4dfef98/Linuxtest #

du -ah komutunu tekrar çalıştırdığımızda ilk oluşturduğumuz boyutu görüyoruz.

Burada şunu belirtmek istiyorum. Siz bu işlemi isterseniz farklı yöntemler ile de yapabilirsiniz. Virtual machine’i storage vmotion ile thin disk’e çevirerekte bu işlemi gerçekleştirebilirsiniz. Ancak bazı kullanıcılar datastore değiştirmeden bu işlemi yapmak istiyor oyüzden bunu anlatma gereği duydum.

Umarım faydalı olmuştur.

İyi çalışmalar.

5 4 votes
Makaleyi Oylamayı Unutmayın !

Tayfun DEĞER

Bu yazı blog üzerinde Tayfun DEĞER tarafından paylaşılmıştır. 2009 yılında açılan blog kısa zaman içerisinde büyük bir izleyici kitlesine sahip olmuştur. Tayfun DEĞER danışmanlık ve eğitimler vermektedir. vExpert 2013-2019, VCP4/5/6, VCP5-DT, VCP-Cloud ve MCSE sertifikalarına sahiptir.Twitter 'dan @tayfundeger veya RSS ile sitedeki değişiklikleri takip edebilirsiniz.

İlgili Makaleler

Subscribe
Bildir
guest

4 Yorum
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
yusuf
yusuf

merhabalar. bahsettiğiniz gibi uygulama yapıyorum fakat diskin boyutu ile kullanılan alan arasında halen bir tutarsızlık var. Centos üzerinde used space 55 gb görünüyor fakat vmdk file 160 gb civarında. &100 işlem başarılı herhangi bir hata da almıyorum fakat bir türlü küçültemiyorum diskin kapladığı alanı.

Sami
Sami
Reply to  yusuf

Merhaba vmkfstools -K Linuxtest.vmdk böyle yapman gerek

Aytekin
Aytekin

Elinize emeğinize sağlık.
Verdiğiniz yönergeler ile disklerde gerekli boşluklar esxi datastore yansıdı.

Başa dön tuşu
4
0
Görüşlerini belirtmek ister misin?x