Ceph: armazenamento em bloco do século XXI

Houve um tempo em que o armazenamento era muito simples. Havia uma Single Large Expensive Drive (SLED) e era possível armazenar todos os dados nela. Em seguida, passamos para arrays redundantes de discos de baixo custo (RAID), e as coisas ficaram mais complexas. Mas, ainda era bastante fácil. A menos que o Small Computer System Interface (SCSI) estivesse em jogo.

Mas, mesmo que os discos rígidos fossem substituídos por solid-state drives (SSD), as unidades físicas não acompanhavam as necessidades de dados do servidor existentes atualmente, não se importando com nuvens e containers. E é aqui que o Ceph, e o armazenamento definido por software (SDS) podem ajudar. O Ceph é um sistema SDS open-source. Ele foi projetado para ser executado em hardware comercial off-the-shelf (COTS). Do ponto de vista do usuário, não existe uma preocupação com o hardware – seja um disco rígido habilitado para cache ou RAID SSDs.

Existem duas maneiras de criar esse tipo de SDM. Uma maneira é com um sistema de arquivos distribuídos (DFS), que é basicamente os arquivos e diretórios que estamos habituados a usar há anos. A única diferença real entre o DFS e o armazenamento convencional é que, ao invés de armazenar arquivos em uma única unidade ou array de unidades, eles são armazenados em unidades em vários servidores.

O outro método, que o Ceph usa, é um Object Store, onde cada pedaço de dados é armazenado em um namespace plano e não hierárquico identificado por um ‘unique identifier’. Os detalhes do arquivo, seus metadados, são armazenados junto com o próprio dado.

O Ceph armazena os dados em um Ceph Block Device (CBD). Esta é uma unidade virtual, que pode ser anexada a bare-metal ou a servidores baseados em máquinas virtuais Linux. Para gerenciar o armazenamento, Ceph usa o Ceph Reliable Autonomic Distributed Object Store (RADOS), que facilita o armazenamento de recursos de bloco, como snapshots e replicação.

Dentro do RADOS, um objeto é A unidade de armazenamento. Por sua vez, os objetos são armazenados em pools de objetos. Cada pool tem um nome (por exemplo, “foo”) e forma um namespace de objeto distinto. Cada pool também define como o objeto é armazenado, designa um nível de replicação (2x, 3x etc.) e delineia uma regra de mapeamento, descrevendo como as replicas devem ser distribuídas em todo o cluster de armazenamento. (Por exemplo, cada replica deve ficar em um rack separado).

Finalmente, o cluster de armazenamento Ceph é composto de object storage daemons/devices (OSDs). Esse cluster pode armazenar vários pools e torna o Ceph muito escalável. Você pode começar com um pouco mais de armazenamento do que tem em sua área de trabalho e passar para os petabytes. Embora essas coisas estejam todas conectadas, o que faz com que a maioria das pessoas – e qualquer um que se preocupe com o contexto das coisas – se entusiasme com a Ceph é que ela torna o armazenamento muito mais acessível.


Como acessá-lo?

 

Você pode acessar o armazenamento Ceph de várias maneiras. Se estiver apenas usando o armazenamento em bloco, pode usar o RADOS Gateway, que é uma interface de armazenamento de objetos construída no topo da Librados para fornecer aplicativos com um gateway RESTful para o Ceph Storage Clusters. (Em geral, o Ceph Object Storage suporta duas interfaces. São elas: as interfaces de programação de aplicativos (APIs) OpenStack Swift Representational State Transfer (REST) baseadas no Amazon Simple Storage Service (S3) e no OpenStack Swift Representational State Transfer. O Ceph também possui sua API nativa.

O Ceph também inclui dois outros modos de acesso. O primeiro deles é como armazenamento de arquivos. Ele usa o sistema de arquivos Ceph compatível (CephFS) com o Sistema Operacional Portátil (POSIX). Para os usuários, isso parece um DFS. Você pode até usar esses meios de acesso de armazenamento antiquados como Sistema de arquivos de rede (NFS) com CephFS.

Também é possível montar o Ceph como um dispositivo de bloco. Neste modo, o Ceph automaticamente tira e replica os dados no cluster. O RADOS Block Device (RBD) da Ceph também se integra às máquinas virtuais Kernel (KVMs) incorporadas do Linux. Isso permite fazer o deploy do armazenamento da Ceph em KVMs em execução em seus clientes Ceph.

Configurar o Ceph não é muito difícil. Você deve ter em mente que para usar o Ceph de forma eficiente, precisará de recursos amplos do sistema. Por exemplo, os nós Ceph OSD são padrão para um fator de réplica de três. Isso significa que para cada 1 Terabyte (TB) de objetos, você precisa de 3 TBs de capacidade. A Ceph também recomenda que seus dados OSD, OSD journal e OS residam em discos separados. Em outras palavras, adicionando uma unidade de troca, você precisará de quatro discos físicos.

Por que você deve usar o Ceph? Para a Red Hat, dona do Ceph, ele é “eficiente, ágil e maciçamente escalável” e também “capaz de reduzir significativamente o custo de armazenar informações da empresa na nuvem, ajudando a gerenciar o crescimento exponencial dos dados, para que você possa se concentrar em como disponibilizá-los”.

O Ceph também é muito flexível. Se você deseja acessar o armazenamento como blocos, arquivos ou objetos, tudo estará lá para você. No mundo de hoje, em que precisamos de acesso rápido e confiável a grandes data stores – para não falar em Big Data – programas SDS como o Ceph são tão necessários agora quanto o RAID no passado não muito distante.

Fonte: Medium.com

21