meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
domestic:rosplatforma:guide:advanced:metrocluster [2023/01/13 19:19] mchusdomestic:rosplatforma:guide:advanced:metrocluster [2023/01/17 13:15] (current) mchus
Line 5: Line 5:
 Распределенный кластер предъявляет следующие требования к сетевой инфраструктуре: Распределенный кластер предъявляет следующие требования к сетевой инфраструктуре:
   * Задержки отправки пакетов между двумя площадками по сети хранения не должны превышать 5мс.    * Задержки отправки пакетов между двумя площадками по сети хранения не должны превышать 5мс. 
-  * В качестве интерфейсов сети хранения должны использоваться два канала скоростью не менее 10Гбит/сек каждый. +  * В качестве интерфейсов сети хранения должны использоваться два канала со скоростью не менее 10Гбит/сек каждый. 
-  * В качестве сети управления должен использоваться выделенный интерфейс со скоростью работы не менее 1 Гбит/сек.+  * В качестве сети управления должен использоваться два выделенных интерфейса со скоростью работы не менее 1 Гбит/сек.
  
-{{page> +{{page>domestic:rosplatforma:guide:advanced:metrocluster:whitness&permalink}}
  
 +===== Создание территориально-распределенной конфигурации =====
 +Установка платформы виртуализации в формате метро-кластера практически не отличается от развертывания системы в рамках одной площадки. Дополнительно к базовым задачам по установке и настройки узлов виртуализации необходимо выполнить следующие процедуры.
 +
 +  - Перед созданием кластера хранения необходимо указать расположение узлов и создать таким образом домены отказа;
 +  - Создать кластер хранения расположив диски с ролью метаданных равномерно по доменам отказа.
 +  - Задать уровень отказоустойчивости с учетом настроенного расположения;
 +  - Добавление узлов в Р-Управление;
 +  - Запуск службы отказоустойчивости ''shaman'';
 +
 +==== Настройка домена отказа на сервере ====
 +Каждый компонент Р-Хранилище обладает адресом, который состоит из 5 идентификаторов: ''room.row.rack.host_ID.cs_ID''
 +Первые три адреса пути ''room.row.rack'' можно настроить в файлах конфигурации ''/etc/vstorage/location'' на каждом физическом сервере ((для дополнительной информации см. ''man'' страницу по vstorage-config-files)). Последние два компонента ''host_ID.cs_ID'' генерируются автоматически:
 +  * host_ID является уникальным, случайно генерируемым идентификатором хоста, который создается во время установки и хранится в /etc/vstorage/host_id;
 +  * cs_ID является уникальным идентификатором службы, который генерируется при создании сервера фрагментов.
 +
 +Для задания расположения сервера между двумя центрами обработки данных необходимо на каждом сервере создать конфигурационный файл, описывающий его расположение
 +
 +<code bash /etc/vstorage/location>
 +room.row.rack
 +</code>
 +где:
 +  * ''room'' - номер виртуального помещения в формате числа от 0 до 9. ;
 +  * ''row'' - номер ряда;
 +  * ''rack'' - номер стойки в ряду;
 +Данные номера не обязательно должны совпадать с номерами реального расположения оборудования а используются для создания логических сущностей в рамках домена отказа.
 +
 +Серверы, которые находятся в одном домене отказа должны иметь одинаковые значения файла location.
 +
 +Например для создания распределенной конфигурации с пятью доменами отказа файл ''location'' может принимать следующие значения:
 +  - ''0.0.1'' - для первого домена отказа на первой площадке;
 +  - ''0.0.2'' - для второго домена отказа на первой площадке;
 +  - ''0.0.3'' - для третьего домена отказа на второй площадке;
 +  - ''0.0.4'' - для четвертого домена отказа на второй площадке;
 +
 +==== Создание кластера и задание расположения дисков метаданных в доменах отказа ====
 +
 +Создание кластера должно производиться только после установки корректного значения в файле ''location''
 +
 +Рекомендуемое количество сервисов метаданных в одном кластере хранения равно пяти. Поэтому для конфигурации с четырьмя доменами отказа (по 2 на каждую площадку) необходимо назначить по одному сервису метаданных в каждом домене отказа. Пятый домен отказа и диск с ролью метаданных будет расположен на "свидетеле".
 +
 +Машина свидетеля должна иметь только диски двух следующих ролей или один диск совмещающий две эти роли:
 +  - Система;
 +  - Метаданные.
 +
 +{{:domestic:rosplatforma:guide:advanced:metrocluster:20230117-155705.png}}
 +
 +После создания кластера хранения необходимо создать хранилище для среды виртуализации штатным способом.
 +
 +==== Задание уровня отказоустойчивости ====
 +Для конфигурации метро кластера необходимо задать уровень отказоустойчивости для создаваемых хранилищ равным rf=4. Данное требование обсуловено тем что в случае выхода из строя одной площадки система будет сохранять как минимум две копии каждого блока данных.
 +
 +Во избежание возникновения ситуации когда все 4 копии блока могут оказаться на одной площадке необходимо указать домен отказа равный ''rack''. Так как объединение серверов в 4 домена отказа путем правки файла ''/etc/vstorage/location'' проводилось именно на третьем уровне расположения - ''rack''. Для этого, после создания хранилища для среды виртуализации или iSCSI или S3 необходимо установить аттрибут распределения блоков коммандой:
 +
 +<code bash>
 +vstorage -c %CLUSTER_NAME% set-attr -R /mnt/vstorage/vols/datastores/%DATASTORE_NAME% failure-domain=rack
 +</code>
 +, где:
 +  * %CLUSTER_NAME% - имя кластера хранения;
 +  * %DATASTORE_NAME% - имя хранилища виртуальных машин.
 +
 +Для хранилищ другого типа настройка производится аналогичным образом.
 +
 +==== Добавление узлов в Р-Управление ====
 +
 +После создания кластера хранения необходимо добавить все вычислительные узлы в систему управления виртуализацией Р-Управление. Сервер "свидетеля" не добавляется, потому что запуск виртуальных машин на данном сервере производиться не должен.
 +
 +==== Запуск службы отказоустойчивости shaman ====
 +
 +Служба ''shaman'' запускается на всех серверах которые предназначены для запуска и выполнения виртуальных машин. На свидетеле команда ''hastart'' не выполняется и служба ''shaman'' не должна запускаться на данном сервере во избежание распределения на данный сервер виртуальных машин в случае сбоя.
 +
 +Необходимо настроить максимальное количество узлов при котором служба ''shaman'' продолжает работать. При превышении указанного числа сбой считается критичным и автоматическое восстановление работоспособности виртуальных машин не производится.
 +
 +Параметр задается на одном из узлов, который подключен к кластерной службе.
 +
 +<code bash>
 +shaman set-config RELOCATION_SKIP_THRESHOLD=n
 +</code>
 +, где число узлов ''n'' необходимо установить равным суммарному числу узлов площадки или больше на один.