USB üzerinden bağlı APC UPS tarafından tetiklenen VMware ESXi kapatma


18

APC UPS ile güçlendirilecekleri uzak ofislere bir grup ESXi 5.1 sunucusu gönderiyorum.

UPS'in bağlı sunucunun kapatılmasını tetiklemesini istiyorum - daha sonra üzerinde barındırılan VM'lerin kapatılması / askıya alınmasına dikkat etmek için ESXi yapılandırmasına güvenirim.

APC'nin PowerChute Ağ Kapatmalarını kullanarak belgelenmiş bir çözümü olduğunu görebiliyorum , ancak bu her ofis için fazladan bir sunucu kurmayı içerir ve her UPS'de ağ kartları gerektirir. Genellikle UPS'i bir ağ kartı olmadan kullanıyoruz (örneğin Back-UPS Pro) - bir USB konektörüyle birlikte gelirler ve ofislerimizin bulunduğu yerlerde kolayca bulunabilirler.

Bir UPS'i USB üzerinden bir ESXi ana bilgisayarına nasıl bağlayabilirim, ardından ESXi'nin bir elektrik kesintisi algılamasını ve ardından buna göre hareket etmesini nasıl sağlayabilirim? Bunu yapmayı başaran var mı?


1
Ana makine kapatma yoluyla VM'lerin kapatma işlemini zamanladınız mı? Pil bu süre için yeterince uzun süre dayanabilir mi?
ewwhite

Bunu işaret ettiğiniz için teşekkürler. Henüz değil - bu aşamada sadece bir Etki Alanı Denetleyicisi çalıştırmak için ESXi sunucularını gönderiyorum, ancak kaynağı bir kez oluşturduktan sonra, zamanlamanın değişebileceği birkaç sunucu daha ekleyeceğime eminim.
dunxd

Kapatma politikası varsayılan olarak oldukça uzundur. Ama dürüst olmak gerekirse, ESXi ana bilgisayarlarımda veya kümelerimde UPS kapatmayı çalıştırmıyorum. Karşı sezgisel görünüyor, ama hiç bir zaman sorun olmadı.
ewwhite

Neden o zaman ESXi ana makinelerinizde UPS bulundurun? Elektrik kesintisi veya pilin bitmesi nedeniyle aynı sonucu verirseniz aynı sonucu alırsınız.
dunxd

Kısa süreli kesintiler için. Ancak daha büyük sitelerimde, VMWare kümesi, depolama ve ağ iletişimi için 2-4 saatlik UPS gücüm var.
ewwhite

Yanıtlar:


5

APC'ye göre, bu mümkün değildir ve Powerchute Network'ü kapatmanız gerekir. Bunu USB ile birkaç kez denedik ve çözüm bulamadık.

VMWare burada APC onaylı çözümü kullanma hakkında bilgi sahibidir.

Ayrıca SmartUPS'un daha iyi bir seçim olacağını düşünürsünüz ve ağ kartına sığabilirsiniz. Doğal olarak daha fazla para ama sunucularınız hiç önemli değilse, bu maliyet buna değer olmalıdır. Ayrıca, uzak bir sitede yararlı olabilecek daha fazla izleme ve uyarı verir. Ayrıca, tüm VM'lerin ana bilgisayarı temiz bir şekilde kapatıp kapatması için yeterli çalışma zamanı sağlamalısınız.


1
Bu, her iki tedarikçi tarafından da desteklenen en mantıklı cevap gibi görünüyor. Maalesef, VMware'in bunu doğal olarak yapan ESX / ESXi'ye bir şey inşa etmeyi düşünmediği için. Ağ çözümü, en az bir ağ anahtarının UPS tarafından da çalıştırılmasını gerektirir.
dunxd

2
UPS üzerinden ağ anahtarlarına güç vermemek çok mantıklı olmaz ... çok az corrent tüketirler ve herhangi bir ağ işlemi için kritik öneme sahiptir.
Massimo

21

Evet mümkün. İşte benzer kurulumumun detayları.

Donanım yapılandırması: ESXi 5.1 Ana Bilgisayarına USB yoluyla bağlı APC Smart-UPS 1500. Bu ESXi ana bilgisayarında çalışan bir Linux sanal makinesi. UPS, bu VM'ye ESXi USB geçiş seçeneği kullanılarak bağlanır.

Yazılım yapılandırması: VM'de çalışan NUT (Network UPS Tools) master ve ESXi ana bilgisayarında çalışan yerel ESXi NUT slave.

Kapatma mantığı: VM, UPS ile USB üzerinden iletişimden sorumlu olan UPS sürücüsü usbhid-up'larını çalıştırıyor . UPSD usbhid-up sürücü ve monitör UPS devlet yoluyla UPS'e süreç bağlanır. UPSMON için aynı makine bağladığı çalışan ana proses UPSD ve ustalar kapatma. ESXi ana bilgisayarı, dahili VM üzerinden aynı VM upsd'ye de bağlanan upmon'un 2. örneğini çalıştırıyor .

Elektrik kesintisinde aşağıdaki sıralama gerçekleşir:

  1. Usbhid-up üzerinden UPS güç kesintisi hakkında upsd raporlar.
  2. (isteğe bağlı, Düşük Pil yerine birkaç dakika içinde kapatmak istiyorsanız yararlıdır) VM'de artış 5 dakika zamanlayıcıyı başlatır . Güç geri geldiğinde zamanlayıcı durdurulur.
  3. Zamanlayıcı patladığında veya UPS Düşük Akü bildirdiğinde, upmon FSD (zorunlu kapatma) bayrağını upsd'ye yükseltir.
  4. Bağımsız bir NUT yapılandırmasında FSD bayrağı makineyi kapatır. Ancak burada kapatma komutu "Şimdi kapatmalıyım ama bunun yerine ana bilgisayarı bekliyorum" gibi basit bir günlük kaydı ile değiştirildi. Ve hiçbir şey yapmaz.
  5. FSD bayrağı ESXi ana bilgisayarı kapatmayı başlatan ESXi upmonu tarafından da okunur.
  6. ESXi ana makinesi tüm sanal makineleri tek tek kapatır. Önemli olan, upsd'yi çalıştıran VM'nin en son kapatılması gerektiğidir (ESXi başlatma / kapatma dizisi yapılandırmasını kullanarak).
  7. Önemli: Bu VM'de vmware araçları yüklü olmalıdır. Ana bilgisayardan konuk kapatma komutunu aldığında, vmware-tools kapatma komut dosyası başlatılır. Bu komut dosyası / etc / killpower bayrağını denetler . Bayrak yoksa, hiçbir şey yapmaz (bu, UPS olayı değil, kullanıcının etkinleştirdiği linux kapatma anlamına gelir). Ancak bayrak varsa (FSD etkin), bu komut dosyası UPS'e gecikmeli güç kapatma komutunu gönderir (örneğin, 3 dakika içinde).
  8. Vmware-tools betiğini çalıştırdıktan sonra konuk VM kapanır.
  9. ESXi son VM güç durumunu görür ve kendi kendine iner (şu anda çalışan başka bir makine olmadığı için yaklaşık 1 dakika sürer).
  10. Kalan 2 dakika içinde UPS gücü keser.
  11. Güç geri yüklendiğinde, ESXi başlar ve tüm VM'leri çalıştırır. Önce UPS izleme makinesi çalıştırılmalıdır (kapatma sırası ile aynı yapılandırma).

İndirilenler:

Linux için NUT, paketten yüklenebilir.

ESXi sunucusu için yerel NUT istemcisi bu sayfadaki son bağlantı kullanılarak indirilebilir: http://www.networkupstools.org/download.html

Bazı komut dosyalarım ve conf dosyalarım burada (yalnızca değiştirilen satırlar gösteriliyor): http://pastebin.com/KkEeanK1

Notlar:

Tabii ki daha fazla ayrıntı var ve bu çalışmayı olması gerektiği gibi yapmam biraz zaman aldı. Ama şimdi çok güzel bir performans sergiliyor. Bu sistem, izleme VM'sini içeriden kapattığınızda (vmware-tools betiği çalışmadığında) veya ESXi ana bilgisayarı tarafından başlatılan VM kapatma (/ etc / killpower bayrağı olmadığından UPS yüklemesi olmadığında) veya ESXi kapatma ise (aynı). Tek önemli olan bu VM'nin ana bilgisayar önyüklemesinden sonra ASAP'yi çalıştırması ve son olarak kapatmasıdır (bu nedenle ana makine durma süresi tahmin edilebilir - yukarıda belirtildiği gibi, benim için yaklaşık 1 dakika ve her ihtimale karşı 2 dakika daha ayırıyorum).

Benim UPS izleme Linux VM aynı zamanda yedekleme depolama için Samba / NFS paylaşım sunucusu, VM'ler için NAT / DHCP sunucusu ve diğer bazı hafif hizmetler. Boşta kaldığında yaklaşık 22MHz ESXi CPU paylaşımı ve yaklaşık 10MB aktif RAM alır. NUT'un kullanılması nedeniyle, aynı UPS'den daha fazla cihaza güç verebilirsiniz ve bunların tümü zarif bir şekilde kapatılabilir. PowerChute ve / veya pahalı Ağ Monitör Kartı gerekmez.


14

Süper soru. Aslında bunu oldukça güzel yapmak mümkün - en azından bazı kurulumlarda. ESXi 5.5 ana bilgisayarlarında aşağıdaki tarifi denedim. Temel olarak, çözüm şöyle gider:

  1. ESXi ana makinenizde SSH erişimini etkinleştirin
  2. Bir Linux VM oluşturun - Ubuntu kullanıyorum. Sadece çok az bir kurulum gerekir - GUI veya başka bir şey yok.
  3. APC cihazınızı USB üzerinden ESXi ana bilgisayarına bağlayın ve Linux VM'ye geçirin.
    • VM'ye eklediğiniz USB denetleyicisinin APC aygıtının bağlı olduğu gerçek, fiziksel USB denetleyicisiyle eşleştiğinden emin olun, yani yalnızca fiziksel aygıt bir USB3 aygıtıysa bir XHCI denetleyicisi ekleyin. Uyumsuzlukların Linux USB aygıt sürücüsünde tuhaf sorunlara neden olduğu görülüyor.
    • İşler yolunda gitmiyorsa ve ctrl urb status -62içinde hatalar görüyorsanız dmesg, fiziksel denetleyicinin VM'nizdekiyle eşleşmeme olasılığı vardır. Eğer uyuyorlarsa - o zaman bu bir problemdir. Bu tür bir problemle bir kurulumum var ve bunun gerçek bir çözümü yok.
  4. apcupsdLinux VM'ye yükleyin - Ubuntu'da sudo apt-get install apcupsden son sürümü yüklemek için yapabilirsiniz . NUT projesi de güzel ama ben bir gelenekçiyim.
  5. Plink yardımcı programını kurarak sudo apt-get install putty-tools
  6. ESXI ana makinenize yaparak bağlanın plink root@<your ESXi host IP>. Bağlantıyı hemen kapatabilirsiniz. Amaç, ana bilgisayar anahtarının kaydedilmesini sağlamaktır, böylece bir komut dosyasıyla çalıştırdığımızda plink tekrar istemeyecektir
  7. Düzen /etc/apcupsd/apcupsd.confve onlar eşleşecek şekilde aşağıda öğeleri değiştirin: UPSNAME < the name you'd like your UPS to have > UPSCABLE usb UPSTYPE usb # DEVICE DIRECTIVE should be blank for USB DEVICE Ayrıca emin olun /etc/default/apcupsdvardırISCONFIGURED=yes
  8. Düzen /etc/apcupsd/apccontrolve kaydırma doshutdowndurumda. Aşağıdaki gibi görünmesini sağlayın: doshutdown) echo "UPS ${2} initiated Shutdown Sequence" | ${WALL} # Shut down indirectly by triggering the ESXi host to do the # shutdown via VMWare tools /usr/bin/plink root@< your ESXi host IP > -pw < your root pw > "/sbin/shutdown.sh && /sbin/poweroff" ;;
  9. Apcupsd komutunu kullanarak yeniden başlatın sudo service apcupsd restartve her şeyi çağırarak işe yarayıp yaramadığını görün apcaccess. Değilse, günlükleri ve dmesg'i kontrol edin
  10. Elektrik kesintisi durumunda iyi kapatılması gereken tüm VM'lerde VMWare Tools kurulu olduğundan emin olun. Ayrıca VM başlatma / kapatma listesinin bir parçası olduklarından emin olun (vSphere Web Client uygulamasında şu adrese gidin:) vCenter -> <your host> -> Manage -> Settings -> VM Startup/Shutdown. Kapatma eyleminin konuk işletim sistemini kapatmak olduğundan emin olun.

Bu şeyler çalıştıktan sonra, doshutdown8. adımdaki komut dosyası bir elektrik kesintisinde çağrılır. Bu, ESXi ana bilgisayarında, konuk işletim sistemi aracılığıyla temiz bir kapatma yapmak için ana makinenizdeki her VM'deki VMWare Araçları paketine sinyal gönderen shutdown.sh komut dosyasını çağırır. Deneyimlerime göre, APC'nin PowerChute yazılımından daha iyi çalışıyor.

VM'lerinizden bir şeyler izlemek isterseniz, ana UPS kontrol Linux VM'sine bağlanan slave apcupsd örneklerini ayarlayabilirsiniz. Slave apcupsd.conf dosyalarınızın aşağıdaki gibi bir girdisi olmalıdır: Bu
UPSTYPE net < your UPS control VM IP >:3551
gibi girişler UPSCABLEönemli değildir. Bu, apcupsd( burada bulunabilir ) Windows sürümü ile de çalışır . Dahil apctray.exeolanı kullanarak mevcut durumları kontrol edebilirsiniz .

Sanırım bunu neredeyse kapsıyor.


+1 bir cazibe gibi çalıştı. İlk kez!
Morten Kristensen

Bu cevap mükemmel çalıştı, ancak müşterimin ofisinde doshutdowndiziyi biraz değiştirmek zorunda kaldık . UPS'in bir süre sonra kapanması ve güç geri geldiğinde otomatik olarak yeniden ${APCUPSD} --killpowerbaşlaması için /usr/bin/plinkparçadan hemen önce ekledik . Ayrıca, 's değerinde olarak adım 6 yapılması gerektiğini belirterek rootyoluyla edinilen suveya sudo suancak değil sudo -s .
Andrea Lazzarotto

4

PowerChute veya UPS'in sağlığını izleyebilen ve ESXi ana bilgisayarında (örn. Apcupsd ) kapanmayı tetikleyebilen bir konuk için USB cihazı geçidi işlevini kullanmayı düşünebilirsiniz . ESXi resmi olarak sadece geçiş için çok sınırlı sayıda USB cihazını destekliyor , ancak insanlar zaten bir süredir farklı cihaz sınıflarını takıyor ve farklı başarı sınıflarından geçiyorlar, ancak APC UPS USB bir Windows VM için bu yola göre çalışıyor gibi görünüyor veya bir CentOS Linux VM'si için .


2

VSphere Management Assistant'a (vMA) buradan bakın Denemek istediğini yapmak için ofisimde kullanıyoruz, ancak Smart-UPS, Back-UPS yerine USB üzerinden bağlıyken.


APC veya vmware ile ilgili olarak belgelenmemiş bir kurulum olduğundan lütfen daha fazla ayrıntı ekleyin.
dunxd

1

Mümkün olsa (muhtemelen / genel olarak), bilgisayarın pil gücüyle otomatik olarak kapatılmasının iyi bir fikir olduğunu düşünmüyorum. Bunu yapacaksanız, o zaman en pratik amaç ve amaçlar için, muhtemelen sadece akü destekli bir UPS'in parasından tasarruf etmeli ve güç kaybının makinenizi sizin için kapatmasına izin vermelisiniz. (Verilmişse, temiz bir kapanma her zaman güç kaybına tercih edilir, ancak güç beslemesini kaybettiğinizde her şeyi otomatik olarak kapatırsanız, pil süresinin birkaç dakikadan daha uzun olması noktasında eksik gibi görünüyorsunuz. )

Bunu her zaman ele aldığım yol, güç kesildiğinde SA'ları izlemektir, böylece SA'lar sunucuları ne zaman (veya hatta) kapatmaya karar vermek için gri maddelerini kullanabilirler. Kısa bir kesinti varsa, sunucuları hiç kapatmak iyi bir fikir olmayabilir veya bazı sunucuları olabildiğince uzun süre çalışır durumda bırakmak ve yalnızca pil bitmek üzere olmadan kapatmak isteyebilirsiniz. Gerçekten bir insan için basit bir kuraldan daha uygun bir karar verme görevi gibi görünüyor.


KGK'nızı hemen kapatmayı tetikleyecek şekilde yapılandırmanız gerekmez, ancak aküler tamamen bitmeden önce kapanmasını istersiniz, özellikle çalıştığım bazı yerlerde ve gücün gittiği yerlerde daha fazla akü satın almanız gerekecektir. günlük. İnsanların elbette yer alması harika, ancak uzak bir ofiste her zaman Sistem Yöneticiniz yok.
dunxd

@dunxd İyi bir nokta - En azından bazı sunucuların kalması, cehennem ya da yüksek su kalması gereken HA ortamlarına alışkınım, bu yüzden oyunun adı güçle en iyi rasyonun nasıl seçileceğini bulmaktır (seçici olarak kapatılıyor) herkesin odağı veya kullanım durumu olmayacak şekilde mümkün olan en düşük hizmet etkisini oluşturmak için.
HopelessN00b

1

Baremetal kurulumların eski günlerinde , APC PowerChute Plus kurulum sürecimin önemli bir parçasıydı. Basit seri sinyal kablosunu ve sadece Red Hat ikili dosyalarını kullanarak , yerel olarak bağlı bir sunucuyu yönetmek için kurallar ayarlamak kolaydı. UPC pil olayları, hat güç olayları ve kapatma eylemleri için temel e-posta bildirimleri mevcuttu:

POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:

UPS on battery: Blackout 000.0 V. 

ve

POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:

Normal power restored: UPS on line.  

veya

POWERCHUTE MAIL MESSAGE
Message from PowerChute@Bonanza:

Shutdown started.  

Ayrıca neler olduğunu görmek için makul bir arayüz ...

resim açıklamasını buraya girin

Bu yazılım sonunda ticari hale geldi (veya APC web sitesine gömüldü). Benzer bir şey sağlamak için birkaç açık kaynaklı yaklaşım vardı. Ancak bunların hepsi tek VMWare ESXi ana bilgisayarlarıyla karmaşıklaşıyor.

Bu VMWare'in temel hipervizöre dahil olması gereken bir şey gibi görünüyor. Temeldir ve kullanıcılar için iyi bir koruma düzeyi sunabilir. Şu anda gördüğüm en yaygın ilaçlar, özel bir VM'ye USB geçidi, bir ağ arka plan programı yaklaşımı veya yaptığım şeyi yapıyor; otomatik veya pil kapatma yapılandırılmıyor ...

Kabul ediyorum, genellikle sistem yükünü bir saat veya daha fazla destekleyebilen bir UPS ile gidiyorum, ancak uzun süreli kesintiler gerçekleşiyor. Belki bir alternatif, birkaç düşük maliyetli veya yenilenmiş ağ arayüz kartı toplamak ve SmartUPS cihazlarını minimum olarak satın almayı planlamaktır ...


0

Aşağıdaki bağlantıya göz atın . En zarif çözüm değil, ama çok pratik, çok basit bir çözüm. Güvenlik açısından olası dezavantajlar vardır (özel ağ tasarımınıza, Ana Bilgisayarlara yüklenen misafirlere ve kullanıcıların bu misafirlere erişimine bağlı olarak, ancak bu çağrıyı yapabilirsiniz.


0

MrMajestyk çözümünü kullandım ve ssh erişimini yalnızca sss erişimiyle plsa ile rsa ortak anahtarını kullanarak değiştirdim. Apcupsd VM'sinde oluşturulan rsa anahtarı, vmware ana bilgisayarının / etc / ssh / keys-root / yetkili_anahtarlarına dahil edilmelidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.