Saya memiliki server rumah (HP Proliant ML310 G4) yang saya beli dari majikan saya sekitar sebulan yang lalu. Server menjalankan Debian Linux dan saya menggunakannya untuk hampir semuanya. Saya dapat melakukan hal ini karena kebutuhan saya tidak terlalu menuntut sehingga server jarang di bawah beban berat pada waktu tertentu. Server ini memiliki array RAID1 2 TB (dengan satu cadangan panas) yang dikelola oleh mdadm yang saya gunakan untuk berbagi file melalui jaringan saya melalui Samba. Saya menjalankan OS dari hard drive yang lebih kecil yang bukan bagian dari array.
Saya memiliki server yang ditenagai melalui UPS 255-watt kecil karena saya membutuhkannya untuk menahan fluktuasi daya kecil tanpa turun. Ini sangat penting karena shutdown yang tiba-tiba najis (disebabkan oleh penurunan daya atau pemadaman) dapat mengacaukan array RAID, yang telah terjadi pada satu kesempatan.
Jika terjadi kegagalan daya, saya memperkirakan UPS hanya memiliki daya 10-15 menit di dalamnya. Mungkin ada lebih banyak tetapi saya tidak ingin secara otomatis menganggap ada. Ini cukup untuk melewati pemadaman yang berlangsung beberapa menit atau kurang. Namun, jika daya mati selama beberapa jam, saya perlu server untuk mematikan dirinya sendiri secara otomatis sebelum daya UPS mati. Mudah-mudahan ini akan menjaga integritas RAID agar tidak disembunyikan dalam situasi tersebut.
Hal semacam ini mudah dilakukan pada laptop b / c, ia memiliki sensor bawaan untuk menentukan kapan baterai beroperasi dengan daya baterai, tetapi server ini tidak (sejauh yang saya tahu). Saya memiliki pengaturan jaringan yang tidak biasa di mana modem DSL saya terpisah dari router saya. Router juga ada di UPS, yang memungkinkan saya untuk masuk SSH melalui laptop saya dan mematikan server jika terjadi kegagalan daya. Sayangnya, ini hanya berfungsi jika saya ada di sana untuk melakukannya. Saya membutuhkan solusi yang selalu berfungsi apakah saya ada untuk campur tangan atau tidak.
Karena modem DSL saya tidak pada UPS, itu akan turun dengan segala yang lain jika daya gagal Saya mengaturnya seperti itu dengan sengaja karena saya mempunyai ide tentang bagaimana menyelesaikan masalah ini: Saya sedang berpikir untuk menulis sebuah skrip yang akan melakukan ping google.com atau situs lain dengan lalu lintas tinggi / ketersediaan tinggi. Jika ping selesai dengan sukses, server akan terus berjalan. Jika ping gagal (karena modem mati), skrip akan berpikir daya dimatikan dan akan memberitahu server untuk dimatikan. Saya akan menambahkan skrip ke Cron dan menjalankannya setiap 5 menit. Mudah-mudahan itu akan memberi server cukup waktu untuk dimatikan sebelum UPS kehabisan daya.
Sebelum saya kesulitan menulis naskah, saya ingin tahu apakah ada cara yang lebih baik untuk melakukan apa yang saya butuhkan. Terima kasih sebelumnya atas bantuannya.
sumber
Jawaban:
Ada cara lama tetapi terbukti: Gunakan modem analog lama. Begini caranya
Sekarang jajak pendapat modem setiap beberapa detik pengiriman
ATZ[Enter]
dan harapkanOK[Enter]
- jika modem tidak menjawab, Anda dapat menganggap itu tidak memiliki daya, berarti UPS pada baterai.Edit
Poin utamanya adalah, bahwa jika koneksi Internet Anda jatuh karena alasan lain, server tidak akan mati, sebagaimana seharusnya.
Edit 2
Dari komentar:
sumber
Up biasanya dilengkapi dengan konektor USB atau COM1. Ketika Anda menghubungkan ini ke server Anda, Anda kemudian dapat mulai memantau UPS.
Di lingkungan windows, tanpa menginstal perangkat lunak, pesan sudah terdaftar, dan itu akan mematikan server untuk Anda. Saya tidak tahu bagaimana ini bekerja di linux, tapi saya yakin ada beberapa paket perangkat lunak yang tersedia untuk berinteraksi dengan UPS Anda.
sumber
Jika Anda menggunakan Debian, coba cari menggunakan NUT (alat UPS jaringan). Saya menggunakan NUT untuk melakukan apa yang Anda jelaskan pada Synology NAS saya (yang menjalankan busybox) dan pada server web rumah yang menjalankan Ubuntu 12,04 LTS. Saya memiliki NAS terhubung melalui USB ke UPS untuk alasan yang sama seperti Anda, potensi hilangnya semua file saya.
Saya percaya kacang daemon menanyakan UPS setiap detik untuk menentukan status. Ketika UPS berada dalam mode baterai, UPS dapat dikonfigurasikan untuk dimatikan dengan baik atau menunggu X menit terlebih dahulu, dll. Anda juga dapat mengatur banyak klien untuk terhubung ke daemon mur yang Anda jalankan di server Anda. Jadi server Anda dapat memberi tahu banyak PC di jaringan Anda untuk mematikan dengan baik. Untuk eksekusi shutdown, Anda dapat menyediakan skrip Anda sendiri untuk layanan shutdown dengan cara tertentu, atau Anda dapat menggunakan skrip internal yang hanya memanggil shutdown-h, jika saya ingat dengan benar.
Situs web NUT
Ada situs yang lebih baik untuk menemukan info, tetapi saya tidak dapat mengingatnya sekarang. Konfigurasi bisa jadi menyebalkan, tetapi jika Anda berbicara tentang kemungkinan kehilangan RAID Anda, periksa! Bergantung pada kebutuhan Anda, Anda mungkin tidak membutuhkan seluruh rangkaian NUT, Anda mungkin dapat bertahan hanya dengan porsi UPSMON. Saya pikir Anda bisa mendapatkan ini dalam paket Ubuntu "nut-client".
Ada juga klien NUT untuk Windows, tetapi pada Windows Anda mungkin lebih baik menggunakan sesuatu seperti PowerChute, atau yang serupa.
sumber