Planejando meu primeiro servidor com máquinas virtuais Ubuntu KVM

3

Estou montando um servidor Linux dual-xeon quad core (ou seja, 8 núcleos no total) de 12GB RAM para substituir vários servidores menores antigos. Eu gostaria de usar a virtualização para aprender sobre isso e porque os indivíduos que estavam usando os servidores antigos precisam ser mantidos separados.

Eu terei duas unidades SSD de 120 GB em um espelho RAID e duas unidades SATA II de 2 TB em um espelho RAID.

Acredito que usarei o Ubuntu 10.04 LTS com o KVM como o sistema host e o Ubuntu 10.04 para a VM guest principal e com uso intensivo de recursos. As três VMs convidadas adicionais provavelmente serão o Debian Lenny e são de baixo uso e baixa prioridade.

O seguinte plano de alocação de recursos faz sentido ou faz com que usuários mais experientes vejam armadilhas?

  1. Sistema host: use 24 GB do SSD, ou seja, 12 GB para arquivos + 12 GB como swap
  2. VM convidada principal: use SSD de 96 GB + 1.900 GB SATA (aloque 4CPUs + 8 GB de RAM)
  3. Servidor DNS da VM: use 8 GB SATA (alocar 1CPU + 1 GB de RAM)
  4. VM WebServer: use 8 GB SATA (alocar 1CPU + 1 GB de RAM)
  5. Servidor de correio da VM: use SATA de 8 GB (alocar 1 CPU + 1 GB de RAM)
  6. Reservado para uso futuro: 76GB SATA

Em particular, 12 GB serão espaço suficiente para os arquivos do sistema host?

A troca de 12 GB será adequada? É uma má ideia usar o SSD para o espaço de troca?

A VM convidada principal é o servidor mais usado e precisa de E / S de disco rápido, reconstrói com frequência um banco de dados MySQL de aproximadamente 30 GB, precisa de muito espaço de armazenamento de arquivos, executa o Apache e um servidor de correio. Toda essa compra de hardware é desperdiçada se esse servidor não tiver um bom desempenho.

Como devo particionar os discos para poder dizer mais facilmente ao sistema host onde colocar as várias VMs convidadas? Ou seja, quero que a VM primária aproveite as unidades SSD mais rápidas para seus arquivos principais / SO e use as unidades SATA para seu armazenamento, e queira que as VMs menos importantes usem apenas uma parte das unidades SATA e permaneçam desativadas. os SSDs.

Posso alocar mais RAM ou CPUs às VMs convidadas (overcommit) sem causar problemas ou isso não vale a pena?

Obrigado por qualquer sugestão.

    
por brianwc 24.10.2010 / 22:24

6 respostas

3

Minha configuração é um pouco semelhante e funciona bem. O Virt-manager facilita muito (mesmo com o encaminhamento do ssh X, ele funciona bem). Alguns pensamentos aleatórios:

Eu usaria o LVM + virtio (talvez com exceção dos volumes muito grandes; parece haver um "problema de 1 TB" com o virtio) nesse cenário. Você pode colocar o volume do VM intensivo em IO na parte mais rápida do ataque sata.

Trocar: a menos que você saiba exatamente por que você provavelmente não precisa de 12 GB.

Nos sistemas pequenos, recomendo dividir o volume de dados do volume do sistema. Você provavelmente estará usando ~ 4 de 8GB para arquivos do sistema deixando apenas 4GB para aqueles momentos "oops". Os sistemas se comportam muito melhor quando o volume da raiz não está cheio.

Que tipo de invasão você está usando? DM-softraid ou algum controlador de hardware com bateria?

Colocar os arquivos do sistema em um SSD lhe dará bons tempos de inicialização, mas não muito depois disso. Colocar arquivos de dados (esp buscar coisas intensivas) no SSD vai lhe dar muita alegria por muito tempo.

Afaik ainda tem algum ganho se você não preencher todo o seu SSD, deixando 20% sem uso (nunca escrito para) é fácil com o LVM, apenas faça um volume para ele.

Como acontece com qualquer reconstrução de hardware, recomendo usar a memória ECC.

    
por 25.10.2010 / 09:05
3

"Parece que você planeja concentrar um número de máquinas servidoras separadas e funcionando em um único servidor massivo de ponto único de falha." Eu acho que você está errado. O KVM é uma ótima opção para solução de failover. Basta trazer o arquivo de definição XML para outro servidor e usar armazenamento compartilhado e / ou configuração de placa de rede idêntica para todos os servidores no cluster. Testado, trabalhado. Lembre-se do LACP e da agregação de links - também funciona:)

    
por 30.06.2011 / 21:52
2

12 GB devem ser adequados para o seu sistema.

12 GB devem ser mais do que suficientes para troca. Eu não me preocuparia muito com a velocidade de acesso à troca, já que a troca normalmente não é muito usada. Com a sua memória disponível, você não deve ver nenhuma troca significativa. Se você quiser um grande espaço temporário, você pode querer usar um tamanho de swap maior e usar tmpfs para / tmp.

Você pode colocar manualmente os sistemas de arquivos de sistemas virtuais, como arquivos ou partições. Eles estarão onde quer que você os colocou.

Você tem muito mais memória RAM e CPU do que parece necessário. Observe o uso de memória nos servidores e aumente conforme necessário.

Eu instalaria um processo de servidor munin no servidor e clientes munin no servidor e em todos os servidores virtuais. Isso permitirá que você determine rapidamente se tem algum afunilamento que precise ser feito.

Eu não supercomprometeria a RAM, mas, dependendo da carga, você deve ser capaz de supercomprimir as CPUs. Dado o seu aumento de poder, isso não deveria ser necessário. O KVM permite que você especifique valores máximos para ambos, que são maiores do que os usados na inicialização. Eu não tentei alterar dinamicamente esses valores.

    
por 25.10.2010 / 05:26
1

Tudo soa como um servidor de teste que já temos :)

Bem, evite o OCZ Vertex SSD mesmo que eles possam ler 550MB / s e escrever 530MB / s - eles provavelmente são defeituosos, você pode ler isso no 'Net. Mas eu não testei eles mesmos.

Para mim, a melhor opção ainda são unidades SAS ou FC em um array RAID10, mesmo que o SSD faça mais IOs, mas sua vida útil é limitada (obtenha da SMART esses dados!). Quando um disco falha você apenas o substitui, o que acontecerá quando todos os SSD forem da mesma série e todos falharão de uma só vez? Uh.

Sim, posso confirmar que o armazenamento para VM é muito intensivo em IO. Um dia eu liguei a tela e o Ubuntu Server estava dizendo que a fila do IO era muito grande ou algo assim e ficou pendurada por um longo tempo.

Eu aloco o máximo de CPU / RAM que eu preciso para VMs, por exemplo, se uma nova VM for implantada, eu reduzo a RAM para o resto enquanto estou em manutenção, não muito, mas o suficiente para a nova VM.

Agora estou testando a união junto com a ponte exatamente para as VMs do KVM. Eu configurei com sucesso o modo de colagem LACP e round-robin (o teste diz que 1 pacote foi perdido quando o cabo foi desconectado). Agora eu estou querendo saber é possível chegar a 2 Gbit através da rede para VM KVM ...

A próxima coisa é configurar o cluster.

    
por 11.07.2011 / 23:06
0

Como um administrador de sistema responsável por manter as coisas funcionando, esse plano me daria uma sensação desagradável. Parece que você planeja concentrar várias máquinas servidoras separadas em funcionamento em um único servidor massivo de ponto único de falha. Qualquer tipo de tempo de inatividade para esse super servidor significará tempo de inatividade para TODOS os seus serviços, não apenas um subconjunto deles.

Eu recomendaria usar seu orçamento para provisionar, digamos, dois ou três servidores menores. Você ainda pode usar a virtualização para particionar seus serviços em contêineres separados, tanto para segurança quanto para facilitar o backup e a migração.

    
por 24.10.2010 / 23:19
0

Eu não gosto de seus discos. Parece um foco totalmente errado.

I will have two 120GB SSD drives in a RAID mirror and 2 2TB SATA II drives in a RAID mirror.

Supondo que você use os 120gb para o sistema de operação e os 32tb para os machiens virtuais - bem-vindos para sugar IO. Ok, concedido, seu servidor é pequeno.

De qualquer forma, aqui alguns dos meus servidores:

  • 10gb baseado em AMD Hyper-V (cabe 16gb, tivemos problemas de BIOS). Os discos OS + estão em um Black Scorptio RAID 10, Adaptec, 4x 320gb. A carga de IO é inválida. Eu sinto isso sendo sobrecarregado. Ele recebe um upgrade agora para 16gb, mas o número de VMs será reduzido - muito carregamento de IO durante o patch etc.

  • 64 gb, oito núcleos da AMD. Eu tinha um Velocirraptors 4x300gb i na RAID 10 nele. Estava ficando cheio e eu estava sentindo a carga. Realmente sentindo isso. Acabei de atualizar para 6 aves de rapina em um RAID 10 e pode ir mais alto. Este servidor tinha um número de servidores de banco de dados, mas praticamente todos têm discos separados para o trabalho de banco de dados. O controlador RAID é um Adaptec 5805 em uma infraestrutura SAS.

Como oyu pode ver - seu subsistema de IO é realmente ruim. Supercomprometimento de memória só vai piorar muito. O SSD pode funcionar bem, mas ainda é muito caro. Se você colocar as VMs nas unidades de 2 TB, sua IO será apenas uma droga. Eles provavelmente têm cerca de 250 IOPS cada um - comparado com os 450 que eu tomei nos meus raptores, e como eu disse, eu uso muitos deles E eles estão em um controle de ataque de ponta.

Eu tenho uma gaiola SuperMicro com 24 slots de disco para o servidor maior;)

    
por 24.10.2010 / 23:40