Инсталирайте Linux сървър в клъстер с висока наличност

Съдържание

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

Като се има предвид, че урокът е предназначен за напреднали хора в Linux, няма да засягам теми като инсталирането на базовата система, които ще използвам този път CentOS 6 64 бита в последната си актуализация. По същия начин ще спомена само това, което е строго необходимо за работата на клъстера (сървъри с висока наличност).

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

Без да се замисляме, нека преминем към хубавите неща.

Системни изисквания.1. RAM памет 1 GB
2. Твърд диск 80 GB
3. Процесор Celeron
4. Раздел за данни за клъстера (какъвто и размер да искате да създадете)
5. Операционна система CentOS 6 (в последната ѝ актуализация)

Ако отговаряте на изискванията, нека започнем Инсталиране на клъстер на Linux.

Следващото нещо е да инсталирате DRBD за синхронизиране на дяловете на двата сървъра, за това е необходимо стартирайте in shell следните инструкции:

1. Добавете ELRepo към списъка със системни хранилища

 [root @ node1 ~] rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

2. Инсталирайте помощните програми drbd (Distributed Replicate Block Device) и kmod пакети

 [root @ node1 ~] yum install -y kmod-drbd83 drbd83-utils
(Лично аз използвам 8.3, тъй като 8.4 ми създаде проблеми с някои дистрибуции)

3. Drbd се добавя или вмъква в системното ядро

 [root @ node1 ~] modprobe drbd

