Predictive ML ve Canlı Geçişle Azure Sanal Makine Esnekliğini Geliştirme
İş yüklerinizi Azure’da güvenilir bir şekilde çalıştırabilmesi taahhüt edilmektedir. Güvenilirliği optimize etmek için büyük yatırım yapılan alanlardan biri, olası hataları tahmin etmek ve proaktif olarak hafifletmek için makine öğrenimi ve canlı geçiş kombinasyonunu kullanmaktır.
2018’in başından bu yana Azure, donanım hataları gibi çeşitli hata senaryolarının yanı sıra raf bakımı ve yazılım / BIOS güncellemeleri gibi düzenli filo işlemlerine yanıt olarak canlı geçişi kullanıyor. Arızaları ele almak için ilk kez canlı göç kullanılması, arızaların kullanılabilirlik üzerindeki etkisini yüzde 50 azaltılmasını sağladı. Canlı göçe daha da itmek için, iyi tahmin sinyallerine dayanarak bu yeteneklerin proaktif kullanımına bakması gerekmektedir. Derin filo telemetrisi kullanarak, makine öğrenimi (ML) tabanlı hata tahminleri etkinleştirildi ve bunları disk hataları, IO gecikmesi ve CPU frekans anormallikleri dahil olmak üzere çeşitli donanım hatası durumları için otomatik canlı geçişe başladı.
Arızaları ortaya çıkmadan önce yüksek derecede doğrulukla tahmin eden ML modellerioluşturmak için Microsoft Research (MSR) ile ortaklık kuruldu. Sonuç olarak, herhangi bir arıza belirtisi göstermeden önce iş yüklerini “risk altındaki” makinelerden geçirebilmektedir. Bu, Azure’da çalışan VM’lerin temel donanımdan daha güvenilir olabileceği anlamına gelir.
Sanal makine perspektifinden bakıldığında, canlı geçişin minimum etkisi olmalı ve aslında hiçbir müşteri sanal makinelerinin canlı olarak taşınmasından kaynaklanan herhangi bir sorun bildirmemektedirler. VM durumu ve tüm ağ bağlantıları canlı geçiş sırasında korunur. Canlı geçişin son aşamasında, VM’ler birkaç saniye duraklatılır ve yeni ana bilgisayarlarına taşınır. Performansa duyarlı bazı iş yükleri de birkaç dakika içinde VM duraklamasına yol açan hafif bir bozulma fark edebilir.
Başlangıçta, ML modelleri, donanım hatalarının en önemli sürücüsü olan disk hatalarını tahmin etmeye odaklanmıştır. Azure kadar geniş bir ortamda disk hatalarını tahmin etmek karmaşıktır ve başarılı olmak için birçok zorluğun üstesinden gelinmelidir. Disk tahmin modeli şunları dikkate almak zorundadır:
- Çok çeşitli sağlık sinyalleri: Bazı örnekler konuk VM performans düşüşünü, ana bilgisayar işletim sistemi davranışını ve disk telemetrisini içerir.
- Farklı müşteri iş yükleri: Farklı iş yükleri farklı disk hataları belirtileri gösterir. Disk yoğun iş yükleri, erken bir belirti gözlemlendikten kısa bir süre sonra disk arızasının gerçekleştiğini görürken, nispeten daha az disk yoğun iş yüklerine sahip bir düğüm bunu birkaç hafta veya ay boyunca görmeyebilir.
- Farklı disk üreticileri: Disklerin davranış ve arıza kalıpları üreticiden üreticiye ve hatta modelden modele değişir.
- Dengesiz arıza oranları: Genel olarak, 10.000 düğümden sadece 1’i disk hatası belirtileri gösterir. Klasik makine öğrenimi yaklaşımları bu dengesizlikleri iyi ele almaz.
Bu zorlukların üstesinden gelinmesi, hem sinyalleri toplamada bütünsel hem de yanlış pozitiflere direnecek kadar esnek bir yaklaşım tasarlamasını gerektirdi. İlk olarak telemetriyi hem sistem hem de disk düzeyinde kullanıldı. Sistem düzeyi olaylar Ana Bilgisayar IO performans sayaçlarını ve sistem olaylarını içerir. Disk seviyesi sinyalleri, S.M.A.R.T verilerinden (standart bir disk telemetri veri formatı) yararlanır. Heterojen sinyallerden öğrenmek için kapsamlı özellik mühendisliği yaklaşımlarından yararlanılmaktadır.
İkinci olarak, sorunu bir sınıflandırma problemi yerine bir sıralama problemi olarak ele alındı. Disk arızası olasılıklarını sıraladıktan sonra, en yüksek başarısızlık olasılığı olan en iyi N diskleri tanımlamak için bir optimizasyon modeli kullanıldı (N, tahmini optimum maliyet / fayda dengesi ile belirlenir).
Üçüncüsü, sinyallerin heterojenitesinin yanı sıra bunların korelasyonunu hesaba katarak sıralama yaklaşımını özelleştirmek zorunda kalındı, bu da daha az karmaşık model eğitimi ve validasyon yaklaşımlarını kullanılamasını sağladı.
Yüksek düzeyde, canlı taşıma üç ana aşamadan oluşur: taşıma öncesi, göz atma ve karartma. Geçiş öncesi aşamasında, canlı geçiş orkestratörü en iyi hedef düğümü seçer, VM yapılandırmalarını dışa aktarır ve yetkilendirmeyi ayarlar. Bu aşamada VM, kullanılabilirlik veya performans üzerinde hiçbir etkisi olmadan kaynak düğüm üzerinde çalışmaya devam eder. Sonraki, bellek ve disk durumunun kaynak düğümden hedef düğüme aktarıldığı tarama aşamasıdır. Bu aşamada, VM hala çalışıyor, ancak yapılan ek iş nedeniyle performansta küçük bir bozulma olabilir.
Araştırmanın uzunluğu VM boyutuna (özellikle bellek ve disk) ve belleğin değişme hızına bağlıdır. Tipik olarak dakika cinsindendir – en yaygın VM boyutları için, tarama 1-30 dakika arasında değişir. Canlı göçün son aşaması karartma aşamasıdır. Tarama aşaması sona erdiğinde, VM hem kaynak hem de hedef düğümlerde askıya alınır.
Azure canlı geçiş aracısı, hedef VM’yi başlatmadan önce ek Azure’a özgü durum bilgilerini aktarır. Karartmanın uzunluğu, VM duraklatıldıktan sonra aktarılacak kalan VM durumu miktarına bağlıdır.