_Предыдущая версия данного обучающего руководства была написана Джастином Эллингвудом._

Введение

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

GlusterFS — это сетевая файловая система хранения, позволяющая объединять ресурсы хранения нескольких компьютеров. В свою очередь это позволяет рассматривать несколько устройств хранения, установленных на разных компьютерах, в качестве единого более мощного блока. GlusterFS также предоставляет возможность создавать различные типы конфигураций хранения, многие из которых функционально аналогичны уровням RAID. Например, вы можете распределять данные между узлами кластера или внедрять резервирование для лучшей доступности данных.

Цели

glusterfs illustration for: Цели

В этом обучающем руководстве мы создадим резервный кластерный массив хранилищ, известный также как распределенная файловая система, или, как указано в документации GlusterFS, _доверенный пул хранения данных (Trusted Storage Pool)_.​​​ Это обеспечит функциональность, аналогичную зеркальной конфигурации RAID в сети: каждый независимый сервер будет содержать свою собственную копию данных, позволяя приложениям получать доступ к любой копии, тем самым облегчая распределение нагрузки чтения.

Этот избыточный кластер GlusterFS будет состоять из двух серверов Ubuntu 20.04. И будет действовать примерно так же, как сервер NAS с зеркальным RAID. Затем вы получите доступ к кластеру с третьего сервера Ubuntu 20.04, настроенного для работы в качестве клиента GlusterFS.

Примечание о безопасном функционировании GlusterFS

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

По этой причине, если вы собираетесь использовать GlusterFS в производственной среде, рекомендуется использовать его в изолированной сети. Например, вы можете настроить его для запуска в _виртуальном частном облаке_ (VPC) или с помощью VPN, работающей между каждым из узлов.

[info]

Если вы планируете развернуть GlusterFS в the cloud provider, можно настроить его в изолированной сети, добавив инфраструктуру вашего сервера в виртуальное частное облако the cloud provider. Дополнительную информацию о настройке смотрите в документации по VPC.

Предварительные требования

Для выполнения данного обучающего руководства вам понадобится три сервера, работающих на Ubuntu 20.04. Каждый сервер должен иметь пользователя non-root user с правами администратора, а также брандмауэр, настроенный с помощью UFW. Чтобы выполнить настройку, воспользуйтесь руководством по начальной настройке сервера Ubuntu 20.04.

Примечание. Как указано в разделе «Цели», это обучающее руководство покажет вам, как настроить два ваших сервера Ubuntu для работы в качестве серверов пула хранения данных, а оставшийся сервер — в качестве клиента, который вы будете использовать для доступа к этим узлам.

Для ясности в этом обучающем модуле будут использоваться компьютеры со следующими именами хостов:

Имя хоста Роль в пуле хранения данных
———— —————————
gluster0 Сервер
gluster1 Сервер
gluster2 Клиент

Команды, которые следует запускать в gluster0 или gluster1, записываются на голубом или розовом фоне соответственно:

				
					
[environment second]



				
			
				
					
[environment third]



				
			

Команды, которые следует запускать исключительно на клиенте (gluster2), имеют зеленый фон:

				
					
[environment fourth]



				
			

Команды, которые могут или должны запускаться на нескольких компьютерах, записываются на сером фоне:

				
					


				
			

Шаг 1 — Настройка разрешения DNS на каждом компьютере

Настройка определенного разрешения имени хоста между всеми компьютерами может помочь в управлении пулом хранения данных Gluster. Таким образом, когда позднее в рамках этого обучающего руководства вам понадобится указать один из компьютеров в команде gluster, вы сможете сделать это, используя легко запоминающееся доменное имя или даже псевдоним вместо соответствующего IP адреса.

Если у вас нет свободного доменного имени, а также если вы хотите быстро что-то настроить, вы можете отредактировать файл /etc/host на каждом компьютере. Это специальный файл на компьютерах с ОС Linux, где вы можете статически настроить систему для разрешения любых имен хоста, содержащихся в файле, в статические IP-адреса.

Примечание. Если вы хотите настроить ваши серверы для аутентификации доменом, которым владеете, сначала вам понадобится получить доменное имя у регистратора, например у Namecheap или Enom, и настроить соответствующие записи DNS.

После настройки записи A для каждого сервера вы можете перейти к шагу 2. По мере выполнения данного руководства не забывайте менять gluster<^>N<^>.example.com и gluster<^>N<^> на доменное имя, которое указывает на соответствующий сервер, упоминаемый в примере команды.

[info]

Если вы взяли инфраструктуру из the cloud provider, вы можете добавить ваше доменное имя в the cloud provider, а затем настроить уникальную запись А для каждого сервера.

Используя предпочитаемый текстовый редактор, откройте этот файл с привилегиями root на каждом компьютере. Мы будем использовать nano:

				
					
sudo nano /etc/hosts

				
			

По умолчанию файл будет выглядеть примерно так, если удалить комментарии:

				
					
[label /etc/hosts]

127.0.1.1 &lt;^&gt;hostname&lt;^&gt; &lt;^&gt;hostname&lt;^&gt;

127.0.0.1 localhost



::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts

				
			

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

В следующем примере каждому серверу дается длинное имя хоста, соответствующее gluster<^>N<^>.example.com и короткое имя, соответствующее gluster<^>N<^>. Вы можете менять в каждой строке части gluster<^>N<^>.example.com и gluster<^>N<^> на любое имя или имена, отделенные одиночным интервалом, которые вы бы хотели использовать для доступа к каждому серверу. Однако обратите внимание, что в данном обучающем руководстве будут использоваться следующие примеры:

Примечание. Если ваши серверы являются частью пула инфраструктуры *виртуального частного облака*, вам следует использовать частный IP-адрес каждого сервера в файле /etc/hosts, а не публичные IP-адреса.

				
					
[label /etc/hosts]

. . .

127.0.0.1 localhost

&lt;^&gt;first_ip_address&lt;^&gt; gluster0.example.com gluster0

&lt;^&gt;second_ip_address&lt;^&gt; gluster1.example.com gluster1

&lt;^&gt;third_ip_address&lt;^&gt; gluster2.example.com gluster2



. . .

				
			

После того, как вы добавите все новые строки в файл /etc/hosts одного компьютера, скопируйте их и добавьте в файлы /etc/hosts других компьютеров. Каждый файл /etc/host должен содержать одинаковые строки, которые привязывают IP-адреса ваших серверов к именам, которые вы выбрали.

Сохраните и закройте каждый файл после завершения. Для этого, если вы используете nano, нажмите CTRL+X, Y, затем ENTER.

Теперь, когда вы настроили разрешение имени хоста между каждым сервером, вам будет проще в последствии запускать команды, так как вы установили пул и том хранения данных. Далее вы можете переходить к следующему шагу, который нужно выполнить для каждого сервера. Добавьте в каждый из трех серверов Ubuntu официальный архив персональных пакетов (PPA) проекта Gluster, чтобы обеспечить возможность установки новейшей версии GlusterFS.

Шаг 2 — Настройка источников программного обеспечения на каждом компьютере

Хотя репозитории APT по умолчанию для Ubuntu 20.04 содержат пакеты GlusterFS, на момент написания данного руководства они не являются последними версиями. Один из способов установки последней стабильной версии GlusterFS (версия <^>7.6<^> на момент написания) — добавление официального архива персонального пакета (РРА) проекта Gluster для каждого из трех серверов Ubuntu.

Добавьте PPA для пакетов GlusterFS путем запуска следующей команды на каждом сервере:

				
					
sudo add-apt-repository ppa:gluster/glusterfs-7

				
			

Нажмите ENTER, когда вам будет предложено подтвердить намерение добавить РРА.

После добавления PPA, обновите локальный индекс пакетов каждого сервера. Это сообщит системе о наличии новых пакетов:

				
					
sudo apt update

				
			

После добавления официального PPA проекта Gluster для каждого сервера и обновления локального индекса пакетов вы сможете установить необходимые пакеты GlusterFS. Однако поскольку два из трех компьютеров будут работать как серверы Gluster, а третий — как клиент, вам понадобится выполнить две отдельные процедуры установки и настройки. Сначала вы установите и настроите компоненты сервера.

Шаг 3 — Установка компонентов сервера и создание доверенного пула хранения данных

_Пул хранения данных_ — это любой объем емкости хранения данных от более чем одного ресурса хранения. На этом шаге вы настроите два сервера — gluster0 и gluster1 — в качестве компонентов кластера.

Установите пакет сервера GlusterFS на gluster0 и на gluster1 с помощью команды:

				
					
sudo apt install glusterfs-server

				
			

При запросе нажмите Y, а затем ENTER, чтобы подтвердить установку.

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

Для запуска glusterd, службы GlusterFS, запустите команду systemctl start на gluster0 и на gluster1:

				
					
sudo systemctl start glusterd.service

				
			

