ESXi Disk Sağlığı: SMART Kontrolü, NVMe ve Datastore Yönetimi
ESXi'de disk sağlığını komut satırından izleyin: esxcli storage core device smart get, NVMe smart log, SSD aşınması ve TBW hesabı, datastore doluluğu ve thin disk riski, snapshot temizliği, sanal makine taşıma ve vmkernel.log uyarıları.

Bir ESXi sunucusunda bütün sanal makineler aynı disklerin üzerinde çalışır. Bir disk bozulduğunda ya da datastore dolduğunda tek bir site değil, sunucudaki her şey etkilenir. Ücretsiz ESXi'de vCenter alarmları da olmadığından disk sorunlarını çoğu zaman siz fark etmeden kimse fark etmez. Bu rehberde ESXi'de disk sağlığını komut satırından nasıl kontrol edeceğinizi anlatıyoruz: esxcli storage core device smart get ile SMART okuma, NVMe disklerin sağlık kaydı, SSD aşınması ve TBW hesabı, datastore doluluğu, snapshot'lar ve hangi değerin ne zaman tehlike işareti olduğu.
Görsellerdeki çıktılar örnek değerlerdir; alan adları ve biçim disk modeline ve ESXi sürümüne göre değişebilir. Komutları çalıştırmak için SSH'ı geçici olarak açın (Host → Actions → Services → Enable Secure Shell), işiniz bitince kapatın.
Adım 1: Diskleri Listeleme
Önce ESXi'nin gördüğü diskleri ve kimliklerini (device ID) öğrenin:
esxcli storage core device list | grep -E "^(t10|naa|eui)\.|Display Name|Is SSD|Size:"
Her disk için t10., naa. ya da eui. ile başlayan bir kimlik, görünen ad, SSD olup olmadığı ve boyutu listelenir. NVMe diskler için ayrıca:
esxcli nvme device list # NVMe denetleyicileri (vmhba2, vmhba3...)
esxcli nvme device get -A vmhba2 # model, seri no, firmware
Donanım RAID kullanıyorsanız: ESXi fiziksel diskleri değil, RAID denetleyicisinin oluşturduğu mantıksal diski görür. Bu durumda SMART komutları ya hiç çalışmaz ya da anlamsız değer döndürür. Fiziksel disklerin sağlığını RAID denetleyicisinin ESXi aracıyla ya da sunucunun uzaktan yönetim arayüzündeki (IPMI / iDRAC / iLO) depolama sayfasından kontrol edin.
Adım 2: SATA / SAS Disklerde SMART Okuma
Disk kimliğini bulduktan sonra:
esxcli storage core device smart get -d t10.ATA_____Micron_5400_MTFDDAK480

Çıktıda dört sütun vardır: Parameter (özellik), Value (güncel değer), Threshold (üreticinin eşik değeri) ve Worst (bugüne kadarki en kötü değer). Çoğu üreticide Value normalleştirilmiştir: yeni diskte 100 (ya da 200, 253) civarındadır ve zamanla düşer. Value, Threshold'a indiğinde disk üreticiye göre arızalı sayılır.
En önemli satırlar:
- Health Status: Diskin kendi genel değerlendirmesi.
OKdışında bir değer (ör.IMPENDING FAILURE) görürseniz hemen yedek alın ve diski değiştirin. - Media Wearout Indicator: SSD'nin kalan yazma ömrü. 100'den geriye sayar. Örnekteki 94, ömrün yaklaşık %6'sının kullanıldığını gösterir.
- Reallocated Sector Count: Bozulup yedek alana taşınan sektörler. Value düşmeye başladıysa disk yıpranıyor demektir; düşüş hızlanıyorsa değişim planlayın.
- Read Error Count / Raw Read Error Rate: Okuma hataları. Sürekli artış kötü işarettir.
- Drive Temperature: Disk sıcaklığı (°C). SSD'ler için 55 °C altı rahat, 70 °C üstü risklidir.
- Power-on Hours: Diskin çalıştığı süre. Bazı diskler saat yerine normalleştirilmiş değer verir.
N/A görmeniz normaldir: disk o özelliği bildirmiyor demektir, hata değildir.
Tüm diskleri tek komutta kontrol etmek
for d in $(esxcli storage core device list | grep -E "^(t10|naa|eui)\."); do
echo "== $d"
esxcli storage core device smart get -d "$d" 2>/dev/null | grep -E "Health Status|Wearout|Reallocated|Temperature"
done
Bu döngüyü haftada bir çalıştırıp çıktıyı bir yere not etmek, değerlerin ne kadar hızlı değiştiğini görmenizi sağlar. Tek bir okumadan çok, değişim hızı önemlidir.
Adım 3: NVMe Disklerin Sağlık Kaydı (SMART Log)
NVMe diskler SMART bilgisini farklı bir yapıda verir. Denetleyici adını (vmhba2 gibi) esxcli nvme device list ile bulduktan sonra:
esxcli nvme device log smart get -A vmhba2

| Alan | Anlamı | Ne zaman endişelenmeli? |
|---|---|---|
| Critical Warning | Kritik uyarı bayrakları | 0 dışında her değer acildir: yedek alan bitti, sıcaklık aşıldı, güvenilirlik düştü ya da disk salt okunur moda geçti |
| Percentage Used | Üreticinin öngördüğü yazma ömrünün kullanılan yüzdesi | %80 üstünde değişim planlayın, %100 ve üstünde değiştirin |
| Available Spare | Kalan yedek blok yüzdesi | Available Spare Threshold değerine yaklaştıysa |
| Media Errors | Düzeltilemeyen veri hataları | 0'dan büyükse ve her kontrolde artıyorsa |
| Data Units Written | Diske yazılan toplam veri (birim cinsinden) | TBW hesabı için kullanılır (aşağıda) |
| Unsafe Shutdowns | Elektrik kesintisi / zorla kapatma sayısı | Hızlı artıyorsa güç ya da kapatma alışkanlığına bakın |
| Composite Temperature | Sıcaklık, Kelvin cinsinden | °C = K − 273; 311 K ≈ 38 °C |
Percentage Used %100 olunca disk hemen bozulmaz; üreticinin garanti ettiği yazma miktarının dolduğunu gösterir. Bu noktadan sonra arıza olasılığı artar ve garanti çoğunlukla biter. Üretim sunucusunda %100'ü görmeden diski değiştirmek gerekir.
SSD Aşınması ve TBW: "Diskime Ne Kadar Yazdım?"
SSD'lerin hücreleri sınırlı sayıda yazılabilir. Üreticiler bu sınırı iki şekilde verir:
- TBW (Terabytes Written): Disk ömrü boyunca yazılabilecek toplam veri. Örneğin 1,92 TB bir disk için 3.504 TBW.
- DWPD (Drive Writes Per Day): Garanti süresi boyunca günde kaç kez diskin tamamının yazılabileceği. 1 DWPD × 1,92 TB × 365 gün × 5 yıl ≈ 3.504 TBW.
NVMe'de 1 Data Unit = 1.000 × 512 bayt = 512.000 bayttır. Yazılan veriyi şöyle hesaplarsınız:
Yazılan veri (bayt) = Data Units Written × 512.000
Örnek: 412.663.718 × 512.000 ≈ 211 TB

Örnekteki disk 17.520 saatte (730 gün) 211 TB yazmış: günde yaklaşık 289 GB. 3.504 TBW'lık bir diskte bu hızla yazma ömrü uzun yıllar yeter. Aynı yükü 600 TBW'lık masaüstü sınıfı bir SSD'de çalıştırsaydınız yaklaşık 2 yılda sınıra gelirdiniz. Sunucu SSD'si seçerken kapasite kadar TBW/DWPD değerine de bakın.
Yazma yükünü gereksiz yere artıran şeyler
- Uzun süre silinmeyen snapshot'lar: Her değişiklik ayrı delta dosyasına yazılır ve birleştirme (consolidation) sırasında veri bir kez daha yazılır.
- Sanal makine içindeki aşırı günlük kaydı: Hata ayıklama modunda unutulmuş uygulamalar, sürekli büyüyen log dosyaları.
- Swap kullanan sanal makineler: Belleği yetmeyen sanal makine diske swap yapar. Bellek ayırmasını gerçek ihtiyaca göre yapın.
- ESXi'yi USB/SD karta kurmak: Sistem bölümü yazmaları bu aygıtları hızla yıpratır.
Adım 4: Datastore Doluluğu ve Kapasite Yönetimi
Host Client'ta Storage → Datastores sayfasında her datastore'un kapasitesi, boş alanı ve Provisioned (sanal makinelere söz verilen toplam alan) değeri görünür. Komut satırından:
esxcli storage filesystem list
df -h