4. Файлът с ресурси за drbd трябва да бъде създаден
Намира се на /etc/drbd.d/mydrbd.res; където mydrbd.res е името на файла и това може да бъде променено от всеки, който искаме, стига да запазим разширението .res; Този файл трябва да бъде създаден на двата сървъра или, когато файлът е конфигуриран правилно, той се копира във втория възел; конфигурацията ще бъде горе -долу следната:

 ресурс mydrbd {#това е името на ресурса на протокола C; стартиране {wfc-timeout 180; degr-wfc-timeout 120;} # 180 секунди изчакване на подчиненото устройство, 120 секунди, ако не отговори, то се влошава и остава като вторичен диск {on-io-error detach; } мрежа {cram-hmac-alg "sha1"; споделен секретен "секретен ключ";} #В тази част е посочен ключ с sha1 криптиране, този ключ е за комуникация между двата възела. syncer {rate 100M;} #скорост на синхронизация, няма значение, че имаме Gigabit мрежова карта, тя не работи на 1000M, максималната препоръчителна скорост е 100M (инсталирах я с 10M и работи чудесно, малко бавно първата синхронизация, но след това не виждате разликата) на node1 {устройство / dev / drbd0; # тук ние посочваме кое устройство е запазено за drbd, можем да имаме множество устройства за различни данни или различни услуги, като SAMBA, MySQL, между другото disk / dev / md2; #укажете дяла, който ще се използва за drbd адрес 172.16.0.1:7788; # Ние посочваме IP извън обхвата на нашата мрежа, заслужава да се спомене, че мрежовият кабел трябва да бъде свързан директно между сървърите, без да преминава през превключвател или хъб, ако те са скорошни модели мрежови карти, не е необходим кросоувър кабел. вътрешен метадиск; } на node2 {# спецификациите на втория трябва да са същите като на първия, само ip адресът се променя, той трябва да е един и същ порт, това е така, защото ако имаме 2 клъстера заедно, те ще противоречат и няма да работят подходящо, ако искаме да имаме множество клъстери, се препоръчва да използваме различни портове, разбира се, че тези портове трябва да са еднакви на двата възела. устройство / dev / drbd0; диск / dev / md2; адрес 172.16.0.2:7788; вътрешен метадиск; }}

Увеличете

5. Следва конфигурацията на хост файлаТова е така, че сървърите се търсят чрез IP за синхронизация, а не чрез IP на локалната мрежа и по този начин избягваме конфликти с услугите:

 / etc / hosts 192.168.1.1 node1 #име на node1 в сегмент на локална мрежа 192.168.1.2 node2 #име на node2 в сегмент на локална мрежа 172.16.0.1 node1 #име на node1 в сегмент на мрежа за синхронизация 172.16.0.2 node2 #име от node2 в синхрон мрежов сегмент

6. Запаметяващото устройство за drbd се инициализира

 [root @ node1 ~] drbdadm create-md disk1

7. Започва услугата drbd или deamon

 /etc/init.d/drbd старт

8. В възела, който искаме да бъде основният, изпълняваме следната команда

 drbdadm--overwrite-data-of-peer primary disk1

9. Наблюдаваме синхронизацията на двата възела
За целта изпълняваме:

 cat / proc / drbd
Отговорът от горната команда е нещо подобно на следното:
 версия: 8.3.15 (api: 88 / proto: 86-97) GIT-хеш: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c компилиран от phil @ Build32R6, 2012-12-20 20:23:49 1: cs: SyncSource ro: Първичен / Вторичен ds: UpToDate / Несъвместими C rn- ns: 1060156 nr: 0 dw: 33260 dr: 1034352 al: 14 bm: 62 lo: 9 pe: 78 ua: 64 ap: 0 ep: 1 wo: f oos: 31424 [===== =============>.] sync'ed: 97.3% (31424/1048508) K завършване: 0:00:01 скорост: 21,240 (15,644) K / sec # Тук можем да видим, че синхронизацията отива до 97,3% и е посочено, че това е първичният възел и вторичният възел изглежда като несъвместим, тъй като синхронизацията все още не е приключила. #След като приключим, отново изпълняваме cat / proc / drbd и имаме следното: версия: 8.3.15 (api: 88 / proto: 86-97) GIT-хеш: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c изградено от phil @ Build32R6, 2012-12-20 20: 23: 49 1: cs: Свързан ro: Първичен / Вторичен ds: UpToDate / UpToDate C r- ns: 1081628 nr: 0 dw: 33260 dr: 1048752 al: 14 bm: 64 lo: 0 pe: 0 ua: 0 ap: 0 ep: 1 wo: f oos: 0 # Като връщаме съобщението UpToDate, ние сме наясно, че синхронизацията е завършена и drbd дяловете са абсолютно еднакви.

10. Следващото нещо е да форматираме нашето устройство drbdЗа това изпълняваме:

 mkfs.ext3 / dev / drbd1
Използвам ext3, защото ми даде добра стабилност, но бихме могли да използваме и ext4, не препоръчвам да използвате никакъв тип дял под ext3.

Досега вече можем да монтираме ръчно дяла / dev / drbd1 във всяка точка на монтиране на системата, в моя случай използвам / home за монтиране, тъй като всеки от потребителите, регистрирани в двата възела, има свои собствени директории за уеб страници, следователно Бягам:

 монтиране -t ext3 / dev / drbd1 / home
И започвам да създавам потребители за репликация на данни на двата сървъра, следното е инсталация на сърдечен ритъм, приложение, използвано за наблюдение на сървърите помежду им и които ще бъдат отговорни за извършването на съответните промени, ако първичният падне по някаква причина и превърне вторичния в първичен, за да осигури функционалността на Системата.

За инсталация на сърдечен ритъм трябва да се следват само следните стъпки. Хранилището е инсталирано за изтегляне със следната команда:

 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Редактирайте файла:
 epel.repo /etc/yum.repos.d/epel.repo 
промяна на ред # 6 ‘Enable = 1 by enable = 0’; можете да използвате редакторите vi или nano, както желаете.
 [epel] name = Допълнителни пакети за Enterprise Linux 6 - $ basearch # baseurl = http: //download.fedoraproject.org/pub/epel/6/$basearch mirrorlist = http: //mirrors.fedoraproject.org/metalink? repo = epel -6 & arch = $ basearch failovermethod = priority enabled = 0 # Това е редът, който трябва да редактираме Инсталирайте сърдечния ритъм със следната команда: yum -enablerepo = epel install heartbeat След като инсталацията приключи, ще ни каже нещо подобно към: Инсталиран: сърцебиене .i686 0: 3.0.4-1.el6 Завършено! 
След като процесът на инсталиране приключи, следващото нещо, което трябва да направите, е да редактирате 3 -те основни файла, за да може сърдечната дейност да функционира; намира се в /etc/ha.d
  • authkeys
  • ha.cf
  • заеми

Отваряме файла authkeys със следната команда:

 vi /etc/ha.d/authkeys
Добавят се следните редове:
 auth 1 1 sha1 ключ за връзка между сърдечните удари # В този ред ние определяме кой ще бъде ключът за сърдечните удари на всеки възел да комуникират помежду си, той може да бъде същият като този, използван в drbd или различен.
Променяме разрешенията за файлове authkeys така че да може да се чете само от root:
 chmod 600 /etc/ha.d/authkeys
Сега редактираме втория файл:
 vi /etc/ha.d/ha.cf
Добавяме следните редове:
 logfile / var / log / ha-log # системният регистър е активиран за бъдещи грешки logfacility local0 keepalive 2 deadtime 30 # системата изчаква 30 секунди, за да обяви node1 като неработещ initdead 120 # системата чака 120 секунди за стартиране на възел, за да изчака другия . bcast eth0 # е посочена Ethernet картата, чрез която ще се предава комуникацията между сървърите, много е важно да се обърне внимание, тъй като тук дефинираме коя мрежова карта отива в локалната мрежа и коя за насочване на синхронизацията udpport 694 # е посочен синхронизиращият порт , както в drbd можем да имаме множество сървъри и всяка двойка със съответния порт дефиниран auto_failback off # като го маркираме като изключен предотвратяваме връзката node1 веднъж повредена и деградирана да се върне като основна или се опитва да се върне, като по този начин създава конфликт с друг възел node1 node2 # ние посочваме имената на двата възела. 

Увеличете

За да завършим конфигурацията, трябва да редактираме файла haresources с командата:

 vi /etc/ha.d/haresources
Добавете следните редове:
 node1 192.168.1.10/24/eth0 drbddisk :: mydrbd файлова система ::/ dev/ drbd0 ::/ home :: ext3 #този ред отговаря за монтирането на дяла от данни на възела, посочен като първичен възел1 192.168.1.10/24/ eth0 httpd #този ред отговаря за дефинирането на apache услугата или уеб сървъра към възела, посочен като основен

Увеличете

Трите файла трябва да бъдат копирани в node2, следната команда ще се погрижи за това:

 scp -r /etc/ha.d/root@node2:/etc/
Файлът трябва да бъде редактиран httpd.conf така че да слуша заявки от виртуалния ip, в този случай 192.168.1.10:
 vi /etc/httpd/conf/httpd.conf
Редът се добавя или променя Слушайте 192.168.1.10:80
Промененият файл се копира на втория сървър:
 scp /etc/httpd/conf/httpd.conf root @ node2: /etc /httpd /conf /
Стартираме услугата сърдечен ритъм на двата възела:
 /etc/init.d/heartbeat start
С това имаме готов наш сървър с висока наличност, въпросът е само да влезете в нашия интернет браузър и да поставите ip 192.168.1.10 или да инсталирате панел по ваш избор за администриране на домейн и да генерирате съответните потребители за достъп до регистрираните страници или домейни в сървъра.

Сървърът с висока наличност може да се използва, както вече беше споменато в началото на този урок като: имейл сървър, уеб сървър, сървър на бази данни, samba сървър между другото; По същия начин ни помага да предотвратим загубата на информация поради хардуерни повреди и можем да я засилим повече с набези на дисковите единици, било то от хардуер или софтуер, никога не е прекалено много да има дискове в рейд за поддържане на системата.

Сървърът с висока наличност обаче не е освободен от проблеми или грешки, когато даден възел е деградиран, можем да отидем в дневника на сърдечния ритъм, за да видим какво се е случило, това се постига чрез достъп до файла, присвоен в конфигурацията на източниците на заеми в /etc/ha.d

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

Увеличете

За да разрешим това, трябва да следваме следните стъпки.

В черупката на падналия възел въвеждаме:

 drbdadm вторичен ресурс
Впоследствие:
 drbdadm ресурс за изключване
И тогава:
 drbdadm---discard-my-data resource resource
И накрая, в оцелелия възел или първичен въвеждаме:
 ресурс за свързване на drbdadm
Сега ще започне повторното синхронизиране на възлите от оцелелия възел към падналия възел, като това започне веднага при натискане на клавиша "Enter" в инструкция 4.

Това, което се случи тук, е известно като a Разцепен мозък, това се случва, когато по някаква причина първичният възел се провали и се деградира, след като това се случи, силно се препоръчва да се прегледа и анализира в дълбочина падналия възел и преди да се включи отново в клъстера, за да се реши всеки съществуващ проблем, също може да бъде необходимо е да преинсталирате цялата операционна система на този възел и без никакъв проблем да го включите в клъстера като вторичен за синхронизация и ако е така, след синхронизиране го променете на първичен.

Накрая бих искал да подчертая редовен преглед на здравето на клъстеритеНие знаем добре, че за висока производителност винаги е добре да бъдете една крачка пред компютърните бедствия; Тъй като като ИТ персонал отговорността да се грижим за данните на компанията или компаниите, към които принадлежим, ни носи, като допълнителна бележка, мисля, че си струва да препоръчате винаги да имате резервно копие в някакво алтернативно звено към възлите и по този начин се гарантира сигурността на информацията.

Инсталирайте и конфигурирайте Ubuntu Server

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

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave