Capítulo 14: Hardware de servidores

De uma forma geral, qualquer PC pode ser usado como um servidor, basta instalar os softwares apropriados. Para tarefas leves, até mesmo máquinas antigas podem prestar bons serviços. Na época em que o ADSL e outras opções de banda larga começaram a se popularizar, muitos passaram a usar micros 486 e Pentium 1 para compartilharem a conexão, usando o Coyote e outras distribuições minimalistas. Alguns deles ainda continuam funcionando até os dias de hoje, resistindo à passagem do tempo.

Entretanto, quando falamos de servidores de hospedagem e servidores usados em grandes empresas, o cenário é um pouco diferente. Além de rodarem serviços e aplicativos muito mais pesados, atendendo a centenas de usuários simultâneos, estes servidores realizam tarefas essenciais, de forma que qualquer interrupção em suas atividades pode representar um grande prejuízo, ao contrário de um desktop, onde o usuário pode simplesmente reiniciar depois de uma tela azul, como se nada tivesse acontecido. Um bom servidor deve ser capaz de funcionar por anos a fio, com pouca ou nenhuma manutenção. Além de ser otimizado para um conjunto específico de tarefas, ele precisa ser muito mais estável e confiável do que um desktop típico, o que leva a diferenças nos componentes usados.

Começando do básico, a função de um servidor é disponibilizar serviços (HTTP, FTP, DNS, e-mail, bancos de dados, máquinas virtuais e muitos outros) para um grande número de usuários simultaneamente. De acordo com os serviços usados, determinados componentes são mais importantes do que outros. Um servidor de bancos de dados, por exemplo, depende basicamente do desempenho de acesso a disco em operações de acesso aleatório (um grande volume de pequenas leituras, com setores espalhados por diversos pontos dos discos), o que torna necessário utilizar vários HDs em RAID (em geral é utilizado o modo RAID 5 ou o RAID 6) e uma grande quantidade de memória RAM, usada para cache de disco.

É essencial que os HDs ofereçam suporte a NCQ (o que permite que a controladora do HD altere a seqüência das leituras, de forma que elas sejam feitas da forma mais eficiente, levando em consideração a disposição dos dados nos discos magnéticos), o que limita as escolhas possíveis. Antigamente, os HDs SCSI eram norma, pois os HDs IDE não ofereciam suporte a NCQ, o que fazia com que o desempenho fosse ridículo quando eram feitas muitas requisições simultâneas. Mais recentemente, os HDs SATA passaram a oferecer suporte a NCQ, o que fez com que eles passassem a substituir os caros HDs SCSI em cada vez mais aplicações, principalmente com a introdução de modelos de 10.000 e 15.000 RPM.


HD sem NCQ (à esquerda) e com NCQ

Por outro lado, um servidor destinado a rodar aplicativos, como um servidor de acesso remoto, por exemplo, precisa predominantemente de processamento e memória. O desempenho do HD não é tão importante (pois os aplicativos usados quase sempre já estarão carregados na memória ou no cache de disco), mas um processador com dois (ou quatro) núcleos e muito cache L2 é essencial para rodar o brutal número de processos simultâneos.

Antigamente, era comum o uso de placas com suporte a dois ou quatro processadores, mas com o lançamento dos processadores dual-core e quad-core elas se tornaram menos comuns (já que sai muito mais barato usar um único processador quad-core do que usar uma placa-mãe com 4 processadores separados). Apesar disso, servidores com vários processadores ainda resistem em diversos nichos, agora utilizando processadores AMD Opteron e Intel Xeon com vários núcleos. Juntando quatro processadores AMD Opteron 83xx (quad-core), por exemplo, temos nada menos do que 16 núcleos, o que resulta em uma potência de processamento brutal em diversas tarefas de servidor, onde o desempenho é diretamente limitado pelo volume de processamento disponível.

Diferente de um desktop, onde mesmo um processador dual-core acaba sendo sub-utilizado devido à carência de aplicativos otimizados, servidores como o Apache trabalham carregando diversas instâncias do serviço a partir do processo principal e são por isso naturalmente otimizados para o uso de diversos núcleos. Um servidor movimentado pode manter centenas de instâncias carregadas simultaneamente, de forma que a carga de trabalho acaba sendo dividida entre os diversos núcleos naturalmente.

Além da questão do desempenho, o servidor precisa ser muito confiável, o que leva ao uso de componentes redundantes. Por exemplo, a maior parte das falhas de hardware são causados por problemas nos HDs ou nas fontes de alimentação. É muito difícil manter um servidor funcionando continuamente por 10 anos (por exemplo) se a vida útil média da fonte é de 3 anos e a do HD é de 4 anos, por exemplo.

