Споделени дискове с висока достъпност, използващи Vultr Block Storage и GlusterFS

GlusterFS е прикачена към мрежа файлова система, която ефективно ви позволява да споделяте два диска на множество устройства в мрежата. Тази файлова система е идеална за предложението за блоково съхранение на Vultr, тъй като можете да споделяте диск в мрежата, което не е възможно нестандартно.

По отношение на характеристиките, разширяемостта и надеждността, GlusterFS се доказа като една от най-сложните и стабилни налични файлови системи.

Когато се направят промени в устройството на един сървър, те автоматично ще бъдат репликирани на другия сървър в реално време. За да постигнете това и да следвате това ръководство, ще ви трябва:

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

След като сте поръчали тези две блокови устройства за съхранение, трябва да ги прикачите към VM 1 и VM 2. Тъй като ще използваме и двете блокови устройства за съхранение за една и съща файлова система, разделянето на общия размер на двете устройства на две ще ви даде използваемото количество на ГБ. Например, ако имате два 100 GB диска, 100 GB ще бъдат използвани (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 GB (или повече) използваемо пространство. В случай, че имате нужда от повече в бъдеще, настройката е лесно мащабируема, за да добавите повече капацитет и/или повече сървъри, ако работното ви натоварване изисква това.

Благодаря ви, че четете!


Важна забележка относно премонтирането

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 GB, ще получите 200 * 4 / 4. С други думи, използваемото пространство винаги е капацитетът на едно блоково устройство за съхранение. Това е така, защото един сървър с прикачено блоково съхранение се третира като "главен" от GlusterFS и се репликира на другите сървъри. Въпреки това, настройката е изградена така, че да може да оцелее без главен сървър, което я прави толкова излишно и надеждно, стабилно решение.


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

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

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

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

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

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече