Saya mengirim banyak server ESXi 5.1 ke kantor jauh di mana mereka akan diberdayakan melalui APC UPS.
Saya ingin UPS memicu shutdown dari server yang terhubung - Saya kemudian akan bergantung pada konfigurasi ESXi untuk menangani shutdown / suspensi dari VM yang di-host di dalamnya.
Saya dapat melihat bahwa APC memiliki solusi yang didokumentasikan menggunakan PowerChute Network Shutdown mereka , tetapi ini melibatkan pengaturan server tambahan per kantor, dan memerlukan kartu jaringan pada setiap UPS. Kami umumnya menggunakan UPS tanpa kartu jaringan (mis. Back-UPS Pro) - mereka datang dengan konektor USB, dan mereka sudah tersedia di lokasi di mana kantor kami berada.
Bagaimana saya dapat menghubungkan UPS ke host ESXi melalui USB, kemudian ESXi mendeteksi pemadaman listrik dan kemudian bertindak sesuai? Adakah yang berhasil melakukan ini.
Jawaban:
Menurut APC, ini tidak mungkin dan Anda memerlukan pematian Powerchute Network. Kami mencoba ini beberapa kali dengan USB dan tidak menemukan solusi.
VMWare memiliki info tentang cara menggunakan solusi yang disetujui APC.
Juga akan berpikir SmartUPS akan menjadi pilihan yang lebih baik dan Anda dapat cocok dengan kartu jaringan. Secara alami lebih banyak uang tetapi jika server Anda sama sekali penting, biaya itu sepadan. Juga memberi Anda lebih banyak pemantauan dan peringatan yang mungkin berguna di situs jarak jauh. Anda juga perlu memastikan runtime yang cukup untuk semua VM untuk mematikan dan kemudian mematikan host
sumber
Iya itu mungkin. Berikut ini detail pengaturan serupa saya.
Konfigurasi perangkat keras: APC Smart-UPS 1500 terhubung ke ESXi 5.1 Host via USB. Mesin virtual Linux yang berjalan pada host ESXi ini. UPS terhubung ke VM ini menggunakan opsi USB pass ESXi.
Konfigurasi perangkat lunak: master NUT (Network UPS Tools) berjalan di VM, dan slave NUT ESXi asli berjalan pada host ESXi.
Shutdown logic: VM menjalankan usbhid-up driver UPS yang bertanggung jawab untuk komunikasi dengan UPS melalui USB. Proses upsd terhubung ke UPS melalui driver usbhid-up dan memonitor keadaan UPS. Proses master upsmon yang berjalan pada mesin yang sama terhubung ke upsd dan memulai shutdown. Host ESXi menjalankan instance upsmon ke-2 yang juga menghubungkan ke VM upsd yang sama melalui jaringan internal.
Pada kegagalan daya, urutan berikut terjadi:
Unduhan:
NUT untuk Linux dapat diinstal dari paket.
Klien NUT asli untuk server ESXi dapat diunduh menggunakan tautan terakhir di halaman ini: http://www.networkupstools.org/download.html
Beberapa skrip dan file conf saya ada di sini (hanya baris yang diubah yang ditampilkan): http://pastebin.com/KkEeanK1
Catatan:
Tentu saja ada lebih banyak detail, dan butuh beberapa waktu bagi saya untuk membuat ini berfungsi sebagaimana mestinya. Tapi sekarang kinerjanya sangat baik. Sistem ini bertanggung jawab atas kasus-kasus ketika Anda baru saja mematikan VM pemantauan dari dalam (skrip vmware-tools tidak dijalankan), atau jika host ESXi yang memulai VM shutdown (tidak ada bendera etc / killpower, jadi tidak ada muatan UPS), atau jika itu ESXi shutdown (sama). Satu-satunya yang penting adalah membuat VM ini menjalankan ASAP setelah boot host, dan mematikannya terakhir (sehingga waktu host down dapat diprediksi - seperti yang dikatakan di atas, sekitar 1 menit untuk saya dan 2 menit lagi saya cadangan untuk berjaga-jaga).
UPS saya yang memantau Linux VM juga merupakan server berbagi Samba / NFS untuk penyimpanan cadangan, server NAT / DHCP untuk VM, dan beberapa layanan ringan lainnya. Dibutuhkan sekitar 22MHz bagian ESXi CPU dan sekitar 10MB RAM aktif saat idle. Karena menggunakan NUT, Anda dapat memberi daya lebih banyak perangkat dari UPS yang sama jika diperlukan, dan semua itu dapat dimatikan dengan anggun. Tidak diperlukan PowerChute dan / atau Kartu Monitor Jaringan yang mahal.
sumber
Pertanyaan super. Sebenarnya dimungkinkan untuk melakukan ini dengan cukup baik - setidaknya pada beberapa pengaturan. Saya telah mencoba resep berikut pada sejumlah host ESXi 5.5. Pada dasarnya, solusinya seperti ini:
ctrl urb status -62
didmesg
, kemungkinan kontroler fisik tidak cocok dengan yang ada di VM Anda. Jika mereka cocok - baik maka itu masalah. Saya punya satu pengaturan dengan masalah semacam ini dan tidak ada solusi nyata untuk itu.apcupsd
di Linux VM - di Ubuntu, Anda dapat melakukannyasudo apt-get install apcupsd
untuk menginstal versi terbaru. Proyek NUT juga bagus tapi saya tradisional.sudo apt-get install putty-tools
plink root@<your ESXi host IP>
. Anda dapat segera menutup koneksi. Tujuannya adalah untuk menyimpan kunci host sehingga plink tidak akan meminta lagi ketika kita menjalankannya melalui skrip/etc/apcupsd/apcupsd.conf
dan ubah item di bawah ini agar cocok:UPSNAME < the name you'd like your UPS to have > UPSCABLE usb UPSTYPE usb # DEVICE DIRECTIVE should be blank for USB DEVICE
Pastikan juga/etc/default/apcupsd
sudahISCONFIGURED=yes
/etc/apcupsd/apccontrol
dan gulir kedoshutdown
kasing. Jadikan seperti ini: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" ;;
sudo service apcupsd restart
dan lihat apakah semuanya berfungsi dengan memohonapcaccess
. Jika tidak, periksa log dan dmesgvCenter -> <your host> -> Manage -> Settings -> VM Startup/Shutdown
. Pastikan bahwa tindakan mematikan adalah untuk mematikan OS tamu.Setelah Anda menjalankan semua hal ini,
doshutdown
skrip dari langkah 8 akan dipanggil karena listrik mati. Giliran ini mengaktifkan skrip shutdown.sh pada host ESXi, yang memberi sinyal paket VMWare Tools di setiap VM di host Anda untuk melakukan shutdown bersih melalui OS tamu. Dalam pengalaman saya, ini bekerja lebih baik daripada perangkat lunak PowerChute dari APC.Jika Anda suka memantau hal-hal dari VM Anda, Anda dapat mengatur contoh apcupsd budak pada mereka yang terhubung ke master UPS mengontrol Linux VM. File apcupsd.conf budak Anda harus memiliki entri seperti ini:
UPSTYPE net < your UPS control VM IP >:3551
Entri suka
UPSCABLE
dan sejenisnya tidak masalah dalam kasus ini. Ini berfungsi dengan versi Windowsapcupsd
(tersedia di sini ) juga. Anda dapat menggunakan yang disertakanapctray.exe
untuk memeriksa status saat ini.Cukup banyak untuk menutupinya, saya pikir.
sumber
doshutdown
urutan. Kami menambahkan${APCUPSD} --killpower
tepat sebelum/usr/bin/plink
bagian sehingga UPS mati setelah beberapa saat dan restart secara otomatis ketika daya kembali. Juga, perlu dicatat bahwa langkah 6 harus dilakukan seperti yangroot
diperoleh melaluisu
atausudo su
, tetapi tidaksudo -s
.Anda dapat mempertimbangkan untuk menggunakan fungsionalitas perangkat USB untuk tamu yang menjalankan PowerChute atau perangkat lunak lain yang dapat memantau kesehatan UPS dan mampu memicu shutdown pada host ESXi (mis. Apcupsd ). ESXi secara resmi hanya mendukung jumlah perangkat USB yang sangat terbatas untuk passthrough , tetapi orang-orang telah melampirkan dan melewati berbagai kelas perangkat untuk sementara waktu dengan keberhasilan yang berbeda-beda, tetapi USB APC UPS tampaknya bekerja sesuai dengan panduan untuk VM Windows atau yang ini untuk CentOS Linux VM .
sumber
Lihatlah vSphere Management Assistant (vMA) dari sini. Kami menggunakannya di kantor saya untuk melakukan apa yang Anda coba, namun dengan Smart-UPS terhubung melalui USB daripada Back-UPS.
sumber
Meskipun mungkin (mungkin / umumnya), saya tidak berpikir shutdown otomatis pada daya baterai adalah ide yang bagus. Jika Anda akan melakukan itu, maka untuk maksud dan tujuan yang paling praktis, Anda mungkin harus menghemat uang dari UPS yang didukung oleh baterai, dan membiarkan hilangnya daya untuk mematikan mesin Anda. (Memang, shut down yang bersih selalu lebih baik daripada kehilangan daya, tetapi Anda tampaknya kehilangan waktu baterai lebih dari beberapa menit jika Anda secara otomatis mematikan semua hal ketika Anda kehilangan pasokan daya. )
Cara saya selalu menanganinya adalah memiliki pemantauan mengingatkan SA ketika daya turun, sehingga SA dapat menggunakan materi abu-abu mereka untuk memutuskan kapan (atau bahkan jika) untuk mematikan server. Jika pemadaman singkat, mungkin sama sekali tidak mematikan server, atau Anda mungkin ingin membiarkan beberapa server tetap beroperasi selama mungkin, dan hanya mematikannya sebelum baterai hampir mati. Bagiku itu benar-benar seperti tugas pengambilan keputusan yang lebih cocok untuk manusia daripada aturan sederhana.
sumber
Di masa lalu instalasi baremetal , APC PowerChute Plus adalah bagian penting dari proses instalasi saya. Menggunakan kabel pensinyalan serial sederhana dan biner khusus Red Hat mereka , mudah untuk mengatur aturan untuk mengatur server yang terpasang secara lokal. Pemberitahuan email dasar untuk acara baterai UPC, acara saluran listrik, dan tindakan mematikan tersedia:
dan
atau
Ditambah antarmuka yang masuk akal untuk melihat apa yang terjadi ...
Perangkat lunak itu akhirnya menjadi komersial (atau dimakamkan di situs web APC). Ada beberapa pendekatan open source untuk menyediakan sesuatu yang serupa. Tapi ini semua menjadi rumit dengan host VMWare ESXi tunggal.
Sepertinya ini adalah sesuatu yang VMWare seharusnya dimasukkan ke dalam hypervisor dasar. Ini dasar dan dapat menawarkan tingkat perlindungan yang layak bagi pengguna. Solusi paling umum yang saya lihat sekarang adalah USB passthrough ke VM khusus, pendekatan daemon jaringan atau melakukan apa yang saya lakukan; tidak mengonfigurasi pematian otomatis atau baterai ...
Memang, saya biasanya menggunakan UPS yang dapat mendukung beban sistem selama satu jam atau lebih, tetapi pemadaman yang lama terjadi. Mungkin alternatifnya adalah dengan mengumpulkan beberapa kartu antarmuka jaringan berbiaya rendah atau diperbaharui dan berencana untuk membeli perangkat SmartUPS sebagai minimum ...
sumber
Lihat tautan berikut . Bukan solusi yang paling elegan, tetapi solusi yang sangat praktis, sangat mudah. Ada beberapa kemungkinan kelemahan dalam hal keamanan (tergantung pada desain jaringan khusus Anda, para tamu yang dimuat pada Host, dan akses yang dimiliki pengguna ke para tamu tersebut tetapi Anda dapat melakukan panggilan itu.
sumber
Saya menggunakan solusi MrMajestyk dan hanya mengubah akses ssh melalui plink dengan akses ssh tanpa kata sandi menggunakan kunci publik rsa. Kunci rsa yang dihasilkan di VM apcupsd harus dimasukkan dalam / etc / ssh / keys-root / otor_key dari host vmware.
sumber