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

Рекомендуемые конфигурации распределенных томов

Данный раздел является переводом англоязычной статьи "Recommended Configurations - Dispersed Volume".
Читать в оригинале.

Общие сведения

В этом разделе описаны рекомендуемые конфигурации и примеры для дисперсного (Dispersed) и распределенного дисперсного (Distributed Dispersed) томов.

Для распределенного дисперсного тома существует несколько наборов бриков (bricks) (подтомов), в которых хранятся данные с помехоустойчивым кодированием.

Помехоустойчивый код

Помехоустойчивый код — это код, предназначенный для обнаружения и исправления ошибок. Основная техника — добавление при записи в полезные данные специальным образом структурированной избыточной информации, а при чтении использование такой избыточной информации для обнаружения и исправления ошибки.

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

Например, есть распределенный дисперсный том конфигурации 2 X (4 + 2). В этой конфигурации существует два дисперсных подтома, где данные с помехоустойчивым кодированием распределены между 6 бриками (2 из них - для избыточности). Файлы будут храниться в одном из этих дисперсных подтомов. Поэтому, даже если произойдет потеря двух бриков из каждого подтома, потери данных не произойдет.

Конфигурации бриков

В следующей таблице приведены сведения о компоновке бриков для нескольких конфигураций сервера/диска для распределенных и распределенных дисперсных томов.

Уровень
избыточности
Поддерживаемые
конфигурации
Бриков на сервер
на подтом
Потеря
узлов
Макс. количество отказов
бриков в подтоме
Количество совместимых узлов Инкремент
(кол-во узлов для расширения тома)
Мин. кол-во
подтомов
Общее кол-во
дисков
Допустимый %
отказов дисков
Дисковая полка на 12 дисков
2 4 + 2 2 1 2 3 3 6 36 33.33%
2 4 + 2 1 2 2 6 6 12 72 33.33%
2 8 + 2 2 1 2 5 5 6 60 20.00%
2 8 + 2 1 2 2 10 10 12 120 20.00%
3 8 + 3 1-2 1 3 6 6 6 72 25.00%
4 8 + 4 4 1 4 3 3 3 36 33.33%
4 8 + 4 2 2 4 6 6 6 72 33.33%
4 8 + 4 1 4 4 12 12 12 144 33.33%
4 16 + 4 4 1 4 5 5 3 60 20.00%
4 16 + 4 2 2 4 10 10 6 120 20.00%
4 16 + 4 1 4 4 20 20 12 240 20.00%
Дисковая полка на 24 диска
2 4 + 2 2 1 2 3 3 12 72 33.33%
2 4 + 2 1 2 2 6 6 24 144 33.33%
2 8 + 2 2 1 2 5 5 12 120 20.00%
2 8 + 2 1 2 2 10 10 24 240 20.00%
4 8 + 4 4 1 4 3 3 6 72 33.33%
4 8 + 4 2 2 4 6 6 12 144 33.33%
4 8 + 4 1 4 4 12 12 24 288 33.33%
4 16 + 4 4 1 4 5 5 6 120 20.00%
4 16 + 4 2 2 4 10 10 12 240 20.00%
4 16 + 4 1 4 4 20 20 24 480 20.00%
Дисковая полка на 36 дисков
2 4 + 2 2 1 2 3 3 18 108 33.33%
2 4 + 2 1 2 2 6 6 36 216 33.33%
2 8 + 2 2 1 1 5 5 18 180 20.00%
2 8 + 2 1 2 2 10 10 36 360 20.00%
3 8 + 3 1-2 1 3 6 6 19 216 26.39%
4 8 + 4 4 1 4 3 3 9 108 33.33%
4 8 + 4 2 2 4 6 6 18 216 33.33%
4 8 + 4 1 4 4 12 12 36 432 33.33%
4 16 + 4 4 1 4 5 5 9 180 20.00%
4 16 + 4 2 2 4 10 10 18 360 20.00%
4 16 + 4 1 4 4 20 20 36 720 20.00%
Дисковая полка на 60 дисков
2 4 + 2 2 1 2 3 3 30 180 33.33%
2 4 + 2 1 2 2 6 6 60 360 33.33%
2 8 + 2 2 1 2 5 5 30 300 20.00%
2 8 + 2 1 2 2 10 10 60 600 20.00%
3 8 + 3 1-2 1 3 6 6 32 360 26.67%
4 8 + 4 4 1 4 3 3 15 180 33.33%
4 8 + 4 2 2 4 6 6 30 360 33.33%
4 8 + 4 1 4 4 12 12 60 720 33.33%
4 16 + 4 4 1 4 5 5 15 300 20.00%
4 16 + 4 2 2 4 10 10 30 600 20.00%
4 16 + 4 1 4 4 20 20 60 1200 20.00%

Пример 1. Распределенная конфигурация 4 + 2 на трех серверах

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

При таком соотношении серверов/дисков для конфигурации распределенного тома выделяется 36 дисков. Например, чтобы создать простой распределенный том 4 + 2, используя 6 дисков из общего пула, необходимо выполнить команду:

# gluster volume create test_vol disperse-data 4 redundancy 2 transport tcp server1:/rhgs/brick1 server1:/rhgs/brick2 server2:/rhgs/brick3 server2:/rhgs/brick4 server3:/rhgs/brick5 server3:/rhgs/brick6

Чтобы посмотреть информацию о томе, необходимо выполнить команду gluster volume info:

# gluster volume info test-volume

Пример вывода gluster volume info:

Volume Name: test-volume
Type: Disperse
Status: Started
Number of Bricks: 1 x (4 + 2) = 6
Transport-type: tcp
Bricks:
Brick1: server1:/rhgs/brick1
Brick2: server1:/rhgs/brick2
Brick3: server2:/rhgs/brick3
Brick4: server2:/rhgs/brick4
Brick5: server3:/rhgs/brick5
Brick6: server3:/rhgs/brick6

Также можно преобразовать распределенный том в распределенный дисперсный том с шагом 4 + 2. Для этого необходимо добавить шесть бриков из пула с помощью следующей команды:

# gluster volume add-brick test_vol server1:/rhgs/brick7 server1:/rhgs/brick8 server2:/rhgs/brick9 server2:/rhgs/brick10 server3:/rhgs/brick11 server3:/rhgs/brick12

Чтобы посмотреть информацию о распределенном дисперсном томе, необходимо выполнить команду gluster volume info:

# gluster volume info test-volume

Пример вывода gluster volume info:

Volume Name: test-volume
Type: Distributed-Disperse
Status: Started
Number of Bricks: 2 x (4 + 2) = 12
Transport-type: tcp
Bricks:
Brick1: server1:/rhgs/brick1
Brick2: server1:/rhgs/brick2
Brick3: server2:/rhgs/brick3
Brick4: server2:/rhgs/brick4
Brick5: server3:/rhgs/brick5
Brick6: server3:/rhgs/brick6
Brick7: server1:/rhgs/brick7
Brick8: server1:/rhgs/brick8
Brick9: server2:/rhgs/brick9
Brick10: server2:/rhgs/brick10
Brick11: server3:/rhgs/brick11
Brick12: server3:/rhgs/brick12

Используя пример конфигурации, можно создать комбинации конфигураций из 6 X (4 + 2) распределенных дисперсных томов. Такая конфигурация допускает до 12 отказов бриков.

Пример 2. Распределенная конфигурация 8 + 4 на трех серверах

На следующей схеме показана распределенная конфигурация 8 + 4 на трех серверах.

Команда для создания распределенного тома для этой конфигурации:

# gluster volume create test_vol disperse-data 8 redundancy 4 transport tcp server1:/rhgs/brick1 server1:/rhgs/brick2 server1:/rhgs/brick3 server1:/rhgs/brick4 server2:/rhgs/brick1 server2:/rhgs/brick2 server2:/rhgs/brick3 server2:/rhgs/brick4 server3:/rhgs/brick1 server3:/rhgs/brick2 server3:/rhgs/brick3 server3:/rhgs/brick4 server1:/rhgs/brick5 server1:/rhgs/brick6 server1:/rhgs/brick7 server1:/rhgs/brick8 server2:/rhgs/brick5 server2:/rhgs/brick6 server2:/rhgs/brick7 server2:/rhgs/brick8  server3:/rhgs/brick5 server3:/rhgs/brick6 server3:/rhgs/brick7 server3:/rhgs/brick8 server1:/rhgs/brick9 server1:/rhgs/brick10 server1:/rhgs/brick11 server1:/rhgs/brick12 server2:/rhgs/brick9 server2:/rhgs/brick10 server2:/rhgs/brick11 server2:/rhgs/brick12 server3:/rhgs/brick9 server3:/rhgs/brick10 server3:/rhgs/brick11 server3:/rhgs/brick12

image

На каждом сервере имеется m бриков из дисперсного подтома. Если добавить более m бриков из дисперсного подтома на сервер S, и если сервер S выйдет из строя, данные будут недоступны.

Если сервер S (один столбец на приведенной выше схеме) выйдет из строя, потери данных не будет, но если произойдет дополнительный аппаратный сбой, либо выйдет из строя другой узел, либо откажет устройство хранения, то данные будут потеряны.

Пример 3. Распределенная конфигурация 4 + 2 на шести серверах

На следующей схеме показана распределенная конфигурация 4 + 2 на шести серверах и каждый сервер с конфигурацией 12 дисков на сервер.

Команда для создания дисперсного тома для этой конфигурации:

# gluster volume create test_vol disperse-data 4 redundancy 2 transport tcp server1:/rhgs/brick1 server2:/rhgs/brick1 server3:/rhgs/brick1 server4:/rhgs/brick1 server5:/rhgs/brick1 server6:/rhgs/brick1server1:/rhgs/brick2 server2:/rhgs/brick2 server3:/rhgs/brick2 server4:/rhgs/brick2 server5:/rhgs/brick2 server6:/rhgs/brick2 server1:/rhgs/brick3 server2:/rhgs/brick3 server3:/rhgs/brick3 server4:/rhgs/brick3 server5:/rhgs/brick3 server6:/rhgs/brick3 server1:/rhgs/brick4 server2:/rhgs/brick4 server3:/rhgs/brick4 server4:/rhgs/brick4 server5:/rhgs/brick4 server6:/rhgs/brick4 server1:/rhgs/brick5 server2:/rhgs/brick5 server3:/rhgs/brick5 server4:/rhgs/brick5 server5:/rhgs/brick5 server6:/rhgs/brick5 server1:/rhgs/brick6 server2:/rhgs/brick6 server3:/rhgs/brick6 server4:/rhgs/brick6 server5:/rhgs/brick6 server6:/rhgs/brick6 server1:/rhgs/brick7 server2:/rhgs/brick7 server3:/rhgs/brick7 server4:/rhgs/brick7 server5:/rhgs/brick7 server6:/rhgs/brick7 server1:/rhgs/brick8 server2:/rhgs/brick8 server3:/rhgs/brick8 server4:/rhgs/brick8 server5:/rhgs/brick8 server6:/rhgs/brick8 server1:/rhgs/brick9 server2:/rhgs/brick9 server3:/rhgs/brick9 server4:/rhgs/brick9 server5:/rhgs/brick9 server6:/rhgs/brick9 server1:/rhgs/brick10 server2:/rhgs/brick10 server3:/rhgs/brick10 server4:/rhgs/brick10 server5:/rhgs/brick10 server6:/rhgs/brick10 server1:/rhgs/brick11 server2:/rhgs/brick11 server3:/rhgs/brick11 server4:/rhgs/brick11 server5:/rhgs/brick11 server6:/rhgs/brick11 server1:/rhgs/brick12 server2:/rhgs/brick12 server3:/rhgs/brick12 server4:/rhgs/brick12 server5:/rhgs/brick12 server6:/rhgs/brick12

image

Сравнение избыточности

На следующей схеме показано сравнение избыточности всех поддерживаемых конфигураций распределенных томов.

image