segunda-feira, 25 de janeiro de 2010

Hardware de servidores

Os computadores servidores levam este  nome devido a prestação de algum serviço em rede. Lógicamente, os serviços serão disponibilizados para os clientes acessarem. Devido a necessidade de possuir constante disponibilidade (do termo em inglês availability) o hardware e o software dos servidores devem ser confiáveis para que isto aconteça. O software é um componente extremamente complicado em relação a confiabilidade. Devido a complexidade cada vez maior, só para dar um exemplo o código-fonte do Linux possui hoje mais de 10 milhões de linhas de código, é praticamente impossível obter um código de software infalível. Existem diversas técnicas que ajudam nesta tarefa, tal como diversidade de código e votação, mas não são comuns em softwares utilizados atualmente. Na área da computação o estudo deste conteúdo se dá na disciplina de Tolerância à Falhas. Para quem quiser saber mais sobre o assunto um link interessante é este aqui.
Em relação ao hardware, para aumentar a disponibilidade a chave é a redundância (duplicação, triplicação,...) de componentes. Por exemplo, fontes redundantes são utilizadas em servidores para o caso de a fonte de alimentação falhar, haverá outra para assumir o lugar. A grande vantagem é que este chaveamento  acontece de forma automática, não requisitando intervenção humana.
 Um dos maiores erros é achar que qualquer computador pode ser um servidor. É importante salientar que grande capacidade de memória e processamento não são sinônimos de confiabilidade e disponibilidade, características principais de servidores. Claro, um servidor deve estar dimensionado em relação a memória e processamento de acordo como o serviço que vai prestar. Entretanto, as características de um servidor são diferentes de mais comuns devido a necessidade de serem confiáveis. Bom, que dizer então que nunca deve-se usar máquinas comuns como servidores? Bem, na prática isto acontece bastante devido ao custo de servidores e da pouca importância dispendida em infraestrutura de TI pela empresas de pequeno e médio porte. Aqui fica outra pergunta: Será que o tempo que o servidor fica parado, sem fornecer acesso aos arquivos, aplicações e banco de dados da empresa,  não é custo?

Os serviços mais comuns em redes locais são: servidor de arquivos, impressoras, banco de dados, páginas (www) e aplicações (sistemas administrativos). Para cada um destes serviços haverá a necessidade de dimensionar o hardware baseado no número de clientes e nos recursos exigidos pelo software. Portanto, quando houver a necessidade de aquisição de um servidor o principal parâmetro para a escolha é a carga que será gerada pelos clientes. Por exemplo, um hardware que será utilizado para um banco de dados com 10 clientes não será o mesmo para 1000 clientes.

Estudo de caso

Será feito um exercício de dimensionamento de hardware de servidores de dois fabricantes diferentes: Dell e  IBM. Neste servidor, será instalado um servidor para a intranet de uma empresa fictícia, neste exemplo chamada de Acme Ltda. A intranet da empresa Acme roda várias aplicações que utilizam banco de dados,  servidor de páginas com páginas dinâmicas com PHP e sistema operacional Linux. O número de usuários que acessam a intranet de forma concorrente são cerca de 150. O consumo de memória médio no servidor para cada cliente é de 10 MB. A capacidade de processamento estimada pelos desenvolvedores do sistema da intranet é de, pelo menos, um processador com 4 núcleos. Este tipo de informação imprecisa  é bastante comum de acontecer e geralmente o parâmetro é a comparação com outros lugares que utilizam o mesmo sistema. Outro fato bastante comum é o superdimensionamento requerido pelos autores do sistema. Algumas vezes os problemas de lentidão nas respostas do sistema são mascaradas com uma grande capacidade de processamento e memória. Aqui fica o aviso, um loop infinito só rodará mais rápido, no caso da cpu ter maior capacidade!
A partir destes dados, será feito o dimensionamento do hardware para comportar este sistema. O primeiro modelo é um IBM com a seguinte configuração:

Fabricante: IBM
Modelo: x3400 M2
Configuração padrão
Link para o configurador
Valor da configuração: R$ 12.594,25
Garantia: 3 anos
Resumo da configuração



Fabricante: Dell

Modelo: T100
Configuração padrão

Link para o configurador
Valor da configuração:R$ 7.711,00
Garantia: 3 anos (para 5 anos + R$ 191,00)
Resumo da configuração




Qualquer uma destas configurações atenderiam perfeitamente o sistema de intranet atual com folga e teria a capacidade de acompanhar o crescimento do sistema por um bom tempo. Mas porque o custo é tão elevado? Um dos culpados é a unidade de fita para backup. Eu coloquei na configuração para chamar a atenção da importância de fazer backups em mídias removíveis, testar as fitas e, principalmente, guardar em lugar apropriado e seguro. Hoje em dia, é mais barato realizar os backups em disco utilizando um servidor de backups. Me um próximo post no blog eu vou falar sobre uma forma de fazer isto. Vale a penar analisar o tempo de garantia de ambos os servidores 3 anos de garantia e no caso da Dell por mais R 191,00 é possível aumentar para 5 anos. Só este fato já seria uma segurança para quem vai depositar os dados da empresa nestes equipamentos.
Outro fator interessante é a presença de controladora RAID (Redudant Array of Independent Disks). Esta controladora permite que discos comuns sejam configurados de forma a proverem replicação de dados (espelhamento). Neste caso, o sistema operacional vai visualizar apenas o espaço de um disco. O outro disco será um espelho. Em caso de problema no disco principal, todos os dados estarão gravados no segundo disco. Isto se dará de forma automática, por isto a controladora RAID possui um custo elevado. O tipo de RAID que faze o espelhamento é conhecido como RAID 1. Para saber mais sobre RAID acesse este link aqui.
Só o fato de se encaixarem na categoria de servidores, as fontes de alimentação, os gabinetes e a refrigeração destas máquinas garantem que não haverá superaquecimento. Entretanto, é recomendável armazenar estas máquinas em um ambiente com climatização e com acesso restrito. Em empresas pequenas é bem complicado disto acontecer, mas o acesso físico a um servidor por pessoas não autorizadas pode ser desastroso! Uma sala fechada, com ar-condicionado e um no-break  já é o suficiente para garantir o mínimo de condições de trabalho para os servidores.
Como uma brincadeira, fiz a cotação de um servidor com o máximo de redundância possível:



Como pode ser visto, maior confiabilidade maior o custo! Isto deve ser avaliado de acordo com a natureza a empresa, por exemplo um hospital ou aeroporto, onde existe o risco de morte no caso de sistemas não disponíveis.
 Em resumo, computadores comuns como servidores é sinônimo de problemas em breve. A única coisa certa em relação a discos rígidos e fontes de alimentação é que vão dar pau, a dúvida é quando!
  Os links abaixo apontam para alguns vídeos de datacenters (sala dos servidores) de algumas empresas e sobre os servidores do Google que são máquinas comuns, mas são 450.000!!!

Links:
Hardware de Servidores - Guia do Hardware
Google revela os segredos do hardware de seus servidores (Português) e (Inglês)
Google First Production Server @Computer History Museum
Inside A Google Data Center
Google's Web Servers, Revealed
Microsoft OS Cloud Windows Azure Data Center
Data center tour: Equinix
Tour Oracle's Austin Data Center

Nenhum comentário:

Postar um comentário