Затем запустите следующую команду на обоих серверах. Это позволит запускать службу при каждой загрузке сервера:

				
					
sudo systemctl enable glusterd.service

				
			

После этого вы сможете проверить статус службы на каждом или на обоих серверах:

				
					
sudo systemctl status glusterd.service

				
			

Если служба активирована и работает, вы получите следующий вывод:

				
					
[secondary_label Output]

● glusterd.service - GlusterFS, a clustered file-system server

 Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled)

 Active: active (running) since Tue 2020-06-02 21:32:21 UTC; 32s ago

 Docs: man:glusterd(8)

 Main PID: 14742 (glusterd)

 Tasks: 9 (limit: 2362)

 CGroup: /system.slice/glusterd.service

 └─14742 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

				
			

Если вы следовали указаниям по начальной настройке сервера, у вас будет установлен брандмауэр с UFW на каждом компьютере. Из-за этого вам нужно будет открыть брандмауэр на каждом узле перед установкой связи между ними и созданием пула хранения данных.

Демон Gluster использует порт 24007, поэтому вам нужно разрешить каждому узлу доступ к этому порту через брандмауэр каждого из узлов в пуле хранения данных. Для этого запустите следующую команду на gluster0. Не забудьте поменять <^>gluster1_ip_address<^> на IP-адрес gluster1:

				
					
[environment second]

sudo ufw allow from &lt;^&gt;gluster1_ip_address&lt;^&gt; to any port 24007

				
			

Запустите следующую команду на gluster1. Снова не забудьте поменять <^>gluster0_ip_address<^> на IP-адрес gluster0:

				
					
[environment third]

sudo ufw allow from &lt;^&gt;gluster0_ip_address&lt;^&gt; to any port 24007

				
			

Также вам потребуется разрешить вашему клиентскому компьютеру (gluster2) доступ к этому порту. Иначе позже вы столкнетесь с проблемами, когда попытаетесь смонтировать том. Запустите следующую команду на gluster0 и на gluster1, чтобы открыть этот порт для вашего клиентского компьютера:

				
					
sudo ufw allow from &lt;^&gt;gluster2_ip_address&lt;^&gt; to any port 24007

				
			

Затем добавьте общее правило deny на gluster0 и на gluster1, чтобы закрыть доступ любым другим компьютерам к порту Gluster на любом из серверов.

				
					
sudo ufw deny 24007

				
			

Теперь вы готовы к установке связи между gluster0 и gluster1. Для этого вам нужно запустить команду gluster peer probe на одном из узлов. Не имеет значения, какой из узлов вы будете использовать, но в следующем примере команда запускается на gluster0:

				
					
[environment second]

sudo gluster peer probe gluster1

				
			

Фактически эта команда сообщает gluster0 доверять gluster1 и регистрирует его как часть пула хранения данных. Если зондирование пройдет успешно, вы получите следующий вывод:

				
					
[environment second]

[secondary_label Output]

peer probe: success

				
			

Вы можете проверить связь узлов в любое время путем запуска команды gluster peer status на любом из них. В этом примере команда выполняется на gluster1:

				
					
[environment third]

sudo gluster peer status

				
			

Если вы запустите эту команду из gluster1, вы увидите следующий вывод:

				
					
[environment third]

[secondary_label Output]

Number of Peers: 1



Hostname: gluster0.example.com

Uuid: a3fae496-c4eb-4b20-9ed2-7840230407be

State: Peer in Cluster (Connected)

				
			

На этом этапе два ваших сервера взаимодействуют и готовы к созданию томов хранения друг с другом.

Шаг 4 — Создание тома хранения

Напомним, что главная цель данного обучающего руководства — создать резервный пул хранения данных. Для этого вы настроите том с функционалом реплики, что позволяет хранить несколько экземпляров ваших данных и не допускает наличия единой точки отказа.

Для создания тома вы будете использовать команду gluster volume create с таким общим синтаксисом:

				
					
sudo gluster volume create &lt;^&gt;volume_name&lt;^&gt; replica &lt;^&gt;number_of_servers&lt;^&gt; &lt;^&gt;domain1.com:/path/to/data/directory&lt;^&gt; &lt;^&gt;domain2.com:/path/to/data/directory&lt;^&gt; force

				
			

Вот что означают аргументы и опции команды gluster volume create:

  • <^>volume_name<^>: это имя, которое вы будете использовать для ссылки на том после его создания. Следующий пример команды создает том с именем volume1.
  • replica <^>number_of_servers<^>: после имени тома вы можете указать, какой тип тома вы хотите создать. Напомним, что цель данного обучающего руководства — создать резервный пул хранения данных, поэтому мы будем использовать тип тома [replica](). Для этого требуется аргумент с указанием количества серверов, на которые будут воспроизводиться данные (2 в нашем примере).
  • <^>domain1.com:/…<^> и <^>domain2.com:/…<^>: определяют расположение компьютеров и каталогов _блоков_ (термин GlusterFS, используемый для обозначения базовой единицы хранения, включающей любой каталог, используемый в качестве части или копии большего тома, на любом компьютере), которые составят volume1. В следующем примере будет создан каталог с именем gluster-storage в корневом каталоге на обоих серверах.
  • force: эта опция отменяет любые предупреждения или опции, которые могли бы возникнуть и остановить создание тома.

Используя правила, установленные ранее в данном обучающем руководстве, вы можете запустить эту команду для создания тома. Обратите внимание, что вы можете запускать ее либо с gluster0, либо с gluster1:

				
					
sudo gluster volume create volume1 replica 2 gluster0.example.com:/gluster-storage gluster1.example.com:/gluster-storage force

				
			

Если том был создан успешно, вы увидите следующий вывод:

				
					
[secondary_label Output]

volume create: volume1: success: please start the volume to access data

				
			

На этом этапе ваш том создан, но еще не активирован. Вы можете запустить том и сделать его доступным для использования путем выполнения следующей команды с любого сервера Gluster:

				
					
sudo gluster volume start volume1

				
			

Вы получите следующий вывод, если том запущен корректно:

				
					
[secondary_label Output]

volume start: volume1: success

				
			

Затем проверьте, находится ли том в сети. Запустите следующую команду с любого из ваших узлов:

				
					
sudo gluster volume status

				
			

В результате вы увидите вывод, аналогичный данному:

				
					
[secondary_label Output]

Status of volume: volume1

Gluster process TCP Port RDMA Port Online Pid

------------------------------------------------------------------------------

Brick gluster0.example.com:/gluster-storage 49152 0 Y 18801

Brick gluster1.example.com:/gluster-storage 49152 0 Y 19028

Self-heal Daemon on localhost N/A N/A Y 19049

Self-heal Daemon on gluster0.example.com N/A N/A Y 18822



Task Status of Volume volume1

------------------------------------------------------------------------------

There are no active volume tasks

				
			

На основе этого вывода можно понять, что блоки на обоих серверах находятся в сети.

В качестве последнего шага по настройке тома вам нужно будет открыть брандмауэр на обоих серверах, чтобы ваш клиентский компьютер смог подключиться и смонтировать том. Согласно выводу предыдущего примера команды volume1 работает на порту 49152 на обоих компьютерах. Это порт GlusterFS по умолчанию, который используется для первоначального тома, а следующий том, который вы создадите, будет использовать порт 49153, затем 49154 и т. д.

Запустите следующую команду на gluster0 и gluster1, чтобы разрешить gluster2 доступ к этому порту через соответствующий брандмауэр каждого из них:

				
					
sudo ufw allow from &lt;^&gt;gluster2_ip_address&lt;^&gt; to any port 49152

				
			

Затем для дополнительной защиты добавьте другое общее правило deny для порта тома на обоих серверах gluster0 и gluster1. Это закроет доступ к тому на любом из двух серверов каким-либо другим компьютерам, кроме вашего клиентского компьютера:

				
					
sudo ufw deny 49152

				
			

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

Шаг 5 — Установка и настройка компонентов клиента

Теперь ваш том настроен и доступен для использования клиентским компьютером. Но перед тем, как начать работу, вам нужно установить пакет glusterfs-client из архива РРА, загруженного на клиентский компьютер на шаге 1. Зависимости этого пакета включают некоторые из общих библиотек и модулей переводчиков GlusterFS, а также необходимые для работы инструменты FUSE.

Запустите следующую команду на gluster2:

				
					
[environment fourth]

sudo apt install glusterfs-client

				
			

Вскоре вы сможете монтировать удаленный том хранения на клиентском компьютере. Однако перед этим вам нужно создать точку монтирования. Традиционно она находится в каталоге /mnt, но может использоваться, где вам удобно.

Для удобства создайте каталог с именем /storage-pool на клиентском компьютере для использования в качестве точки монтирования. Имя каталога начинается с косой черты (/), которая помещает его в корневой каталог, поэтому вам нужно создать его с привилегиями sudo:

				
					
