Make ceph minimiza a propagação de partes de arquivos em OSDs

2

Estou considerando uma opção de ceph como sistema de arquivos distribuído para o meu MAID caseiro (grande variedade de unidades inativas).

Tanto quanto eu entendo, Ceph orientado para o uso de cluster e espalhar dados uniformemente sobre OSDs (com relação aos mapas CRUSH) e tenta utilizar o paralelismo de operações de leitura sobre nós diferentes.

No meu caso, não preciso maximizar o spread e o throughput; no caso ideal, ele deve preencher os primeiros N OSDs (onde N é o fator de replicação) e só então começar a preencher os próximos N OSDs para minimizar a quantidade de drives ativos necessários. recuperação de dados adjacentes.

Posso, de alguma forma, obter esse comportamento alterando a contagem de grupos de canais e os mapas CRUSH? Ou se não for possível, posso pelo menos fazer o ceph parar de dividir arquivos em mais de um bloco?

    
por gordon-quad 16.11.2015 / 22:31

1 resposta

0

Não acho que algo semelhante ao que você deseja alcançar seja possível com o ceph. Tanto quanto eu entendo, ceph é um sistema de arquivos distribuídos e que garante alta tolerância a falhas usando replicação. Leia aqui:

O Ceph visa principalmente ser completamente distribuído sem um único ponto de falha, escalonável ao nível do exabyte e disponível gratuitamente.

O poder do ceph é sua escalabilidade e alta disponibilidade:

Scalability and High Availability

In traditional architectures, clients talk to a centralized component (e.g., a gateway, broker, API, facade, etc.), which acts as a single point of entry to a complex subsystem. This imposes a limit to both performance and scalability, while introducing a single point of failure (i.e., if the centralized component goes down, the whole system goes down, too).

Ceph eliminates the centralized gateway to enable clients to interact with Ceph OSD Daemons directly. Ceph OSD Daemons create object replicas on other Ceph Nodes to ensure data safety and high availability. Ceph also uses a cluster of monitors to ensure high availability. To eliminate centralization, Ceph uses an algorithm called CRUSH.

O que eu estou tentando ressaltar é que, o ceph é feito para cuidar do uso do disco físico em um ambiente de cluster de forma a garantir mais resiliência, alta disponibilidade e transparência. Não quieto o que você está procurando.

Se você estiver preocupado com desempenho ou E / S de disco, existe essa opção chamada Afinidade principal , que pode ser empregada, por exemplo, para priorizar discos SAAS sobre SATA. Leia mais aqui e aqui .

Primary Affinity

When a Ceph Client reads or writes data, it always contacts the primary OSD in the acting set. For set [2, 3, 4], osd.2 is the primary. Sometimes an OSD isn’t well suited to act as a primary compared to other OSDs (e.g., it has a slow disk or a slow controller). To prevent performance bottlenecks (especially on read operations) while maximizing utilization of your hardware, you can set a Ceph OSD’s primary affinity so that CRUSH is less likely to use the OSD as a primary in an acting set.

ceph osd primary-affinity <osd-id> <weight>

Primary affinity is 1 by default (i.e., an OSD may act as a primary). You may set the OSD primary range from 0-1, where 0 means that the OSD may NOT be used as a primary and 1 means that an OSD may be used as a primary. When the weight is < 1, it is less likely that CRUSH will select the Ceph OSD Daemon to act as a primary.

Eu sei que isso não responde exatamente a todas as suas perguntas, mas pode fornecer alguma reflexão.

Veja os detalhes aqui: link

E aqui é um bom blog explicando o cluster ceph.

    
por 26.11.2015 / 16:46

Tags