VMware vSphere ortamlarında yüksek erişilebilirlik (HA) ve vMotion gibi gelişmiş özellikler sanal makinelerin kesintisiz çalışmasını sağlamak için kritik öneme sahiptir. Ancak bazı durumlarda bu işlemler tamamlandıktan sonra sanal makinenin sanal ağ arabirimi (vNIC) bağlantısı başarısız olabilir.

Broadcom’un bilgi tabanı makalesi (Article ID: 318972) tam olarak bu senaryoya odaklanır.

“vSphere HA failover veya vMotion işlemi sonrası, sanal makine yeniden başlatıldığında vNIC bağlantısı kopuk kalıyor ve yeniden bağlanma girişimi Failed to connect virtual device ethernetX hatasıyla sonuçlanıyor.”

Bu makalemde sorunun nedenini belirtilerini, log dosyalarındaki ipuçlarını, çözüm yollarını ve kalıcı düzeltmeleri detaylıca inceleyeceğiz.

Sorunun Belirtileri

vSphere HA veya DRS (Distributed Resource Scheduler) tarafından tetiklenen bir failover veya vMotion işlemi sonrası aşağıdaki durumlar gözlemlenir:

  • Sanal makine başarıyla başka bir host üzerinde açılır ancak vNIC bağlantısı kopuk (Disconnected) durumdadır.
  • vSphere istemcisi üzerinden vNIC’i yeniden bağlamaya çalıştığınızda hata alınır. Failed to connect virtual device ethernetX
  • Etkilenen sanal makinenin vmware.log dosyasında şu tip kayıtlar görülür: [msg.device.startdisconnected] Virtual device Ethernet2 will start disconnected. VMXNET3 user: failed to connect Ethernet2 to DV Port 197.
  • Aynı zamanda /var/run/log/vpxa.log dosyasında, aşağıdakine benzer girdiler bulunur: [VpxaMoDvs::DeletePorts] deleting port [197] but not portData file in dvs [...]

Bu loglar sanal makineye atanmış olan Distributed Virtual Switch (vDS) portlarının beklenmedik şekilde silindiğini gösterir.

Sorunun Nedeni

Broadcom’un açıklamasına göre, bu hata vSphere Distributed Switch (vDS) üzerinde meydana gelen bir race condition (eşzamanlama yarışı) sonucudur.

Daha teknik olarak:

  1. vSphere HA veya DRS, VM’i başka bir host’a taşıdıktan sonra,
    yeni host üzerinde sanal makinenin ağ arabirimini uygun bir vDS portuna bağlamaya çalışır.
  2. Aynı anda, vDS monitörü (DvsMonitor), kullanılmayan portları temizlemek için bir işlem yürütür.
  3. Bu iki işlem aynı anda gerçekleştiğinde, DvsMonitor portu “boş” olarak algılar ve siler.
  4. Sonuç olarak, vSphere HA yeniden bağlanmaya çalıştığında, o port artık mevcut değildir.
    Bu nedenle sanal makine şu hata ile karşılaşır: Failed to connect virtual device ethernetX

Bu durum özellikle büyük, yoğun DRS/HA hareketliliği olan ortamlarda daha sık görülür.

Etkilenen Sürümler

Bu hata, aşağıdaki vSphere sürümlerinde gözlemlenmiştir:

  • VMware vSphere ESXi 5.5, 6.0, 6.5, 6.7 (RTM)
  • VMware vCenter Server 5.5.x, 6.0.x, 6.5.x, 6.7.x
  • Ayrıca, vCenter Server 7.0U3 ve ESXi 7U3’te de benzer semptomlar raporlanmıştır.

Ancak Broadcom, hatanın ESXi 6.7 Update 1 (build 10302608) ile çözüldüğünü belirtmiştir.
Yani bu sürüm ve sonrası için kalıcı düzeltme (permanent fix) mevcuttur.

Log Analizi: Olayın Derin İzleri

Sorunu teşhis etmek isteyen sistem yöneticileri için log dosyalarındaki tipik işaretler şöyledir:

vmware.log içeriği

VMXNET3 user: failed to connect Ethernet2 to DV Port 197
[msg.device.startdisconnected] Virtual device Ethernet2 will start disconnected.
Vigor_MessageRevoke: message 'msg.device.startdisconnected' is revoked

Bu loglar, sanal makinenin ağ adaptörünün (örneğin Ethernet0, 1, 2) vDS portuna bağlanamadığını ve “disconnected” durumda kaldığını gösterir.

vpxa.log içeriği

[VpxaMoDvs::DeletePorts] deleting port [124] but not portData file in dvs [...]

Bu satır, vDS üzerindeki portun vCenter tarafından silindiğini, ancak VM hala o porta bağlanmaya çalıştığını kanıtlar.
Yani olay, portun zamanlamadan önce temizlenmesi (race condition) kaynaklıdır.

Çözüm: Güncelleme ve Geçici Yöntemler

1. Kalıcı Çözüm

Bu problem, ESXi 6.7 Update 1 (Build 10302608) sürümünde düzeltilmiştir.
Dolayısıyla ilk öneri:

  • Tüm ESXi host’ları en az 6.7 U1 veya daha yeni bir sürüme güncelleyin.
  • Ayrıca vCenter Server sürümünün de uyumlu olduğundan emin olun.

Bu sürümle birlikte, DvsMonitor port temizleme işlemi, HA/DRS port atama süreciyle senkronize hale getirilmiştir.

2. Geçici Çözüm (Workaround)

Eğer güncelleme hemen mümkün değilse, etkilenen sanal makinenin vNIC’ini yeniden bağlamak için şu yöntemlerden biri uygulanabilir:

Yöntem A — Port Grubu Değiştirip Geri Alma

  1. vSphere Client’ta sanal makineyi seçin.
  2. Edit Settings menüsüne gidin.
  3. vNIC için ağ bağlantısını geçici olarak başka bir port grubuna değiştirin.
    Örneğin:
    VM NetworkManagement Network
  4. Değişiklikleri kaydedin.
  5. Ardından yeniden doğru port grubuna geri dönün.
    Bu işlem, VM’in vDS üzerinde yeni bir port atamasını zorlar ve bağlantı yeniden kurulur.

Yöntem B — Cold Migration (Soğuk Taşıma)

  1. VM’i kapatın (Powered Off).
  2. Başka bir ESXi host’a cold migrate işlemiyle taşıyın.
  3. VM yeni host’ta başlatıldığında vNIC genellikle otomatik olarak yeniden bağlanır.

Sorunun Önlenmesi için Öneriler

  • vDS ve HA işlemlerini aynı anda tetiklememeye özen gösterin.
    Özellikle büyük ölçekli cluster’larda, HA yeniden başlatma işlemleri sırasında DRS veya manuel vMotion işlemlerini bekletmek faydalı olabilir.
  • vDS port kullanımı ve temizleme periyotlarını yakından izleyin.
    net-dvs komutlarıyla port atamalarını düzenli olarak kontrol edin.
  • vCenter ve ESXi sürümlerini uyumlu tutun.
    Farklı sürümler arası API zamanlamaları bu tür race condition hatalarına neden olabilir.
  • HA failover testi öncesi port grup yedekliliğini kontrol edin.
    Her host’un aynı vDS konfigürasyonuna sahip olduğundan emin olun.

Bu hata, vSphere altyapısının karmaşık ama güçlü bir özelliği olan Distributed Switch mekanizmasının zamanlama hassasiyetinden kaynaklanır.
Sorunun kendisi kalıcı bir ağ arızası değil, bir senkronizasyon hatasıdır.

ESXi 6.7 U1 veya daha yeni sürüme geçiş, bu problemi tamamen ortadan kaldırır.
Geçici çözümler ise yalnızca kısa vadeli operasyonel rahatlama sağlar.

Sonuç olarak:

  • vNIC’in “disconnected” görünmesi sistemin kararlılığını bozmaz,
  • ancak vDS port yönetimi doğru sürümde çalışmadığında bu durum tekrarlanabilir.

Güncel sürümlerle birlikte, VMware bu senaryoyu tamamen ortadan kaldırmış ve vSphere HA + vDS etkileşimini daha güvenli hale getirmiştir.

İlginizi Çekebilir