Neste post será apresentado como realizar algumas operações com pools e pgs de forma prática.
O link abaixo explica melhor o conceito das Pools , Pgs e objetos dentro do Cluster Ceph.
https://cephbrasil.com/ceph-como-funciona/
Para uma breve explicação os dados que são gravados no Storage são dividos em objetos, onde são agrupados em diversas PGs e são distribuídos para as OSDs via algoritmo Crush.
1. RequisitosLaboratório do SiteDeploy do Ceph Cliente RBD 2. Pools e Pgs
Listando as pools no Cluster.
[ceph@mon1 ~]$ sudo ceph osd lspools
1 rbd
Criando a pool de teste com 128 pgs
# ceph osd pool create <POOL NAME> <PG NUMBER> <PGP NUMBER>
[ceph@mon1 ~]$ sudo ceph osd pool create poola 128 128
pool 'poola' created
Executamos o comando ceph osd pool ls detail para ver detalhes do pool.
Com o output acima podemos considerar :
replicated size – Número de replicas configuradas para as pools , controlado pela opção “osd pool default size = 2” no arquivo ceph.conf. Para um ambiente de produção o valor default é 3 .
min_size – Garante o números de réplicas que eu posso escrever antes de entrar em um estado degradado e também controlado pela opção “osd min default size = 1” no arquivo ceph.conf..
Para um ambiente de produção o valor é 2.
pg_num – Nossa pool foi criada com 128 pgs e replica de 2 , o que signica que temos um total de 256.
pgp_num – É o número de pgs que serão consideradas para posicionamento pelo algoritmo crush , por padrão é utilizado o mesmo valor de pgs.
Podemos alterar o número de pgs ou replicas com os comandos :
ceph osd pool create {pool-name} pg_num
ceph osd pool set {poolname} size {num-replicas}
Lembrando que quando alteramos os valores de réplica ou pgs automaticamente será rebalanceado e isso pode causar perda de performance em um cenário em produção.
Para deletarmos a pool precisamos injetar uma opção temporária no serviço do mon , que por padrão vem false para garantir que não haja erros. Após o restart do serviço esta opção não ficará disponível tendo que aplicar novamente caso necessário.
[ceph@mon1 ~]$ sudo ceph osd pool delete poola poola --yes-i-really-really-mean-it
pool 'poola' removed
3. Manipulando objetos
Vamos criar alguns arquivos na pool rbd que está com réplica de 3 configurada e utilizaremos a imagem montada rbd1 na vm client para gerarmos alguns objetos.
[root@client labrbd]# cd /opt/labrbd
[root@client labrbd]# for i in seq $(1 50) ; do echo file$i ; done
Listando objetos a partir de um servidor mon o comando rados ls -p <POOL NAME>
Mapeando de onde está o objeto ceph osd map <POOL NAME> <OBJECT NAME>
Deixe um comentário