Tenho data centers de armazenamento em nuvem executando o Ubuntu 16.04 lts e o NextCloud / OwnCloud que não precisam estar disponíveis 24 horas por dia, 7 dias por semana e precisam de soluções de gerenciamento de energia. Os servidores são o Dell PowerEdge 1950 Gen II e o Dell PowerEdge 2950 Gen II
Objetivo geral
Os servidores de armazenamento em nuvem do Hibernate passaram um tempo ocioso, por exemplo, 20 minutos e desibernaram com o WOL para reduzir 6272,09 quilos de dióxido de carbono por ano, sendo 6680kw apenas do nosso data center, métricas alcançadas durante uma auditoria energética detalhada.
Solução ineficaz tentada
Panorama
Os trabalhos de paisagem no local / cron oferecem apenas inicialização e desligamentos programados, portanto ineficazes para o nosso alcance.
Powernap
powernap parece o caminho a seguir, mas o serviço não está iniciando no Ubuntu 16.04
XXXXXXX ~ $ status do powernap do serviço sudo ● powernap.service - PowerNap Carregado: carregado (/lib/systemd/system/powernap.service; desativado; predefinição de fornecedor Ativo: inativo (morto)
O ponwernap parece usar serviços depreciados, como network.service, que não estão mais disponíveis no Ubuntu 16.04
Objetivos alcançáveis
Wake on LAN (WOL)
A ativação do WOL é simples, seguindo a configuração manual neste link . ou com o uso de powewake
Hibernação do servidor
Até agora, só consegui hibernar os servidores usando sudo systemctl hibernate
esudo systemctl hibernate-sleep
- powernap - Estou preenchendo relatórios de erros para remover dependências esgotadas
- systemctl - pode levar a algum lugar
- pm-utils - pode levar a algum lugar também
Atualizações de hardware
Atualizei as CPUs do Dell 1950 Gen II dual Xeon E5335 com as CPUs Xeon X5365. O X5365 permite o gerenciamento de energia e define o gerenciamento de energia a partir do BIOS. Honestamente, eu não era a favor de uma atualização como o X5365 consome 70 watts por CPU mais que o E5335, mas fiz isso a favor dos testes de hibernação.
Atualização 1
Neste momento, pm-utils
é a única maneira de separar wol
o nicho. Atualmente, estou explorando a configuração ideal para criar um gancho de energia para as configurações de CA durante o tempo ocioso.
Quaisquer recomendações, por favor.
Respostas:
Eu montei um pequeno script que você pode executar em um cronjob a cada 15 minutos ou usando temporizadores systemd:
Primeiro, obtém o número de usuários que efetuaram login no sistema e a carga média durante os últimos 15 minutos. Você deve conseguir descobrir a carga média ociosa do sistema usando
cat /proc/loadavg
. O terceiro número de ponto flutuante fornece a média nos últimos 15 minutos. Este valor é útil para definir um limite definido na variávelAvgLoadThresh
. Isso certamente precisará de ajuste. A outra coisa que você pode definir é quanto usuários podem fazer login e o sistema entra em hibernação de qualquer maneira. Está definidoActiveUsersThresh
. Apenas para garantir que o sistema nem sempre esteja hibernando quando você estiver fazendo manutenção ou algo assim.Eu acho que alguém poderia criar verificações mais inteligentes, então veja isso como uma primeira abordagem simples. Por exemplo, eu não sei qual banco de dados ou servidor da web é usado na instalação do owncloud, mas você pode tentar pará-los normalmente antes do comando hibernate, para que ninguém perca a conexão repentinamente.
fonte