Совместно используемые диски высокой доступности с использованием блочного хранилища Vultr и GlusterFS

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

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

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

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

Заказав эти два блочных накопителя, вы должны подключить их к ВМ 1 и ВМ 2. Поскольку мы будем использовать оба блочных накопителя для одной и той же файловой системы, разделив общий размер обоих накопителей на два, вы получите полезную сумму. ГБ. Например, если у вас есть два диска по 100 ГБ, можно будет использовать 100 ГБ (100 * 2/2).

Кроме того, обе виртуальные машины должны находиться в одном и том же месте, чтобы они находились в одной частной сети. Мы будем подключаться к серверам, используя их внутренние IP-адреса. Обратите внимание, что мы будем стирать данные на блочном накопителе. Убедитесь, что они совершенно новые и не отформатированные.

В этом руководстве мы будем использовать storage1и storage2, соответственно, с частными IP-адресами 10.0.99.10 и 10.0.99.11. Ваши имена серверов и IP-адреса, скорее всего, будут отличаться, поэтому обязательно измените их в процессе настройки GlusterFS.

Это руководство было написано с учетом CentOS / RHEL 7. Тем не менее, GlusterFS относительно перекрестно совместима между несколькими дистрибутивами Linux.

Настройка GlusterFS

Шаг 1: измените /etc/hostsфайл

Чтобы мы могли быстро подключаться к соответствующим экземплярам, ​​мы должны добавить в hostsфайл легко запоминающиеся имена . Откройте /etc/hostsфайл и добавьте следующие строки внизу:

10.0.99.10 storage1
10.0.99.11 storage2

Шаг 2: Добавьте диск на storage1

SSH в storage1и выполните следующие команды. По умолчанию подключенные блочные накопители монтируются как /dev/vdb. Если в вашем случае по какой-то причине это отличается, вам следует изменить это в приведенных ниже командах.

Отформатируйте диск:

fdisk /dev/vdb

Нажмите «enter» для следующих трех вопросов (в отношении размера раздела и т. П. Мы хотим использовать все доступное пространство на блочных накопителях) и введите «w», чтобы записать эти изменения на диск. После того, как это было успешно завершено, напишите:

/sbin/mkfs.ext4 /dev/vdb1

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

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

mkdir /glusterfs1

Чтобы автоматически смонтировать диск при загрузке, откройте /etc/fstabи добавьте следующую строку внизу файла:

/dev/vdb1 /glusterfs1      ext4    defaults        1 2

Наконец, смонтируйте диск:

mount -a

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

Шаг 3: Добавьте диск на storage2

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

fdisk /dev/sdb
/sbin/mkfs.ext4 /dev/sdb1
mkdir /glusterfs2

Отредактируйте /etc/fstabи добавьте следующую строку:

/dev/vdb1 /glusterfs2      ext4    defaults        1 2

Так же, как и на storage1, диск будет автоматически монтироваться при перезагрузке.

Смонтировать диск:

mount -a

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

df -h

Вы должны увидеть ваш диск здесь. Если это не так, попробуйте выполнить действия, описанные выше.

Шаг 4: Установка GlusterFS на storage1иstorage2

Нам нужно установить GlusterFS дальше. Добавьте репозиторий и установите GlusterFS:

rpm  -ivh  http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.5/CentOS/glusterfs-epel.repo
yum -y install glusterfs glusterfs-fuse glusterfs-server

Есть вероятность, что вы получите ошибку, yumпотому что подпись для хранилища неверна. В этом случае безопасно принудительно не проверять подпись GPG:

yum -y install glusterfs glusterfs-fuse glusterfs-server --nogpgcheck

На обоих серверах выполните следующие команды, чтобы запустить GlusterFS прямо сейчас и запустить его автоматически после перезагрузки:

systemctl enable glusterd.service
systemctl start glusterd.service

Если вы используете более старую версию CentOS, вы можете использовать serviceи chkconfigкоманду:

chkconfig glusterd on
service glusterd start

Шаг 5. Отключение брандмауэра storage1иstorage2

Хотя это и не самое лучшее решение как таковое, рекомендуется отключить брандмауэр, чтобы устранить возможные конфликты с заблокированными портами. Если вам неудобно это делать, то смело изменяйте правила по своему вкусу, но из-за особенностей GlusterFS я настоятельно рекомендую отключить брандмауэр. Учитывая, что частная сеть на самом деле является частной в Vultr (и вам не нужно защищать других пользователей от брандмауэра), вы можете просто заблокировать весь входящий трафик из Интернета и ограничить разрешенные подключения к частной сети. Тем не менее, отключение брандмауэра и не изменять никакие другие конфигурации системы также будет достаточно:

systemctl stop firewalld.service
systemctl disable firewalld.service

В случае , если вы используете более старую версию CentOS , которая не поддерживает systemctl, используйте serviceи chkconfigкоманду:

service firewalld stop
chkconfig firewalld off

Если вы не используете firewalld, попробуйте отключить iptables:

service iptables stop
chkconfig iptables off

Шаг 6. Добавление серверов в пул хранения.

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

gluster peer probe storage2

Эта команда добавляет storage2в свой пул хранения. При выполнении следующей команды storage2оба диска будут синхронизированы:

gluster peer probe storage1

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

gluster peer status

Оба сервера должны показывать состояние «Peers: 1». Распространенной ошибкой являются люди, ожидающие увидеть Peers: 2, но, как storage1будут смотреть storage2и наоборот, они не смотрят друг на друга. Поэтому Peers: 1это то , что нам нужно.

Шаг 7: Создание общего диска на storage1

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

На storage1, выполнить:

gluster volume create mailrep-volume replica 2  storage1:/glusterfs1/files  storage2:/glusterfs2/files force

Том был создан. В GlusterFS вам нужно «запустить» том, чтобы он активно использовался несколькими устройствами. Давайте начнем это:

gluster volume start mailrep-volume

Затем выберите папку, которая должна находиться на томе и реплицироваться на обоих серверах. В этом уроке мы будем использовать папку /var/files. Естественно, это может быть что угодно. Создайте его storage1 только на :

mkdir /var/files

Далее монтируем его:

mount.glusterfs storage1:/mailrep-volume /var/files/

Обновите, /etc/fstabчтобы диск автоматически монтировался при загрузке. Добавьте следующее:

storage1:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Перемонтировать диск:

mount -a

Шаг 8: Создание общего диска на storage2

Теперь, когда мы создали общий диск storage1, нам нужно его создать storage2. Создайте папку с таким же местоположением / путем и именем:

mkdir /var/files
mount.glusterfs storage2:/mailrep-volume /var/files/

Просто storage1добавьте следующую строку в /etc/fstab:

storage2:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Перемонтировать диск:

mount -a

Шаг 9: Проверьте общее хранилище

Перейдите в /var/filesпапку storage1и создайте файл:

cd /var/files
touch created_on_storage1

Далее идите на storage2сервер. Выполните, ls -laи вы должны увидеть файл created_on_storage1появится.

Включите storage2, перейдите в /var/filesпапку и создайте файл:

cd /var/files
touch created_on_storage2

Вернитесь storage1и выполните ls -la /var/files. Вы должны увидеть, что файл created_on_storage2появится здесь.

Шаг 10: перезагрузите все серверы (необязательно)

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

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

cd /var/files
ls -la

Теперь вы должны увидеть оба файла. Обязательно начинайте без каких-либо файлов на томе, поэтому удалите созданные нами тестовые файлы. Вы можете сделать это storage1, storage2или оба. Изменения будут реплицированы мгновенно:

cd /var/files
rm created_on_storage1
rm created_on_storage2

У вас должен быть одинаковый общий том на обоих серверах, независимо от действий на обоих томах.

Теперь вы настроили полноценную установку GlusterFS с 100 ГБ (или более) доступного пространства. В случае, если вам понадобится больше в будущем, настройку легко масштабировать, чтобы увеличить емкость и / или количество серверов, если этого требует ваша рабочая нагрузка.

Спасибо за чтение!


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

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

gluster volume start mailrep-volume force

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

Важное замечание о резервном копировании

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

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

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

часто задаваемые вопросы

Могу ли я увеличить объем дискового пространства?

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

Могу ли я подключить хранилище блоков к двум серверам?

Хотя это руководство было написано для двух серверов (то есть двух блочных накопителей, подключенных к обоим серверам), но можно взять это руководство и использовать его для более чем двух серверов. Настройка с более чем двумя серверами / дисками может выглядеть следующим образом для 6 серверов, например:

VM: storage1
VM: storage2
VM: storage3
VM: storage4
Block Storage: attached to storage1
Block Storage: attached to storage2
Block Storage: attached to storage3
Block Storage: attached to storage4

Учитывая, что все блочные накопители имеют емкость, например, 200 ГБ, вы получите 200 * 4/4. Другими словами, используемое пространство - это всегда емкость одного блочного хранилища. Это связано с тем, что один сервер с подключенным хранилищем блоков обрабатывается GlusterFS как «ведущий» и реплицируется на другие серверы. Тем не менее, установка построена так, чтобы иметь возможность выживать без главного сервера, что делает его таким избыточным и надежным, стабильным решением.



Leave a Comment

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через

Как установить и настроить OrientDB Community Edition для CentOS 7

Как установить и настроить OrientDB Community Edition для CentOS 7

OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить MaraDNS на CentOS 6

Как установить MaraDNS на CentOS 6

MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns

Установка Netdata в CentOS 7

Установка Netdata в CentOS 7

Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Кластеризация RabbitMQ на CentOS 7

Кластеризация RabbitMQ на CentOS 7

RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия

Установите Elgg на CentOS 7

Установите Elgg на CentOS 7

Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и

Установка Bolt CMS на CentOS 7

Установка Bolt CMS на CentOS 7

Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

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

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на

Настройте Sails.js для разработки на CentOS 7

Настройте Sails.js для разработки на CentOS 7

Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

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

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

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

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше