Isso faz sentido e é possível em uma configuração de 3 nós, como deve ser a regra de esmagamento? Esse é o atual. A ideia por trás disso é compensar várias interrupções de osd (por exemplo, 3 osds, um por nó falhará)
# rules
rule replicated_rule {
id 0
type replicated
min_size 1
max_size 10
step take default
step chooseleaf firstn 0 type host
step emit
}
Sim, isso é possível com
step chooseleaf firstn 0 type osd
. Se isso faz sentido, é outra pergunta, por exemplo, sua sobrecarga de armazenamento seria muito alta. Se você tiver capacidade, poderá fazer isso, mas o ceph foi projetado como uma solução altamente escalável, com essa configuração você tem uma espécie de case de canto. Normalmente, a replicação baseada em host é suficiente commin_size = 2
esize = 3
. Dessa forma, não importa quantos OSDs falhem em um host, e mesmo que um segundo host fique inativo, seus dados ainda não serão perdidos, apenas degradados até que você coloque os OSDs novamente online. Mas observe também que, com apenas três hosts, você não poderá recuperar um nó com falha, portanto, o cluster operará em um estado degradado até que o nó seja reparado ou um novo nó se junte ao cluster.Você pode editar sua regra de esmagamento (ou criar uma nova para testá-la primeiro) para que ela escolha primeiro todos os hosts disponíveis e depois o número de OSDs, pode ficar assim:
Você deve testá-lo antes de aplicar com
crushtool
.