Bagaimana saya bisa secara otomatis hibernasi server penyimpanan cloud?

13

Saya memiliki pusat data penyimpanan cloud yang menjalankan Ubuntu 16.04 lts dan NextCloud / OwnCloud yang tidak perlu tersedia 24/7, dan membutuhkan solusi manajemen daya. Servernya adalah Dell PowerEdge 1950 Gen II dan Dell PowerEdge 2950 Gen II

Tujuan keseluruhan

Server penyimpanan cloud Hibernasi melewati waktu idle misalnya 20 menit dan telah dinonaktifkan dengan WOL untuk mengurangi 6272,09 kilo karbon dioksida per tahun menjadi 6680kw dari pusat data kami saja, metrik dicapai melalui audit energi terperinci.

Solusi tidak efektif dicoba

Pemandangan

Lansekap di lokasi / tugas cron hanya menawarkan startup dan shutdown terjadwal, sehingga tidak efektif untuk dicapai.

Powernap

powernap sepertinya cara untuk pergi tetapi layanan ini tidak dimulai pada Ubuntu 16.04

XXXXXXX ~ $ sudo status powernap layanan
● powernap.service - PowerNap
   Dimuat: dimuat (/lib/systemd/system/powernap.service; dinonaktifkan; preset vendor
   Aktif: tidak aktif (mati)

ponwernap tampaknya menggunakan layanan terdepresiasi seperti layanan network.ser yang tidak lagi tersedia di Ubuntu 16.04

Tujuan yang dapat dicapai

Wake on LAN (WOL)

Mengaktifkan WOL sangat mudah dengan mengikuti pengaturan manual pada tautan ini . atau dengan penggunaan powewake

Hibernasi Server

Sampai sekarang, saya hanya berhasil hibernasi server menggunakan sudo systemctl hibernatedansudo systemctl hibernate-sleep

  1. powernap - Saya mengajukan laporan bug untuk menghapus dependensi yang sudah kosong
  2. systemctl - bisa mengarah ke suatu tempat
  3. pm-utils - bisa mengarah ke suatu tempat juga

Peningkatan Perangkat Keras

Saya telah memutakhirkan CPU Dell 1950 Gen II dual Xeon E5335 dengan Xeon X5365 CPU. X5365 memungkinkan manajemen daya dan mengatur manajemen daya dari BIOS. Jujur saja, saya tidak mendukung upgrade seperti X5365 mengkonsumsi 70 watt per cpu lebih dari E5335, tetapi melakukan itu mendukung pengujian hibernasi.

Perbarui 1

Pada saat ini pm-utilsadalah satu-satunya cara untuk terlepas dari pengaturan wolpada nic. Saat ini saya sedang mengeksplorasi konfigurasi optimal untuk membuat power hook untuk pengaturan ac untuk waktu idle.

Tolong ada rekomendasi.

Hebat
sumber
1
Selamat Datang di Tanya Ubuntu. Tolong, apa pertanyaan Anda? Harap lebih spesifik .
MadMike
Server cloud Hibernasi melewati waktu idle dan telah dinonaktifkan dengan WOL. Detail ekstra adalah untuk memberikan contoh skenario kerja.
Fab
1
Saya tidak bisa memahami apa yang menjadi penghalang Anda. Apa yang sudah Anda coba yang tidak berhasil dan / atau apa yang Anda butuhkan bantuan untuk memahami secara khusus?
Zanna
3
Bukankah berhibernasi tidak taktis? Bergantung pada ukuran RAM Anda dan kecepatan baca / tulis disk, hibernasi dan melanjutkan dapat memakan waktu hingga beberapa menit. Bagaimana permintaan ditangani selama waktu itu? Apakah pengguna Anda ingin menunggu selama itu? Cukup menunda mungkin merupakan kompromi yang lebih baik untuk menghemat daya sambil tetap lebih gesit. Dan mungkin virtualisasi server Anda dan hosting mereka di satu mesin yang kuat atau sekelompok yang memungkinkan Anda untuk menangguhkan / melanjutkan bagian sambil menyeimbangkan beban pada orang lain juga bisa membantu menghemat daya. Perhatikan bahwa saya tidak memiliki pengalaman dengan sistem server skala besar, hanya menebak-nebak.
Byte Commander
1
Saya setuju dengan Byte Commander. Untuk masukan dari orang-orang dengan pengalaman aktual dalam operasi pusat data, Anda mungkin harus menanyakan Server Fault .
David Foerster

Jawaban:

0

Saya mengumpulkan skrip kecil yang bisa Anda jalankan dalam cronjob setiap 15 menit atau menggunakan timer sistemd:

#/bin/bash

NActiveUsers=$(who -q | awk -F'#' '{printf $2}' | awk -F'=' '{printf $2}')
AvgLoad15Min=$(cat /proc/loadavg | awk -F' ' '{print $3}')

ActiveUsersThresh=2
AvgLoadThresh=0.15

if [ "$NActiveUsers" -lt "$ActiveUsersThresh" ]
then
    LoadBelowThresh=$(echo $AvgLoad15Min'<'$AvgLoadThresh | bc -l)
    if [ "$LoadBelowThresh" -eq 1 ]
    then
        systemctl hibernate
    fi
fi

Pertama kali mendapatkan jumlah pengguna yang masuk ke sistem dan beban rata-rata selama 15 menit terakhir. Anda harus dapat mengetahui menggunakan sistem rata-rata idle Anda menggunakan cat /proc/loadavg. Angka floating point ketiga memberikan rata-rata selama 15 menit terakhir. Nilai ini bermanfaat untuk mendefinisikan ambang yang ditetapkan dalam variabel AvgLoadThresh. Ini tentu perlu penyetelan. Hal lain yang dapat Anda definisikan adalah seberapa banyak pengguna diizinkan masuk dan sistem melakukan hibernasi. Ini diatur dalam ActiveUsersThresh. Hanya untuk memastikan sistem tidak selalu berhibernasi saat Anda melakukan pemeliharaan atau sesuatu.

Saya kira orang bisa datang dengan pemeriksaan yang lebih cerdas, jadi lihat itu sebagai pendekatan sederhana pertama. Sebagai contoh, saya tidak tahu database atau server web mana yang digunakan dalam instalasi cloud Anda sendiri tetapi Anda bisa mencoba menghentikannya dengan anggun sebelum perintah hibernate, sehingga tidak ada yang tiba-tiba kehilangan koneksi.

romed
sumber