Replicação

Assim como os clientes do Ceph, os OSDs do Ceph podem entrar em contato com os monitores do Ceph para recuperar a cópia mais recente do mapa do cluster. Os OSDs do Ceph também usam o algoritmo CRUSH, mas eles o usam para calcular onde armazenar réplicas de objetos. Em um cenário de gravação típico, um cliente do Ceph usa o algoritmo CRUSH para calcular o ID do grupo de posicionamento e o OSD primário no Conjunto Ativo para um objeto... Quando o cliente grava o objeto no OSD primário, o OSD primário localiza o número de réplicas que deve armazenar. O valor é encontrado na configuração osd_pool_default_size . Em seguida, o OSD primário obtém o ID do objeto, o nome do conjunto e o mapa do cluster e usa o algoritmo CRUSH para calcular os IDs dos OSDs secundários para o conjunto de ações... O OSD primário grava o objeto para os OSDs secundários. Quando o OSD primário recebe uma confirmação dos OSDs secundários e o próprio OSD primário conclui sua operação de gravação, ele reconhece uma operação de gravação bem-sucedida para o cliente Ceph.

Figura 1. E/S replicada
E/S replicada
Com a capacidade de executar a replicação de dados em nome dos clientes do Ceph, o Ceph OSD Daemons alivia os clientes do Ceph desse dever, ao mesmo tempo em que garante alta disponibilidade de dados e segurança de dados.
Nota: o OSD primário e os OSDs secundários geralmente são configurados para estarem em domínios de falhas separados... CRUSH calcula os IDs dos OSDs secundários considerando os domínios de falha.

Cópias de dados

Em um conjunto de armazenamentos replicado, o Ceph precisa de várias cópias de um objeto para operar em um estado degradado Idealmente, um cluster de armazenamento do Ceph permite que um cliente leia e grave dados mesmo se um dos OSDs em um conjunto de ações falhar. Por esse motivo, o Ceph é padronizado para fazer três cópias de um objeto com um mínimo de duas cópias limpas para operações de gravação Ceph ainda preservará dados mesmo se dois OSDs falharem. No entanto, ele interromperá as operações de gravação

Em um conjunto codificado por apagamento, o Ceph precisa armazenar partes de um objeto em vários OSDs para que ele possa operar em um estado degradado. Semelhante aos conjuntos replicados, idealmente um conjunto codificado por apagamento permite que um cliente Ceph leia e grave em um estado degradado.
Importante: Os seguintes valores de codificação jerasure para ke m são suportados:
  • k=8 m=3

  • k=8 m=4

  • k=4 m=2