VMware NSX-V to NSX-T Migration: Karşılaştıklarım ve Yaşadığım Sorunlar
Merhaba arkadaşlar;
Bu yazımda sizlere sanallaştırma ortamımda bulunan NSX-V platformumu NSX-T ye migrate ederken yaşadığım sorunları ve nasıl çözümler ürettiğimi anlatacağım.
Migrate işlemine niçin gerek duydum?
2014 yılında VMware Konteyner ve bulut pazarının hızla büyüdüğünü gördü ve hem fiziksel hem de sanal iş yüklerini bir arada destekleyebilecek bir alt yapı oluşturmaya karar verdi. 2017 yılında da NSX-T bu kapsamda geliştirilip piyasaya sürüldü. Bu artık NSX-V için kötü haberdi. VMware artık NSX-V için yeni geliştirmeler yapmayacak, sadece güncelleme desteği verilecekti. Bildiğiniz üzere 16 Ocak 2022 tarihi itibari ile de VMware, NSX-V için genel desteği sonlandırdı. Yani artık yeni güncelleme ve yamalar yayınlanmayacak. Eski kurulmuş olan ortamlar tabi ki çalışmaya devam edecek, yeni kurulumlar yapılabilecek ama güvenlik güncellemeleri bile yayınlanmayacağı için ortamınızda güvenlik açıkları oluşmaya başlayacaktır.
Bknz: https://kb.vmware.com/s/article/85706
Şimdiye kadar güvenlik sorunlarından bahsetsem de gelişen teknoloji ve değişen gereksinimlerden dolayı da ortamımızda büyük değişiklikler yapmamız gerekmeye başlamıştı. Örneğin yapımızda load balancer olarak Edge üzerindeki load balancer’ı kullanıyorduk. Başlarda evet gereksinimlerimizi karşılasa da gelecekte darboğaz yaşamaya başlayacağımız aşikardı. Arkada da geleneksel yapıda api sunucularımız bulunuyordu. Bunlar da artan iş yükleri ardından sürekli bakım ve ölçeklendirme gerektirecekti. Load Balancer için F5 mi satın almalıydık? Bu işin kolay tarafıydı ama yeni bir üretici ve gelenekleriyle uğraşmak mı? Donanım bağımlı olmak ve bakım masrafları ödemek mi? İşte bu kapsamda NSX-T ile kullanılabilen AVI Load Balancer (NSX-T Advanced Load Balancer) ve ESXI 7 ile tümleşik olarak hayatımıza giren VMware Tanzu dikkatimizi çekmeye başladı. AVI SE’ları Active/Active çalıştırıp arkasına da tanzu cluster kurduğumuzda istediğimiz yapıya ulaşacağımıza inanmaya başladık ve yola koyulduk.
Yaşadığım Sorunlar
Her zaman olduğu gibi yapacağım işlemler gayet basit görünüyordu. Basitçe anlatmam gerekirse öncelikle 3 adet NSX-T controller ile NSX-T ortamı oluşturacak, cli aracılığı ile migration coordinator servisi başlatılacak, Ortamımda Logical Switch ve edge firewalllar bulunduğu için fixed topology ile migrate edecektim ve NSX-T ortamına geçiş sağlamış olacaktım. Bir işin hiç kağıt üzerinde olduğu kadar kolay olduğunu gördünüz mü? Hayır 🙂
Hata 1:
En büyük sorun daha ilk adımda karşıma çıktı. Migration coordinator’ü çalıştırıp import configration der demez hatayla karşılaştım. Bu hata beni 3 4 ay geriye attı. Çünkü çözümü yoktu. Hata resmen “bir hata ile karşılaşıldı” şeklinde bir hataydı. Peki hata neydi?
Config translation failed [Reason: [TOPOLOGY] Can not proceed with migration: Unsupported topology found with depth 1.]
Fixed Topology migrate yapmak istediğimde bu hatayı veriyordu. Ne yapmam gerketiği hakkında bilgim yoktu çünkü bir açıklama yoktu. Google da aradım, taradım ve bir sonuca ulaşamadım. Ssh ile bağlandım logların tamamını inceledim ve sadece tüm işlem ilerlerken üstteki hata dışında bir log bulamadım. Tanıdığım tüm arkadaşlarıma sordum ama hiç bir fikirleri yoktu. Çünkü ortamımda Logical Switchler, Edgeler ve DFW kurallarındna başka bir şey yoktu. Her şey best practicelere göre kurulmuştu. Hatta VMware hands on labs’a bağlanıp migration labına bağlandım, haliyle orada hiç bir sorun yoktu. Tüm yapıyı kendi yapımla karşılaştırdım. Hiç bir fark yoktu. Orada Edge’ler üzerinde Load Balancerlar açtım, arkalarına kendi yapımdaki gibi yapılar oluşturdum ama ne yaparsam yapayım bende aldığım hatayı alamadım. Sinir bozucu şekilde sürekli başarılı oluyordu. Sonuç olarak takvimimin gerisinde kalmıştım. Ben de test ortamı kurmaya karar verdim. Fiziksel sunucular ayarladım. Tamamen sıfırdan yapımın kopyasını oluşturdum. NSX-V kurdum. LS ve Edgeler oluşturdum. Yapımı yine tamamen VMware hands on labs’taki gibi kurdum. Peki sonuç neydi? yine “Depth 1” hatası. Bir bakıma sevinmiştim çünkü hatayla karşılaşmasam o hatayı almak için daha çok uğraşabilirdim. İlk önce LS’leri sildim sorun düzelmedi. DFW kurallarını sildim düzelmedi. Çaresizlikten IP Set’leri Security Groupları vs sildim yine düzelmedi. Edge’leri silmeyi en sona bıraktım. Çünkü benim için çok önemliydiler ve bu kadar önemli oldukları için kesin onlardan çıkacak hata diyordum.
Edge ile Load Balancer oluşturmanın en son adımından itibaren geri gelerek yapıyı silmeye başladım. Virtual Service’leri sildim, Poolları sildim; her bir adımdan sonra tekrar migrate denedim. Ama hep aynı hata “Depth 1”. Defalarca denedikten sonra “Bu da olmazsa artık hiç olmasın” diyerek edge’yi sildim ve baktım ki OLDU HATA VERMEDİ! Tüm yapımda tek sorun edgelerdi. Tüm yapıyı tekrar kurdum ve edgeyi siler silmez import işlemi başarılı oluyordu. Çok sevinmiştim ama bi yandan da Edge’ler olmazsa ne yaparım? diyordum.
Hands on labs’a giriş yaptım orada her şeyi tekrar denedim ama yine hata almıyordum orada. Peki benim yapımdaki sorun neydi? Hala bilmiyorum. Edge’i oluşturmam hata almama yetiyordu. Olay versiyon uyumsuzluğu da değildi tabi ki. Araştırmaya başladım ama yine çözüm bulamadım. Herkes Edgelerle birlikte yapısını migrate edebiliyorken ben edemiyordum. Bir sürü anlatım ve video inceledim. Kimse sorun yaşamıyordum.
Ben de artık daha fazla zaman kaybetmek istemedim. Bu şekilde ne yapabilirim diye düşünmeye ve bakınmaya başladım. Birden aklıma eskiden izlediğim videolardaki Lift and Shift yöntemi aklıma geldi. Benim için o kadar önemsiz olan o bilgiler altın değerinde bilgiye dönüştü.
Lift and Shift modelinde ne mi yapılıyor? Yapınızdan bi miktar host ayırıp yeni cluster kuruyorsunuz. O cluster da NSX-V kurulumu yapmıyorsunuz. Migrate yaparken sadece Distributed Firewall kurallarını migrate ediyorsunuz. En son yeni oluşturduğunuz cluster’a NSX-T kurulumu yapıyorsunuz ve VM’lerinizi o cluster’a migrate ediyorsunuz. Boşalan hostları da NSX-T cluster’ınıza ekledikçe NSX-V den ufak ufak kurtuluyorsunuz. Logical Switchlerdeki Makinelerinizi de Overlay Segmentlere aktardıkça en son edge’ler kalıyor.
Müjde! NSX-T ye göç tamamlandı!
Hata 2:
Evet Depth 1 hatasına çözüm bulmuştum ama ayırdığım hostlara NSX-T kurulumu yaparken bir de ne göreyim? Hostların bootbank partitionları dolu!
Failed to install software on host. Failed to install software on host. xxxxx.xxxxx.local : java.rmi.RemoteException: [InstallationError] The pending transaction requires 250 MB free space, however the maximum supported size is 239 MB. Please refer to the log file for more details
NSX-T kurulumu sırasında yukarıdaki hatayı alıyordum. Nedenini araştırmaya başladım. Sunucularım HPE sunucular üzerinde ESXi 6.7 kurulu hostlardı. Evet sorunum buydu. Custum iso kurulmayan sunucularda sorun yaşamıyordum çünkü HPE bootbank partitionlarını tamamen driverlar ile doldurmuştu. Ne yapabilirim diye bakınmaya başlamışken gereksiz driverları silmeyi önerdiklerini gördüm. İlgili KB. Ama hangi driveri silmeliyim? Hangisi ne işe yarıyor diye düşünmeye başladım. Silmeye başladım ama hep KB boyutunda olduğu için bir türlü yeterli boş alanı ayarlayamadım. Daha ne yapabilirim diye düşünmeye başladım. Araştırmam sırasında ESXi 7 sürümüyle birlikte bootbank partitionlar birleştirilmiş ve boyutu büyütülmüştü! İlgili Vmware Blogu. Zaten yapımı tanzu ve avi için 7 versiyonuna geçirecektim. Hemen test ortamımı 7’ye upgrade ettim. Host ve vCenter’ım artık 7 versiyonuydu. Hosta ssh ile bağlandığımda bootbank partition 4 GB’ye yükseltilmişti. Hemen ilk olarak production ortamımdaki vCenter’ımı ve ardından hostlarımı 7 versiyonuna geçirdim ve işlemlerime tekrara başladım.
Sonuç:
Sonunda vCenter 7 ve ESXi 7 ortamında NSX-T sahibi olmuştum. Şu an ortamımda 3 Cluster NSX-T, 1 Cluster’da NSX-V olarak çalışıyor. Tabi ki bu çok kısa süreli ve geçici bir durum. Çünkü LB’ler hala NSX-V’de çalışıyor. Bir kaç gün içerisinde onları da AVI Load Balancer’lara geçirdikten sonra NSX-V ortamımdan tamamen kaldırılacak.
Migrate sırasında yaşadığım en büyük sorunlar bunlardı. İkinci sorun çokta önemli olmasa da birinci sorun benim için baya zorlu bi süreçti. Umarım bu yazım başkalarına da yardımcı olur.