Merhaba,
Virtual Watchdog Timer Nedir? isimli bu makalemde sizlere vSphere 7 ile birlikte gelen Virtual Watchdog Timer hakkında bilgi vereceğim. Ben daha önce Watchdog Timer hakkında bilgi vermiştim. Bu yazıma aşağıdaki linkten ulaşabilirsiniz.
vSphere vs vSphere 7
vSphere 7 Yenilikleri
Kısaca bundan başlayayım. Watchdog Timer sayesinde işletim sistemi bir sebepten dolayı yanıt vermeyi durdurursa ve yazılım hataları veya farklı hatalardan dolayı sistem tekrar up duruma gelmez ise Watchdog Timer önceden bir süre kadar bekler ve sonrasında makinayı restart eder. Watchdog Timer normal şartlarda zaten kullanılan bir teknolojidir. İçerisinde bir yazılım olan her bir cihazın donanım ve diğer yapısına göre hata verme riski bulunmaktadır. Bu hatanın birden fazla sebebi vardır ancak bu hata genelde yazılımın herhangi bir bölümünde/noktasında oluşması durumunda olur. Bu bir risktir çünkü bunun oluşması durumunda uygulama cevap vermemesi durumunda sisteminiz çalışmaz duruma gelir. İşte böyle bir durumda Watchdog timer sayesinde işletim sistemi yeniden başlatılır ve böylece sistem hızlıca tekrar up duruma gelir.
Virtual Watchdog Timeri ekleyebilmeniz için virtual machinein hardware version 17 olması gerekiyor. Ayrıca Virtual Watchdog Timeri virtual machinee eklemeden önce virtual machinein power off durumda olması gerekiyor. Virtual Watchdog Timeri guest os veya BIOS veya EFI ile başlamasını sağlayabilirsiniz. Virtual Watchdog Timeri eklediğinizde BIOS, EFI methodu ile başlatılmasını sağlayabilirsiniz. Bunu seçtiğinizde, işletim sistemi boot olmadan direk başlar. Önemli bir detay 🙂
Virtual Watchdog Timer bir virutal machinee eklendiğinde, virtual machine bazında koruma sağlanır. Yani Virtual machinein başarısız olması durumunda kendi kendine kurtarılabileceği işletim sistemi tabanlı önemli bir çözüm rolüne sahiptir.
Virtual Watchdog Timeri virtual machinee eklemek için öncelikle virtual machine üzerinde sağ click Edit Settings > Add New Device > Watchdog Timer seçeneğini seçiyoruz. Watchdog Timeri eklemek için bazı gereksinimler bulunmaktadır. Bunlar;
Yukarıdaki gereksinimleri karşıdıktan sonra Watchdog Timeri ekleyebilirsiniz.
Watchdog Timer, Guest OS veya BIOS / EFI üzerinden başlatılabilir. Bununla alakalı yukarıda bilgi verdim ancak Watchdog Timeri ekledikten sonra Start With BIOS/EFI boot seçeneğini seçebiliriniz. Böylece boot işlemi kısalacaktır.
Watchdog Timer desteği eğer işletim ssiteminde bulunmuyor ise veya boot işlemi çok uzun sürer ise virtual machine sürekli olarak yeniden başlatılabilir. Bundan dolayı bu özelliği kullanırken dikkat etmek gerekiyor. Watchdog Timerin özellikle cluster çalışan database sunucularında aktif olarak kullanılacağını düşüünyorum. Umarım güzel sonuçlar alırız 🙂
seafoodplus.info
Umarım faydalı olmuştur.
İyi çalışmalar.
00votes
Makaleyi Oylamayı Unutmayın !
Watchdog mekanizmalar, çalşan ana yazlmlarn beklenmedik bir şekilde sonlanmas sonrasnda sistemin yeniden başlatlabilmesine imkan tanr.
Bu mekanizma genellikle donanm tabanl bir zamanlayc (Watchdog Timer - WDT) ile gerçekleştirilir.
Sistemin genel çalşma prensibi oldukça basittir:
Periyodik olarak zamanlaycya hayatta olduğunuzu söylediğiniz müddetçe sorun olmayacaktr. Ancak bu işlemi yapamaz hale gelirseniz (uygulamanz bir SEGFAULT ile sonlanmşsa vb.) zamanlaycnn süresi dolduğunda sistem otomatik olarak yeniden başlatlacaktr.
Buradaki yeniden başlatma işlemi kontrollü (reboot) değil, reset şeklindedir.
Watchdog haricinde görece benzer bir işlevi Linux çekirdeği içerisindeki panic handler ile de yapabildiğimizi hatrlaynz. Eğer çekirdek içerisindeki yer alan kodlarda herhangi bir kritik hata oluşmas nedeniyle tüm çekirdek çalşamaz hale gelirse, sistemin parametresi ile açlmş olmas halinde otomatik yeniden başlatma (reset) işlemi çekirdek tarafndan yaplmaktadr.
Ancak bu yöntem sadece çekirdek seviyesindeki hatalarda işe yaramaktadr. Watchdog ise kullanc kipi hatalarn da yakalamaya ve bir şeyler ters gittiğinde en azndan sisteminizi yeniden başlatabilmenize imkan tanmaktadr.
Sistemdeki watchdog donanmnn kullanm için çekirdek seviyesinde sürücü desteği sağlanmş olmaldr.
Linux çekirdeğinde watchdog donanm sürücüleri için genel bir Watchdog Driver API mevcut olup, tüm donanmlar tarafndan ayn arayüz, yetenekleri doğrultusunda sağlanr. Detaylar için seafoodplus.info belgesini inceleyebilirsiniz.
Tüm watchdog sürücülerinin en az bu modu desteklemesi beklenir, dolaysyla watchdog donanmzn desteklenmesi halinde her durumda bu çalşma yöntemini kullanabilirsiniz.
Çalşma mantğ şu şekildedir:
Uygulama katmannda aygt dosyas yazma modunda açlr
Öntanml olarak 60 saniyelik bir zamanlayc başlar
60 saniye dolmadan, bu dosyaya herhangi bir veri yazlr (tek karakter de olabilir) ve zamanlaycnn yeniden başlatlmas sağlanr
Uygulama, kendi içinde bir döngüde kalp zamannda watchdog dosyasna yeni bir veri yazamaz ise, süre dolumunda sistem yeniden başlatlr
Açk durumdaki dosyas kapatlr ise, watchdog sistemi devre dş braklr
Görüleceği üzere Unix sistemlerde hemen her şeyin dosya arayüzü ile kullanc katmanna sunumu yaklaşm burada da benimsenmiştir. Uygulamanz içerisinde yukardaki iş akşn dosya işlemleriyle kolaylkla gerçekleyebilirsiniz.
Yalnz burada dikkat edilmesi gereken husus, dosyasnn yazma modunda açlmas ile başlayan zamanlaycnn dosyann kapatlmas halinde devre dş kalyor oluşudur. lk başta önemli bir problem olarak görünmeyebilir, ancak Linux çekirdeği herhangi bir yöntemle sonlanan kullanc kipi uygulamalar için, açk halde bulunan tüm dosyalar da kapatr. Bu nedenle watchdog mekanizmasn işletmek için uygulamanzda açk halde iken uygulamanz kontrolsüz biçimde sonlanacak olursa, dosya kapatldğ için watchdog da devre dş kalacak ve beklediğiniz zamanlayc süresi dolumundaki yeniden başlatma işlemi gerçekleşmeyecektir.
Peki o halde watchdog ne işe yarayacak diye sorabilirsiniz. Endişeye mahal yok.
Bu dizayn ile temelde 3 çözüm yönteminiz bulunuyor:
Ana uygulama(lar)nz içerisinde watchdog yönetmek yerine, watchdog'u yöneten ayr bir uygulama yazmak (veya hazr bir watchdog daemon kullanmak)
Magic Close özelliği destekleniyorsa kullanmak
Çekirdek derleme sürecinde opsiyonu seçerek, sürücünüzün de desteklemesi halinde watchdog dosyasnn kapanmasyla zamanlaycnn durdurulmasn engellemek
Baz sürücüler Magic Close ad verilen bir özelliği desteklemektedir. Bu destek sayesinde, watchdog dosyas kapatlmadan önce V karakteri dosyaya yazlmaz ise, dosya kapatlsa dahi zamanlayc çalşmaya devam etmekte ve zaman dolduğunda sistemi yeniden başlatmaktadr.
Eğer özellikle watchdog zamanlaycsn durdurmak istiyorsanz, dosyay kapamadan önce V karakterini yazabilir ve sonra kapama işlemini gerçekleştirebilirsiniz.
Magic Close desteği daha rahat bir kontrol sağlyor olmasna karşn sisteminizde desteklenmiyor olmas ihtimali kuvvetle muhtemeldir. Bu özelliğin desteklenip desteklenmediğini ioctl arayüzü üzerinden opsiyonuyla sorgulayabilirsiniz. Aşağdaki örnek uygulama ile watchdog sürücünüzün Magic Close, Set Timeout ve Keep Alive Ping özelliklerini destekleyip desteklemediğini öğrenebilirsiniz:
Tüm watchdog sürücüleri, destekledikleri özellikler için ioctl arayüzü de sağlamaktadrlar.
Watchdog zamanlaycy beslemek ve yeni bir tur daha süre kazanmak için ile aşağdaki gibi bir ioctl çağrs yapabilirsiniz. 3. parametrenin ne olduğunun bir önemi yoktur:
Sürücü tarafndan desteklenmesi halinde 60 saniyelik öntanml watchdog zamanlayc değerini değiştirmek isterseniz, ile aşağdaki gibi bir ioctl çağrs yapabilirsiniz:
Benzer şekilde, zamanlaycda kalan zaman ile aşağdaki gibi sorgulayabilirsiniz:
Sistemin son defa yeniden başlatlmas işleminin watchdog yüzünden olup olmadğn ile sorgulayabilirsiniz:
Daha detayl özellikler için çekirdek içerisindeki dokümantasyonu inceleyebilirsiniz.