Ganeti
From Wiki do Departamento de Informática
Documentação ainda não está finalizada!
Contents |
[edit] Configuração de cada nó
- Ter nome e reverso corretos
- Comentar o include de *.res em /etc/drbd.conf
- Configurar a bridge br0
- Criar um VG chamado pool
- Liberar ssh entre os nós
- Cadastrar uma senha de root
- Ajustar sshd_config p/ porta 694
- Instalar os pacotes ganeti2 ganeti-htools ganeti-instance-debootstrap
- Instalar o script ganeti-kvm-poweroff em /etc/init.d
Comandos manuais:
mkdir /root/.ssh echo "Port 694" > /root/.ssh/config echo drbd minor_count=128 usermode_helper=/bin/true >> /etc/modules echo "sshd: @admsis @colussus" >> /etc/hosts.allow wget -O /boot/installers/centos5-vmlinuz-x64 http://mirrors.ic.unicamp.br/centos/5/os/x86_64/images/pxeboot/vmlinuz wget -O /boot/installers/centos5-initrd-x64 http://mirrors.ic.unicamp.br/centos/5/os/x86_64/images/pxeboot/initrd.img
Ajustes nos scripts de inicialização
vim /etc/init.d/ganeti # Required-Start: $syslog $remote_fs drbd # Required-Stop: $syslog $remote_fs drbd ganeti-kvm-poweroff <salve>
Instalar o script ganeti-kvm-poweroff e depois:
insserv -v
[edit] Criando o cluster
O nome do cluster deve existir no DNS e ter um IP alocado para exclusivamente para ele. No caso criei o nome colossus.ic.unicamp.br.
No nó que comecará como primário:
# gnt-cluster init --enabled-hypervisors=kvm --no-etc-hosts --vg-name=pool --nic-parameters="mode=bridged,link=br0" --master-netdev br0 -s 10.0.0.1 colossus.ic.unicamp.br # gnt-cluster modify -H kvm:kernel_path=,kernel_args=,acpi=true,disk_cache=writeback,security_model=user,security_domain=kvm <ajustando alguns parâmetros padrões>
Os daemons são iniciados, a configuração de dados é iniciada em /var/lib/ganeti e automaticamente o nó já entra no cluster.
[edit] Colocando um nó no cluster
Comandos devem ser sempre executados no nó master:
# gnt-node add -s 10.0.0.2 node02.ic.unicamp.br <vai pedir senha de root do nó, usar IP secundário para replicação>
Os daemons já são levantados automaticamente e o ssh configurado.
copiar o instalador do CentOS, para criação de máquinas virtuais:
# gnt-cluster copyfile -n node02 /boot/installers/centos5-vmlinuz-x64 # gnt-cluster copyfile -n node02 /boot/installers/centos5-initrd-x64
Ajustar instância p/ centos
# gnt-cluster command -n node02 "mkdir /usr/share/ganeti/os/centos" # for i in $(ls /usr/share/ganeti/os/centos/); do gnt-cluster copyfile -n node2 /usr/share/ganeti/os/centos/$i; done
[edit] Criando instâncias (maquinas virtuais)
O FQDN da VM tem que já estar cadastrado no DNS.
- Com alocação automática:
# gnt-instance add -t drbd -B memory=512 --disk 0:size=10g --iallocator hail -o centos+default --no-start prcolor.ic.unicamp.br
- Com alocação manual (node03 primário, node01 segundário):
# gnt-instance add -t drbd -B memory=512 --disk 0:size=10g -n node03:node01 -o centos+default --no-start prcolor.ic.unicamp.br
- Bootar a VM no instalador do CentOS e usar o kickstart (instalação totalmente automatizada):
# gnt-instance startup -H "kernel_path=/boot/installers/centos5-vmlinuz-x64,initrd_path=/boot/installers/centos5-initrd-x64,kernel_args=linux cmdline ks=http://mirrors.ic.unicamp.br/centos/ks/prcolor.cfg ip=143.106.7.10 netmask=255.255.255.192 dns=143.106.7.31 console=ttyS0" prcolor
- Cchamando o console serial para acompanhar a instalação:
# gnt-instance console prcolor
[edit] Referências sobre o Ganeti
- The evolution of Ganeti, an Open Source manager for clusters of virtual machines: http://ganeti.googlecode.com/files/ganeti-evolution-2010.pdf
- Creating a Low-Cost Clustered Virtualization Environment Using Ganeti and KVM: http://events.linuxfoundation.org/slides/2010/linuxcon2010_albertson.pdf
- http://people.debian.org/~ultrotter/talks/dc9/dc9_ganeti_talk.html