What is dd ?

dd aracı, Unix/Linux benzeri işletim sistemleri ve ötesi için bir komut satırı yardımcı programıdır. Temel amacı dosyaları dönüştürmek ve kopyalamaktır
Peki biz vMWare ESXI tarafında dd aracına neden ihtiyaç duyuyoruz. Thin olarak yapılandırılmış sanal makinalarda işletim sistemi içindeki dosyaları sildiğiniz halde disk alanı aynısı gibi kalacaktır. Thin provizyonlu diskler, sanal makinenin gerektirdiği şekilde genişleyecek ve daha fazla disk alanı tüketecek şekilde tasarlanmıştır. Maalesef ESXI üzerindeki Thin Diskler yalnızca genişler. Boş disk alanını serbest bırakmak için kendi başlarına küçülmezler. Sonuç olarak, Konuk işletim sistemindeki dosyaları silmeyi deneseniz bile, ana makina üzerindeki disk alanı geri kazanılamaz.
vMWare tarafında daha fazla bilgi için bakınız: (Windows makinalar için sDelete aracı benzer şekilde kullanılabilir. )
Konuyu daha iyi anlamak için basit bir örnek gerçekleştirelim. ESXI CLI (GUI'de kullanılabilir) üzerinden, sanal makinanın kullandığı disk alanına baktığım zaman 53.1G olarak görebiliyorum.

Sanal makinama bağlanıp 27,5G alan siliyorum.

Tekrar kontrol ettiğimde disk üzerinde kapladığı alanın aynı 53.1G olarak değişmediğini görüyorum. Bu şu anlama geliyor. Bu makina artık ana sunucu üzerinde 53.1G yer kaplamaktadır. Sunucu üzerinde disk alanını kazanmak için aşağıdaki adımları uygulamanız gerekmektedir.

Peki biz bu işlemleri hangi makinalara uygulamamız gerektiğini nasıl anlayacağız? vCenter üzerinden makinayı seçtikten sonra, STORAGE USAGE kısmının 94.19G olduğunu görmekteyiz.

Şimdi makinaya SSH veya konsol üzerinden bağlanın. Disk kullanımına baktığımız zaman 47G olarak görünmektedir. vCenter üzerindeki değerler ile çok farklı olduğu belli oluyor. İşte bu gibi farklar çok olduğu zaman aşağıdaki işlemleri ile kaybettiğiniz alanları geri kazanabilirsiniz.
df -h

Başlamadan önce kontrol edilmesi gereken birkaç şey ve belirtmek istediğim birkaç güvenlik önlemi var:
- Sunucu üzerinde alanın tükenmesini önlemek için hedef birime yazan tüm hizmetleri kapattığınızdan emin olun.
- Kritik sanal makinaların yedeklendiğine olduğuna emin olun.
- Diskte Snapshot bulunmadığından emin olun.
- Boş alan olarak atanması gereken blokları değiştirdiğimiz için konuk dosya sisteminin sağlıklı olması önemlidir. Tutarsızlıklar tespit edilirse dosya sistemi onarım araçları bu bloklardaki verilere ihtiyaç duyabilir. Bu yüzden kritik makinalarınız var ise devam etmeden önce Windows makinalarda chkdsk veya Linux makinalarda fsck yapabilirsiniz.
- Diğer önemli bir konu ise, ana makinada boş alan olmasıdır. Örnek olarak, ana makinada fiziksel disk alanında 1TB alan kaldıysa ve dd işlemi yapacağınız alan 2 TB mantıksal disk alanına sahip olduğunuzu düşünelim. Bu durumda yeterli boş alana sahip olduğunuza dikkat etmeniz gerekir.
Linux'un kullanılmayan blokları silmenin farklı yolları vardır; en yaygın yöntem, boş alanı dd komutunu kullanarak sıfırlardan oluşan bir dosyayla doldurmaktır.
dd kullanmak oldukça basittir; root hesabına geçiş yaptıktan sonra, aşağıdaki komut satırını değiştirmeden çalıştırmanız yeterlidir.
dd if=/dev/zero of=/zero bs=1024k; rm /zero
dd aracı çalışırken sürücüsü dolmuş gibi görünecektir. Panik yapmayın, işlem tamamlanacak ve alanı serbest bırakacaktır. İşlem devam ederken sürücüde çalışan uygulamaları etkilemeyecektir.

Tek bir sanal diskte birden fazla bölüm varsa tüm bölümlerde aynı adımın uygulanması gerekir. Aksi takdirde, tüm veri blokları sıfırlanmayacağı için iyileştirme kısmi olacaktır.
İşlem bittikten kısa bir süre sonra GUI veya CLI üzerinden tekrar kontrol ettiğimde 94.19G olan alanın artık 46.45G olduğunu ve boşa çıkarıldığını görebiliriz.
