Skip links

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.

  1. 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

  1. 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

  1. 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.

  1. 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.

  1. 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.

  1. 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!

Leave a comment

This website uses cookies to improve your web experience.