Масштабування розміру файлової системи Ceph

1. Проблематика та загальні практики

Розробники Ceph-платформи рекомендують завчасно реагувати на зростання розміру файлової системи та не допускати переповнення дисків. Тому може виникнути типова потреба у масштабуванні розміру файлової системи.

Рекомендується регулярно перевіряти місткість кластера, щоб побачити, чи досягає він верхньої межі місткості пам’яті. Коли кластер досягає свого майже повного співвідношення, додайте одне або кілька OSD, щоб збільшити місткість Ceph-кластера.

2. Принцип масштабування розміру файлової системи Ceph

На Платформі реєстрів масштабування Ceph відбувається виключно засобами платформи OKD та вбудованого Ceph-оператора реалізовуючи оператор паттерн.

Оператор паттерн — це підхід використання програмних розширень Платформи OKD, які використовують спеціальні ресурси для керування програмами, їхніми компонентами та конфігураціює. Оператори дотримуються принципів Kubernetes, зокрема циклу керування та автоматизації.
Реконсиляція (англ. Reconcilation) або приведення в узгоджений стан — є частиною здібностей самовідновлення OKD Платформи та є процесом приведення поточного стану конфігурації в бажаний стан.

Розширення розміру файлової системи Ceph може бути виконано у два різні способи:

2.1. Додаванням дисків до наявних віртуальних машин

Для створення нових дисків у віртуальних машин та додавання їх у пул Ceph потрібно виконати наступні дії:

  1. Відкрити OKD Management Console.

  2. Перейти до розділу Storage > Overview > OpenShift Container Storage > All instancesocs-storagecluster.

  3. Натиснути Actions та оберіть Add Capacity. Наприклад:

    ceph-example
  4. У вікні натиснути на Add та почекати, поки нові диски створяться та Ceph підтягне їх собі в пул

    ceph-example
Перевірити статус новостворених OSD можна командою у поді ceph-operator: ceph --conf=/var/lib/rook/openshift-storage/openshift-storage.config osd tree
Можна запустити кілька OSD на одній віртуальній машині, але требі переконатися, що загальна пропускна здатність дисків OSD не перевищує пропускну здатність мережі, необхідну для обслуговування процесі читання або запису даних на ці диски.

2.2. Додавання нових віртуальних машин у Ceph MachineSet

Для додавання нових віртуальних машин в Ceph MachineSet потрібно виконати наступні дії.

  1. Відкрити OKD Management Console та у розділі Compute → MachineSets

    ceph-example

    знайти потрібний MachineSet. Наприклад:

    ceph-example
  2. Натиснути на додаткове меню та обрати Edit Machine Count

    ceph-example
  3. Змінити на бажану кількість

    ceph-example
  4. Почекати поки нова віртуальна машина буде в статусі Running. Після цього вона вже буде доступна для використання її Ceph та додавання на неї нових дисків та OSD.

Після виконання всіх кроків треба перевірити поточний статус Ceph або в OKD Management Console, або командою в ceph-operator поді ceph --conf=/var/lib/rook/openshift-storage/openshift-storage.config health detail

3. Принцип масштабування розміру Ceph-бакетів

Кожний Ceph-бакет (bucket) динамічно розширяється при додаванні файлів та може досягнути розміру всього доступного місця у CephFS. Для масштабування треба виконати кроки, які розписані вище.

4. Зміна репліка-фактора для Ceph

Щоб змінити репліка-фактор на вже розгорнутому кластері OKD, потрібно виконати наступні кроки:

  1. Відкрити в OKD Management Console файл .yaml з описом ресурсу StorageCluster, та змінити наступну секцію:

    managedResources:
        cephBlockPools: {}

    на

    managedResources:
        cephBlockPools:
          reconcileStrategy: init
  2. Відкрити в OKD Management Console файл .yaml з описом ресурсу CephBlockPool, та змінити репліка-фактор у полі replicated → size:

    spec:
      enableRBDStats: true
      failureDomain: rack
      replicated:
        replicasPerFailureDomain: 1
        size: 3
        targetSizeRatio: 0.49
  3. Дочекатись, доки Ceph застосує зміни.