[environment fourth]

sudo mkdir /storage-pool

				
			

Теперь вы можете монтировать удаленный том. Но прежде обратите внимание на синтаксис команды mount, которая используется для этого:

				
					
[environment fourth]

sudo mount -t glusterfs &lt;^&gt;domain1.com&lt;^&gt;:&lt;^&gt;volume_name&lt;^&gt; &lt;^&gt;/path/to/mount/point&lt;^&gt;

				
			

mount — это утилита, которая встречается во многих операционных системах типа Unix. Она используется для монтирования файловых систем — от внешних устройств хранения (таких как SD-карты или USB-накопители) и сетевых систем хранения (как в случае данного обучающего модуля) до каталогов в существующей файловой системе компьютера. В синтаксис команды mount входит опция -t, требующая трех аргументов: _тип_ монтируемой файловой системы, _устройство_, где находится монтируемая файловая система, и _каталог_ на клиентском компьютере, куда будет монтироваться том.

Обратите внимание, что в синтаксисе данного примера, аргумент устройства указывает на имя хоста, после которого стоит двоеточие, а затем имя тома. GlusterFS извлекает фактические каталоги хранения на каждом хосте, что означает, что данная команда предназначена для монтирования не каталога /gluster-storage, а тома volume1.

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

Запустите следующую команду на клиентском компьютере (gluster2) для монтирования тома в созданный вами каталог /storage-pool:

				
					
[environment fourth]

sudo mount -t glusterfs gluster0.example.com:/volume1 /storage-pool

				
			

Затем запустите команду df. Это покажет количество свободного дискового пространства для файловых систем, к которым пользователь имеет доступ:

				
					
[environment fourth]

df

				
			

Эта команда покажет, что том GlusterFS смонтирован в правильном расположении:

				
					
[environment fourth]

[secondary_label Output]

Filesystem 1K-blocks Used Available Use% Mounted on

. . .

gluster0.example.com:/volume1 50633164 1938032 48695132 4% /storage-pool

				
			

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

Шаг 6 — Тестирование функций резервирования

После настройки клиента для использования пула и тома хранения вы можете проверить его функциональность.

На клиентском компьютере (gluster2) перейдите к точке монтирования, которая была определена на предыдущем шаге:

				
					
[environment fourth]

cd /storage-pool

				
			

Затем создайте несколько тестовых файлов. Следующая команда создает десять отдельных пустых файлов в пуле хранения данных:

				
					
[environment fourth]

sudo touch file_{0..9}.test

				
			

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

На gluster0:

				
					
[environment second]

ls /gluster-storage

				
			
				
					
[environment second]

[secondary_label Output]

file_0.test file_2.test file_4.test file_6.test file_8.test

file_1.test file_3.test file_5.test file_7.test file_9.test

				
			

Также на gluster1:

				
					
[environment third]

ls /gluster-storage

				
			
				
					
[environment third]

[secondary_label Output]

file_0.test file_2.test file_4.test file_6.test file_8.test

file_1.test file_3.test file_5.test file_7.test file_9.test

				
			

Как показывают эти выводы, тестовые файлы, которые вы добавили на клиентском компьютере, также были записаны на обоих узлах.

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

				
					
[environment fourth]

ls /storage-pool

				
			

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

Шаг 7 — Ограничение функций резервирования

На этом этапе любой компьютер может подключаться к вашему тому хранения данных без каких-либо ограничений. Это можно изменить, настроив опцию auth.allow, определяющую IP-адреса клиентов, которые должны иметь доступ к тому.

Если вы используете конфигурацию /etc/host, имена, которые вы установили для каждого сервера,будут отслеживаться некорректно. Вместо этого следует использовать статический IP-адрес. С другой стороны, если вы используете записи DNS, настроенное вами доменное имя будет работать.

На одном из узлов хранения (gluster0 или gluster1) запустите следующую команду:

				
					
sudo gluster volume set volume1 auth.allow &lt;^&gt;gluster2_ip_address&lt;^&gt;

				
			

Если команда выполняется успешно, вы увидите следующий вывод:

				
					
[secondary_label Output]

volume set: success

				
			

Если вам нужно удалить ограничение в любой точке, вы можете ввести следующее:

				
					
sudo gluster volume set volume1 auth.allow *

				
			

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

Если у вас несколько клиентских компьютеров, вы можете одновременно указать их IP-адреса или доменные имена (в зависимости от того, используете ли вы /etc/hosts или разрешение имени хоста DNS), разделенные запятыми:

				
					
sudo gluster volume set volume1 auth.allow &lt;^&gt;gluster_client1_ip&lt;^&gt;,&lt;^&gt;gluster_client2_ip&lt;^&gt;

				
			

Теперь ваш пул хранения настроен, защищен и готов к использованию. Далее мы рассмотрим несколько команд, которые помогут вам получить информацию о состоянии вашего пула хранения данных.

Шаг 8 — Получение информации о пуле хранения данных с помощью команд GlusterFS

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

На ваших узлах имеется ряд различных команд для получения этой информации и взаимодействия с пулом хранения данных.

Если вам нужна информация о каждом томе, запустите команду gluster volume info:

				
					
sudo gluster volume info

				
			
				
					
[secondary_label Output]

Volume Name: volume1

Type: Replicate

Volume ID: a1e03075-a223-43ab-a0f6-612585940b0c

Status: Started

Snapshot Count: 0

Number of Bricks: 1 x 2 = 2

Transport-type: tcp

Bricks:

Brick1: gluster0.example.com:/gluster-storage

Brick2: gluster1.example.com:/gluster-storage

Options Reconfigured:

auth.allow: &lt;^&gt;gluster2_ip_address&lt;^&gt;

transport.address-family: inet

storage.fips-mode-rchecksum: on

nfs.disable: on

performance.client-io-threads: off

				
			

Также для получения информации о подключениях данного узла, вы можете ввести:

				
					
[environment third]

sudo gluster peer status

				
			
				
					
[environment third]

Number of Peers: 1



Hostname: gluster0.example.com

Uuid: cb00a2fc-2384-41ac-b2a8-e7a1793bb5a9

State: Peer in Cluster (Connected)

				
			

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

				
					
sudo gluster volume profile &lt;^&gt;volume_name&lt;^&gt; start

				
			

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

				
					
sudo gluster volume profile &lt;^&gt;volume_name&lt;^&gt; info

				
			
				
					
[secondary_label Output]

Brick: gluster0.example.com:/gluster-storage

--------------------------------------------

Cumulative Stats:

 %-latency Avg-latency Min-Latency Max-Latency No. of calls Fop

 --------- ----------- ----------- ----------- ------------ ----

 0.00 0.00 us 0.00 us 0.00 us 30 FORGET

 0.00 0.00 us 0.00 us 0.00 us 36 RELEASE

 0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR



 Duration: 5445 seconds

 Data Read: 0 bytes

Data Written: 0 bytes



Interval 0 Stats:

 %-latency Avg-latency Min-Latency Max-Latency No. of calls Fop

 --------- ----------- ----------- ----------- ------------ ----

 0.00 0.00 us 0.00 us 0.00 us 30 FORGET

 0.00 0.00 us 0.00 us 0.00 us 36 RELEASE

 0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR



 Duration: 5445 seconds

 Data Read: 0 bytes

Data Written: 0 bytes

. . .

				
			

Как показано ранее, чтобы получить список всех связанных компонентов GlusterFS, работающих на каждом узле, запустите команду gluster volume status:

				
					
sudo gluster volume status

				
			
				
					
[secondary_label Output]

Status of volume: volume1

Gluster process TCP Port RDMA Port Online Pid

------------------------------------------------------------------------------

Brick gluster0.example.com:/gluster-storage 49152 0 Y 19003

Brick gluster1.example.com:/gluster-storage 49152 0 Y 19040

Self-heal Daemon on localhost N/A N/A Y 19061

Self-heal Daemon on gluster0.example.com N/A N/A Y 19836



Task Status of Volume volume1

------------------------------------------------------------------------------

There are no active volume tasks



				
			

Если вы собираетесь управлять томами хранения GlusterFS, было бы неплохо перейти на консоль GlusterFS. Это позволит вам взаимодействовать со средой GlusterFS без необходимости ввода каждый раз команды sudo gluster:

				
					
sudo gluster

				
			

Будет выдана подсказка, где вводить команды. Команда help поможет вам сориентироваться:

				
					
help

				
			
				
					
[secondary_label Output]

 peer help - display help for peer commands

 volume help - display help for volume commands

 volume bitrot help - display help for volume bitrot commands

 volume quota help - display help for volume quota commands

 snapshot help - display help for snapshot commands

 global help - list global commands

				
			

После завершения запустите команду exit для выхода из консоли Gluster:

				
					
exit

				
			

Теперь вы готовы к интеграции GlusterFS с вашим следующим приложением.

Заключение

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