Чтобы полностью использовать полосу пропускания SAS/SATA SSD или NVMe, они должны расщепляться примерно между пятью (для SAS SSD, для NVMe нет данных).

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

Рассмотрим случай с четырьмя хостами, каждый из которых имеет шесть дисков Intel s3610 1.6ТБ SSD. Последовательность действий такова:

  1. Определите все номера OSD, которые вы хотите заменить. Отобразите все OSD сгруппировав их по хостам, на которых они находятся воспользовавшись командой ceph osd tree на любом Контроллере или узле Ceph. Все узлы имеют веса близкие к их размерам в ТБ. В отображаемом примере вес равен 1.45 (для OSD 1.5ТБ):

    root@node-12:~# ceph osd tree
    ID  WEIGHT   TYPE NAME          UP/DOWN REWEIGHT PRIMARY-AFFINITY
     -6 34.79999 root root
     -7  8.70000     host node-7
      0  1.45000         osd.0           up  1.00000          1.00000
      1  1.09000         osd.1           up  1.00000          1.00000
      2  1.09000         osd.2           up  1.00000          1.00000
      3  1.09000         osd.3           up  1.00000          1.00000
      4  1.09000         osd.4           up  1.00000          1.00000
      5  1.45000         osd.5           up  1.00000          1.00000
      6  1.09000         osd.6           up  1.00000          1.00000
      7  1.09000         osd.7           up  1.00000          1.00000
      8  1.45000         osd.8           up  1.00000          1.00000
    

  2. Выпишите соответствия идентификаторов host к osd. В нашем случае мы сохраняем их в качестве переменных оболочки:

    host7_osd='0 5 8 15 19 20'
    host8_osd='21 22 27 29 31 39'
    host9_osd='26 41 44 48 54 64'
    host10_osd='33 63 70 72 77 79'
    

  3. Установите соединение SSH к самому первому узлу OSD Ceph. Остановите и удалите все OSD на нём:

    osd="$host7_osd"
    for i in $osd; do
      service ceph-osd stop id=$i
      sleep 1
      ceph osd crush remove osd.$i
      ceph auth del osd.$i
      ceph osd rm $i
    done
    disks=$(mount|egrep "ceph-(${osd// /|}) "|cut -d' ' -f1|cut -d/ -f3|tr '
    ' ' '|tr -d3)for i in $osd; do umount /var/lib/ceph/osd/ceph-$i; done
    

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

  4. Разметьте заново все SSD, перечисленные в имеющейся переменной disks. Создайте пять эквивалентных разделов XFS на каждом SSD:

    for i in $disks; do
    parted /dev/$i rm 3
    parted /dev/$i mkpart ceph xfs 237MB 320253MB
    parted /dev/$i mkpart ceph xfs 320253MB 640269MB
    parted /dev/$i mkpart ceph xfs 640269MB 960285MB
    parted /dev/$i mkpart ceph xfs 960285MB 1280301MB
    parted /dev/$i mkpart ceph xfs 1280301MB 1600321MB
    done
    

  5. Создайте и активируйте новые OSD в этих новых разделах:

    for d in $disks; do for i in 3 4 5 6 7; do ceph-disk -v prepare --fs-type xfs
    --cluster ceph -- $d$i; done; done
    for d in $disks; do for i in 3 4 5 6 7; do ceph-disk -v activate --mark-init upstart
    --mount $d$i; done; done
    

  6. Воспользовавшись командой ceph status проверьте состояние Ceph. Дождитесь пока весь кластер Ceph вновь станет полностью жизнеспособным и все OSD перейдут в состояние active+clean:

    root@node-12:~# ceph status
        cluster ee126587-f638-484f-a23a-7aac7e931c12
         health HEALTH_OK
         monmap e3: 3 mons at
    {node-14=192.168.3.14:6789/0,node-15=192.168.3.15:6789/0,node-22=192.168.3.17:6789/0}
                election epoch 14, quorum 0,1,2 node-14,node-15,node-22
          osdmap e4426: 180 osds: 178 up, 178 in
           pgmap v738789: 8960 pgs, 13 pools, 36966 MB data, 9582 objects
            373 GB used, 100929 GB / 101302 GB avail
                8960 active+clean
    

  7. Повторите шаги 3-6 для каждого из узлов Ceph.

Подробнее:

Поделиться с друзьями
-->

Комментарии (13)


  1. Opik
    15.03.2017 19:52
    +2

    Bluestore все еще нельзя использовать? Ведь по идее там должно быть все лучше


    1. OlegBou
      16.03.2017 11:18

      пропустил, спасибо буду знакомиться с новым голубым другом.
      Здесь речь идёт о промышленных применениях.


    1. Faight
      16.03.2017 21:37

      Его пока не рекомендуют использовать в продакшене.


  1. evg_krsk
    15.03.2017 20:07

    А расскажите, как вы мониторите утилизацию полосы пропускания SSD? Или 5 для SAS SSD это просто эмпирическая цифра.


    1. OlegBou
      16.03.2017 10:56

      эмпирические данные из разных источников
      по NVMe данных пока нет


  1. MinamotoSoft
    15.03.2017 20:09
    +3

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

    … примерно так читается сей опус.


    1. OlegBou
      16.03.2017 10:55


      1


    1. OlegBou
      16.03.2017 10:59

      так и есть.
      для интересующихся данным вопросом приведены ссылки


  1. Dimonyga
    16.03.2017 06:00

    Что я только что прочитал?
    Автору рекомендую почитать официальную доку, а не городить костыли.
    http://docs.ceph.com/docs/master/rados/configuration/osd-config-ref/#operations


    1. OlegBou
      16.03.2017 10:57

      в вашей ссылке описывается журналирование.
      В заметке описывается создание полноценных OSD на SSD, пытающихся использовать всю имеющуюся пропускную способность имеющихся в их распоряжении физ.устройств.


  1. SergeAx
    16.03.2017 13:59
    +1

    А цифры до/после покажите, пожалуйста?


    1. Faight
      16.03.2017 21:33

      +1 интересуют цифры.


    1. OlegBou
      17.03.2017 10:27

      4 и 6 хуже. Запросил разрешение публикации результатов тестирования.
      Пока это всё что могу сказать.