| 4 : 6 [CriNET] FERME Serveur proxy Web |
| 1 : 6 [CriNET] FERME Migration serveur |
| 1 : 6 [CriNET] FERME Migration serveur |
| 28 : 5 [CriNET] OUVERT Migration serveur |
| Mises à jour du site de l'UPV-M |
| Examens-corrections-jurys |
| Vacances de Noël |
| Jour férié : Armistice de 1918 |
| Jour férié : Toussaint |
| Tickets CRINet | |
| 2010060400 | FERME |
| Serveur proxy Web | |
| 2010052800 | FERME |
| Migration serveur | |
| 2010052501 | INFO |
| Coupure de courant programmée | |
| 2010052500 | INFO |
| Pb machines virtuelles | |
Drbd heartbeat rsync | |
|
la machine virtuelle est un cluster de 2 machines. Heartbeat permet de controller la disponibilté des machines et de démarrer les services sur la machine de secours en cas de pb. Les données entre les 2 machines sont partagées par drbd qui permet de créer un raid au travers du réseau. Les données sont copiées en temps réel sur la machine de secours. rsync permet d'administrer les 2 machines. Les mises à jour se font par apt-get. Un script rsync permet de conserver les fichiers de configurations synchronisés entre les 2 machines. Les 2 machines sont identiques (ce n'est pas forcément nécessaire) et disposent de 2 cartes réseau. Une carte réseau est réservée pour drbd, heartbeat, rsync. Un câble croisé entre les 2 machines permet de limiter les risques de coupure réseau dans la surveillance des 2 machines ce qui pourrait entrainer une situation de "split-brain". Pour la version heartbeat 1 voir ci-dessous, pour la version 2 voir ici : Heartbeat2 Utilisation de drbd heartbeat rsync pour faire une machine haute disponibilité sur debian (disponible depuis sarge) On commence par installer drbd (ci-dessous) heartbeat rsync Drbd et LVM Pour ne pas mélanger les cartes en cas de reboot changement de noyau /etc/modutils/aliases alias eth0 e1000 alais eth1 sk98lin Configurer les 2iémes cartes
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
drbdde nos jours apt-get install est suffisant configurer drbd /etc/drbd.conf
#
# drbd.conf
#
resource r0 {
protocol B;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup {
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
syncer {
rate 10M;
group 1;
al-extents 257;
}
on cas1 {
device /dev/drbd0;
disk /dev/sda5;
address 192.168.200.1:7788;
meta-disk internal;
}
on cas2 {
device /dev/drbd0;
disk /dev/sda5;
address 192.168.200.2:7788;
meta-disk internal;
}
}
démarrer drbd /etc/init.d/drbd start sur les 2 noeuds dans cat /proc/drbd on doit avoir
cs:Connected st:Secondary/Secondary ld:Inconsistent
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
les 2 sont trop différents pour être synchronisés : inconsistent forcer le primaire drbdadm -- --do-what-I-say primary all ou drbdsetup /dev/drbd0 disk /dev/sda5 internal -1 ce n'est plus nécessaire pour les versions récentes de drbd depuis drbd 0.8 drbdadm -- --overwrite-data-of-peer primary all sur le secondaire dans cat /proc/drbd cs:SyncTarget st:Secondary/Primary ld:Inconsistent ns:0 nr:5234048 dw:5234048 dr:0 al:0 bm:318 lo:1117 pe:2432 ua:1116 ap:0 [==========>.........] sync'ed: 54.4% (4303/9410)M finish: 0:01:22 speed: 53,016 (32,480) K/sec formater le device et le monter mkfs.ext3 /dev/drbd0 montez r0 pour tester mais c'est heartbeat qui effectuera les montages réels. Voir ensuite heartbeat Trucsà mettre dans /root/.bashrc
DRBD=`egrep 0: /proc/drbd | awk -F : '{print $4}' | awk -F / '{print $1}'`
if [ "$DRBD" == "Primary" ];
then DRBD="P"
else DRBD="S"
fi
export PS1='\h [$DRBD]:\w\$ '
cela permet d'avoir un prompt machine [P]:~# sur la machine primaireet machine [S]:~# sur la machine secondaire dans /etc/fstab $/dev/drdb0 /homed1 ext3 noauto
2. rebooter le noeud primaire le secondaire passe primaire les données sont bien disponibles le primaire redevient primaire lorsqu'il démarre 3. arrêt programmé arréter le secondaire en premier démarrer le primaire en premier le primaire attends 2min (120s) que le secondaire apparaisse. On peut le forcer en console. 4. couper le lien entre les 2 machines peut probale sur des machines avec des cartes intégrées et une liaison par câble croisé les 2 machines deviennent primaire et obtiennent la même adresse ip de la machine virtuelle ! Lorsque la connection est rétablie cela entraine un "split-brain" que l'on ne peux résoudre que manuellement. sur primaire :
0: cs:StandAlone st:Primary/Unknown ld:Consistent
ns:8 nr:0 dw:380 dr:50 al:1 bm:49 lo:0 pe:0 ua:0 ap:0
sur secondaire :
0: cs:StandAlone st:Secondary/Unknown ld:Inconsistent
ns:0 nr:8 dw:16 dr:17 al:1 bm:293 lo:0 pe:0 ua:0 ap:0les noeuds sont passés en stand alone drbdadm connect r0 sur les 2 machines démarre la synchro du primaire vers le secondaire drbdadm invalidate r2 sur une machine secondaire : invalide les données et force une resynchronisation LiensLe site officielhttp://www.drbd.org/ La liste de diffusion http://lists.linbit.com/pipermail/drbd-user/ Article sur une ancienne version http://www.linux-mag.com/2003-11/availability_01.html Howto sur les anciennes versions http://www.slackworks.com/~dkrovich/DRBD/ Le howto sur un wiki cassé pour l'instant http://linuxha.trick.ca/DRBD_2fHowTo_2fInstall HistoriqueInstallation sur debian sarge, plus nécessaire je laisse ici pour des raisons historiquespremier pb pb avec la deuxième carte réseau le module sk98lin du noyau 2.6.8 et 2.6.10 ne fonctionne pas Yukon Gigabit Ethernet 10/100/1000Base-T Adapter Ethernet controller: Marvell Technology Group Ltd. Récupération du driver constructeur sur http://www.syskonnect.de dans /syskonnect/support/driver/zip/linux/ récupérez install-8_14.tar.bz2 version du 17-Feb-2005 il faut les header du noyau (cf ci-dessous) modules nécessaire # apt-get install kernel-headers-2.6.8-2-686-smp # ln -s /usr/src/kernel-headers-2.6.8-2-686-smp/ /usr/src/linux # apt-get install drbd0.7-module-source drbd0.7-utils heartbeat rsync drbdinstallation # cd /usr/src # tar zxvf drbd0.7.tar.gz # cd linux # make-kpkg --revision=criumsarge.1 modules_image --append-to-version "-2-686-smp" # dpkg -i drbd0.7-module-2.6.8-2-686-smp_0.7.10-1+criumsarge.1_i386.deb # modprobe drbd estimation de la taille disque (inutile) blockdev --getsize /dev/sda divisé par 2 | |