Глава 9. Менеджер виртуального хранения Ceph

В данной главе мы охватим следующие рецепты:

  • Понимание архитектуры VSM

  • Сборка среды VSM

  • Подготовка к VSM

  • Установка VSM

  • Создание кластера Ceph с применением VSM

  • Исследование инструментальной панели VSM

  • Обновление кластера Ceph с применением VSM

  • Дорожная карта VSM

  • Ресурсы VSM

 Введение

Virtual Storage Manager (VSM, Менеджер виртуального хранения) является программным обеспечением изначально инициированным и разработанным Intel для управления кластером Ceph; позже оно был переведено Intel в ПО с открытым исходным кодом по лицензии Apache 2.0. Ceph поставляется с инструментарием командной строки ceph-deploy для развёртывания кластера и он также предоставляет богатый CLI для управления кластером. VSM с другой стороны предоставляет веб- интерфейс чтобы упростить создание и управление кластером Ceph.Применяя VSM GUI кластера Ceph оператор может наблюдать за жизнеспособностью всего кластера, управлять аппаратными средствами кластера и ёмкостью хранения, а также подключать пулы хранения Ceph к Cinder OpenStack.

VSM разработан на Python с применением OpenStack Horizon в качестве основы для каркаса приложений. Он имеет знакомый внешний вид и интуитивное понимание OpenStack Horizon как для разработчиков программного обеспечения, так и для администраторов OpenStack. Некоторые основные функции VSM включают в себя:

  • Пользовательский интерфейс на веб- основе для лёгкого администрирования вашего кластера Ceph

  • Он лучше организовывает и управляет устройства сервера и хранения

  • Он служит развёртыванию кластера Ceph и его масштабированию добавляя узлы MON, OSD и MDS.

  • Он помогает мониторингу компонентов и ёмкости вашего кластера Ceph

  • Он полезен при мониторинге производительности всего кластера и индивидуального узла

  • Он позволяет создавать пулы удаляющего кодирования и кэширующего уровня

  • Он способствует в создании и подключении пулов к Cinder OpenStack

  • Он привносит в кластер Ceph многопользовательский интерфейс управления пользователем

[Замечание]Замечание

В настоящее время VSM не способен управлять вашим кластером Ceph, если тот не создан им. {Прим. пер.: 29 января 2016 выпущена версия VSM 2.1, решившая эту проблему.}

 Понимание архитектуры VSM

В этом рецепте мы быстро пройдёмся по архитектуре Менеджера виртуального хранения, который состоит из следующих компонентов:

  Контроллер VSM

VSM является приложением на основе веб- интерфейса, которое типично размещается на машине контроллера, которая обычно называется узлом контроллера VSM. Программное обеспечение контроллера VSM является ядром VSM, которое связывается с кластером Ceph через агентов VSM. Контроллер VSM собирает все поступающие от агентов VSM и мониторов вашего кластера Ceph данные. Для операций, подобных созданию кластера, созданию пула и тому подобных контроллер VSM отправляет инструкции агентам VSM для выполнения необходимых действий. Как показано на схеме ниже, администраторы/ операторы Ceph связываются с узлом контроллера VSM через HTTP или API и они могут применять программное обеспечение VSM. Узел контроллера VSM также связан с контроллером OpenStack для настройки OpenStack на применение Ceph. В дополнение к службе пользовательского веб- интерфейса, контроллер VSM также размещает MariaDB и RabbitMQ.

  Агент VSM

Агент VSM является процессом, который выполняется на всех узлах кластера Ceph. Задание агента VSM состоит в отправке настроек сервера, информации о жизнеспособности/ состоянии кластера, а также данных о производительности на контроллер VSM. Агент VSM использует файл манифеста сервера для идентификации узла контроллера VSM, проверки его подлинности и определения настроек сервера.

Следующая схема иллюстрирует взаимодействие различных компонентов VSM друг с другом а также со инфраструктурой OpenStack и операторами VSM:

 

Рисунок 9.1. Взаимодействие компонентов VSM



 Сборка среды VSM