Provisioned > Capacity ne demek?
Thin diskler başta az yer kaplar, yazıldıkça büyür. Sanal makinelere toplamda datastore'dan büyük disk verebilirsiniz (aşırı tahsis). Sorun, thin disklerin birlikte büyüyüp datastore'u doldurmasıdır. Datastore dolduğunda yazma yapmak isteyen sanal makineler duraklatılır ve Host Client'ta "no more space" sorusu çıkar. Bu noktaya gelmemek için:
- %75'te uyanın, %85'te harekete geçin. Datastore'un %90'ın üstünde çalışması risklidir; VMFS'in meta veri ve snapshot işlemleri için de boş alan gerekir.
- Snapshot'ları bulun ve silin. Delta dosyalarını şu komutla görebilirsiniz:
find /vmfs/volumes/ -name "*-0000*.vmdk" -o -name "*-sesparse.vmdk"
Snapshot'ları dosya silerek değil, Host Client'ta sanal makine → Actions → Snapshots → Manage snapshots → Delete all ile kaldırın. Aksi hâlde disk zinciri bozulur.
- Klasör bazında yer kaplayanları bulun:
du -sh /vmfs/volumes/nvme-ds3/*
- Swap dosyalarını unutmayın: Açık her sanal makine, belleği kadar (rezervasyon düşüldükten sonra)
.vswpdosyası oluşturur. 32 GB bellekli bir sanal makine datastore'da 32 GB ek yer kaplar. - Boşalan alanı geri kazanın: VMFS6 datastore'larda thin disklerden silinen alan otomatik olarak geri kazanılır (space reclamation). Sanal makine içinde Linux'ta
sudo fstrim -avçalıştırmak bu sürecin işlemesine yardımcı olur. Elle tetiklemek için:
esxcli storage vmfs unmap -l nvme-ds3
Yeni datastore eklemek ya da kapasite artırmak
Sunucuya yeni disk eklendiğinde Storage → Datastores → New datastore → Create new VMFS datastore sihirbazıyla diski seçin, VMFS 6 biçimini ve Use full disk seçeneğini kullanın. Bu işlem seçilen diskteki tüm verileri siler; disk listesinde doğru diski seçtiğinizden emin olun. Aynı diskte boş alan açıldıysa (ör. RAID genişletme) Increase capacity kullanılır.
Sanal Makineyi Başka Bir Datastore'a Taşımak
Bir datastore dolmak üzereyse ya da diskinde uyarı işaretleri görüyorsanız sanal makineyi sağlıklı datastore'a taşımanız gerekir. Ücretsiz ESXi'de sanal makine açıkken disk taşıma (Storage vMotion) yoktur; taşıma kapalı sanal makineyle yapılır:
- Sanal makineyi işletim sistemi içinden düzgünce kapatın ve snapshot'larını silin.
- Host Client'ta sanal makineye sağ tıklayıp Unregister deyin. Bu işlem dosyaları silmez, yalnız envanterden çıkarır.
- Diskleri hedef datastore'a kopyalayın. Datastore browser'daki Move/Copy küçük sanal makinelerde iş görür; büyük disklerde
vmkfstoolsdaha güvenilirdir ve thin biçimi korur:
mkdir /vmfs/volumes/nvme-ds2/web01
vmkfstools -i /vmfs/volumes/nvme-ds3/web01/web01.vmdk /vmfs/volumes/nvme-ds2/web01/web01.vmdk -d thin
cp /vmfs/volumes/nvme-ds3/web01/web01.vmx /vmfs/volumes/nvme-ds3/web01/web01.nvram /vmfs/volumes/nvme-ds2/web01/
- Hedef klasördeki
.vmxdosyasına Datastore browser'da sağ tıklayıp Register VM ile sanal makineyi yeniden kaydedin. - İlk açılışta "Bu sanal makine taşındı mı, kopyalandı mı?" sorusu gelir. Taşıma yaptıysanız I Moved It seçin; böylece MAC adresi ve sistem kimliği değişmez. I Copied It yeni MAC üretir; MAC'e bağlı ek IP'ler çalışmaz.
- Sanal makinenin sorunsuz çalıştığını birkaç gün gözlemledikten sonra eski klasörü silin.
vmkfstools -i yalnız .vmdk tanım dosyasını gösterir, arkasındaki -flat.vmdk veri dosyasını kendisi kopyalar. Sanal makinenin birden fazla diski varsa her biri için komutu ayrı çalıştırın ve .vmx dosyasındaki disk adlarının hedefle aynı olduğunu kontrol edin.
Adım 5: Günlük Kayıtlarında Disk Sorunu Arama
SMART değerleri temiz görünse bile bağlantı, denetleyici ya da kablo sorunları günlük kayıtlarında iz bırakır:
grep -iE "lost access|permanently|PDL|latency|H:0x[1-9]" /var/log/vmkernel.log | tail -50
tail -50 /var/log/vobd.log
- "Device performance has deteriorated. I/O latency increased": Tek tük görülmesi yoğun anlarda normaldir. Sürekli tekrar ediyorsa disk ya da denetleyici zorlanıyordur.
- "Lost access to volume": Datastore'a erişim kısa süreli kesildi. Tekrarlıyorsa kablo, denetleyici veya disk arızası olabilir.
- PDL (Permanent Device Loss): ESXi aygıtı kalıcı olarak kaybettiğini düşünüyor. Acil durumdur.
Ücretsiz ESXi'de uyarıları kaçırmamak
vCenter olmadan e-posta alarmı kurulamaz. İki pratik çözüm:
- Günlükleri dışarıya gönderin: Elinizde bir syslog sunucusu varsa ESXi'nin kayıtlarını oraya yönlendirin ve orada uyarı kuralı tanımlayın:
esxcli system syslog config set --loghost='udp://198.51.100.20:514'
esxcli system syslog reload
esxcli network firewall ruleset set --ruleset-id=syslog --enabled=true
- Haftalık kontrol rutini: Yukarıdaki SMART döngüsünü,
esxcli storage filesystem listçıktısını ve vmkernel.log aramasını haftada bir çalıştırın; değerleri bir önceki haftayla karşılaştırın.
Uyarı İşaretleri: Ne Zaman Ne Yapmalı?

Acil sütunundaki bir işareti gördüğünüzde sıra şudur: önce o datastore'daki sanal makinelerin yedeğini sunucu dışına alın, sonra diski değiştirin. Bozulmaya başlayan bir diskte uzun süren işlemler (büyük kopyalama, snapshot birleştirme) arızayı hızlandırabilir; en önemli veriden başlayın.
Ücretsiz ESXi'de yedekleme yazılımlarının kullandığı API (VADP) kapalıdır. Yedeği sanal makinenin içinden alın ya da sanal makineyi kapatıp Host Client'ta Actions → Export ile dışa aktarın. RAID, disk arızasında çalışmayı sürdürmenizi sağlar ama yedek yerine geçmez: yanlışlıkla silinen bir dosyayı da anında tüm disklere yazar.
En Sık Yapılan Hatalar
- Donanım RAID arkasındaki diskte SMART aramak. ESXi mantıksal diski görür; fiziksel diskleri denetleyici aracından ya da uzaktan yönetim arayüzünden kontrol edin.
- N/A değerlerini arıza sanmak. Disk o özelliği bildirmiyordur.
- Tek okumaya güvenmek. Değerin kendisi kadar değişim hızı önemlidir; haftalık kayıt tutun.
- Snapshot'ları aylarca bırakmak. Datastore'u doldurur, performansı düşürür, SSD'ye gereksiz yazma yükler.
- Snapshot dosyalarını elle silmek. Disk zinciri bozulur, sanal makine açılmaz. Snapshot Manager'ı kullanın.
- Datastore'u %90'ın üstünde çalıştırmak. Bir thin diskin büyümesi bütün sanal makineleri durdurabilir.
- Masaüstü SSD'yi yoğun yazma yükünde kullanmak. Düşük TBW'lı diskler kısa sürede ömrünü doldurur.
- RAID'i yedek sanmak. Yedek, sunucunun dışında ve ayrı bir yerde durmalıdır.
Özet
- Diskleri listeleyin:
esxcli storage core device listveesxcli nvme device list. - SATA/SAS için
esxcli storage core device smart get -d <kimlik>; Health Status, Media Wearout ve Reallocated değerlerini izleyin. - NVMe için
esxcli nvme device log smart get -A <vmhba>; Critical Warning, Percentage Used, Available Spare ve Media Errors kritik. - Yazılan veri = Data Units Written × 512.000 bayt; TBW ile karşılaştırarak kalan ömrü hesaplayın.
- Datastore'u %85'in altında tutun, snapshot'ları kısa tutun, Provisioned değerini izleyin.
- vmkernel.log'da "Lost access" ve PDL kayıtlarını arayın; uyarı görünce önce yedek, sonra değişim.
ESXi'yi ilk kez kuruyorsanız VMware ESXi kurulumu, sanal makine açmak için ESXi sanal makine oluşturma ve ek IP için ESXi ağ ayarları rehberlerimize göz atın.
Kendi sanallaştırma ortamınızı kuracağınız fiziksel sunucu için İstanbul ve Düsseldorf lokasyonlu dedicated server seçeneklerimizi inceleyin. Kendi sunucunuzu veri merkezinde barındırmak isterseniz sunucu barındırma sayfamıza bakın; sorularınız için destek talebi açabilirsiniz.
Kaynaklar
- Broadcom KB 2040405: ESXi S.M.A.R.T. health monitoring for hard drives: esxcli storage core device smart get
- Broadcom KB 314303: Commands to Display S.M.A.R.T. Data for NVMe Devices in ESXi
Sıkça Sorulan Sorular
ESXi'de disk SMART bilgisi nasıl görülür?
SSH ile bağlanıp önce esxcli storage core device list ile disk kimliğini bulun, ardından esxcli storage core device smart get -d DISK_KIMLIGI komutunu çalıştırın. NVMe diskler için esxcli nvme device list ile denetleyici adını bulup esxcli nvme device log smart get -A vmhbaX komutunu kullanın.
SMART çıktısında N/A görmek sorun mu?
Hayır. N/A, diskin o özelliği bildirmediğini gösterir. Önemli olan Health Status, Media Wearout Indicator ve Reallocated Sector Count gibi bildirilen değerlerin Threshold değerine yaklaşıp yaklaşmadığı ve zaman içinde ne kadar hızlı değiştiğidir.
NVMe diskte Percentage Used %100 olursa ne olur?
Disk hemen bozulmaz; üreticinin öngördüğü yazma ömrünün dolduğunu gösterir. Bu noktadan sonra arıza olasılığı artar ve garanti çoğunlukla biter. Üretim sunucusunda değer %80'i geçtiğinde değişim planlayın, %100'e ulaşmadan diski değiştirin.
SSD'ye ne kadar veri yazıldığını nasıl hesaplarım?
NVMe smart log çıktısındaki Data Units Written değerini 512.000 ile çarpın; sonuç bayt cinsinden yazılan veridir. Örneğin 412.663.718 birim yaklaşık 211 TB eder. Bu değeri diskin TBW değeriyle karşılaştırarak tüketilen ve kalan yazma ömrünü bulursunuz.
ESXi datastore dolarsa ne olur?
Yazma yapmak isteyen sanal makineler duraklatılır ve Host Client'ta yer kalmadığını bildiren bir soru çıkar. Bunu önlemek için doluluğu %85'in altında tutun, eski snapshot'ları Snapshot Manager ile silin, Provisioned değerini izleyin ve gerekirse sanal makineleri başka bir datastore'a taşıyın.


