Масштабирование кластера хранилища#
После развертывания кластера хранилища можно в любое время расширить его емкость хранения, добавив больше дисков хранилища (вертикальное масштабирование) или увеличив количество узлов хранилища (горизонтальное масштабирование). Также можно заменить диски хранилища на диски большего размера, следуя инструкциям в разделе Замена дисков серверов.
Чтобы понять разницу между вертикальным и горизонтальным масштабированием, рассмотрим следующие сценарии:
Вертикальное масштабирование. Кластер состоит из пяти узлов с 12 слотами для жестких дисков в каждом. Один диск используется для системы и метаданных, а 9 дисков используются для хранения на уровне 0. Хранилище резервных копий развертывается поверх кластера хранилища с режимом кодирования 3+2. Емкость хранилища резервных копий можно расширить, добавив еще два диска на каждый узел. В результате емкость хранилища увеличится на 2/9.
Горизонтальное масштабирование. Кластер состоит из пяти узлов с 12 слотами для жестких дисков в каждом. Один диск используется для системы и метаданных, а 11 дисков используются для хранения на уровне 0. Хранилище резервных копий развертывается поверх кластера хранилища с режимом кодирования 3+2. Емкость и пропускную способность хранилища резервных копий можно расширить, добавив еще два узла того же размера (то есть с 12 дисками). В результате емкость хранилища увеличится на 2/5. Кроме того, чтобы максимизировать эффективность хранения, можно обновить режим кодирования до 5+2, как описано в разделе Изменение схемы избыточности для хранилища резервных копий.
Перед добавлением новых дисков и узлов обратите внимание на следующие рекомендации по выбору их размера:
Для уровня хранения рекомендуется иметь одинаковое количество дисков на узел. Тогда данные будут распределяться между узлами более равномерно.
Наличие дисков одинакового размера помогает более равномерно распределить нагрузку. Внутри кластера использование диска пропорционально размеру диска. Например, если у вас есть диск на 10 ТБ и диск на 2 ТБ, при 50% загрузке кластера будет использоваться 5 ТБ и 1 ТБ соответственно.
Предупреждение
Не создавайте больше одного пространства имен на дисках NVMe, если используется область отказа "Диск", так как отказ одного физического диска NVMe приведет к одновременному отказу всех его логических дисков.
Ограничения
Диску можно назначить роль, только если его размер превышает 1 ГиБ.
Системному диску можно назначить дополнительную роль, только если его размер не меньше 100 ГиБ (~107 ГБ).
Жесткие диски с черепичной магнитной записью (SMR) можно использовать только с ролью Хранилище и только в случае, если на сервере есть твердотельный диск с ролью Кэш.
Нельзя использовать на одном уровне хранилища стандартные и SMR-диски.
Нельзя одновременно назначить роли системным и несистемным дискам.
Предварительные требования
Кластер хранилища создается согласно описанию в разделе Развертывание кластера хранилища данных.
Добавление дисков в кластер хранилища
На экране Инфраструктура → Серверы и щелкните по имени сервера.
На вкладке Диски выберите новый диск без роли.
На правой панели диска щелкните Назначить роль.
В окне Назначить роль выберите роль диска, в соответствии с которой вы хотите использовать диск:
[Только для твердотельных накопителей] Как хранить кэш записи
Выберите роль
Кэш.Выберите уровень хранилища, который следует кэшировать.
Примечание
Для того чтобы диски использовали кэш, роль
Кэшнеобходимо назначить до назначения ролиХранилище.Как организовать хранение данных.
Выберите роль
Хранилище.Выберите уровень хранилища для размещения данных. Чтобы повысить эффективность избыточности данных, не назначайте все диски сервера на один и тот же уровень. Вместо этого убедитесь, что каждый из уровней равномерно распределен по кластеру и на каждом сервере ему назначено по одному диску.
Настройте кэширование данных и проверку контрольных сумм:
Включить SSD-кэширование и проверку контрольных сумм. Доступно и рекомендуется только для серверов с твердотельными накопителями.
Включить проверку контрольных сумм. Рекомендуется для серверов с жесткими дисками, так как обеспечивает повышенную надежность. Выбрано по умолчанию для диска любого типа, кроме iSCSI.
Отключить. В среде оценки или тестирования можно отключить проверку контрольных сумм для серверов с жесткими дисками для повышения производительности. Не рекомендуется для производственной среды с жесткими дисками. Выбрано по умолчанию для диска типа iSCSI.
Как хранить метаданные кластера.
Выберите роль
Метаданные.Примечание
Рекомендуется не больше одного сервиса метаданных на сервер и не больше пяти сервисов метаданных для кластера.
[Только для твердотельных накопителей] Как хранить метаданные и кэш записи
Выберите роль
Метаданные + Кэш.Выберите уровень хранилища, который следует кэшировать.

Нажмите Назначить.
Используйте следующую команду:
vinfra node disk assign --disk <disk>:<role>[:<key=value,…>]
[--node <node>]
--disk <disk>:<role>[:<key=value,…>]Конфигурация диска в формате:
<disk>— идентификатор или имя дискового устройства.<role>— роль диска (cs— "Хранилище",mds— "Метаданные",journal— "Кэш",mds-journal— "Метаданные + Кэш",mds-system— "Метаданные + Система",cs-system— "Хранилище + Система",system— "Система".разделенные запятыми пары
key=value(необязательно):tier— уровень диска (0,1,2или3). Можно использовать только при назначении диску роли "Хранилище" или "Хранилище + Система".journal-tier— уровень хранения данных, для которого предназначен журнал (кэш) (0,1,2или3). Можно использовать только при назначении диску роли "Кэш" или "Метаданные + Кэш". По умолчанию журнал (кэш) может использоваться для любого уровня хранения данных.journal-type— тип диска журнала (кэша) (no_cache— без кэша,inner_cache— внутренний кэш илиexternal_cache— внешний кэш). Можно использовать только при назначении диску роли "Хранилище" или "Хранилище + Система".journal-disk— идентификатор или имя устройства диска журнала (кэша). Можно использовать только при назначении диску роли "Хранилище" или "Хранилище + Система", для которого включено внешнее кэширование. По умолчанию диск для размещения кэша выбирается автоматически.bind-address— IP-адрес привязки для сервиса метаданных.
Например:
sda:cs:tier=0,journal-type=inner_cache.Этот параметр можно указывать несколько раз.
--node <node>Идентификатор или имя сервера (по умолчанию node001.vstoragedomain).
Например, чтобы назначить роль cs для диска sdc на узле node003, запустите команду:
# vinfra node disk assign --disk sdc:cs --node node003
Вы можете просмотреть конфигурацию диска узла в выводе vinfra node disk list:
# vinfra node disk list --node node003
+--------------------------------------+--------+------+------------+-------------+---------+----------+---------------+------------+----------------+
| id | device | type | role | disk_status | used | size | physical_size | service_id | service_status |
+--------------------------------------+--------+------+------------+-------------+---------+----------+---------------+------------+----------------+
| 2A006CA5-732F-4E17-8FB0-B82CE0F28DB2 | sdc | hdd | cs | ok | 11.2GiB | 125.8GiB | 128.0GiB | 1026 | active |
| 642A7162-B66C-4550-9FB2-F06866FB7EA1 | sdb | hdd | cs | ok | 8.7GiB | 125.8GiB | 128.0GiB | 1025 | active |
| 45D38CD2-3B94-4F0F-8864-9D51F716D3B1 | sda | hdd | mds-system | ok | 21.0GiB | 125.9GiB | 128.0GiB | 1 | avail |
+--------------------------------------+--------+------+------------+-------------+---------+----------+---------------+------------+----------------+
Добавление серверов в кластер хранилища
На экране Инфраструктура → Серверы щелкните по неназначенному серверу.
На правой панели сервера нажмите Присоединить к кластеру.
Нажмите Присоединить, чтобы автоматически назначить роли дискам и добавить сервер в текущее расположение. Вместо этого можно нажать значок шестерни, чтобы вручную настроить роли дисков или расположение сервера.
При настройке дисков вручную можно скопировать конфигурацию дисков с соседнего сервера, нажав Скопировать конфигурацию от и выбрав исходный сервер. Конфигурация будет применена, если у исходного сервера и целевого сервера наборы дисков совпадают или похожи по характеристикам.
Используйте следующую команду:
vinfra node join [--disk <disk>:<role>[:<key=value,…>]] <node>
--disk <disk>:<role>[:<key=value,…>]Конфигурация диска в формате:
<disk>— идентификатор или имя дискового устройства.<role>— роль диска (cs— "Хранилище",mds— "Метаданные",journal— "Кэш",mds-journal— "Метаданные + Кэш",mds-system— "Метаданные + Система",cs-system— "Хранилище + Система",system— "Система".разделенные запятыми пары
key=value(необязательно):tier— уровень диска (0,1,2или3). Можно использовать только при назначении диску роли "Хранилище" или "Хранилище + Система".journal-tier— уровень хранения данных, для которого предназначен журнал (кэш) (0,1,2или3). Можно использовать только при назначении диску роли "Кэш" или "Метаданные + Кэш". По умолчанию журнал (кэш) может использоваться для любого уровня хранения данных.journal-type— тип диска журнала (кэша) (no_cache— без кэша,inner_cache— внутренний кэш илиexternal_cache— внешний кэш). Можно использовать только при назначении диску роли "Хранилище" или "Хранилище + Система".journal-disk— идентификатор или имя устройства диска журнала (кэша). Можно использовать только при назначении диску роли "Хранилище" или "Хранилище + Система", для которого включено внешнее кэширование. По умолчанию диск для размещения кэша выбирается автоматически.bind-address— IP-адрес привязки для сервиса метаданных.
Например:
sda:cs:tier=0,journal-type=inner_cache.Этот параметр можно указывать несколько раз.
<node>Идентификатор узла или имя хоста.
Например, чтобы добавить узел node002 в кластер хранилища и назначить роли дискам: mds-system на sda, cs на sdb и sdc, запустите команду:
# vinfra node join f59dabdb-bd1c-4944-8af2-26b8fe9ff8d4 --disk sda:mds-system \
--disk sdb:cs --disk sdc:cs
Добавленный узел появится в выводе vinfra node list:
# vinfra node list
+--------------+--------------+------------+-----------+-------------+----------+
| id | host | is_primary | is_online | is_assigned | is_in_ha |
+--------------+--------------+------------+-----------+-------------+----------+
| 09bb6b8<...> | node001<...> | True | True | True | False |
| 187edb1<...> | node002<...> | False | True | True | False |
+--------------+--------------+------------+-----------+-------------+----------+