Чтобы применять VSM вам необходимо построить кластер Ceph используя VSM. VSM не может контролировать и управлять существующим кластером Ceph. В этом рецепте мы применим Vagrant для запуска четырёх виртуальных машин с именами vsm-controller, vsm-node1, vsm-node2 и vsm-node3. Виртуальная машина vsm-controller будет работать в качестве контроллера VSM, а vsm-nodes {1,2,3} будут действовать как узлы агенты выполняющие кластер Ceph.

  Как это сделать...

  1. Vagrantfile для запуска виртуальных машин VSM доступен в репозитории GitHub ceph-cookbook. Клонируйте этот репозиторий, если вы этого ещё не сделали:

    $ git clone https://github.com/ksingh7/ceph-cookbook.git
    	   
  2. Vagrantfile для запуска узлов VSM размещается в каталоге vsm:

    $ cd vsm
    	   
  3. Запустите виртуальные машины:

    $ vagrant up vsm-controller vsm-node1 vsm-node2 vsm-node3
    
    	teeri:vsm ksingh$ vagrant up vsm-controller vsm-node1 vsm-node2 vsm-node3 
    	Bringing machine 'vsm-controller' up with 'virtualbox' provider... 
    	Bringing machine 'vsm-node1' up with 'virtualbox' provider... 
    	Bringing machine 'vsm-node2' up with 'virtualbox' provider... 
    	Bringing machine 'vsm-node3' up with 'virtualbox' provider... 
    	   
  4. Когда виртуальные машины запущены, вы должны получить четыре виртуальные машины, работующие с надлежащей сетевой средой, готовой к применению.

    	teeri:vsm ksingh$ vagrant status 
    	Current machine states: 
    	
    	vsm-node1                running (virtualbox) 
    	vsm-node2                running (virtualbox) 
    	vsm-node3                running (virtualbox) 
    	vsm-controller           running (virtualbox) 
    	
    	This environment represents multiple VMs. The VMs are all listed 
    	above with their current state. For more information about a specific 
    	VM, run `vagrant status NAME`. 
    	   
  5. Чтобы зарегистрироваться на этих ВМ, воспользуйтесь cephuser и в качестве имени пользователя, и пароля. Для регистрации root применяйте пароль vagrant. Vagrant автоматизирует настройку сетевой среды между этими ВМ со следующими параметрами:

    192.168.123.100 vsm-controller
    192.168.123.101 vsm-node1
    192.168.123.102 vsm-node2
    192.168.123.103 vsm-node3
    	   

 Подготовка к VSM

В последнем рецепте мы предварительно настроили виртуальные машины используя Vagrant; они должны применяться в VSM. В этом рецепте мы изучим предполётную настройку которая нужна этим ВМ чтобы они могли применяться в VSM.

Следует отметить, что применяя Vagrant мы выполнили большую часть предполётной настройки с помощью файла сценария ceph-cookbook/vsm/post-deploy.sh, имеющегося в репозитории GIT, который мы клонировали в нашем последнем рецепте. Вы можете не захотеть повторять эти четыре шага, поскольку Vagrant уже выполнил их. Мы объясняем эти шаги здесь, чтобы вы могли узнать что Vagrant выполнил в фоновом режиме.

  Как это сделать...

  1. Создайте пользователя cephuser на всех узлах, которые будут применяться для развёртывания VSM. Для простоты мы установим пароль этого пользователя как cephuser. Вы всегда можете применять имя пользователя по своему усмотрению. Также предоставьте этому пользователю права sudo:

    # useradd cephuser
    # echo 'cephuser:cephuser' | chpasswd
    # echo "cephuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
    	   
  2. Убедитесь, что NTP настроен:

    # systemctl stop ntpd
    # systemctl stop ntpdate
    # ntpdate 0.centos.pool.ntp.org > /dev/null 2> /dev/null
    # systemctl start ntpdate
    # systemctl start ntpd
    	   
  3. Установите пакеты tree (не обязательно), git и epel:

    # yum install -y tree git epel-release
    	   
  4. Добавьте информацию о хостах в ваш файл /etc/hosts:

    192.168.123.100 vsm-controller
    192.168.123.101 vsm-node1
    192.168.123.102 vsm-node2
    192.168.123.103 vsm-node3
    	   
