• Nenhum resultado encontrado

3.4 Ceph

3.4.1 Cen´ ario Virtual

O cen´ario virtual foi a primeira hip´otese a ser explorada para a implementa¸c˜ao de um cluster Ceph. Tal deve-se `a facilidade de cria¸c˜ao e de utiliza¸c˜ao de m´aquinas virtuais para o efeito.

Para a cria¸c˜ao do cluster Ceph foi usado o esquema de rede representado na figura 3.5.

Ceph Monitor OSD Daemon Ceph Monitor OSD Daemon Ceph Monitor OSD Daemon Rede Intra-OSD Cluster Ceph Cloud Storage Gateway

Ceph-node1 Ceph-node2 Ceph-node3

CSG

Figura 3.5: Diagrama Ceph - cen´ario virtual

O hardware das m´aquinas virtuais Ceph-Node1, Ceph-Node2 e Ceph-node3 era idˆentico. Todas elas tinham um processador Single Core a 2.6 GHz, 512 Mega Bytes (MB) RAM, e dois discos r´ıgidos: um de 7 Giga Bytes (GB), que era o disco do sistema, e outro de 20 GB, que iria ser usado para o cluster Ceph.

A m´aquina CSG tamb´em tinha um processador Single Core a 2.6 GHz, mas o dobro da mem´oria RAM das m´aquinas Ceph (1024 MB RAM). Quanto aos discos r´ıgidos, esta era composta por quatro discos: um de 7 GB para o sistema, e os restantes trˆes como discos SSD, de modo a funcionarem como cache para os dispositivos de bloco provenientes do cluster Ceph.

A velocidade da rede virtual utilizada era de 1 Gbps.

Na altura da instala¸c˜ao foram utilizadas duas sub-redes, com prop´ositos diferentes: a rede interna do cluster, servia para comunica¸c˜ao exclusiva entre os elementos do cluster, e a rede p´ublica. O uso da rede interna permite reduzir a carga de utiliza¸c˜ao da rede p´ublica, ao eliminar o tr´afego de heartbeat e replica¸c˜ao entre OSDs.

CAP´ITULO 3. DESENVOLVIMENTO 29

• Seguran¸ca: ter uma rede separada para o cluster previne poss´ıveis ataques de Denial of Service (DoS). Quando o tr´afego entre os OSDs ´e interrompido, o estado do cluster deixa de estar em active+clean, o que vai impedir de ler/escrever dados para o cluster;

• Performance: Os OSDs s˜ao respons´aveis pela replica¸c˜ao de dados entre os OSDs do cluster. Quando os OSDs replicam os dados, a carga gerada na rede rapidamente supera a carga da rede entre os clientes e o cluster, o que origina latˆencia na rede e problemas de performance. A verifica¸c˜ao de heartbeat dos OSDs tamb´em origina mais tr´afego na rede, o que pode comprometer a performance desta.

Os passos seguidos para a instala¸c˜ao e configura¸c˜ao do cluster est˜ao enumerados e explicados abaixo. Todo o processo foi executado a partir de uma m´aquina (Ceph- Node1).

1. Cria¸c˜ao do primeiro Ceph-monitor:

• yum install ceph-deploy: Antes de iniciar todo o processo de instala¸c˜ao do cluster Ceph, teve de se instalar o programa ceph-deploy, na m´aquina Ceph-Node1, que vai ser o monitor principal do cluster;

• ceph-deploy new Ceph-Node1: Para criar o cluster, de nome ”ceph”, sendo o Ceph-Node1 o monitor principal;

• ceph-deploy install Ceph-Node1: Instala o Ceph na m´aquina Ceph-Node1; • ceph-deploy mon create-initial: Adiciona a m´aquina como monitor do

cluster. A partir deste ponto o cluster est´a criado, e o seu estado pode ser consultado atrav´es do comando ceph status;

• Foram acrescentadas as seguintes entradas em /etc/ceph/ceph.conf: [global]

public network=192.168.10.0/24 cluster network=192.168.20.0/24

• service ceph restart: Reiniciou-se o servi¸co Ceph, no monitor principal, para confirmar que ficou correctamente instalado;

CAP´ITULO 3. DESENVOLVIMENTO 30

• ceph-deploy install Ceph-Node2 Ceph-Node3;

• ceph-deploy mon create Ceph-Node2 Ceph-Node3: Cria e define as m´aquinas Ceph-Node2 e Ceph-Node3 como monitores do cluster;

3. Instala¸c˜ao dos OSDs:

• ceph-deploy disk list Ceph-Node1: Lista os discos/parti¸c˜oes dispon´ıveis na m´aquina Ceph-Node1, que v˜ao ser utilizadas para o servi¸co OSD;

• ceph-deploy disk zap Ceph-Node1:vdb: Este comando remove a tabela de parti¸c˜oes do disco vdb, para preparar a instala¸c˜ao do Ceph, como OSD; • ceph-deploy osd prepare Ceph-Node1:vdb: Transforma a m´aquina num

n´o OSD do cluster, e criar duas parti¸c˜oes no disco vdb: uma para servir como journal do OSD, outra que vai ser utilizada para armazenar os dados (vdb1 ); • ceph-deploy osd activate Ceph-Node1:vdb1 Activa o Ceph-Node1 como

OSD, na parti¸c˜ao vdb1, depois desta ter sido preparada no passo anterior; A partir deste ponto do processo de instala¸c˜ao e configura¸c˜ao, ao executar o comando ceph -s, foi poss´ıvel verificar que o estado do cluster est´a como AC- TIVE+CLEAN, o que significa que tudo correu como esperado.

Para a instala¸c˜ao dos restantes OSDs, todos os passos descritos no ponto 3 foram repetidos, mas alterou-se para o nome das m´aquinas pretendidas (Ceph-Node2, Ceph-Node3).

4. Cria¸c˜ao de dispositivos de bloco no Ceph:

• rbd create block-csg --size 2048: Criou-se uma imagem de um dispo- sitivo de blocos no Ceph, com o nome block-csg, com tamanho de 2 GB; Inicialmente, para disponibilizar o dispositivo de bloco criado no Ceph ao CSG, utilizou-se o comando rbd para mapear o dispositivo localmente, na m´aquina monitor do cluster Ceph. O comando rbd permite criar, listar, alterar e remover imagens de dispositivos de bloco com origem no Ceph. Ao longo dos testes efectuados chegou-se `a conclus˜ao que este m´etodo n˜ao era o ideal para exportar os dispositivos via iSCSI para os clientes, porque as velocidades obtidas eram muito baixas.

