Перейти к содержанию

Gluster тома

Создание тома

Для создания тома необходимо перейти в раздел Хранилища - Кластерные хранилища - Тома основного меню и нажать кнопку Создать. В открывшемся окне необходимо заполнить следующие поля:

  • название;

  • описание;

  • тип тома (Реплицированный или Дисперсный);

  • кластерный транспорт, на узлах которого будет развернут том (выбор из раскрывающегося списка);

  • разделы (ZFS-пулы) (выбор из раскрывающегося списка);

  • размер записи датасетов на ZFS пулах, относящихся к создаваемому тому;

  • значение репликации тома;

  • включить (выключить) опцию Наличие раздела арбитра в реплицированном томе;

  • включить (выключить) опцию Создать пул данных.

После внесения изменений необходимо подтвердить операцию, нажав кнопку ОК.

Примечание

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

Пошаговое описание создания пула данных типа Gluster

  1. Создаём внешнюю сеть на узлах кластера на отдельных физических интерфейсах или бондах, создавая внутренние интерфейсы на каждом узле.

  2. Создаём кластерный транспорт с указанием внешней сети.

  3. Создаём ZFS-пулы на узлах кластера.

  4. Создаём том, выбирая кластерный транспорт и ZFS-пулы.

  5. Создаём пул данных типа Gluster, указывая том.

Внимание!

При создании тома или замене разделов тома рекомендуется использовать заново созданные ZFS-пулы, а не использовать имеющиеся повторно. Это связано с особенностями очистки ZFS-пулов перед созданием тома или заменой разделов. То есть, если в системе имеются ZFS-пулы, использовавшиеся ранее под ZFS-датапул или том Gluster, лучше удалить их и собрать заново перед использованием.

Рекомендации

  1. Подробную информацию по томам можно прочитать на официальном сайте Gluster.
  2. Подробно описанные рекомендации по томам.
  3. Не рекомендуется использовать management сеть для томов.
  4. Не рекомендуется иметь пропускную способность менее 10 GbE для сети хранилищ.
  5. Рекомендуется сразу поднять MTU физических интерфейсов до 9100.
  6. Рекомендуется создавать ZFS-пулы типа mirror c учётом ARC кэша, L2ARC, ZIL.
  7. Размер записи при создании тома влияет на IOPS тома при обмене мелкими блоками (меньше-лучше), фрагментацию файлов на ZFS пулах и потребление памяти ZFS кэшем на узле (больше-лучше). При необходимости высоких значений IOPS можно уменьшить значение размера записи до 8-16K. Стандартное значение размера записи ZFS -- 128K. Устанавливать размер записи менее 8К не следует, т.к. ZFS пулы создаются в Space с параметром ashift=13, что даёт размер блока 8К (записи состоят из блоков и не могут быть меньше блока).
  8. Рекомендуется использовать резервную копию виртуальных машин, чтобы избежать потери данных.

Управление

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

  • удаление;

  • добавление раздела (ZFS-пула);

  • замена раздела (ZFS-пула);

  • удаление раздела (ZFS-пула);

  • монтирование;

  • размонтирование;

  • статус подорожника. Более подробную информацию можно прочитать здесь;

  • действия подорожника (enable, disable или full);

  • статус ребалансировки тома;

  • действия ребалансировки тома (старт или стоп);

  • действия тома (старт или стоп);

  • получение расширенных сведений о томе.

Информация

Вкладка Информация содержит следующие сведения о томе:

  • название;

  • описание (редактируемый параметр);

  • кластерный транспорт;

  • объем дискового пространства (всего, занято);

  • статус;

  • Gluster статус;

  • даты создания;

  • дата обновления;

  • опции тома:

    • наличие раздела арбитра в реплицированном томе;
    • число разделов (ZFS-пулов) в томе, тип тома dispersed;
    • путь монтирования тома;
    • число разделов избыточности (ZFS-пулов) в dispersed томе;
    • значение репликации тома;
    • тип транспорта для тома;
  • серверы кластера со статусами связи и монтирования (раскрывающийся список).

Типы томов и их основные отличия

Краткое резюме

  • простейший ненадёжный тип тома — аналог JBOD — распределённый (distributed);
  • простейший тип тома с избыточностью, неэффективный по объёму — аналог MIRROR — реплицированный (replicated);
  • более эффективный по объёму — реплицированный с арбитром;
  • самый продвинутый — аналог RAID 5, 6 — дисперсный.

Том состоит из одного или более подтомов (subvolumes), их число указано в параметре distribute готового тома. Каждый подтом в данном томе имеет одну и ту же структуру, может быть реплицированным либо дисперсным. Простейшая структура тома Gluster -- один подтом из одного раздела.

1. Распределённый (distributed) том

Примерный аналог JBOD или RAID 0 массива. Не обладает избыточностью и какой-либо защитой от сбоев на уровне Gluster. Каждый подтом здесь состоит из одного раздела. При отказе хотя бы одного из разделов данные могут стать недоступны на всём томе. Может быть составлен из разделов (bricks) различающегося объёма, при этом объём разделов используется полностью. Самый «лёгкий» тип тома в плане и требуемой вычислительной мощности, и сетевого трафика. В свойствах распределённого тома отображается значение репликации "1". При этом том создаётся с указанием значения репликации "0". Это самый быстрый том, если отдельные подтома (subvolumes, составляющие том) располагаются на разных узлах, то случайный обмен данными с томом делится между дисковыми подсистемами узлов, хранящих разделы, что положительно влияет на производительность.

Добавлять разделы к распределённому тому можно двумя способами:

  • с увеличением размера, в этом случае нет требований к размерам и числу добавляемых разделов;

  • с повышением реплики, в этом случае следует указывать новое значение реплики и учитывать распределение разделов в подтомах данного тома по размерам, а число разделов должно быть равно <числу разделов в исходном томе> x <изменение реплики>. В результате образуется распределённый реплицированный том.

Примечание

Если при добавлении разделов к тому параметр реплики не указан (равен "0"), то по умолчанию производится увеличение размера тома (увеличивается параметр "distribute").

Внимание!

В SpaceVM тома Gluster запрещается создавать с включённым атрибутом "sharding". Из этого следует, что каждый файл, образ или виртуальный диск, создаваемый на томе Gluster, должен целиком размещаться на одном разделе. В противном случае будет выдана ошибка нехватки свободного места, даже если суммарного свободного места на распределённом томе достаточно. Во избежание подобных ситуаций следует до решения проблемы создавать чисто реплицированные Gluster тома размером, равным размеру одного раздела. При наличии достаточного количества узлов и доступных ZFS-пулов на них для разделов под тома Gluster рекомендуется создавать отдельные тома Gluster с параметром "distribute = 1" и нужным уровнем реплики. Если всё же необходимо создание одного распределённого тома Gluster большого объёма, целесообразно избегать создания «тонких» виртуальных дисков на нём, чтобы возможные ошибки нехватки свободного места проявлялись сразу же при создании диска, а также следить за свободным местом на отдельных разделах тома и регулярно (или по расписанию) проводить ребалансировку тома. В случае ранее созданного тома с включенным параметром features.shard on (проверяется в окне Опции тома) следует скопировать с него имеющиеся данные и пересобрать том, сразу же после сборки, указав в параметрах features.shard off.

2. Реплицированный (replicated) том

Аналог MIRROR (RAID 1) массива. Обладает N-кратной избыточностью, где N - параметр репликации. Технически сохраняет работоспособность при отказе N-1 реплик. Фактически поведение тома зависит от настроек кворума. Подробнее о кворуме можно прочитать здесь.

При составлении реплик из разделов разного объёма эффективный объём тома равен объёму наименьшего раздела в реплике. При записи на том генерируется N-кратный трафик в сети, объединяющей разделы.

Добавлять разделы можно к реплицированному тому можно двумя способами:

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

  • с сохранением размера и увеличением параметра репликации. При этом не следует добавлять разделы размером меньше уже составляющих том.

3. Реплицированный том с арбитром

Является компромиссным решением между вариантом с репликой "2", подверженной проблеме "split-brain" в случае потери связи между разделами, и репликой "3", требующей трёхкратного объёма хранилища по отношению к полезному объёму тома. В этом случае реплика равна "3", но на последнем томе реплики хранится только метаинформация о файлах и каталогах, а не их содержимое. Такой том называется арбитром. Это позволяет в случае нарушения связности между узлами избежать проблемы "split-brain" и сэкономить дисковый объём. Для создания реплицированного тома с арбитром следует указать при создании тома значение реплики "2", а значение арбитра в реплицированном томе - равным "1". См. ниже порядок следования разделов при создании тома.

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

Примечание

Возможно создать реплицированный том с арбитром из реплицированного тома с параметром реплики "2". При этом следует указать реплику "3", наличие арбитра "1", а число разделов должно быть равно параметру "distribute" исходного тома.

4. Распределённый реплицированный (distributed replicate) том

Является по сути репликой распределённых томов (примерный аналог RAID 10). Обладает так же, как и реплицированный, N-кратной избыточностью. Сохраняет работоспособность технически, пока исправна минимум одна реплика, фактически поведение тома зависит от настроек кворума. Подробнее о кворуме можно прочитать здесь.

При создании томов такого типа из разделов разного размера следует учесть, что общий объём тома будет определяться суммой минимальных объёмов разделов в репликах каждого из подтомов (см. ниже порядок следования разделов при создании тома). При записи генерирует так же, как и реплицированный том, N-кратный трафик в сети, связывающей разделы.

Для создания тома такого типа следует указать значение реплики и выбрать число разделов, кратное этому значению. К примеру, при указании реплики "2" и всего 6 разделов будет создан том со значениями replica = 2, distribute = 3. Если нужно создать распределённый реплицированный том с арбитром, то значение реплики нужно указать "2", значение арбитра "1", а число томов кратным 3. При этом каждый третий раздел будет являться арбитром, следовательно, это может быть раздел существенно меньшего размера.

Создание распределённого реплицированного тома из 6 разделов с арбитром

Пусть у нас есть 4 ZFS-пула размером 1 Тбайт (zp_1T_0 ... zp_1T_3) и 2 ZFS-пула размером 40 Гбайт (zp_40G_0, zp_40G_1). Тогда для создания нужного тома можно выбрать ZFS-пулы в такой последовательности (условно, важно, чтобы разделы 40 Гбайт попали в последнюю реплику): zp_1T_0 zp_1T_1 zp_40G_0 zp_1T_2 zp_1T_3 zp_40G_0. Значение реплики выберем равным "2", а значение арбитра равным "1". Тогда после создания тома по нажатию кнопки Получение расширенных сведений о томе пользователь увидит роль разделов zp_1T_0, 1, 2, 3 — 'Brick', а zp_40G_0, 1 — 'Arbiter'. Суммарная ёмкость тома будет равна 2 Тбайт.

5. Дисперсный (dispersed) том

Является примерным аналогом RAID-5, 6, raidz1, 2 или выше в зависимости от числа разделов избыточности. Сохраняет работоспособность при отказе до R разделов, где R - значение избыточности ("disperse redundancy"), заданной при создании тома. Объём тома в случае одинаковых размеров разделов равен D x Vрзд, где D - число разделов с данными ("disperse data"). Имеет преимущество перед реплицированным томом в более эффективном расходе дискового пространства, но более активно использует мощность CPU узлов и сравнимо генерирует трафик, т.к. для записи некоторого объёма данных на этот том требуется считывание D-1 объёмов данных, вычисление и запись R объёмов данных коррекции ошибок (избыточности). В сочетании с нагрузкой на CPU узлов при использовании raidz для защиты от отказов отдельных накопителей, составляющих разделы, может создаваться видимая загрузка CPU узлов. При создании дисперсного тома из разделов разного размера общий объём тома равен D x Vmin, где Vmin - минимальный размер из всех разделов тома. При создании распределённого дисперсного тома это справедливо для каждого подтома в отдельности.

Для создания дисперсного раздела нужно задать список разделов и любые из параметров:

  • N - общее число указанных для создания тома разделов, по умолчанию - 0;
  • Nt - число разделов на дисперсный том, по умолчанию - 0;
  • D - число разделов данных в дисперсном томе, по умолчанию - 0;
  • R - число разделов избыточности, по умолчанию - 1.

Число разделов на дисперсный том Nt берётся равным N. Указывается в случае создания дисперсного распределённого тома, в этом случае задаётся кратно меньшим N, при этом степень кратности будет равняться параметру "distribute" в полученном томе.

Число разделов данных в дисперсном томе D берётся равным Nt-1.

Если какие-то параметры заданы явно, остальные вычисляются автоматически.

Примеры создания дисперсных томов

Пусть имеется 8 разделов объёмом по 1 Тбайт (см.замечание об оптимальной конфигурации дисперсного тома). - Зададим параметры по умолчанию, кроме числа разделов данных на дисперсный том = 8. Тогда получим том объёмом 7 Тбайт, переносящий потерю любого одного раздела. - Из этих же 8 разделов создадим том с параметром Nt = 4, прочие параметры по умолчанию. Тогда получим том 6 Тбайт, состоящий из двух подтомов (первая и вторая группа по 4 раздела в списке разделов при создании тома) и переносящий потерю любого раздела в каждом из подтомов. - Из этих же разделов создадим том с параметром D = 5, прочие параметры по умолчанию. Получаем том объёмом 5 Тбайт, переносящий отказ до 3 любых разделов в томе.

Примечание

При добавлении разделов к дисперсному тому их число должно быть кратно сумме параметров D + R, при этом образуется дисперсный распределённый том.

Важное замечание о производительности

Существует понятие оптимальности конфигурации дисперсного тома. Дело в зависимости размера блоков обмена данными при обращениях к тому от конфигурации тома. Она равна S = D x 512 байт, где D - число разделов с данными в дисперсном томе. Оптимальной считается конфигурация тома, при которой размер блока данных является степенью двойки (т.е. 512, 1024, 2048, 4096, 8192, ... байт). Следовательно, оптимальным числом разделов с данными в томе будет 2, 4, 8, ... разделов. К этому числу нужно прибавить число разделов для обеспечения требуемой избыточности. Например, для стойкости к потере 1 раздела и оптимальности конфигурации нужно иметь в томе 3(2+1), 5(4+1), 9(8+1), ... разделов. Если конфигурация будет неоптимальной, производительность тома будет понижена из-за того, что в основном обмен идёт блоками размером кратным степени двойки (например, кратными 4096 байт). Если требуемые или отдаваемые клиентом блоки не будут кратны блокам, отдаваемым хранилищем, то на каждую операцию будет приходиться фактически две или более операции обмена с томом, в случае записи это приводит к множеству дополнительных, так называемых, "read-modify-write" операций. Поэтому при создании дисперсного тома следует стремиться к оптимальной конфигурации.

6. Распределённый дисперсный (distributed disperse) том

Примерный аналог RAID 60. Состоит из нескольких дисперсных томов, объединённых наподобие разделов в распределённом томе. Получается при добавлении разделов к дисперсному тому либо при создании дисперсного тома, когда значение "число разделов данных в дисперсном томе" кратно меньше заданного числа разделов.

Важность выбора последовательности разделов при создании и модификации тома

Разделы, составляющие распределённый том, называются подтомами (subvolumes). Это, по большей части, неявный параметр, но он имеет большое значение для реплицированных томов с арбитром и распределённых реплицированных томов. Какой раздел отнесётся к какой реплике и в каком подтоме он будет находиться, однозначно определяется порядком указания разделов при создании. В распределённом реплицированном томе с k подтомов (distribution = k) и n реплик (replica = n) это задаётся так:

S1R1 S1R2 ... S1Rn S2R1 S2R2 ... S2Rn ... SkR1 ... SkRn,

где S1...Sk — subvolumes тома, а R1...Rn — номер реплики.

То есть, как видим, друг за другом указываются реплики одного подтома. Соответственно, если создаётся распределённый реплицированный том из разделов различной ёмкости или том с арбитром, нужно учитывать это. В одном подтоме желательно располагать разделы одинаковой ёмкости, чтобы избежать неиспользуемого объёма, а в одной реплике — разделы из одного узла, если такие имеются, что обеспечит отказ только одной реплики при отказе какого-либо из узлов.

Важно!

Добавление разделов к томам нужно производить с установленным движком Принудительное добавление, иначе задача завершится с ошибкой.

Профилирование тома

gluster volume profile {volume_name} start  # команда для запуска профилирования тома

gluster volume profile {volume_name} info   # команда для получения информации о томе (запуск этой команды следует выполнять через некоторе время после начала профилирования)

gluster volume profile {volume_name} stop   # команда для окончания профилирования тома

Применение группы опций к тому

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

  1. Сначала к тому применяется одна из стандартных (поставляемых разработчиками Gluster) групп опций в зависимости от типа тома:

    • распределённый том - группа distributed-virt;
    • реплицированный том - группа virt;
    • дисперсный том - группа dispersed-virt (модифицированная группа virt без параметра cluster.shd-max-threads).
  2. Далее к тому применяется группа параметров Space (см. ниже).

  3. Также отключается опция тома sharding, т.к. она может в данной версии Gluster приводить к повреждению данных.

В ручную группы можно применить к уже созданным томам, зайдя в CLI любого сервера, на котором развернут Gluster том, и выполнить команды (к примеру, распределённый том):

gluster volume set {volume_name} group distributed-virt
gluster volume set {volume_name} group veil
gluster volume set {volume_name} features.shard off

Примечание

Важно отключить шардинг (sharding) после установки групп, т.к. предустановленные группы (virt, distributed-virt, dispersed-virt) могут его включить.

В случае создания реплицированного тома с арбитром устанавливается параметр

gluster volume set {volume_name} server-quorum-type server

Подробнее о параметрах и группах параметров томов можно прочитать здесь.

Опции группы Space:

performance.quick-read=off
performance.read-ahead=off
performance.io-cache=off
performance.low-prio-threads=32
network.remote-dio=disable
performance.strict-o-direct=on
cluster.eager-lock=enable
cluster.quorum-type=none
cluster.server-quorum-type=none
cluster.data-self-heal-algorithm=full
cluster.locking-scheme=granular
user.cifs=off
cluster.choose-local=off
client.event-threads=4
server.event-threads=4
performance.client-io-threads=on
network.ping-timeout=20
server.tcp-user-timeout=20
server.keepalive-time=10
server.keepalive-interval=2
server.keepalive-count=5
cluster.lookup-optimize=off

Удаление разделов из тома

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

Сокращение размера тома возможно при наличии более чем одного подтома (distribute > 1), следовательно, применяется на томах типа DISTRIBUTED, DISTRIBUTED_REPLICATE, DISTRIBUTED_DISPERSE. Перед удалением следует убедиться, что свободное место на оставшихся подтомах достаточно, чтобы вместить данные с удаляемого подтома. Также важно понимать, что так как каждый файл, хранящийся на томе Gluster в текущей конфигурации, хранится целиком на каком-либо подтоме, то при конфигурации, например, когда на удаляемом подтоме лежит файл размером 40 Гбайт, а на двух оставшихся есть 20 и 20 Гбайт свободного места, операция удаления завершится с ошибкой. Следует обеспечить свободное место, достаточное для копирования файлов с удаляемого подтома целиком.

При удалении разделов с уменьшением объёма раздела значение репликации нужно оставить равным 0 или текущему значению репликации тома (в случае дисперсного тома значение репликации смысла не имеет, поэтому его следует оставить равным 0), а при удалении разделов с уменьшением числа реплик (уменьшением избыточности) у реплицированных томов значение репликации нужно установить равным результирующему значению репликации тома.

Для правильного выбора разделов, подлежащих удалению, см. Важность выбора последовательности разделов.... Фактический порядок разделов в томе, и следовательно, их отношение к различным подтомам и расположение в них, можно увидеть по нажатию кнопки Получение расширенных сведений о томе.

Примеры:

  • том типа DISTRIBUTED_REPLICATE, параметры replica=3, distribute=2. Следовательно, имеется 2 подтома, каждый из них имеет значение реплики 3. Всего в томе 6 разделов.

    • Расположение разделов (из информации Расширенные сведения о томе): z1, z2, z3, z4, z5, z6.

    • Первый подтом состоит из разделов (z1, z2, z3), второй из (z4, z5, z6). Первая реплика подтомов состоит из разделов (z1, z4), вторая -- из (z2, z4), третья (она же при наличии арбитра в томе содержит разделы арбитров) -- (z3, z6).

    • Чтобы уменьшить размер тома, следует удалить какой-либо из подтомов целиком. Следовательно, возможно выбрать к удалению тройки разделов (z1, z2, z3) или (z4, z5, z6). При этом тип тома изменится на REPLICATED, так как в нём останется только один подтом.

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

      • Если нет арбитра, разделы в пределах подтома равноправны. То есть, если нет арбитра, то для уменьшения реплики можно выбрать по одному любому разделу из разных подтомов, например, пары (z1, z5), или (z2, z4), или (z3, z4).
      • В случае тома с арбитром ситуация меняется. Разделы типа "arbiter", являющимися третьими репликами в каждом подтоме (в нашем случае это будут разделы z3 и z6), при удалении нужно выбирать только синхронно. То есть, если в этом случае нужно удалить разделы с данными, то они по-прежнему равноправны между собой в пределах подтома, и можно выбрать пары (z1, z4), или (z2, z4), или (z1, z5). А разделы (z3 и z6), являющиеся арбитрами, следует удалять только синхронно. Комбинации (z1, z6) или (z4, z3) и подобные недопустимы в данном случае.
  • том типа DISTRIBUTED_DISPERSE c параметрами disperse=3, distribute=2. Содержит 2 подтома дисперсного типа "2+1". Всего в томе 6 разделов.

    • Расположение разделов (из информации Расширенные сведения о томе): z1, z2, z3, z4, z5, z6.

    • Дисперсные тома не поддерживают изменение избыточности, поэтому здесь возможно только удаление разделов с уменьшением размера, т.е. удаление подтома целиком. Следовательно, при удалении нужно выбирать только тройки разделов (z1, z2, z3) или (z4, z5, z6). При этом том превратится в тип DISPERSED, так как в нём останется только один подтом.

