Servidor de inicialização extremamente rápido

19

Estou mudando a maneira como nosso material DHCP / DNS funciona no trabalho. Atualmente, temos 3 servidores DNS e uma caixa DHCP. Todos eles são VMs.

Há uma dependência circular em que a inicialização de coisas requer NFS, que requer DNS. Portanto, quando reiniciarmos as coisas, as coisas poderão voltar sutilmente quebradas até o DNS estar ativo e reiniciaremos alguns serviços.

O que eu quero fazer é ter alguns servidores de baixa potência, provavelmente átomos de núcleo duplo ou similar, executando SSDs, para que eles sejam inicializados rapidamente. Eu quero fazer a inicialização toda o mais próximo possível instantaneamente.

Idealmente, eu gostaria de usar o Ubuntu 11.10 ou o Debian 6 como sistema operacional. Não estou interessado no Gentoo ou em compilar meu próprio kernel. Isso precisa ser razoavelmente suportável por mim.

Além das unidades SSD, que outras etapas de otimização posso executar para melhorar a velocidade de inicialização?

Tom O'Connor
fonte
2
Existe uma pergunta real aqui?
ceejayoz
14
@ceejayoz Other than SSDing drives, what other optimisation steps can I takeparece uma pergunta para mim.
MDMarra #
7
@ceejayoz Então, não responda se você acha que vai demorar muito para responder. Não é orientado para discussões e certamente é uma pergunta, não importa como você queira chamá-lo.
MDMarra
2
Pelas razões estreitas, "Esta pergunta é ambígua, vaga , incompleta, excessivamente ampla ou retórica e não pode ser razoavelmente respondida em sua forma atual".
precisa
4
@ceejayoz Eu não acho que seja vago ou excessivamente amplo. É uma pergunta bem definida que pode ter uma resposta complicada, mas não é de grande alcance "Halp! My thingz don't boot rite!". Você é bem-vindo ao entrar no Chat de falha do servidor e discutir se você gostaria. Muitos de nós estamos falando sobre isso lá, incluindo o OP.
MDMarra

Respostas:

29

Não é uma situação em que você deve criar as dependências circulares? Defina os atrasos de inicialização no BIOS do servidor. Você tem vários servidores DNS, então isso é uma vantagem. Cache de DNS? Seria tão simples quanto usar endereços IP ou arquivos host para seu NFS ou rede de armazenamento? Você não mencionou a tecnologia de virtualização específica, mas é possível definir a prioridade de inicialização da VM no VMWare, por exemplo ... Isso ocorre em vários servidores host?

Caso contrário, as unidades de inicialização baseadas em SSD podem ajudar. Use uma distribuição nos processos de inicialização Upstart. Apare os daemons.

ewwhite
fonte
5
Eu acho que essa é uma boa resposta. Corrija dependências circulares da melhor maneira possível.
M115
Boa resposta. Esse é o motivo pelo qual os arquivos do host ainda estão por aí. Eles fornecem uma solução antes que o DNS esteja disponível ou nos casos em que você precisa de pesquisas, mesmo que o DNS não esteja disponível (por exemplo, cluster Oracle RAC).
22620 Christopher Cashell
11

Dependendo do status do seu no-break, esse pode ser um dos poucos casos de uso em que uma hibernação da ACPI pode ser uma boa ideia. Geralmente o restore-from-hibernate supera uma inicialização do zero, especialmente no caso de sistemas baseados em SSD com pouca RAM. Se você tiver a capacidade, a etapa 'shutdown' do seu software UPS pode ser configurada para hibernar o servidor DNS.

sysadmin1138
fonte
Essa é realmente uma ideia interessante - a única desvantagem é ligar a máquina novamente (ou acordá-la do sono). Se a PSU estiver configurada para "ligar automaticamente após a perda de energia", isso funcionará enquanto a máquina realmente perder energia; caso contrário, você só precisa estar ciente da caixa de canto em que o sinal de hibernação é enviado, mas a energia CA volta antes o no-break morre.
voretaq7
2
@ Voretaq7 Se eu fizesse isso, o DNS Primário se comportaria normalmente (sem truques da ACPI) e o DNS Secundário faria esse truque. Isso atrasará a inicialização do serviço em outro lugar devido ao failback do DNS, mas os serviços ainda serão iniciados. Caso contrário, talvez seja necessário que ocorra alguma mágica de ativação na LAN.
sysadmin1138
WoL seria realmente resolver isso muito bem
voretaq7
Temos um no-break gordo, muito sério ... e o software Apcupsd possui algum tipo de configuração de rede. Na verdade, gosto bastante dessa idéia. Também lançaremos o WOL na rede para outros fins, mais adiante neste mês.
Tom O'Connor
6

Posso recomendar um sistema NetBSD muito pequeno para SSDs, mas se você tem o coração no Linux, há duas opções que surgem imediatamente:

  • Damn Small Linux é uma das grandes distribuições Linux. Não sei qual é o tempo de inicialização, mas deve ser relativamente curto.
  • Slax é um pouco mais personalizável desde o início, e pode ser um pouco mais rápido.

Há também a opção de soluções customizadas / incorporadas realmente pequenas como este (sistema baseado em ARM de US $ 99 em um módulo com tempo de inicialização de 1 segundo (ish). Não é um hardware comum, mas pode ser escondido em um canto silencioso de um datacenter e deixado para rodar para sempre ...

voretaq7
fonte
3

Na maioria das configurações, o DNS é o serviço de infraestrutura mais importante. Se ele quebrar, todo o resto também será quebrado. A conclusão é que os servidores DNS não devem depender de outros servidores.

Se você realmente precisa do NFS para inicializar - torne seus servidores DNS esses servidores NFS (isso também está infringindo uma regra) - mas certifique-se de exportar apenas ro e verifique se você não pode colocar seus servidores NFS em perigo. um ataque de DoS.

Provavelmente, a melhor solução é uma abordagem diferente (HA) para fornecer o serviço NFS necessário para a inicialização, quebrando assim a dependência circular (o nscd pode ajudar também nos servidores NFS).

Atualização 2011-11-17 no NFS: De um de seus comentários, vejo que o NFS está sendo usado para / home-dirs. Usuários técnicos locais não devem ter esses. Qualquer outra coisa deve ser montada via autofs com bg, hard, intr.

Nils
fonte
2

Você pode usar o gráfico de inicialização para ver quais são os pontos ativos no momento da inicialização.

Há também readahead: https://fedorahosted.org/readahead/ , que eu não tentei.

alex
fonte