Armazenamento multinó

Esta página descreve o armazenamento de vários nós do sistema de appliance isolado do Google Distributed Cloud (GDC).

O dispositivo isolado do GDC consiste em três servidores e seis discos NVMe anexados a cada um deles:

  • 2X mídia de inicialização NVMe de 1 TB
  • 4X 3,84 TB NVMe

Os dois discos NVMe de 1 TB em cada nó são dedicados a inicialização e cargas de trabalho do sistema, enquanto os outros quatro discos NVMe de 3,84 TB são usados como parte do armazenamento de dados confiável.

O GDC usa o Ceph como armazenamento definido por software para armazenar de maneira confiável dados do sistema e do usuário. O cluster do Ceph é implantado no nível de metal em todos os três servidores e usa um total de 12 unidades NVMe de 3,84 TB (quatro por servidor) conectadas a esses servidores como armazenamento subjacente.

Cada servidor contém um monitor, um gerenciador, um RGW, um RBD e quatro OSDs.

Componentes de armazenamento do Ceph

Monitor do Ceph

O monitor do Ceph mantém os mapas de estado do cluster, incluindo o mapa do monitor, do gerenciador e do daemon de armazenamento de objetos (OSD, na sigla em inglês). Esses mapas representam um estado crítico do cluster necessário para que os serviços do Ceph se coordenem. Os monitores também são responsáveis por gerenciar a autenticação entre serviços e clientes. Pelo menos três monitores são necessários para redundância e alta disponibilidade.

Gerenciador do Ceph

O gerenciador do Ceph é responsável por acompanhar as métricas de tempo de execução e o estado atual do cluster do Ceph, incluindo a utilização do armazenamento, as métricas de desempenho atuais e a carga do sistema. Normalmente, são necessários pelo menos dois gerentes para alta disponibilidade. O ambiente do GDC executa o mesmo número de gerenciadores e monitores do Ceph. Portanto, três gerenciadores do Ceph são implantados no cluster.

Daemon de armazenamento de objetos (OSD) do Ceph.

O daemon de armazenamento de objetos (https://docs.ceph.com/en/quincy/glossary/#term-Ceph-OSD) armazena dados e processa a replicação, a recuperação e o rebalanceamento de dados. O OSD fornece algumas informações de monitoramento aos monitores e gerenciadores do Ceph verificando outros OSDs do Ceph em busca de um pulso. Normalmente, são necessários pelo menos três OSDs do Ceph para redundância e alta disponibilidade. O ambiente do GDC aloca um OSD por unidade física.

Dispositivos de bloco Rados (RBD) do Ceph

Os dispositivos de bloco do Ceph são provisionados de forma reduzida e podem ser redimensionados. Eles armazenam dados distribuídos em vários OSDs. Os dispositivos de bloco do Ceph aproveitam os recursos principais do Ceph, incluindo criação de snapshots, replicação e consistência forte. No ambiente do GDC, o Ceph RBD não é exposto diretamente. No entanto, ele é usado pelo driver CSI do Ceph de armazenamento em blocos, que é responsável por oferecer suporte ao armazenamento do Kubernetes voltado ao usuário (https://kubernetes.io/docs/concepts/storage/).

RGW do Ceph

O Ceph Rados Gateway é uma interface de armazenamento de objetos que oferece aos aplicativos um gateway RESTful para clusters de armazenamento do Ceph (https://docs.ceph.com/en/quincy/glossary/#term-Ceph-Object-Storage).

  • Compatível com S3: oferece funcionalidade de armazenamento de objetos com uma interface compatível com um grande subconjunto da API RESTful do Amazon S3.
  • Compatível com Swift: oferece funcionalidade de armazenamento de objetos com uma interface compatível com um grande subconjunto da API OpenStack Swift.

No ambiente do GDC, apenas os endpoints do S3 são expostos usando o serviço de malha de serviço do Kubernetes.

Resiliência de armazenamento do GDC

Os componentes de bloco e armazenamento de objetos do Ceph são configurados para usar um fator de replicação de dados de 3. É preciso ter pelo menos duas réplicas disponíveis para continuar processando entrada/saída (E/S). O domínio de falha no nível do nó é usado, o que significa que o Ceph tenta replicar os dados três vezes (3x) em três servidores diferentes.

Confira alguns exemplos de como lidar com uma falha:

  • Uma única falha de nó não causa perda de dados e não afeta as operações de armazenamento das cargas de trabalho.
  • Duas falhas de disco em nós diferentes não causam perda de dados. No entanto, isso pode afetar a disponibilidade de armazenamento para cargas de trabalho que têm duas de três réplicas de dados nesses discos.
  • Mais de uma falha de nó ou mais de duas falhas de disco em nós diferentes podem causar perda de dados e podem afetar a disponibilidade de armazenamento para cargas de trabalho.

Capacidade de armazenamento do GDC

A capacidade de espaço em disco bruto disponível é igual a:

raw_capacity = 3.84TB * 4 (disks_per_node) * 3 (nodes) = 46.08TB

No entanto, como os dados armazenados em um cluster do Ceph são replicados três vezes, a capacidade de armazenamento útil disponível para todas as cargas de trabalho é a seguinte:

available_capacity = raw_capacity / 3 (replicas) = 15.36TB

15,36 TB são compartilhados entre cargas de trabalho do sistema e do usuário para armazenamento de blocos e objetos.