[Замечание]Замечание

Это именно те шаги, которые мы автоматически выполнили с помощью Vagrant, который использовал сценарий post-deploy.sh. Если вы воспользовались предписанным GitHub ceph-cookbook, который я создал для VSM, вам не нужно выполнять эти четыре шага.

Следующие шаги должны быть выполнены на ваших узлах как это предписано:

  1. Зарегистрируйтесь на узле vsm-controller, а также создайте и сделайте совместно доступными для использования с другими узлами VSM ключи SSH. В процессе этого шага вам следует ввести пароль для cephuser, который установлен в значение cephuser:

    # ssh cephuser@192.168.123.100
    $ mkdir .ssh;ssh-keygen -f .ssh/id_rsa -t rsa -N ''
    $ ssh-copy-id vsm-node1
    $ ssh-copy-id vsm-node2
    $ ssh-copy-id vsm-node3
    	   
  2. С помощью Vagrant мы присоединили три виртуальных диска VirtualBox к каждой vsm-nodes {1,2,3}, которые будут использоваться в качестве дисков OSD Ceph. Нам нужно вручную создать разделы на этих дисках для OSD и журнала Ceph, чтобы VSM мог применять их в Ceph. Выполните следующие команды на всех vsm-nodes {1,2,3}:

    $ sudo parted /dev/sdb -- mklabel gpt
    $ sudo parted -a optimal /dev/sdb -- mkpart primary 10% 100%
    $ sudo parted -a optimal /dev/sdb -- mkpart primary 0 10%
    $ sudo parted /dev/sdc -- mklabel gpt
    $ sudo parted -a optimal /dev/sdc -- mkpart primary 10% 100%
    $ sudo parted -a optimal /dev/sdc -- mkpart primary 0 10%
    $ sudo parted /dev/sdd -- mklabel gpt
    $ sudo parted -a optimal /dev/sdd -- mkpart primary 0 10%
    $ sudo parted -a optimal /dev/sdd -- mkpart primary 10% 100%
    
    	[cephuser@vsm-node1 ~]$ sudo parted /dev/sdb -- mklabel gpt 
    	Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? 
    	Yes/No? yes 
    	Information: You may need to update /etc/fstab.
    	[cephuser@vsm-node1 ~]$ 
    	[cephuser@vsm-node1 ~]$ sudo parted -a optimal /dev/sdb mkpart primary 10% 100% 
    	Information: YOU may need to update /etc/fstab. 
    	
    	[cephuser@vsm-node1 ~]$ sudo parted -a optimal /dev/sdb -- mkpart primary 0 10% 
    	Warning: The resulting partition is not properly aligned for best performance. 
    	Ignore/cancel? Ignore 
    	Information: You may need to update /etc/fstab. 
    	
    	[cephuser@vsm-node1 ~]$ 
    	   
  3. Когда вы создадите разделы на всех дисках, просмотрите список блочных устройств на этих узлах чтобы проверить, что разделы выглядят как показано далее:

    $ lsblk
    	   
     

    Рисунок 9.2. Список блочных устройств



  4. На данном этапе вы выполнили все требования, необходимые для VSM. В качестве необязательный шага хорошей идеей будет сделать снимок ваших виртуальных машин чтобы их можно было восстановить, если что-то пойдёт не так.

    	teeri:vsm ksingh$ for i in controller nodel node2 node3 ; do vBoxmanage snapshot vsm-$i take good-state ; done 
    	0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% 
    	0%...10%...20%...30%...40%...50%...60%...70X...80%...90%...100% 
    	0%...10%...20%...30%...40%...50%...60%...70X...80%...90%...100% 
    	teeri:vsm ksingh$ 
    	   

 Установка VSM