Outro inconveniente deste procedimento era o facto da m´aquina CSG tomar o papel de Ceph Client, o que implica que o CSG fa¸ca parte do cluster. Isto iria eliminar o objectivo da utiliza¸c˜ao do Ceph, que passava pela simula¸c˜ao de uma

CAP´ITULO 3. DESENVOLVIMENTO 31

Cloud para exporta¸c˜ao de espa¸co existente na nuvem, de uma forma transparente e atrav´es de iSCSI, para o CSG. A figura 3.6 ilustra o esquema inicial.

Ceph Monitor + OSD Daemon

Cluster Ceph original Ceph Client

CSG

RBD

Cluster Ceph original + Ceph Client

Cliente ISCSI

Figura 3.6: Diagrama Ceph - Cluster Ceph+Ceph Client

A solu¸c˜ao encontrada foi exportar, via iSCSI, os dispositivos de blocos directamente a partir das m´aquinas pertencentes ao cluster. Para isso teve de se instalar o pacote scsi-targets-utils modificado para poder exportar imagens de dispositivos criados pelo rbd. Isto acontece porque o pacote scsi-targets-utils, por omiss˜ao, n˜ao suporta dispositivos rbd. O pacote utilizado estava dispon´ıvel no reposit´orio extra do Ceph [46]. Desta forma, para o CSG, a importa¸c˜ao dos dispositivos de bloco provenientes do cluster Ceph foi feita usando os procedimentos habituais em Linux, como pode ser consultado na sec¸c˜ao 3.5. Na figura 3.7 pode-se visualizar como ficou a estrutura usada ao longo do projecto.

Ceph Monitor + OSD Daemon Ceph Monitor+ scsi-targets- utils

Cluster Ceph original

CSG

ISCSI

Cliente ISCSI

Figura 3.7: Diagrama Ceph - Cluster Ceph+scsi targets utils

Documentos relacionados