O Ceph Storage é um sistema de armazenamento distribuído de código aberto que oferece escalabilidade, confiabilidade e desempenho para ambientes de armazenamento de dados em grande escala.
Utilizaremos a ISO do CentOS 9 Stream
https://mirror.team-cymru.com/centos-stream/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-latest-x86_64-dvd1.iso
Hosts
Sistema Operacional | IP | HOSTNAME | SSD | OBS |
CentOS 9 Stream | 192.168.0.10 | ceph.jrf.local | 20GB (Sistema) 30GB 30GB | Ceph (Manager) |
CentOS 9 Stream | 192.168.0.20 | ceph02.jrf.local | 20GB 30GB 30GB | |
CentOS 9 Stream | 192.168.0.30 | ceph03.jrf.local | 20GB 30GB 30GB | |
Ubuntu 22.04 | 192.168.0.100 | ubuntu.jrf.local | 1TB | Cliente |
Update
dnf -y update
Verifique se você tem o pacote ‘gnupg2’ instalado
yum list installed | grep gnupg2
Edite o arquivo /etc/chrony.conf
pool a.st1.ntp.br iburst
pool b.st1.ntp.br iburst
pool c.st1.ntp.br iburst
pool a.ntp.br iburst
pool b.ntp.br iburst
pool c.ntp.br iburst
Salve o arquivo e inicie o serviço
systemctl enable --now chronyd
Agora vamos instalar o Podman
dnf install podman -y
Vamos ajustar a versão do Python para 3.6 (selecione a opção 2)
dnf module -y install python36 && alternatives --config python
CEPH
dnf install --assumeyes centos-release-ceph-pacific.noarch
dnf install --assumeyes cephadm
Ajustando o arquivos hosts
vim /etc/hosts
127.0.0.1 localhost
192.168.0.10 ceph.jrf.local
192.168.0.20 ceph02.jrf.local
192.168.0.30 ceph03.jrf.local
Apenas no servidor principal, execute o seguinte comando
bash <<'EOF'
cephadm bootstrap \
--cluster-network 192.168.0.0/24 \
--mon-ip 192.168.0.10 \
--dashboard-password-noupdate \
--initial-dashboard-user admin \
--initial-dashboard-password ceph \
--allow-fqdn-hostname \
--single-host-defaults
EOF
Configurando o CEPH
cephadm shell
Status
ceph -s
Configurando o disco
lsblk
Dica: ceph orch apply osd –all-available-devices (adiciona todos os discos automaticamente não recomendado)
fdisk -l
Obtendo o nome do host (para inclusão dos discos)
ceph orch host ls
Adicionando os discos
ceph orch daemon add osd ceph.jrf.local:/dev/nvme0n2
ceph orch daemon add osd ceph.jrf.local:/dev/nvme0n3
O comando “ceph -s” é utilizado para exibir o estado geral de um cluster Ceph. Ele fornece informações sobre a saúde, status e estatísticas de vários componentes dentro do cluster Ceph. O resultado do comando deve ser algo como ” health: HEALTH_OK “
Criando um pool
ceph osd pool create rbd
ceph osd lspools
ceph osd pool application enable rbd rbd
No momento, o comando “rbd list“, virá sem resultados (volumes). Então podemos criar os volumes:
rbd create VMs --size 5G
exit
Agora iremos adicionar os hosts ao cluster, mas antes iremos fazer um backup do arquivo .pub:
cp /etc/ceph/ceph.pub /etc/ceph/ceph.pub.bkp
ssh-copy-id -f -i /etc/ceph/ceph.pub root@192.168.0.20
ssh 'root@192.168.0.20
ssh-copy-id -f -i /etc/ceph/ceph.pub root@192.168.0.30
ssh 'root@192.168.0.30
Agora sim, podemos adicionar
cephadm shell
ceph orch host add ceph02.jrf.local
ceph orch host add ceph03.jrf.local
Vamos configurar os OSD em cada host
ceph orch daemon add osd ceph02.jrf.local:/dev/nvme0n2
ceph orch daemon add osd ceph02.jrf.local:/dev/nvme0n3
ceph orch daemon add osd ceph03.jrf.local:/dev/nvme0n2
ceph orch daemon add osd ceph03.jrf.local:/dev/nvme0n3
Verificando o status
ceph -s
Configurando o cliente
Vamos copiar as configurações do servidor
cat /etc/ceph/ceph.keyring && cat /etc/ceph/ceph.conf
No cliente
Iremos instalar o pacote ceph-common
usando o apt
em um sistema Linux baseado em Debian
sudo apt install -y ceph-common
Vamos copiar o resultado do comando cat
executado no servidor e colá-lo nos locais apropriados do cliente.
sudo vim /etc/ceph/ceph.keyring
E
sudo vim /etc/ceph/ceph.conf
Agora temos os discos prontos para uso
sudo rbd list && sudo rbd map VMs
Vamos formatar os discos
sudo mkfs.ext4 /dev/rbd0
Montando os discos
sudo mount /dev/rbd0 /mnt/
*sudo umount /mnt && sudo rbd unmap /dev/rbd0
Interface WEB Ceph https://<NOME DO HOST> ou <IP>:8443