В последнем рецепте мы выполнили все приготовления необходимые для развёртывания VSM. В этом рецепте мы изучим как автоматически развернуть VSM на все узлы.

  Как это сделать...

  1. В данной демонстрации мы используем CentOS7 в качестве основной операционной системы; давайте загрузим репозиторий VSM для CentOS7. Зарегистрируемся на вашем узле vsm-controller в качестве cephuser и получим VSM:

    $ wget https://github.com/01org/virtual-storage-manager/releases/download/v2.0.0/2.0.0-216_centos7.tar.gz
    	   
    [Замечание]Замечание

    VSM также доступен для OS Ubuntu и может быть загружен с https://github.com/01org/virtual-storage-manager.

  2. Разверните VSM:

    $ tar -xvf 2.0.0-216_centos7.tar.gz
    $ cd 2.0.0-216
    $ ls -la
    
    	[cephuser@vsm-controller 2.0.0-216]$ ll 
    	total 500 
    	-rw-r--r--. 1 cephuser cephuser  27471 Sep 30 09:44 CHANGELOG.md 
    	-rw-r--r--. 1 cephuser cephuser 124686 Sep 30 09:44 CHANGELOG.pdf 
    	-rwxr-xr-x. 1 cephuser cephuser     94 Sep 30 09:44 get_pass.sh 
    	-rw-r--r--. 1 cephuser cephuser  29959 Sep 30 09:44 INSTALL.md 
    	-rw-r--r--. 1 cephuser cephuser 251846 Sep 30 09:44 INSTALL.pdf 
    	-rw-r--r--. 1 cephuser cephuser    684 Sep 30 09:44 installrc 
    	-rw-r--r--. 1 cephuser cephuser  21758 Sep 30 09:44 install.sh 
    	-rw-r--r--. 1 cephuser cephuser    580 Sep 30 09:44 LICENSE 
    	drwxr-xr-x. 2 cephuser cephuser     65 Sep 30 09:44 manifest 
    	-rw-r--r--. 1 cephuser cephuser    320 Sep 30 09:44 NOTICE 
    	-rwxr-xr-x. 1 cephuser cephuser   1155 Sep 30 09:44 prov_node.sh 
    	-rw-r--r--. 1 cephuser cephuser   3121 Sep 30 09:44 README.md 
    	-rw-r--r--. 1 cephuser cephuser      3 Sep 30 09:44 RELEASE 
    	-rw-r--r--. 1 cephuser cephuser   1176 Sep 30 09:44 rpms.lst 
    	-rwxr-xr-x. 1 cephuser cephuser   1353 Sep 30 09:44 uninstall.sh
    	-rw-r--r--. 1 cephuser cephuser      5 Sep 30 09:44 VERSION 
    	drwxr-xr-x. 3 cephuser cephuser   4096 Sep 30 09:44 vsmrepo 
    	[cephuser@vsm-controller 2.0.0-216]$ 
    	   
  3. Установите адрес ваших узла контроллера и агента; добавьте следующие строки в файл installrc:

    AGENT_ADDRESS_LIST="192.168.123.101 192.168.123.102 192.168.123.103"
    CONTROLLER_ADDRESS="192.168.123.100"
    	   
  4. Пооверьте файл installrc:

    $ cat installrc | egrep -v "#|^$"
    
    	[cephuser@vsm-controller 2.0.0-216]$ cat installrc | egrep -v "#1A$" 
    	AGENT_ADDRESS_LIST="192.168.123.101 192.168.123.102 192.168.123.103" 
    	С0NTR0LLER_ADDRESS="192.168.123.100" 
    	[cephuser@vsm-controller 2.0.0-216]$
    	   
  5. В папке manifest создайте создайте каталоги использующие имена управляемых вами IP vsm-controller и vsm-nodes:

    $ cd manifest
    $ mkdir 192.168.123.100 192.168.123.101 192.168.123.102 192.168.123.103
    	   
  6. Скопируйте пример файла манифеста кластера на 192.168.123.100/cluster.manifest, который является вашим узлом vsm-controller:

    $ cp cluster.manifest.sample 192.168.123.100/cluster.manifest
    	   
  7. Внесите изменения в ваш файл манифеста кластера который мы добавили на нашем последнем шаге, добавив следующее:

    $ vim 192.168.123.100/cluster.manifest
    
    	[management_addr] 
    	192.168.123.0/24 
    	
    	[ceph_public_addr] 
    	192.168.123.0/24 
    	
    	[ceph_cluster_addr] 
    	192.168.123.0/24 
    	   

    Вам следует знать, что в промышленной среде вам рекомендуется иметь раздельные сетевые среды для обмена в среде управления Ceph, общедоступном Ceph и среде кластера Ceph. Применяя файл cluster.manifest, VSM может быть проинструктирован применять эти различные сети для вашего кластера Ceph:

  8. Измените ваш файл manifest/server.manifest.sample, и сделайте следующие правки:

    1. В раздел [vsm_controller_ip] добавьте IP вашего контроллера VSM, 192.168.123.100.

      $ cp cluster.manifest.sample 192.168.123.100/cluster.manifest
      	    
    2. Добавьте имена дисковых устройств для [sata_device] и [journal_device], как показано на следующем снимке экрана. Убедитесь, что имена sata_device и journal_device разделены пробелом.

      	[7200_rpm_sata] 
      	#format [sata_device] [journal_device] 
      	/dev/sdbl /dev/sdb2 
      	/dev/sdcl /dev/sdc2 
      	/dev/sddl /dev/sdd2 
      	    
      [Замечание]Замечание

      Файл server.manifest предоставляет некоторые необязательные параметры настройки для различных типов дисков. В промышленных средах вам рекомендуется применять применять правильный тип на основании ваших аппаратных средств.

    3. Если вы не используете OSD диски 10krpm_sas и журналы по дисковому пути, закомментируйте строки %osd-by-path-1% %journal-by-path-1% в вашем разделе [10krpm_sas], как это показано на следующем экранном снимке:

      	[10krpm_sas] 
      	#format [sas_device] [journal_device] 
      	#%osd-by-path-l% %journal-by-path-1% 
      	#%osd-by-path-2% %journal-by-path-2% 
      	#%osd-by-path-3% %journal-by-path-3% 
      	#%osd-by-path-4% %journal-by-path-4% 
      	#%osd-by-path-5% %journal-by-path-5% 
      	#%osd-by-path-6% %journal-by-path-6% 
      	#%osd-by-path-7% %journal-by-path-7% 
      	    
  9. Когда вы внесёте правки в свой файл manifest/server.manifest.sample, проверьте все изменения:

    $ cat server.manifest.sample | egrep -v "#|^$"
    
    	[cephuser@vsm-controller manifest]$ cat server.manifest.sample | egrep -v " 
    	[vsm_controller_ip] 
    	192.168.123.100 
    	[role] 
    	storage 
    	monitor 
    	[auth_key] 
    	token-tenant 
    	[ssd] 
    	[7200_rpm_sata] 
    	/dev/sdbl /dev/sdb2 
    	/dev/sdcl /dev/sdc2 
    	/dev/sddl /dev/sdd2 
    	[10krpm_sas] 
    	[ssd_cached_7200rpm_sata] 
    	[ssd_cached_10krpm_sas] 
    	[ceohuser@vsm-controller manifest]$ 
    	   
  10. Скопируйте свой файл manifest/server.manifest.sample, который мы изменили на предыдущем шаге, на всеваши узлы vsm-node, то есть, vsm-node {1,2,3}:

    $ cp server.manifest.sample 192.168.123.101/server.manifest
    $ cp server.manifest.sample 192.168.123.102/server.manifest
    $ cp server.manifest.sample 192.168.123.103/server.manifest
    	   
  11. Проверьте структуру каталога манифеста:

    $ tree
    
    	[cephuser@vsm-controller manifest] $ tree 
    	
    	├─ 192.168.123.100 
    	│  └— cluster.manifest 
    	├─ 192.168.123.101 
    	│  └— server.manifest 
    	├─ 192.168.123.102 
    	│  └— server.manifest 
    	├─ 192.168.123.103 
    	│  └— server.manifest 
    	├─ cluster.manifest.sample 
    	└─ server.manifest.sample 
    	
    	4 directories, 6 files 
    	[cephuser@vsm-controller manifest] $ 
    	   
  12. Для начала установки VSM предоставьте права на выполнение для файла install.shr:

    $ cd ..
    $ chmod +x install.sh
    	   
  13. Наконец, установите VSM, выполнив файл install.shr с параметрами --check-dependence-package, которые загрузят необходимые для установки VSM пакеты из https//github.com/01org/vsm-dependencies:

    $ ./install.sh -u cephuser -v 2.0 --check-dependence-package
    
    	[cephuser@vsm-controller 2.0.0-216]$ ./install.sh -u cephuser -v 2.0 --check-dependence-package 
    	+ echo 'Before auto deploy the vsm, please be sure that you have set the manifest 
    	such as manifest/192.168.100.100/server.manifest. And you have changed the file, too.' 
    	Before auto deploy the vsm, please be sure that you have set the manifest 
    	such as manifest/192.168.100.100/server.manifest. And you have changed the file, too. 
    	+ sleep 5 
    	+++ dirname ./install.sh 
    	++ cd . 
    	++ pwd 
    	+ TOPDIR=/home/cephuser/2.0.0-216 
    	   
    [Замечание]Замечание

    Установка VSM займёт несколько минут. Процесс установки может потребовать ввода пароля cephuser для узла vsm-controller. В этом случае, пожалуйста, вводите в качестве пароля cephuser.

    В случае, если вы столкнётесь с какой бы то ни было ошибкой и захотите перезапустить установку VSM, рекомендуется чтобы вы очистили вашу систему перед повтором. Для очистки системы выполните файл сценария uninstall.sh.

    Вы также можете пересмотреть авторскую версию установки VSM проверив файл журнала установки, расположенный в пути репозитория ceph-cookbook: ceph-cookbook/vsm/vsm_install_log.

  14. Когда ваша установка VSM завершится, извлеките ваш пароль для своего пользователя admin выполнив get_pass.sh на узле vsm-controller:

    $ ./get_pass.sh
    
    	[cephuser@vsm-controller 2.0.0-216]$ ./get_pass.sh 
    	f409fc062564b9a937d1 
    	[cephuserCdvsm-controller 2.0.0-216]$ 
    	   
  15. Наконец, зарегистрируйтесь в инструментальной панели VSM, , https://192.168.123.100/dashboard/vsm, под именем пользователя admin с паролем, извлечённым на предыдущем шаге.

     

    Рисунок 9.3. Регистрация в инструментальной панели VSM



  16. Стрница загрузки vsm-dashboard выглядит следующим образом:

     

    Рисунок 9.4. vsm-dashboard



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

     

    Рисунок 9.5. VSM мониторинг кластера



 Создание кластера Ceph с применением VSM

В нашем последнем рецепте мы только что установили VSM; у нас пока нет кластера Ceph. В этом рецепте мы создадим кластер Ceph при помощи VSM с тем, чтобы VSM смог позже управлять этим кластером. Вы увидите, что создавать кластер при помощи VSM чрезвычайно просто.

  Как это сделать...

  1. Для создания кластера из инструментальной панели VSM, перейдите в Cluster Management | Create Cluster и затем кликните на кнопку Create Cluster:

     

    Рисунок 9.6. Создание кластера



  2. Выберите все узлы кликнув по флаговой кнопке, с последующими идентификаторами, и, наконец, кликните по кнопке Create Cluster:

     

    Рисунок 9.7. Выберите узлы



  3. Создание кластера Ceph займёт несколько мнут. VSM будет очень кратко сообщать о том, что он делает в фоновом режиме в поле состояния вашей инструментальной панели, как показано далее:

     

    Рисунок 9.8. Очистка



    После очистки он смонтирует диски как показано в поле состояния инструментальной панели на следующем экранном снимке: :

     

    Рисунок 9.9. Монтирование



  4. Когда развёртывание кластера Ceph завершится, VSM отобразит состояние ваших узлов как Active:

     

    Рисунок 9.10. Изменение состояния узлов на активное



  5. Наконец, проверьте состояние кластера из Dashboard | Cluster Status:

     

    Рисунок 9.11. Состояние кластера



 Исследование инструментальной панели VSM

Инструментальная панель VSM делает большинство ваших операций по всему кластеру Ceph очень простыми, будь то его развёртывание, управление сервером, управление/ мониторинг кластера или даже интеграция с OpenStack. Инструментальная панель VSM очень дружелюбна к пользователю и вы можете исследовать большую часть её функциональности самостоятельно. Инструментальная панель VSM предоставляет следующие параметры;

  • Dashboard: Предоставляет полное состояние вашей системы включая:

    • VSM Status: Предоставляет вам версию вашего VSM, время его работы, версию Ceph и тому подобное

    • Cluster Summary: Предоставляет состояние кластера Ceph, аналогично выводу ceph -s

    • OSD Summary

    • Monitor Summary

    • MDS Summary

    • PG Summary

      Также предоставляет метрики производительности такие как IOPS, латентность, пропускная способность и использование ЦПУ для всех узлов Ceph

  • Server Management: включает следующее:

    • Manage Servers: функции описываются так:

      • Производит список всех серверов с такой информацией, как управление, адреса сетевых сред кластера и общедоступной, версию Ceph, состояние и тому подобное.

      • Предоставляет параметры для добавления или удаления серверов, мониторов Ceph, а также запуска и останова серверов.

       

      Рисунок 9.12. Управление серверами



    • Manage Devices: функции описываются так:

      • Предоставляет список всех OSD Ceph включая их состояние, вес, сервер размещения, а также класс хранения.

      • Позволяет создавать новые OSD, а также перезапускать, удалять и восстанавливать OSD.

       

      Рисунок 9.13. Управление устройствами



  • Cluster Management

    Этот раздел инструментальной панели VSM предоставляет определённые возможности для управления кластером Ceph:

    • Create Cluster

    • Upgrade Cluster

    • Manage Pools: помогает вам создавать пулы с репликациями и удаляющим кодированием, добавлять/ удалять уровень кэширования и тому подобное.

    • Manage Storage Group: Добавляет новые группы хранения.

  • Cluster Monitoring: Этот раздел инструментальной панели VSM предоставляет полный мониторинг кластера, включая все его компоненты:

    • Storage Group Status:

    • Pool Status:

    • OSD Status:

    • Monitor Status:

    • MDS Status:

    • PG Status:

    • RBD Status:

     

    Рисунок 9.14. Мониторинг кластера



  • OpenStack Integration: Этот раздел инструментальной панели VSM позволяет нам выполнять интеграцию хранилища Ceph в OpenStack добавляя терминалы OpenStack и предоставляя пулы RBD для OpenStack.

    • Manage RBD Pools: предоставляет пулы для OpenStack

    • OpenStack Access: Добавляет терминалы OpenStack

     

    Рисунок 9.15. Интеграция с OpenStack



  • VSM Management: Этот раздел инструментальной панели VSM позволяет нам управлять самой инструментальной панелью VSM:

    • Add/Remove User: Создаёт или удаляет пользователя и изменяет его пароль.

    • Settings: различные установки, относящиеся к Ceph.

     

    Рисунок 9.16. Управление VSM



 Обновление кластера Ceph с применением VSM

Теперь вы достаточно знакомы с VSM и знаете что он предоставляет привлекательную инструментальную панель которая делает сложные относящиеся к Ceph операции, такие как создание кластера, чрезвычайно простыми. Другой важный аспект VSM состоит в том, что он автоматизирует процесс обновления и упрощает его. В этом рецепте мы применим VSM для обновления нашего кластера Ceph Firefly на Ceph Hammer.

  Как это сделать...

  1. Перед запуском своего процесса обновления проверьте версию своего текущего кластера перейдя к VSM | Dashboard | Cluster Status. Она должна быть Ceph Firefly Version 0.80.7.

  2. Для обновления вашего кластера перейдите к VSM | Cluster Management | Ceph Upgrade.

  3. Обеспечьте следующие детали для обновления своего Ceph:

    1. Package URL: http://download.ceph.com/rpm-hammer/el7/.

    2. Key URL: по умолчанию добавляется самим VSM.

    3. Proxy URL: в случае, когда необходим прокси интернета для доступа к нему. В нашем случае не требуется.

    4. SSH User Name: относится к нашему имени пользователя cephuser, которого мы создали для управления VSM.

     

    Рисунок 9.17. Детали обновления



  4. Поскольку вы предоставили все необходимые детали для VSM, нажмите Submit, это запустит процесс обновления вашего кластера и для его завершения потребуется несколько минут. Пожалуйста, будьте терпеливы, к тому же при желании вы можете наблюдать свои журналы VSM в /var/log/vsm.

  5. Когда обновление завершится, инструментальная панель VSM отобразит сообщение, как показано ниже, оно подтверждает что ваш кластер был обновлён:

     

    Рисунок 9.18. Подтверждение обновления



  6. Чтобы удостовериться в завершении обновления, перейдите к VSM | Dashboard | Cluster Status. Вашей версией Ceph должна быть 0.94.5, что является Ceph Hammer.

     

    Рисунок 9.19. Проверка новой версии



Таким образом VSM делает процесс обновления Ceph исключительно простым. Более того, этот процесс обновления полностью происходит в реальном масштабе времени, то есть не требует никаких перерывов обслуживания по расписанию для выполнения обновления.

 Дорожная карта VSM

На момент написания этой книги текущей стабильной версией VSM была 2.0. Это та же версия, которая была продемонстрирована в данной главе. Благодаря лёгкости в использовании, мощности и интерфейсом с богатой функциональностью VSM становится чрезвычайно популярным в сообществе Ceph. Следующая редакция VSM должна быть 2.1, которая выйдет с некоторыми исправлениями ошибок и новыми функциями. {Прим. пер.: 29 января 2016 выпущена версия 2.1, на 27 мая 2016 заявлен выпуск версии 2.2.} Перечислим некоторые из них:

  • Новыми функциями VSM 2.1 являются:

    • Сообщение имени вашего сервера, который выполняет демон монитора

    • Prototype — реализация Ceph Calamari/VSM

    • Настраиваемые параметры монтирования для файловой системы

    • Идентификация физического местоположения отказавшего диска

    • Удаление неиспользуемого пути диска в процессе добавления нового OSD

    • Отображение логического пути дисков вместо физического при добавлении нового OSD

    • Подключение и управление существующего кластера Ceph

    • Улучшения страницы мониторинга и состояния

    • Отображение информации SMART для устройств хранения

  • Исправления ошибок, необходимые в VSM 2.1:

    • Кнопка мониторов должна быть перемещена в Управление серверами и она должна вывешиваться когда узел монитора также имеет демон MDS

    • Версия VSM и время его работы должны отображаться даже если кластер не создан

    • Он даёт доступ к прочим опциям инструментальной панели VSM в процессе создания кластера

    • Высвечивается предостережение Number of PG in each OSD is too large после обновления кластера Ceph на версию Ceph Hammer.

    • Пароль для доступа к OpenStack отображается простым текстом

    • При установке с предварительно подготовленными пакетами зависимостей установщик останавливает выполнение и высвечивает претензии

    • Если сервер отключается, это не отображается в VSM

Это очень ограниченный список новых функциональностей и исправлений ошибок, для последней информации по дорожной карте VSM обращайтесь, пожалуйста к проекту Virtual Storage Manager по адресу: https://01.org/jira/browse/VSM

 Ресурсы VSM

В этой главе мы изучили наиболее важные аспекты VSM. Если вы планируете использовать VSM в своём окружении, я рекомендовал бы вам посетить следующие ресурсы для получения дополнительно информации по VSM:

Как вы уже знаете, VSM является проектом с открытым исходным кодом, полезно отметить, что усилия по разработке VSM восходят к Intel при поддержке его сообщества.

Я хочу выразить благодарность Дену Ферберу и Ягуангу Вонгу из Intel а также всему сообществу VSM за предоставление в наше распоряжение прекрасного образчика программного обеспечения для развёртывания и управления нашим кластером Ceph. Чтобы помочь дальнейшей разработке VSM, пожалуйста, становитесь активными участниками этого сообщества и рассмотрите вопрос о предоставлении обратного значительного вклада.