Não é possível fazer o HD trabalhar continuamente por 10 anos na base do decreto, mas é possível usar uma controladora RAID que ofereça suporte a hot-swap e usar dois HDs em RAID 1, por exemplo. Dessa forma, o servidor pode continuar funcionando depois da falha em um dos HDs e a substituição pode ser feita “a quente”, com ele funcionando. O mesmo pode ser feito com a fonte de alimentação, com o uso de uma fonte redundante, onde temos duas fontes independentes e a segunda é ativada automaticamente em caso de problemas com a primeira.

Outro ponto em que os servidores se diferenciam dos desktops é nos barramentos usados. Enquanto os desktops usavam apenas slots PCI e AGP, os servidores utilizavam slots PCI de 64 bits e slots PCI-X, que apesar da maior complexidade e custo, ofereceriam taxas de transferência maiores, necessárias para acomodar controladoras Ultra320 SCSI e placas de rede Gigabit Ethernet. O PCI-X é uma versão atualizada do padrão PCI, que opera a 133 MHz, com transferências de 64 bits, o que resulta em uma taxa de transferência teórica de 1.06 GB/s, contra os 533 MB/s do PCI de 64 bits (que opera a 66 MHz) e 133 MB/s do PCI tradicional (32 bits a 33 MHz).

O cenário mudou com o lançamento do PCI Express, que oferece taxas de transferências mais elevadas. Apesar disso, o PCI-X ainda continuará sendo usado por algum tempo, já que os servidores possuem uma vida útil, muito maior, o que faz com que a adoção de novas tecnologias seja mais lenta.


Controladora SCSI sendo encaixada em um slot PCI-X

Como pode ver, os servidores evoluíram de forma diferente, mas a partir de um certo ponto, passaram a utilizar componentes similares aos dos micros desktop. Um servidor típico do final da década de 90 utilizaria dois processadores em SMP, HDs SCSI e uma placa Gigabit Ethernet espetada em um slot PCI de 64 bits, enquanto um servidor típico atual utilizaria um processador dual-core, HDs SATA e uma placa Gigabit onboard, configuração muito mais similar à de um desktop típico.

Esta mudança é causada por um fator muito simples: o custo. Enquanto os componentes usados em micros desktop eram inadequados para uso em servidores (HDs IDE, placas-mãe com slots PCI de 32 bits, etc.), era necessário recorrer a tecnologias mais caras (como no caso do PCI-X). Entretanto, conforme os componentes foram evoluindo, eles passaram a ser “bons o bastante” mesmo para os servidores, o que levou a uma grande economia de custos. Se você precisa de 4 núcleos de processamento no seu servidor, faz muito mais sentido usar um Core 2 Quad do que usar uma placa-mãe com 4 processadores separados, por exemplo.

Apesar disso, ainda existe um grande mercado para servidores de alto desempenho, que continuam utilizando múltiplos processadores, controladoras dedicadas para os HDs e muito mais memória RAM. Como eles utilizam componentes muito mais caros (não apenas por serem construídos dentro de um controle de qualidade mais rigoroso, mas também pelo pequeno volume de produção) o preço de um servidor “mid-range”, com dois processadores quad-core, 4 HDs em RAID 5 e uma quantidade generosa de memória RAM pode facilmente ultrapassar os 20 mil reais, como neste exemplo, obtido usando o configurador da Dell:

Mesmo assim, existem muitas situações onde o custo pode ser justificável, principalmente se os negócios da empresa dependem da operação do servidor. Nesse caso, o custo da máquina propriamente dita é apenas um fator dentro de um cálculo muito mais complexo, que envolve os custos de desenvolvimento e de implantação do sistema, treinamento e manutenção da equipe técnica, espaço no datacenter (ou a montagem de uma estrutura própria de hospedagem) e assim por diante, de forma que 50 ou 100 mil reais gastos em servidores podem representar apenas uma pequena parte do investimento.

Depois de aprender sobre a configuração do sistema e dos serviços usados, nada melhor do que estudar também um pouco sobre hardware de servidores, já que este é um campo sobre o qual existe relativamente pouca documentação disponível. Conhecer um pouco sobre o assunto é importante para qualquer administrador de sistemas, já que vai orientar suas decisões na hora de locar um servidor dedicado ou definir a configuração de novos servidores para a rede da empresa.

Vamos então a uma explicação rápida das diferenças entre os componentes de hardware tipicamente utilizados em servidores de alto desempenho ou de missão crítica, incluindo a questão da redundância, formato e o uso de componentes específicos.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X