Criação do Cluster de Proxmox e Ceph
Este capítulo é bastante importante. É aqui que vamos criar, primeiro o Cluster de Proxmox e depois criar a Storage distribuída entre os quatro servidores usando Ceph.
Para tal devemos abrir quatro terminais para os servidores de Proxmox VE, com os comandos:
ssh [email protected]
ssh [email protected]
ssh [email protected]
ssh [email protected]
No primeiro terminal, do servidor “Prox1” “192.168.10.211“, vamos correr o comando para criar o cluster de Proxmox VE. Só se corre este comando uma vez e só no primeiro servidor:
pvecm create Cephcluster
Em vez de “Cephcluster“, pode ser outro nome à vossa escolha.
Esperem uns segundos para que ele corra todas as ações de criação do cluster e quando voltarem a ter “prompt” no terminal, significa que está criado.
Aceder ao terminal do segundo servidor, “Prox2” “192.168.10.212” e vamos correr um comando para juntar a máquina ao Cluster criado na máquina “Prox1“. Correr o comando:
pvecm add 192.168.10.211
Ele vai mostrar a chave que identifica o servidor “Prox1” e pede-nos para aceitar a chave. Aceita-se escrevendo:
yes
No fim ele pede a password de “root” do servidor “Prox1“. Coloca-se a password e quando voltarmos a ter “prompt” no terminal, segnifica que o “Prox2” está adicionado ao cluster.
Acedemos ao terceiro servidor, “Prox3” “192.168.10.213” e corremos o mesmo comando:
pvecm add 192.168.10.211
Volta-se a aceitar a chave do servidor “Prox1” e a escrever a password do utilizador “root” do servidor “Prox1” e a máquina fica junta ao Cluster.
Acedemos ao último servidor, “Prox4” “192.168.10.214” e corremos o mesmo comando:
pvecm add 192.168.10.211
Volta-se a aceitar a chave do servidor “Prox1” e a escrever a password do utilizador “root” do servidor “Prox1” e a máquina fica junta ao Cluster.
Para ver o estado do Cluster, em qualquer dos servidores, podemos correr o comando:
pvecm status
E é-nos mostrado o estado do Cluster, com os quatro servidores juntos no mesmo Cluster.
Acedendo por browser ao primeiro servidor “Prox1“, indo a:
https://192.168.10.211:8006
Podemos ver agora que por baixo do mesmo “Datacenter“, estão os quatro servidores. O Cluster de Proxmox VE está criado, falta agora os quatro servidores terem uma storage partilhada e isso que vamos fazer no ponto a seguir. Instalar e configurar o Ceph.
Voltamos ao terminal, do primeiro servidor, “Prox1” e vamos correr o comando:
pveceph install -version hammer
Este comando faz com que ele vá instalar o “Ceph“, na sua última versão LTS que é a “hammer” no servidor “Prox1“.
Ele vai instalar vários pacotes e fazer a configuração inicial do “Ceph” no servidor “Prox1“.
Vamos ao terminal do segundo servidor, “Prox2” “192.168.10.212” e vamos correr o mesmo comando:
pveceph install -version hammer
Vamos ao terminal do terceiro servidor, “Prox3” “192.168.10.213” e vamos correr o mesmo comando:
pveceph install -version hammer
Vamos ao terminal do quarto servidor, “Prox4” “192.168.10.214” e vamos correr o mesmo comando:
pveceph install -version hammer
Em seguida vamos inicializar o “Ceph“. Este comando corre-se apenas no primeiro servidor e só uma vez. Acedemos ao terminal do servidor “Prox1” “192.168.10.211” e corremos o comando:
pveceph init --network 10.133.20.0/24
Aqui estamos a indicar que ele vai correr na rede privada do “Ceph“, que é a rede “10.133.20.0/24” e que em cada servidor tem um ip nesta rede na placa de rede “eth1“.
Iniciado o “Ceph“, vamos criar um “monitor” em cada um dos servidores. Um “monitor” é o servidor que recebe comandos para o “Ceph” e como temos quatro servidores com “Ceph“, faz sentido ter um “monitor” por cada um dos servidores. A criação do “monitor” pode ser feita por linha de comandos ou pelo GUI do Proxmox VE. Para este artigo decidi criar os “monitors” por linha de comandos.
Para tal, acede-se ao primeiro servidor, por linha de comandos, “Prox1” “192.168.10.211” e corre-se o comando:
pveceph createmon
Este comando efetua uma série de ações e cria um servidor a correr no ip e porta “10.133.20.1:6789“.
Em seguida vamos criar o segundo “monitor” no servidor “Prox2” “192.168.10.212“, acedendo por linha de comandos e correndo o comando:
pveceph createmon
O monitor vai ficar a correr no endereço e porta “10.133.20.2:6789“.
A seguir vamos criar o terceiro “monitor” no servidor “Prox3” “192.168.10.213“, acedendo por linha de comandos e correndo o comando:
pveceph createmon
O monitor vai ficar a correr no endereço e porta “10.133.20.3:6789“.
Por fim, vamos criar o quarto e último “monitor” no servidor “Prox4” “192.168.10.214“, acedendo por linha de comandos e correndo o comando:
pveceph createmon
O monitor vai ficar a correr no endereço e porta “10.133.20.4:6789“.
Voltando ao browser, acedendo a:
https://192.168.10.211:8006
Do lado esquerdo, escolhemos um servidor, por exemplo o “Prox1” e escolhemos das tabs à direita a tab de “Ceph“, vai-nos abrir das tabs na parte inferior o “Status” em que podemos ver o estado do cluster de “Ceph“. Podemos ver que o cluster está criado nos quatro nós, mas ele ainda está em erro, por não ter nenhum disco (OSD) adicionado. Cada disco no “Ceph” é chamado de “OSD“.
Ainda na tab de “Ceph” e escolhendo a tab da zona inferior de “Config“, podemos ver a configuração do nosso Cluster de “Ceph“.
Na tab ao lado, “Monitor” podemos ver os quatro “monitors” que criamos por linha de comandos. Caso não tivéssemos criados os “monitors” por linha de comandos, podíamos criá-los aqui nesta secção, carregando no botão “Create“.
A tab ao lado é o de “Disks”, onde nos vão aparecer cinco discos na listagem. O primeiro é o do sistema operativo, que não se pode usar e os outros quatro são discos que não estão a ser usados. É aqui que para cada disco criamos um “OSD“. Carregamos no primeiro disco que não está a ser usado “/dev/vdb” e carregamos no botão “Create OSD“.
Aparece-nos uma caixa com o disco que escolhemos e se opcionalmente queremos colocar o “journal” num disco à parte. Normalmente coloca-se o “journal” num disco à parte quando o disco é mecânico e para melhor performance, coloca-se o “journal” num SSD. Como estes são todos discos SSD, não coloco o “journal” à parte.
Carregar no botão “Create“, para criar o “OSD“.
Depois de criado, no “Usage” vai aparecer como “osd.0“. O segundo disco será “osd.1” e por aí fora.
Para os três discos seguintes faz-se o mesmo procedimento. Escolhe-se o disco, carrega-se no botão “Create OSD” e cria-se o “OSD” seguinte, até ficar como está nesta página, com os quatro discos a serem usados, cada um sendo um “OSD”.
Passamos ao servidor dois, o “Prox2” “192.168.10.212“. Escolhemo-lo do lado esquerdo do ecrã, selecionamos o tab “Ceph” do lado direito, vamos ao tab inferior de “Disks” e escolhemos o primeiro disco não usado, neste caso o “/dev/vdb“. Carregamos no botão “Create OSD” e cria-se o primeiro “OSD” do servidor “Prox2“.
Fazemos o mesmo procedimento para os restantes três discos do servidor, até ficarem os quatro discos com “osd.x“.
Em seguida vamos fazer os mesmos procedimentos no terceiro servidor “Prox3” “192.168.10.213“, até ficarem os quatro discos que não tinham nada neles com “osd.x“.
Por fim vamos fazer os mesmos procedimentos no último e quarto servidor “Prox4” “192.168.10.214“, até ficarem os quatro discos que não tinham nada neles com “osd.x“.
No fim de criar todos os “OSDs” em qualquer um dos servidor, na tab superior “Ceph” e escolhendo a tab inferior “OSD“, vemos os 16 “OSDs“, com quatro em cada servidor e à frente temos um conjunto de estatísticas.
Passamos à tab seguinte da parte de baixo, com o nome de “Pools“. Aqui vamos criar um “Pool” para podemos usar para as máquinas virtuais. Para isso carregamos na tab “Create“.
No nome podem escolher o nome que preferirem. Eu decidi colocar “ceph” como nome. No “Size” é o número de vezes que um bloco é escrito nos diferentes “OSDs“. Isto é, um bloco de informação, neste caso, é repetido “3” vezes para se ter redundância, caso um ou mais “OSDs” falhem. O “Min.Size” é o número de blocos mínimos que tem que existir por cada bloco. Escolho “1“. O “Crush RuleSet” escolho “0“, porque só existe um. O “pg_num” faz-se a conta com o número de “OSDs” que se tem, neste caso “16” multiplicando por “100” e dividindo pelo size, que é “3“. Neste caso dá o número “533“. Carregar no “OK” para finalizar.
Voltamos ao tab de “Status” e podemos ver agora, que depois de todas as operações que fizemos, o “Health” já está a “OK“.
Na tab “Log” temos ao detalhe as operações feitas e o estado em que está o “Ceph“.