
Ceph Ansible: automatize o deploy e gerencie clusters
Implantar e gerenciar clusters de armazenamento pode ser um desafio, especialmente em soluções de grande escala. No entanto, ferramentas como o Ansible oferecem uma maneira de automatizar e simplificar todo o processo de deploy e gerenciamento. Assim, ao combinar Ansible com o Ceph, é possível não apenas acelerar a implantação, mas também garantir consistência e reduzir erros humanos.
Neste artigo, vamos explorar como automatizar a implantação de um cluster Ceph usando o Ansible, economizando tempo e garantindo que o gerenciamento seja o mais simples possível.
O que é Ceph e por que escolher o Ansible para a implantação
O Ceph é uma solução de armazenamento distribuído que oferece alta disponibilidade, escalabilidade e desempenho, sendo ideal para ambientes que exigem grandes volumes de dados. Além disso, seu design distribuído permite que ele seja altamente confiável e adaptável, tornando-o uma escolha interessante para quem precisa de uma infraestrutura de armazenamento robusta e flexível. Contudo, a implantação manual de um cluster Ceph pode ser uma tarefa desafiadora, pois envolve múltiplas etapas de configuração e integração de diferentes componentes.
Logo, para simplificar esse processo, o Ansible é uma excelente escolha. O Ansible é uma ferramenta de automação open-source que permite automatizar tarefas repetitivas, como o gerenciamento de configurações, instalação de aplicativos e orquestração de serviços. Dessa forma, a combinação de Ceph e Ansible proporciona uma solução poderosa para implantar e gerenciar clusters de forma eficiente e sem erros humanos, garantindo uma operação mais fluida e rápida.
Passo a passo para implantar o Ceph com Ansible
A seguir, apresentamos um guia passo a passo para realizar o deploy do Ceph utilizando o Ansible. Assim, é possível configurar um cluster Ceph de maneira automatizada, seja utilizando hosts físicos ou containers Docker.
-
Clonando o repositório
Primeiramente, para implantar o Ceph com Ansible é clonar o repositório oficial do Ceph Ansible. Para isso, utilize o seguinte comando:
git clone https://github.com/ceph/ceph-ansible.git
Logo após clonar o repositório, navegue até o diretório clonado para iniciar a configuração:
cd ceph-ansible
-
Configuração do repositório
Em seguida, é necessário realizar o checkout da versão do Ceph que é compatível com o sistema operacional dos hosts. Neste exemplo, vamos usar a versão v5.0.12. Assim, utilize o comando:
git checkout v5.0.12
-
Criando o ambiente virtual e instalando dependências
Uma vez configurado o repositório, o próximo passo é criar um ambiente virtual para isolar a instalação das dependências necessárias. Dessa forma, pode ser feito com o seguinte comando:
python -m venv env
source env/bin/activate
pip install -r requirements.txt
Contudo, esses passos garantem que todas as dependências necessárias para rodar o Ansible e o Ceph sejam instaladas de forma limpa, o que ajuda a evitar conflitos com outras aplicações.
-
Configurações iniciais no grupo de variáveis
Em seguida, no diretório group_vars, é possível encontrar arquivos de configuração que definem como os diferentes módulos do Ceph devem ser instalados e configurados. Entretanto, é necessário remover o sufixo .sample dos arquivos de configuração para ativá-los. Por exemplo, remova o sufixo dos arquivos site.yml.sample e site-docker.yml.sample.
Logo após, edite o arquivo group_vars/all.yml, onde estão definidas as configurações globais do cluster. Algumas configurações incluem, por exemplo:
ceph_origin: repository
ceph_repository: community
ceph_stable: true
cephx: true
monitor_interface: <interface usada pelos monitores>
journal_size: 5120
public_network: rede/máscara
cluster_network: rede/máscara
osd_mkfs_type: ext4
radosgw_interface: <interface usada pelo radosgw>
ceph_conf_overrides:
global:
osd pool default size: 3
osd pool default size: 2
osd pool default min size: 1
grafana_admin_user: <grafana user>
grafana_admin_password: <grafana password>
dashboard_admin_password: <dashboard password>
Portanto, essas configurações são essenciais para garantir que o cluster Ceph funcione corretamente, dependendo do ambiente escolhido.
-
Configuração dos OSDs
Em seguida, edite o arquivo group_vars/osds.yml para configurar os OSDs (Object Storage Daemons). O exemplo abaixo mostra como mapear os discos disponíveis:
devices:
– /dev/sdb
– /dev/sdc
– /dev/sdd
– /dev/sde
– /dev/sdf
– /dev/sdg
osd_auto_discovery: false
osds_per_device: 1
Em seguida, altere a opção osd_auto_discovery para false, pois isto evita que o Ceph detecte discos que não são desejados para uso no cluster. Assim, é possível garantir um controle mais rigoroso dos recursos.
-
Configurando o inventário
Primordialmente, o arquivo inventory mapeia todos os hosts envolvidos na implantação do Ceph. Além disso, ele é responsável por identificar os monitores, OSDs, clientes e MGRs do cluster. No entanto, caso esse arquivo não exista, deve-se criá-lo. O conteúdo do arquivo inventory pode ser algo como, por exemplo:
[mons]
vm1 ansible_connection=ssh ansible_ssh_user=root
vm2 ansible_connection=ssh ansible_ssh_user=root
vm3 ansible_connection=ssh ansible_ssh_user=root
[osds]
dp1 ansible_connection=ssh ansible_ssh_user=root
dp2 ansible_connection=ssh ansible_ssh_user=root
dp3 ansible_connection=ssh ansible_ssh_user=root
dp4 ansible_connection=ssh ansible_ssh_user=root
dp5 ansible_connection=ssh ansible_ssh_user=root
[grafana-server]
vm1 ansible_connection=ssh ansible_ssh_user=root
[clients]
client-1 ansible_connection=ssh ansible_ssh_user=root
[mgrs]
vm1 ansible_connection=ssh ansible_ssh_user=root
[mdss]
vm3 ansible_connection=ssh ansible_ssh_user=root
vm1 ansible_connection=ssh ansible_ssh_user=root
[rgws]
vm3 ansible_connection=ssh ansible_ssh_user=root
vm2 ansible_connection=ssh ansible_ssh_user=root
[iscsigws]
iscsi1 ansible_connection=ssh ansible_ssh_user=root
iscsi2 ansible_connection=ssh ansible_ssh_user=root
[nfss]
vm2 ansible_connection=ssh ansible_ssh_user=root
vm1 ansible_connection=ssh ansible_ssh_user=root
Além disso, é necessário configurar o arquivo /etc/hosts ou usar um sistema de DNS interno para resolver os nomes de cada host do cluster.
Execução do playbook
Então, com todas as configurações realizadas, o próximo passo é executar o playbook do Ansible para implantar o Ceph. Portanto, caso tenha configurado os hosts físicos, execute o seguinte comando:
ansible-playbook -i inventory site.yml
No entanto, se a implantação for realizada em containers, utilize:
ansible-playbook -i inventory site-docker.yml
Assim, esse processo automatiza a instalação e configuração de todos os componentes necessários para o Ceph.
Gerenciamento pós-implantação: atualizações e remoção de clusters
Após a implantação, a manutenção e a atualização do cluster Ceph também podem ser feitas de forma automatizada com o Ansible. Além disso, para atualizar o cluster, basta alterar a tag da versão desejada e executar novamente o playbook.
Logo, caso seja necessário remover o cluster, o Ansible também pode ser utilizado para realizar a remoção de forma segura e sem afetar outros componentes da infraestrutura. Dessa forma, isso garante que a gestão do Ceph se torne um processo ágil e sem erros.
Conclusão
Por fim, automatizar a implantação de Ceph com Ansible oferece uma solução eficiente e segura para gerenciar clusters de armazenamento distribuído. Além disso, através desse processo, é possível reduzir erros humanos, garantir configurações consistentes e melhorar a escalabilidade do ambiente. Logo, ao adotar o Ansible, é possível não apenas implantar o Ceph de maneira mais rápida, como também facilitar a manutenção contínua e a atualização dos clusters.
A SC Clouds , oferece suporte especializado para ajudar a implementar e gerenciar soluções de armazenamento em nuvem com Ceph, garantindo que a infraestrutura esteja sempre otimizada e eficiente. Então, não perca tempo e fale conosco!