Как мы можем запустить кластер Ceph с 2 узлами, но с 3 репликами? - PullRequest
0 голосов
/ 30 января 2019

У нас есть только два узла OSD по соображениям стоимости, но я бы хотел использовать 3 реплики, чтобы очистка могла исправить любые ошибки данных, у меня возникли сложности при поиске наилучшего определения правила дробления для этого.

Это Ceph Mimic.

Кластер выглядит так:

$ ceph osd tree
ID CLASS WEIGHT   TYPE NAME         STATUS REWEIGHT PRI-AFF
-1       20.95917 root default
-3       10.47958     host san10
 0   ssd  1.74660         osd.0         up  1.00000 1.00000
 1   ssd  1.74660         osd.1         up  1.00000 1.00000
 2   ssd  1.74660         osd.2         up  1.00000 1.00000
 3   ssd  1.74660         osd.3         up  1.00000 1.00000
 4   ssd  1.74660         osd.4         up  1.00000 1.00000
 5   ssd  1.74660         osd.5         up  1.00000 1.00000
-5       10.47958     host san11
 6   ssd  1.74660         osd.6         up  1.00000 1.00000
 7   ssd  1.74660         osd.7         up  1.00000 1.00000
 8   ssd  1.74660         osd.8         up  1.00000 1.00000
 9   ssd  1.74660         osd.9         up  1.00000 1.00000
10   ssd  1.74660         osd.10        up  1.00000 1.00000
11   ssd  1.74660         osd.11        up  1.00000 1.00000

Правило, которое у меня есть:

rule myrule {
  id 2
  type replicated

  min_size 3
  max_size 4

  step take default
  step choose firstn 2 type host
  step chooseleaf firstn 2 type osd
  step emit
}

Запуск инструмента раздавливания для тестированияправило:

$ crushtool -c map.txt -o map.bin && crushtool -i map.bin --test --show-statistics --show-mappings --rule 2 --min-x 1 --max-x 10 --num-rep 3
rule 2 (myrule), x = 1..10, numrep = 3..3
CRUSH rule 2 x 1 [9,11,5]
CRUSH rule 2 x 2 [1,3,9]
CRUSH rule 2 x 3 [0,4,11]
CRUSH rule 2 x 4 [8,10,5]
CRUSH rule 2 x 5 [3,0,7]
CRUSH rule 2 x 6 [2,4,6]
CRUSH rule 2 x 7 [9,6,1]
CRUSH rule 2 x 8 [2,5,7]
CRUSH rule 2 x 9 [9,8,4]
CRUSH rule 2 x 10 [10,7,4]
rule 2 (myrule) num_rep 3 result size == 3: 10/10

Таким образом, кажется, что OSD выбирается на обоих хостах, но я не уверен, что так будет всегда.Может кто-нибудь, пожалуйста, подтвердите?Или предложить лучший способ добиться этого?

...