Installer le serveur Linux dans un cluster à haute disponibilité

Table des matières

Combien de fois avons-nous eu besoin d'avoir nos services, ou plutôt de garder nos services toujours disponibles, et combien de fois nous est-il arrivé que le disque dur de notre serveur soit endommagé et que nous n'ayons pas de sauvegarde, eh bien, en pensant à ceux-ci circonstances, j'ai décidé de créer ce tutoriel pour s'assurer que nos serveurs ou plutôt nos services sont toujours en ligne.

Tenant compte du fait que le tutoriel est conçu pour des personnes avancées en Linux, je n'aborderai pas des sujets tels que l'installation du système de base que j'utiliserai cette fois CentOS 6 64 bits dans sa dernière mise à jour. De même, je ne mentionnerai que ce qui est strictement nécessaire au fonctionnement du cluster (serveurs haute disponibilité).

Je fais également remarquer que ce guide est axé sur la nécessité de garder le service Web toujours actif, même si je l'ai utilisé avec succès avec d'autres services, je pense que pour commencer ou mieux dit, pour commencer, la chose la plus simple est de créer un cluster de serveurs web.

Sans plus tarder passons aux bonnes choses.

Configuration requise.1. Mémoire RAM 1 Go
2. Disque dur 80 Go
3. Processeur Celeron
4. Partition de données pour le cluster (quelle que soit la taille que vous souhaitez créer)
5. Système d'exploitation CentOS 6 (dans sa dernière mise à jour)

Si vous remplissez les conditions, commençons le Installation de cluster Linux.

La prochaine chose est d'installer le DRBD pour la synchronisation des partitions sur les deux serveurs, pour cela il faut exécuter le shell les consignes suivantes :

1. Ajouter ELRepo à la liste des référentiels système

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

2. Installez les utilitaires drbd (Distributed Replicated Block Device) et les packages kmod

 [root @ node1 ~] yum install -y kmod-drbd83 drbd83-utils
(Personnellement, j'utilise la 8.3 puisque la 8.4 m'a posé des problèmes avec certaines distributions)

3. Drbd est ajouté ou inséré dans le noyau du système

 [racine @ node1 ~] modprobe drbd

4. Le fichier de ressources pour le drbd doit être créé
Il se trouve dans /etc/drbd.d/mydrbd.res ; où mydrbd.res est le nom du fichier et celui-ci peut être modifié par n'importe qui, tant que nous conservons l'extension .res; Ce fichier doit être créé sur les deux serveurs ou, lorsque le fichier est correctement configuré, il est copié sur le deuxième nœud; la configuration serait plus ou moins la suivante :

 ressource mydrbd {#c'est le nom de la ressource du protocole C; démarrage {wfc-timeout 180; degr-wfc-timeout 120;} # 180 secondes d'attente pour le périphérique esclave, 120 secondes, s'il ne répond pas, il est dégradé et reste en tant que disque secondaire {on-io-error detach; } net {cram-hmac-alg "sha1"; shared-secret "secret key";} #Dans cette partie, une clé avec cryptage sha1 est spécifiée, cette clé est pour la communication entre les deux nœuds. syncer {rate 100M;} #vitesse de synchronisation, peu importe que nous ayons une carte réseau Gigabit, cela ne fonctionne pas à 1000M, la vitesse maximale recommandée est de 100M (je l'ai installé avec 10M et cela fonctionne très bien, un peu lent la première synchronisation mais ensuite vous ne voyez pas la différence) sur node1 {device / dev / drbd0; # ici nous précisons quel est le périphérique réservé au drbd, nous pouvons avoir plusieurs périphériques pour différentes données, ou différents services, tels que SAMBA, MySQL, entre autres disk/dev/md2; #spécifiez la partition qui sera utilisée pour l'adresse drbd 172.16.0.1:7788; # Nous spécifions une IP hors de portée de notre réseau, il convient de mentionner que le câble réseau doit être connecté directement entre les serveurs, sans passer par un switch ou un hub, s'il s'agit de cartes réseau de modèle récent, un câble croisé n'est pas nécessaire. méta-disque interne; } sur node2 {# les spécifications du second doivent être les mêmes que celles du premier, seule l'adresse ip change, il doit s'agir du même port, c'est parce que si nous avons 2 clusters ensemble, ils entreront en conflit et ne fonctionneront pas de manière appropriée, si l'on veut avoir plusieurs clusters, il est recommandé d'utiliser des ports différents, il va de soi que ces ports doivent être les mêmes sur les deux nœuds. périphérique / dev / drbd0; disque/dev/md2; adresse 172.16.0.2:7788; méta-disque interne; }}

AGRANDIR

5. Ce qui suit est la configuration du fichier hôteC'est pour que les serveurs soient recherchés via l'IP de synchronisation et non par l'IP du réseau local et ainsi nous évitons les conflits avec les services :

 /etc/hosts 192.168.1.1 node1 #nom de node1 sur le segment de réseau local 192.168.1.2 node2 #nom de node2 sur le segment de réseau local 172.16.0.1 node1 #nom de node1 sur le segment de réseau de synchronisation 172.16.0.2 node2 #name from node2 in sync segment de réseau

6. L'unité de stockage pour le drbd est initialisée

 [racine @ node1 ~] drbdadm create-md disk1

7. Le service ou le démon drbd démarre

 /etc/init.d/drbd start

8. Dans le nœud que nous voulons être le nœud principal, nous exécutons la commande suivante

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

9. Nous surveillons la synchronisation des deux nœuds
Pour cela nous exécutons :

 chat / proc / drbd
La réponse de la commande ci-dessus ressemble à ce qui suit :
 version: 8.3.15 (api: 88 / proto: 86-97) GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by phil @ Build32R6, 2012-12-20 20:23:49 1: cs: SyncSource ro: Primary / Secondary ds: UpToDate / Incohérent 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 : fo oos : 31424 [===== =============>.] sync'ed : 97,3% (31424/1048508) K finish : 0:00:01 speed : 21,240 (15,644) K/sec # Ici on peut voir que la Synchronisation passe à 97,3% et il est précisé qu'il s'agit du nœud primaire et le nœud secondaire apparaît comme incohérent puisque la synchronisation n'est pas encore terminée. #Une fois terminé, nous exécutons à nouveau cat / proc / drbd et nous avons ce qui suit : version : 8.3.15 (api : 88 / proto : 86-97) GIT-hash : 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by phil @ Build32R6, 2012-12-20 20 : 23 : 49 1 : cs : Connecté ro : Primaire / Secondaire 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 : foos : 0 # En retournant le message UpToDate, on sait que la synchronisation est terminée et que les partitions drbd sont exactement les mêmes.

10. La prochaine chose est de formater notre appareil drbdPour cela nous exécutons :

 mkfs.ext3 / dev / drbd1
J'utilise ext3 car cela m'a donné une bonne stabilité mais nous pourrions également utiliser ext4, je ne recommande d'utiliser aucun type de partition en dessous d'ext3.

Jusqu'à présent, nous sommes déjà en mesure de monter manuellement la partition / dev / drbd1 sur n'importe quel point de montage du système, dans mon cas j'utilise / home pour le montage car chacun des utilisateurs enregistrés dans les deux nœuds a ses propres répertoires pour les pages Web , donc Je cours:

 mount -t ext3 / dev / drbd1 / home
Et je commence à créer les utilisateurs pour la réplication des données sur les deux serveurs, ce qui suit est le installation de battement de coeur, application utilisée pour surveiller les serveurs entre eux et qui sera chargée d'apporter les modifications pertinentes si le primaire tombe pour une raison quelconque et transforme le secondaire en primaire pour assurer la fonctionnalité du système.

Pour la installation de battement de coeur seules les étapes suivantes doivent être suivies. Le référentiel est installé en téléchargement avec la commande suivante :

 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Modifiez le fichier :
 epel.repo /etc/yum.repos.d/epel.repo 
changer la ligne n°6 « Activer = 1 par activer = 0 »; vous pouvez utiliser les éditeurs vi ou nano, comme vous le souhaitez.
 [epel] name = Packages supplémentaires pour 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 # C'est la ligne que nous devons éditer Installez le heartbeat avec la commande suivante : yum -enablerepo = epel install heartbeat Une fois l'installation terminée, il nous dira quelque chose de similaire à : Installé : heartbeat .i686 0 : 3.0.4-1.el6 Terminé ! 
Une fois le processus d'installation terminé, la prochaine chose à faire est d'éditer les 3 fichiers essentiels au fonctionnement de Heartbeat; situé dans /etc/ha.d
  • clés d'autorisation
  • ha.cf
  • ressources

Nous ouvrons le fichier clés d'autorisation avec la commande suivante :

 vi /etc/ha.d/authkeys
Les lignes suivantes sont ajoutées :
 auth 1 1 sha1 clé pour la connexion entre les battements de cœur # Dans cette ligne, nous définissons quelle sera la clé pour que les battements de cœur de chaque nœud communiquent entre eux, elle peut être la même que celle utilisée dans le drbd ou différente.
Nous modifions les autorisations de fichiers clés d'autorisation pour qu'il ne puisse être lu que par root :
 chmod 600 /etc/ha.d/authkeys
Maintenant, nous éditons le deuxième fichier :
 vi /etc/ha.d/ha.cf
On ajoute les lignes suivantes :
 logfile / var / log / ha-log # le journal système est activé pour les futures erreurs logfacility local0 keepalive 2 deadtime 30 # le système attend 30 secondes pour déclarer node1 comme inopérant initdead 120 # le système attend 120 secondes pour que le démarrage du nœud attende l'autre . bcast eth0 # est spécifié la carte Ethernet à travers laquelle la communication entre les serveurs sera transmise, il est très important de faire attention car ici nous définissons quelle carte réseau va au réseau local et laquelle diriger la synchronisation udpport 694 # le port de synchronisation est spécifié , comme dans le drbd, nous pouvons avoir plusieurs serveurs et chaque paire avec son port respectif défini auto_failback off # en le marquant comme désactivé, nous empêchons node1 une fois endommagé et dégradé de revenir en tant que principal ou d'essayer de revenir, créant ainsi un conflit avec un autre nœud node node1 node2 # nous spécifions les noms des deux nœuds. 

AGRANDIR

Pour finir la configuration, il faut éditer le fichier haresources avec la commande :

 vi /etc/ha.d/haresources
Ajoutez les lignes suivantes :
 node1 192.168.1.10/24/eth0 drbddisk :: mydrbd Filesystem :: / dev / drbd0 :: / home :: ext3 #cette ligne est responsable du montage de la partition de données sur le nœud référencé comme nœud primaire1 192.168.1.10/24/ eth0 httpd #cette ligne est chargée de définir le service apache ou le serveur web vers le nœud référencé comme primaire

AGRANDIR

Les 3 fichiers doivent être copiés sur node2, la commande suivante s'en chargera :

 scp -r /etc/ha.d/root@node2:/etc/
Le fichier doit être édité httpd.conf afin qu'il écoute les requêtes de l'adresse IP virtuelle, dans ce cas 192.168.1.10 :
 vi /etc/httpd/conf/httpd.conf
La ligne est ajoutée ou modifiée Écouter 192.168.1.10:80
Le fichier modifié est copié sur le deuxième serveur :
 scp /etc/httpd/conf/httpd.conf root @ node2: /etc/httpd/conf/
Nous démarrons le service Heartbeat sur les deux nœuds :
 /etc/init.d/heartbeat start
Avec cela, nous avons notre serveur haute disponibilité prêt, il suffit d'entrer dans notre navigateur Internet et de mettre l'ip 192.168.1.10 ou d'installer un panneau de votre choix pour l'administration du domaine et générer les utilisateurs correspondants pour accéder aux pages ou domaines enregistrés dans le serveur.

Le serveur haute disponibilité peut être utilisé comme déjà mentionné au début de ce tutoriel comme : serveur de messagerie, serveur web, serveur de base de données, serveur de samba entre autres; De même, cela nous aide à prévenir la perte d'informations dues à des pannes matérielles, et nous pouvons le renforcer davantage avec des raids sur les unités de disques, que ce soit par matériel ou logiciel, il n'est jamais de trop d'avoir des disques en raid pour maintenir le système.

Cependant, le serveur de haute disponibilité n'est pas exempt de problèmes ou d'erreurs, lorsqu'un nœud est dégradé, nous pouvons aller au journal des pulsations pour voir ce qui s'est passé, cela est réalisé en accédant au fichier attribué dans la configuration de haresources dans /etc/ha.d

De la même manière, il peut arriver que lorsque vous redémarrez les deux serveurs pour une raison quelconque, ils ne démarrent pas en tant que primaire / secondaire et démarrent en tant que primaire / inconnu et inconnu / secondaire.

AGRANDIR

Pour résoudre ce problème, nous devons suivre les étapes suivantes.

Dans la coquille du nœud tombé, nous tapons :

 ressource secondaire drbdadm
Ensuite:
 ressource de déconnexion drbdadm
Et après:
 drbdadm - --discard-my-data connect ressource
Enfin, dans le nœud survivant, ou primaire, nous tapons :
 ressource de connexion drbdadm
Maintenant, il va commencer la resynchronisation des nœuds du nœud survivant au nœud tombé, cela en commençant immédiatement en appuyant sur la touche "Entrer" dans l'instruction 4.

Ce qui s'est passé ici est connu comme un Cerveau divisé, cela se produit lorsque, pour une raison quelconque, le nœud principal échoue et est dégradé, une fois que cela se produit, il est fortement recommandé d'examiner et d'analyser en profondeur le nœud tombé et avant de le réintégrer dans le cluster pour résoudre tout problème existant, cela peut également être nécessaire de réinstaller tout le système d'exploitation de ce nœud, et sans aucun problème, l'intégrer dans le cluster en tant que secondaire pour la synchronisation et si c'était le cas, une fois synchronisé, le changer en primaire.

Enfin, je voudrais souligner le examen régulier de la santé du clusterNous savons bien que pour de hautes performances, il est toujours bon d'avoir une longueur d'avance sur les catastrophes informatiques; Étant donné qu'en tant que personnel informatique, la responsabilité de prendre soin des données de l'entreprise ou des entreprises auxquelles nous appartenons nous incombe, en guise de note supplémentaire, je pense qu'il vaut la peine de recommander de toujours avoir une sauvegarde dans une unité alternative aux nœuds et ont ainsi la sécurité de l'information garantie.

Installer et configurer le serveur Ubuntu

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave