Başlangıç > VMware > 198: ESXi 6.0, WSFC ve vMotion çözümü

198: ESXi 6.0, WSFC ve vMotion çözümü

Haziran ayı içerisinde, ESXi 6.0 sunucular üzerinde konumlandırdığım bir Windows 2012 R2 + SQL Server kümesinde vMotion yaparken SQL servislerinin fail olması ile ilgili bir yazı yazmış ve problemin bir PR (persistent reservation) sorunu olduğundan bahsetmiştim, buradan erişebilirsiniz. Ağustos ayı başında çıkan “ESXi 6.0 Patch 3” ile bu problemin adreslendiğini görmek ise beni fazlasıyla mutlu etti. Patch 3 içerisinde gelen kritik bugfix detaylarına buradan ulaşabilirsiniz. Ancak beni ilgilendiren madde aşağıdaki madde oldu;

When the Path Selection Policy is set to Round Robin, performing vMotion of active node results in the SQL database to become inaccessible. Attempts of writes to the database will fail. The cluster resources will appear failed. Also, the NTFS error 140 and the cluster event ID 1069 are registered.

Elbette ilk iş sunucuları güncelledim ve vMotion sonrasında ne SQL hatası, ne NTFS 140 hatası ne de vmkernel logları içerisinde problem teşkil edebilecek SCSI Sense Code gördüm. SCSI kodlarından geçen yazıda kısaca bahsetmiştim, konu da hazır vMotion noktasına gelmişken, vMotion operasyonlarınızın sağlık durumunu ve loglamasının nasıl yapıldığına yer verip, bu yazıyı bağlamak niyetindeyim.

Uçtan uca bir vMotion operasyonunu ele aldığımızda, aslında sanal sunucunun sağlığı ile yakından alakalı, göz önünde bulundurmamız gereken iki adet kritik değer var, vMotion trafiğinin bandwidth’i ve sanal sunucunun stun süresi, yani cevap veremediği süre. Kullanılabilir bandwidth ne kadar yüksek olursa, stun süresi o kadar düşük olacaktır. 10G interface kullanmak, jumbo frame veya multi-nic vmotion yapılanmaları bize bunu sağlayacaktır. Stun süresini etkileyen bir diğer parametre de, precopy (ilk bellek bloklarının kopyalanması) sonrası ne kadar kirli bellek kaldığının miktarıdır. Bilindiği gibi, vmkernel precopy sonrası bir hesaplama yapar, eğer gözlemlediği bandwidth ile, kalan kirli bellek bloklarını 500ms ‘nin altında bir sürede taşıyabileceğini hesaplar ise, sanal sunucuyu dondurur (stun) ve vMotion işlemini gerçekleştirir. Eğer isterseniz 500ms değerini Migrate.PreCopySwitchoverTimeGoal parametresi ile değiştirebilirsiniz. Ancak yanlış anlaşılmasın, burada her vMotion operasyonunun 500ms altında tamamlanacağı garanti edilmez, bu sadece precopy esnasında yapılmış bir hesaplamadır. Sunucu dondurulup kopyalama başladığında, değişen network koşulları operasyonun daha uzun sürmesine ve hatta sanal sunucunun saniye mertebesinde stun konumunda kalmasına sebebiyet verebilir.

Bahsettiğim iki parametrenin sayısal takibinin en kolay yolu vRealize Log Insight ürünü ile takip etmektir. Hazır gelen dashboard’lar içerisinde vMotion’a özel bir dashboard bulunmaktadır ve vMotion operasyonlarının detaylarına kolay bir şekilde ulaşabilirsiniz (süreler ms cinsindedir).

vmotion-1

Eğer bir şekilde ortamınızda vRealize Log Insight yok ise, ESXi sunucularının log dosyalarında biraz efor ile benzer bilgilere ulaşabilirsiniz. ESXi 6.0 üzerinde vMotion detaylarına ulaşabileceğiniz log dosyaları; vmware.log, vmkernel.log ve vpxa.log dosyalarıdır.

Öncelikle yapılan vmotion operasyonunun id’si işinize yarayacaktır çünkü tüm loglar bu id ile loglanır. Böylelikle farklı log dosyalarında bu id aracılığı ile aynı vmotion operasyonunu izlediğinizden emin olursunuz. Bu id’yi sanal sunucunun vmware.log dosyaları içerisinden alabilirsiniz.

[root@esx02:/vmfs/volumes/…./VM01] cat vmware-272.log | grep “migration id”
Migrate_Open: Restoring from <192.168.0.15> with migration id 1471495441309585

Bu noktadan sonra, geri kalan log dosyaları içerisinde operasyon ile ilgili detaylı bilgilere ulaşabilirsiniz.

Kaynak ESXi Sunucusu:

[root@esx03:/var/log] cat vmkernel.log | grep 1471495441309585
Migrate: vm 822434: 3385: Setting VMOTION info: Source ts = 1471495441309585, src ip = <192.168.0.15> dest ip = <192.168.0.13> Dest wid = 840083 using SHARED swap
MigrateNet: 1468: 1471495441309585 S: Successfully bound connection to vmknic ‘192.168.0.15’
MigrateNet: 1468: 1471495441309585 S: Successfully bound connection to vmknic ‘192.168.0.15’
VMotionUtil: 3995: 1471495441309585 S: Stream connection 1 added.
MigrateNet: 1468: 1471495441309585 S: Successfully bound connection to vmknic ‘192.168.1.15’
VMotionUtil: 3995: 1471495441309585 S: Stream connection 2 added.
VMotion: 4693: 1471495441309585 S: Stopping pre-copy: only 45003 pages left to send, which can be sent within the switchover time goal of 0.500 seconds (network bandwidth ~1719.506 MB/s, 163513% t2d)
VMotionSend: 4161: 1471495441309585 S: Sent all modified pages to destination (network bandwidth ~1846.259 MB/s)
VMotionUtil: 6170: 1471495441309585 S: Socket 0x430798b66780 rcvMigFree pending: 90576/90648 snd 0 rcv

Hedef ESXi Sunucusu:

[root@esx02:/vmfs/volumes/…./VM01] cat /var/log/vmkernel.log | grep 1471495441309585
Migrate: vm 840083: 3385: Setting VMOTION info: Dest ts = 1471495441309585, src ip = <192.168.0.15> dest ip = <192.168.0.13> Dest wid = 0 using SHARED swap
MigrateNet: 1468: 1471495441309585 D: Successfully bound connection to vmknic ‘192.168.0.13’
VMotionUtil: 3995: 1471495441309585 D: Stream connection 1 added.
VMotionUtil: 3995: 1471495441309585 D: Stream connection 2 added.
VMotionRecv: 659: 1471495441309585 D: Estimated network bandwidth 1719.492 MB/s during pre-copy
VMotionRecv: 2493: 1471495441309585 D: DONE paging in
VMotionRecv: 2501: 1471495441309585 D: Estimated network bandwidth 1844.010 MB/s during page-in
VMotion: 6039: 1471495441309585 D: Received all changed pages.

[root@esx02:/vmfs/volumes/…./VM01] cat /var/log/vpxa.log | grep 1471495441309585
[MIGRATE] (1471495441309585) PrepareDestinationEx start
[MIGRATE] (1471495441309585) srcIp 192.168.0.15
[MIGRATE] (1471495441309585) dstIp 192.168.0.13
[MIGRATE] (1471495441309585) srcLoggingIp
[MIGRATE] (1471495441309585) dstLoggingIp
[MIGRATE] (1471495441309585) PrepareDestinationEx finish
[MIGRATE] (1471495441309585) InitiateDestination start
[MIGRATE] (1471495441309585) dstConfigPath ds:///vmfs/volumes/…./VM01/VM01.vmx
[MIGRATE] (1471495441309585) localConfigPath /vmfs/volumes/…./VM01/VM01.vmx
[MIGRATE] (1471495441309585) immigrating VM at path /vmfs/volumes/…./VM01/VM01.vmx has vmid 12
[MIGRATE] (1471495441309585) dstId 840083
[MIGRATE] (1471495441309585) InitiateDestination finish
[MIGRATE] (1471495441309585) tracking progress at destination…
[MIGRATE] (1471495441309585) finished tracking
[MIGRATE] (1471495441309585) getting/awaiting vmid
[MIGRATE] (1471495441309585) vmIdAcquireTimeout:: 60
[MIGRATE] (1471495441309585) vmid 12
[MIGRATE] (1471495441309585) vmotion result has downtime value 459754
[MIGRATE] (1471495441309585) CompleteDestination start
[MIGRATE] (1471495441309585) VM present

Son olarak benzer şekilde hostd.log dosyası içerisinde de benzer sorguyu yapabilirsiniz, burada operasyonun detaylı içeriği değil, task ile ilgili yüzeysel bir takım bilgilere ulaşabilirsiniz (hangi kullanıcı başlattı, hangi parametreler ile başlattı, başarılı tamamlandı mı gibi).

Kategoriler:VMware Etiketler:
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s

%d blogcu bunu beğendi: