Sunday, September 28, 2014

iSCSI Target virtuel sur Centos 6.5

iSCSI Target virtuel sur Centos 6.5

1. Architecture:


Node1: Serveur 192.168.1.100
Node2: Serveur 192.168.1.101
Share: Serveur 192.168.1.150 (iSCSI Target)

2. Installation:

 Avant de commence l'installation, il faut prepare les VM Centos:
        - Fixer les adresses IP.
        - Désactivation de firewall.
        - Désactiver "selinux".
        - Activer "ssh".
        - Fixer les noms des hôtes (node1, node2, Share).
        - Ajouter les noms des hôtes et leurs adresse IP dans le fichier "/etc/hosts"
Voir cet article lien.

2.1. iSCSI cible:

2.1.1. Installation d'outil d'administration:
Dans le serveur cible (Share) nous allons installer le package iscsi-utils:

[root@share/]#yum -y install scsi-target-utils


2.1.2. Configuration de iscsi target:

Création de disque virtuel disk.img de taille 20Go

[root@share/]#mkdir /data
[root@share/]#dd if=/dev/zero of=/data/disk.img count=0 bs=1 seek=20G


Ajouter les lignes suivants avec "vi" dans le fichier "/etc/tgt/targets.conf"


<target iqn.2014-09.share.server:target00>
# provided devicce as a iSCSI target
backing-store /data/disk.img

#iSCSI Initiator's IP address you allow to connect
#initiator-address
#authentication info
#incominguser username password
</target>

Demarrer le service target:

[root@share/]#/etc/rc.d/init.d/tgtd start
 Starting SCSI target daemon: [ OK ]

Confirmation du status:

[root@share/]#tgtadm --mode target --op show


2.2. iSCSI Initiateur

2.2.1. Installation de package:

Exécuter la commande d'installation suivante dans les deux nodes:

[root@node1/]#yum -y install iscsi-initiator-utils


2.2.2. Configuration:

Découvrir le cible, n'oublier pas de mettre l'adresse IP de serveur cible

[root@node1/]#iscsiadm -m discovery -t sendtargets -p 192.168.1.150
[root@node2/]#iscsiadm -m discovery -t sendtargets -p 192.168.1.150


2.2.3. Confirmation de la configuration:

Exécuter cette commande:

[root@node1/]#iscsiadm -m node -o show 


2.2.4. accès a la cible:

Pour confirme l’accès, exécuter:

[root@node1/]#iscsiadm -m node --login


2.2.5. Confirmer session établie:

[root@node1/]#iscsiadm -m session -o show


2.2.6. Confirmation des partitions:

[root@node1/]#cat /proc/partitions


2.2.7. Partitions:

nouveau dispositif ajoutée apportée par cible comme [sdb]

Installer le package suivant:
[root@node1/]#yum -y install parted

Créer un label:
[root@node1/]#parted --script /dev/sdb "mklabel msdos"

Créer une partition:
[root@node1/]#parted --script /dev/sdb "mkpart primary 0% 100%"

Formater avec ext4:
[root@node1/]#mkfs.ext4 /dev/sdb1

Mount:
[root@node1/]#mount /dev/sdb1 /mnt

Vérification:
[root@node1/]#df -h







Linux High-Availability Cluster tool Centos 6.5 "Pacemaker"

Linux High-Availability Cluster tool
Centos 6.5 "Pacemaker"

1. Architecture:




2. Composants:

Avec cet tutoriel, j'ai utilise Hyper-v pour créer les machines virtuelles.
- OS: Centos 6.5
- Node1: Serveur 192.168.1.100
- Node2: Serveur 192.168.1.101
- Cluster: adresse IP flottante 192.168.1.120

3. Creation de VM:

Dans le gestionnaire Hyper-V, créer un nouvel ordinateur virtuel
Dans l’étape de création de la carte réseau, vous pouvez sélectionner n'importe quelle connexion car nous allons la supprimer et la remplacer avec une carte réseau héritée puisque la VM Centos (même ubuntu, fedora, redhat, ..) ne peut pas voir la carte réseau normale dans le gestionnaire des périphériques.
Donner la taille du disque.
Sélectionner l'image iso de l'installation

Avant de démarrer la VM, aller dans "Paramètres", retirer l'ancien carte réseau et ajouter "Carte réseau héritée"

Sélectionner le type de connexion, dans notre cas nous allons utilise une connexion externe, l'installation de cluster et les autres composants nécessite l'internet pour le téléchargement des packages.

Démarrer la machine virtuelle, Sélectionner "Install"
 
 
 

4. Prérequis d'installation:

Avant l'installation, il faut prépare Centos:

4.1. Adressage:
Il faut fixé l'adresse IP de deux nodes, Si Centos avec un interface graphique, aller dans les paramètres réseau et changer l'adresse manuellement, sinon utiliser la commande "vi" pour éditer le fichier "/etc/sysconfig/networking/devices/eth0"
Il faut les droits admin, utiliser "root"
Si vous voulez réinitialiser le mot de passe de root, taper:

#sudo passwd root

4.1. Nom de la machine
Dans le terminal ouvrir avec "vi" le fichier "/etc/sysconfig/networking/profiles/default/network" et entrer le nom de hote.
Ou utiliser la commande setup pour changer le"hostname"
Ouvrir terminal et taper "setup"
Aller a "Configuration du réseau"

 "Configuration DNS"
Entrer le nom de la machine "node1"
Valider par "OK"

4.3. Firewall
Pour désactiver le firewall, exécuter la commande suivante:

#service iptables stop

Ou aller dans "setup"

4.4. Activation ssh:
Pour mieux utiliser "Putty" et "WinSCP", il faut active "ssh". Exécuter les deux commandes suivantes:


#service sshd stop

#chkconfig sshd on

Ou utiliser "setup"

4.5. Désactivation selinux
Pour que les deux nodes puissent se communiquer entre eux sans erreur d'autorisation dans le cluster, il faut désactiver "selinux"

Modifier avec "vi" le fichier "/etc/selinux/config"

SELINUX=disabled

4.5. Hosts
Fixer les noms de deux nodes dans le fichiers "hosts" (/etc/hosts)

Redémarrer les deux nodes

5. Installation pacemaker/corosync:

Exécuter cette commande pour l'installation

#yum install pacemaker corosync crmsh

Après l'installation, utiliser cette configuration et changer les adresses IP des nodes:

"/etc/corosync/corosync.conf"

Si "corosync.conf" n'existe pas, créer le.



 
compatibility: whitetank

aisexec {
    user: root
    group: root
}

service {
    ver: 1
    name: pacemaker
    use_mgmtd: no
    use_logd: no
}

totem {
    version: 2
    token: 5000
    token_retransmits_before_loss_const: 10
    join: 1000
    consensus: 7500
    vsftype: none
    max_messages: 20
    send_join: 45
    clear_node_high_bit: yes
    secauth: off
    threads: 0

interface {
         ringnumber: 0 
        member {
            memberaddr: 192.168.1.100
        }
        member {
            memberaddr: 192.168.1.101
        }
bindnetaddr: 192.168.1.0
                mcastaddr: 226.94.1.1
                mcastport: 5405
                ttl: 1
        }
    }

logging {
    fileline: off
    to_stderr: no
    to_logfile: yes
    to_syslog: yes
    logfile: /var/log/cluster/corosync.log
    debug: off
    timestamp: on

logger_subsys {
    subsys: AMF
    debug: off
    }
}

amf {
    mode: disabled
}


Générer le clé authentification corosync:

#corosync-keygen


 
[root@node1 ~]# corosync-keygen
 Corosync Cluster Engine Authentication key generator.
 Gathering 1024 bits for key from /dev/random.
 Press keys on your keyboard to generate entropy.
 Press keys on your keyboard to generate entropy (bits = 64).
 Press keys on your keyboard to generate entropy (bits = 128).
 Press keys on your keyboard to generate entropy (bits = 192).
 Press keys on your keyboard to generate entropy (bits = 256).
 Press keys on your keyboard to generate entropy (bits = 320).
 Press keys on your keyboard to generate entropy (bits = 392).
 Press keys on your keyboard to generate entropy (bits = 456).
 Press keys on your keyboard to generate entropy (bits = 520).
 Press keys on your keyboard to generate entropy (bits = 592).
 Press keys on your keyboard to generate entropy (bits = 656).
 Press keys on your keyboard to generate entropy (bits = 728).
 Press keys on your keyboard to generate entropy (bits = 800).
 Press keys on your keyboard to generate entropy (bits = 864).
 Press keys on your keyboard to generate entropy (bits = 928).
 Press keys on your keyboard to generate entropy (bits = 992).
 Writing corosync key to /etc/corosync/authkey.
 [root@node1 ~]#


Copier le continue de répertoire "/etc/corosync" dans node2

#scp /etc/corosync/*  root@node2:/etc/corosync/

Démarrer corosync et pacemaker dans les deux nodes

#service corosync start
#chkconfig corosync on

#service pacemaker start

#chkconfig pacemaker on



 
service corosync start
Starting Corosync Cluster Engine (corosync):               OK  ]
service pacemaker  start
Starting Pacemaker Cluster Manager                         OK  ]


Verifier l'etat de cluster, exécuter:

#pcs status



# crm status
Last updated: Fri Sep  26 02:58:10 2014
Last change: Fri Sep  26 01:22:54 2014 via crmd on node1
Stack: classic openais (with plugin)
Current DC: node2 - partition with quorum
Version: 1.1.10-14.el6_5.3-368c726
2 Nodes configured, 2 expected votes
0 Resources configured

Online: [ node1 node2 ]



6. Adresse IP flottante:

Dans cette étape, nous allons créer une adresse IP flottante pour cluster

Exécuter cette commande:

#pcs resource create ClusterIP ocf:heartbeat:IPaddr2 \ip=192.168.1.120 cidr_netmask=24 op monitor interval=30s

Adresse IP: 192.168.1.120

7. Test
Installer Apache dans les deux nodes:

#yum install httpd

Créer une page html "index.html" sous "/var/www/html" dans les deux nodes avec un message "Hello this is Node1" pour node1 "Hello this is Node2" pour node2.
Code html:

<!DOCTYPE html>
<html>
<body>
<h1>Hello this is Node1</h1>
</body>
</html>

Accéder avec un navigateur l'adresse IP flottante Cluster (192.168.1.120), Cette page lorsque les deux nodes en ligne,
Maintenant nous allons mettre node1 hors ligne et accéder avec la même adresse IP flottante cluster (192.168.1.120)


Voila, il y a un basculement vers node2.