Важно!

После уменьшения размера тома путём удаления разделов, если результирующий том имеет более 1 подтома, желательно запустить ребалансировку тома.

Остановка и замена разделов в томе

В случае проблем с каким-либо ZFS-пулом, используемым под раздел тома Gluster, возможно временно "вывести из эксплуатации" данный раздел (при наличии избыточности у тома), провести необходимые работы, включая удаление неисправного ZFS-пула, а затем заменить остановленный раздел на исправный.

  • Если нужно произвести замену раздела, и заменяющий раздел уже доступен, тогда во вкладке Разделы (ZFS пулы) выбрать действие Замена раздела, где указать заменяемый и заменяющий разделы.

  • Если раздела для замены заранее нет, то заменяемый раздел можно остановить путём выбора действия Остановка раздела во вкладке Разделы (ZFS пулы), после чего при необходимости можно удалить ZFS-пул, составляющий данный раздел, пересобрать его с другим именем и т.д., а затем выполнить Замену раздела, где заменяемый раздел будет уже остановленный и может быть удалённый, а заменяющий -- вновь полученный исправный раздел.

Остановленный раздел можно привести обратно в состояние Online либо перезапуском тома, нажав кнопку Действия тома, далее стоп -- старт, либо, если остановка тома недопустима, заменой раздела на другой.

Важно

После замены разделов следует проверить исправность данных на томе, нажав кнопку Статус подорожника тома. Значение NR_ENTRIES для всех разделов должно быть равным 0, а все разделы должны быть в состоянии Connected. В случае, если значения NR_ENTRIES для какого-либо раздела через несколько минут после замены не становятся равным 0, следует провести лечение тома, нажав кнопку Действия подорожника, далее full, а в случае неудачи перезапустить том.

Вывод на обслуживание разделов тома с последующей заменой на разделы на том же узле

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

  • Остановить разделы томов, находящиеся на данном узле.
  • Перевести узел в сервисный режим.
  • Удалить узел из кластера.
  • Через CLI или иными средствами привести разделы в исправное состояние.
  • Добавить узел в кластер.
  • Провести переконфигурацию кластерного транспорта. При этом в списке узлов кластерного транспорта будет виден как вновь введённый узел, так и он же, но в виде "потерянного" и без имени, как uuid. Сообщения о невозможности примонтировать том можно проигнорировать.
  • Произвести замену разделов, находившихся ранее на данном узле, на те же разделы, но уже исправленные.
  • Проконтролировать через расширенные сведения о томе, что новые разделы онлайн и синхронизируются.
  • Примонтировать том на узел.

Примечания:

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

  • В некоторых случаях задача прямой замены раздела может сопровождаться ошибкой с сообщением "another transaction is in progress". В результате желаемое действие всё равно завершается успешно, если же нет, то следует произвести замену с предварительной остановкой заменяемого раздела.

  • Попытка удалить ZFS-пул, содержащий раздел тома Gluster в состоянии Online, завершится с ошибкой. Сначала раздел необходимо остановить.

  • Таблица разделов (ZFS-пулов) тома содержит два схожих поля -- "Online" и "Статус". Первое поле указывает на состояние раздела с точки зрения тома Gluster, а второе -- на исправность самого ZFS-пула.