Eu tenho um sistema de armazenamento SSD que contém dois nós com 6 unidades SSD. Não é o ideal e, em algum momento, apresentarei outro nó. No momento, estou querendo uma replicação de 3 vias.
Sob uma regra padrão, isso não acontecerá porque temos apenas dois nós. Então, pensei em tentar modificar o mapa de esmagamento e definir o conjunto de regras para os nós de armazenamento SSD para colocar dados nos dois nós e o terceiro conjunto pode estar em outro OSD no mesmo nó.
Sendo um novato e não entendendo totalmente como as instruções choose firstn
e chooseleaf firstn
funcionam, não tenho certeza se isso fará o que pretendo.
Aqui está o que eu tenho até agora:
rule ssd-all {
ruleset 1
type replicated
min_size 1
max_size 5
step take ssd
step choose firstn 0 type host
step chooseleaf firstn 2 type osd
step emit
}
Onde ssd é um tipo de raiz contendo alguns hosts e os hosts contendo vários (6) OSDs.
Isso funcionaria? De alguma forma, não acho certo. Gostaria de entender melhor quando usar choose
e onde usar chooseleaf
. E uma melhor compreensão do número após firstn
. A documentação carece de exemplos claros. A leitura do whitepaper CRUSH fez algum sentido, mas o psuedocode não está tão claro para mim. Alguém pode ajudar?
Acontece que está tudo bem.
depois de correr
Com vários números de réplicas para --num-rep, parece que as condições foram atendidas corretamente. Existem pelo menos 3 réplicas nos dois hosts com até 2 réplicas em um único host em 2 osds diferentes.