|
Busca |
Dispõe dum espaço disco seguro (RAID) sobre um servidor de armazenamento (filer). Partilha este espaço entre vários servidores dedicados (via NFS). A OVH atribuiu-lhe um novo endereço IP (IP do balanceamento de carga, balanced IP). Finalmente, a OVH configurou os seus servidores para que eles acedem ao espaço seguro e recebem o tráfego desde o IP de balanceamento de carga. Se pretender utilizar directamente o serviço Cluster sem estudar o seu funcionamento detalhado, pode passar a secção Primeiros passos com o seu cluster. 1. Configuração do IP de balanceamento de carga Para que o servidor aceita os pacotes desde o IP de balanceamento de carga, uma interface de rede virtual é adicionada em lo:0: lo:0 Link encap:Local Loopback inet addr:213.251.xxx.xxx Mask:255.255.255.255 UP LOOPBACK RUNNING MTU:16436 Metric:1 O rooteamento também é modificado ao nível do servidor (adição da table 201 no iproute2). 2. Configuração de uma rede privada para o acesso ao filer O acesso ao filer faz-se via uma rede privada 192.168.xxx.xxx. Cada servidor têm o seu próprio IP privado configurado como eth0:0: eth0:0 Link encap:Ethernet HWaddr 00:E0:4C:82:32:3F inet addr:192.168.xxx.xxx Bcast:192.168.xxx.255 Mask:255.255.254.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:19 Base address:0xc000 3. Montagem da partição segura O espaço seguro é montado nos seus servidores via NFS em /home/ha. O ficheiro /etc/fstab tem uma nova linha: 192.168.xxx.xxx:/vol0/Z-xxx-xxx /home/ha nfs rw 0 0 4. Instalação da sonda A fim de garantir o principio de 'alta disponibilidade', o sistema de balanceamento de carga deve saber retirar uma máquina do cluster quando esta fica indisponível. Para isso, instalamos um deamon sobre cada servidor (OCO) que verifica se o servidor está 'apto' a responder aos pedidos. Por defeito, OCO verifica unicamente se o porto 80 responde aos pedidos HTTP. Pode com facilidade adicionar os scripts que precisa para efectuar verificações mais especificas (verifique que PHP responde correctamente, verificar o FTP, etc.) Funcionamento de OCO OCO está instalado em /usr/local/oco, o deamon foi lançando automaticamente no arranque do servidor por /etc/init.d/oco. Os scripts de verificações estão nos directórios /usr/local/oco/60sec ou /usr/local/oco/120sec ou /usr/local/oco/300sec. Eles são automaticamente executados em função da frequência correspondente ao directório. Cada script escreve um ficheiro no directório /usr/local/oco/result. O conteúdo deste ficheiro é um numero:
É pelo menos preciso um ficheiro contendo 200 no directório /usr/local/oco/result para que o servidor seja adicionado ao cluster. Se um ficheiro ou mais contêm 300 (ou superior a 300), então o servidor é retirado do cluster. Se pelo o menos um ficheiro têm uma data de modificação superior a 15 minutos, então o servidor é retirado do cluster. Aviso: Se modificar os scripts de verificação fornecidos com OCO, mude o nome dos scripts porque senão as suas modificações serão eliminadas durante a actualização de OCO. 5. Fluxo redes a autorizar Se o seu servidor tem um firewall, deverá autorizar os seguintes fluxos sobre o seu servidor :
iptables -A INPUT -s 213.251.164.240 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT iptables -A INPUT -s 213.251.164.241 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT iptables -A INPUT -s 213.251.164.242 -i eth0 -p tcp -m tcp --dport 79 -j ACCEPT
iptables -A INPUT -s 192.168.59.2 -i eth0 -j ACCEPT A primeira coisa que vai querer fazer com o seu cluster é com certeza pedidos HTTP. 1. Utilização do filer Para que o balanceamento de carga funciona o melhor possível, deve ter as mesmas páginas e os mesmos scripts sobre todos os servidores. Para isso, o melhor é utilizar o espaço de armazenamento remoto que foi montado em /home/ha. Copie os seus sites em /home/ha/xxxxx, eles estarão então visíveis a partir de cada servidor. Se utiliza os CGI em suexec ou suphp, deve velar que os users e os uid sejam idênticos sobre cada servidor (e eventualmente modificar /etc/passwd). Finalmente, temos de modificar o ficheiro de configuração apache httpd.conf para indicar os caminhos de acesso correctos (/home/ha/yyyy) nos 'DocumentRoot'. 2. Repartição dos pedidos HTTP Pegamos, por exemplo, um servidor dedicado cujo IP é 213.186.33.2 e o IP de load-balancing atribuído é 213.251.131.8. Temos de modificar o ficheiro de configuração apache httpd.conf :
3. Testar o balanceamento de carga antes de modificar as entradas DNS e/ou durante a propagação Sobre o seu posto CLIENTE (browser), pode temporariamente fixar a resolução de um domínio para o IP de load-balancing :
213.251.131.8 www.omeudominio.com
Windows 95/98/Me: c:windowshosts Windows NT/2000/XP Pro: c:winntsystem32driversetchosts Windows XP Home: c:windowssystem32driversetchosts e adicione a linha: 213.251.131.8 www.omeudominio.com É tecnicamente possível repartir os pacotes destinados a todos os portos (HTTP:80, SMTP:25, STREAMING, etc). No entanto, é impossível utilizar esta solução para MySQL (e com certeza uma maioria dos softwares de bases de dados). Este limite é intrínseco ao softwares de bases de dados. É preciso utilizar as soluções propostas pelos autores dos softwares. |