Partage Type SAN avec ATA Over Ethernet

AoE Serveur

Configuration du serveur de fichier faisant office de SAN.
Vérification si le kernel à bien été configuré avec option AoE, vérifier sa présence dans le ficher .config

host:/# grep ATA_OVER /boot/config-`uname -r` CONFIG_ATA_OVER_ETH=m

Pour l’activé à la compilation

Device Drivers --> |- Block Devices ---> |- <m> ATA over Ethernet support

Si l’option est présente chargé le module

modprobe aoe

Vérifier dans les logs

grep aoe /var/log/syslog Jul 7 16:31:12 Nada kernel: aoe: aoe_init: AoE v22 initialised. Jul 7 16:59:57 Nada kernel: aoe: aoe_init: AoE v22 initialised.

Installation des outils serveur

apt-get install vblade

Pour exporter /dev/sdb1

vbladed 0 1 eth1 /dev/sdb1

Chaque périphérique AoE device est identifier par une couple numérique Majeur / Mineur. Le majeur est dans la plage 0-65535 et le mineur dans la plage 0-255. Dans l’exemple du dessus nous avons

* Majeur O * Mineur 1 * Via l'interface eth1 * Le partition physique /dev/sdb1

Vérification

ps -ax [...] 1316 tty1 S 0:00 sh -c /usr/sbin/vblade 0 1 eth1 /dev/sdb1 < /dev/null 2>&1 | logger -t vbladed 1318 tty1 S 0:00 /usr/sbin/vblade 0 1 eth1 /dev/sdb1 1319 tty1 S 0:00 logger -t vbladed [...]

Pour qu’il soit lancer au démarrage du serveur, a défaut de faire une script dans /etc/init.d/ on le colle dans /etc/inittab

echo "e0:1:respawn:/usr/sbin/vblade 0 1 eth1 /dev/sdb1" >> /etc/inittab init q

Installer OCFS2

Installer les outils sur les serveurs du node cluster, c.a.d les deux machines hôte xen dom0. Ils ne sont pas nécessaire sur le serveur offrant la ressource disque.

apt-get install ocfs2-tools

Sur chaque serveur du mode cluster configuré OCFS2 via le fichier /etc/ocfs2/cluster.conf. Dans exemple l’exemple suivant nous avons deux nœuds (Bella et Brutus ) et l’espace disque est nommé oscf2.

node: ip_port = 7777 ip_address = 192.168.0.10 number = 0 name = Bella cluster = ocfs2   node: ip_port = 7777 ip_address = 192.168.0.11 number = 1 name = Brutus cluster = ocfs2   cluster: node_count = 2 name = ocfs2

Recopie de /etc/ocfs2/cluster.conf vers les autres noeuds et configurer le démarrage de ocfs2 dans le fichier /etc/default/o2cb

vi /etc/default/o2cb # O2CB_ENABLED: 'true' means to load the driver on boot. O2CB_ENABLED=true

Lancer de démon ocfs2

/etc/init.d/o2cb start

Vérifier le fonctionnement du démon

/etc/init.d/o2cb status     !!!!Configuration  de AoE Client   Configuration des deux __machines hôtes xen Dom0__ client du serveur de fichier faisant office de __SAN__.   Installation des outils client ///[bash] apt-get install aoetools

Si vous n’utiliser par udev il est possible que les node dans /dev ne soit pas créé automatiquement. Pour forcer cela la commande suivante exite

aoe-mkdevs /dev/etherd

Maintenant écoutons le réseau pour découvrir les volumes disponible

client:/# aoe-discover

Affichons ce qui a été découvert

client:/# aoe-stat e0.1 1.048GB eth1 up

Il est maintenant possible d’utiliser ce périphérique

Utiliser le périphérique

Le formater la partition cluster en OCFS2

mkfs -t ocfs2 -L DATA /dev/etherd/e0.1

Le monter et l’utiliser

mount -t ocfs2 /dev/etherd/e0.1 /home

Attention, le serveur de fichier faisant office de SAN, donc serveur AoE, ne peux pas être client de lui même.

machines virtuel xen

Il ne vous reste plus qu’a installer et lancer depuis une des machines hôtes des machines virtuel xen sur des disque virtuel dans un fichier image. Disque virtuel eux même stocker sur la partition présenté en AoE et partager en cluster OCFS2.

Xen relocation

Pour faire de la réallocation de machine virtuel du machine hôte (dom0) à une autre il faut monté la même ressource AoE sur chacune des machines hôte sur le même point de montage. Dans mon exemple machine hôte à la partition AoE/OCFS2 monté dans /home. Cette partition n’a été formaté qu’une fois depuis l’une des deux machines hôtes.

xend-config.sxp

Pour activé la possibilité de réallocation entre machine hôte xen voici les différente option activé dans les /etc/xen/xend-config.sxp des deux serveur.

Sur Bella, j’active la réallocation et j’autorise Brutus à envoyé des VM

(xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '192.168.0.10') (xend-relocation-hosts-allow '') (network-script 'bella-network-bridge') (vif-script vif-bridge) (dom0-min-mem 196) (dom0-cpus 0) (vncpasswd '')

Sur Brutus, j’active la réallocation et j’autorise Bella à envoyé des VM

(xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '192.168.0.11') (xend-relocation-hosts-allow '') (network-script 'brutus-network-bridge') (vif-script vif-bridge) (dom0-min-mem 196) (dom0-cpus 0) (vncpasswd '') xm migrate

Depuis la machine hôte (dom0) hébergeant vos machines virtuel xen pour déplacer une VM à chaud il suffit d’utiliser la commande suivante

Depuis Bella

xm migrate --live VM-test Brutus
 

Je reprend ici un note du mardi 22 avril 2008 par Noplay qui m’a été très utile et que je souhaite garder à disposition (comme souvent).

Plusieurs interface, plusieurs route

Sous Debian ou Ubuntu si vous désirez ajouter automatiquement des routes lorsque une interface réseau devient active vous pouvez utiliser la règle post-up du fichier /etc/network/interfaces. Celle-ci permet éxécuter une commande après qu’une interface soit passée active.

allow-hotplug eth1 iface eth1 inet dhcp post-up route add -net 42.42.42.0 netmask 255.255.255.0 gw 192.168.1.1 down route del -net 42.42.42.0 netmask 255.255.255.0 gw 192.168.1.1

Pour plus d’informations : man interfaces

 

Suite a l’annonce d’un Important bug de sécurité sur noyau 2.6.17 à 2.6.24 sur linuxfr.org je colle le nez sur mes serveurs pour faire un brin de ménage.

Ménage avec apt-get remove

J’en profite pour virer de vieux paquet et la, sur un serveur de test et bibouille, c’est le drame !!

apt-get remove --purge linux-image-2.6-686 Reading package lists... Done Building dependency tree... Done The following packages will be REMOVED: linux-image-2.6-686* 0 upgraded, 0 newly installed, 1 to remove and 45 not upgraded. Need to get 0B of archives. After unpacking 8192B disk space will be freed. Do you want to continue [Y/n]? y perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "fr_FR.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory (Reading database ... 43097 files and directories currently installed.) Removing linux-image-2.6-686 ...

dpkg-reconfigure locales

J’ai du testé et bibouiller un peu trop sur ce serveur et maintenant plus moyen de le maintenant à jour. C’est pas la première fois que j’ai ce message et d’habitude le solutionne la chose avec un bonne reconfiguration des LOCALES

dpkg-reconfigure locales //   Malheureusement l'utilisation de __dpkg-reconfigure locales__ débouche sur le même message d'erreur. __Perl__ ne comprend pas ma langue et ne trouve pas les variables nécessaire pour cela.   Pas grave on va revenir a la langue universel, au fondamentaux de perl   ///[bash] export LC_ALL=C

Parfait, je retente la configuration des locales

dpkg-reconfigure locales /usr/sbin/dpkg-reconfigure: locales is not installed

Et la j’ai l’air con :D

J’installe les locales, je les reconfigure, en sifflant d’un air dégagé et je reprend mes activités.

 

Générer le plan de son architecture réseau facilement ? Voila une promesse sympa que j’ai découvert sur le petit blog de cyril.

Premier Test de Lanmap

Je me lance sur un serveur debian

apt-get install lanmap

D’après le man la syntaxe est celle-ci :

lanmap [-o directory] [-e program] [-T {png,gif,svg}] [-f filtetr] [-D {#,all,raw}] [-r seconds]   [-i {?,*wildcard*,iface}] [-h] [-v] [-V]

Sur le petit blog de cyril. je trouve l’exemple suivant :

lanmap -i eth0 -r 30 -T png -o ~/

Je décode la syntaxe : on force l’interface eth0, on force la génération de l’image toute les 30 secondes, on force le format image en png et on indique de prendre le home directory comme répertoire ou écrire l’image.

Je me place dans le /var/www/lanmap de mon serveur et je lance la commande. Cela cause beaucoup beaucoup dans le xterm alors que j’ai pas ajouter d’option verbose. L’image lanmap.png que je consulte régulièrement depuis le serveur apache de la machine ou je l’ai lancé ne change pas. Il me fait une image avec juste un « outside ».

Recherche de la bonne syntaxe pour lanmap

J’ai un message qui reviens régulièrement

Error: using too many intersections

Je fouille, de décode et reprend le man et je constate que l’on peux filtrer l’écoute sur le réseau.

-f filter Traffic filter, in libpcap syntax.

libcap c’est tcpdump ! Voila comment lanmap découvre l’architecture du réseau il sniff les paquet. Bon ayant un grand, grand réseau à plat je pense qu’il doit noyé sous le flux.

Je limite cela à tcp/ip pour l’essai suivant en supprimant les requêtes arp et leur réponse de mon réseau ethernet :

lanmap -i eth0 -r 240 -T png -o /var/www/lanmap/ -vvv -f "not rarp && not arp"

Je regarde évolué l’image….guère mieux. Je n’ai aucun lien, juste des machines qui apparaissent.

Google est mon ami, je trouve le site du programmeur de lanmap : parseerror.com. Petite lecture de la FAQ ou je trouve cette information :

  • Q : I have a big network and lanmap only shows me part of it !
  • A : Indeed. lanmap is passive and won’t work beyond switches.

Ha ? et bien pour le coût c’est moins intéressant comme soft, pas étonnant que l’image ne change pas vraiment ou reste incomplète.

Dommage sur le site du créateur l’exemple est vendeur.

 

Support Physique a la machine virtuel

Il y à trois support physique à un DomU : Un fichier image, une partition LVM, une Partition Physique

  1. Un fichier image est ce est le plus rapide à configuré. La contre partie sont de pauvre performance I/O. La taille du fichier image représentant le disque du serveur virtuel est modifiable mais au prix de quelque manipulation laborieuse. Par contre un fichier image est facilement manipulable, copiable, déplacèable
  2. LVM est ce qui est le plus largement utilisé en production. Les partitions peuvent être re-tailler à volonté, facilement, sans (trop) d’intéruption de service. C’est l’idéal pour constituer un hébergement xen. Les performances I/O sont bien meilleur de fait comparé à un fichier image. Par contre en cas de soucis cela ce déplace bien moins facilelement qu’un fichier image.
  3. La partition physique est ce qu’il y à de mieux pour les performances IO. Mais c’est difficilement administrable et pas vraiment flexible.

Disque virtuel dans un fichier image.

C’est mon choix de production, la partition sur la quelle je stock ces fichiers images étant sur un SAN j’ai limité le soucis des I/O tout en ayant la possibilité de transférer mes machine virtuel sur une autre serveur d’hebergement facilement et rapidement.

mkdir -p /xens/burkesys/ dd if=/dev/zero of=/xens/burkesys/diskimage.img bs=1024k count=5000 dd if=/dev/zero of=/xens/burkesys/swapimage.img bs=1024k count=512   mkfs.ext3 /xens/burkesys/diskimage.img mkswap /xens/burkesys/swapimage.img   mount -o loop /xens/burkesys/diskimage.img /mnt

Disque Virtuel dans une volume LVM

lvcreate -n twister --size 2g main-vol2 lvcreate -n twisterswp --size 512m main-vol2   mkfs.ext3 /dev/main-vol2/twister mkswap /dev/main-vol2/twisterswp   mount -o loop /dev/main-vol2/twister /mnt

Un nouvel OS avec Debootstrap

Créé avec Debootstrap un nouveau système sur le disque virtuel

debootstrap --arch i386 sarge /mnt http://ftp.de.debian.org/debian/   mv /mnt/lib/tls /mnt/lib/tls.disabled   cp /etc/apt/sources.list /mnt/etc/apt/ vi /mnt/etc/apt/sources.list   cp -a /lib/modules/2.6.16-1-xen-k7/ /mnt/lib/modules/   cp /etc/resolve.conf /mnt/etc/   cp /etc/network/interfaces /mnt/etc/network/ vi /mnt/etc/network/interfaces   #To use Specific IP address - edit the /mnt/etc/network/interfaces manually. #To use DHCP, edit and include the following: # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp   vi /mnt/etc/hostname   vi /mnt/etc/fstab proc /proc proc defaults 0 0 /dev/sda1 / ext3 defaults,errors=remount-ro 0 1 /dev/sda2 none swap sw 0 0

Configurer le serveur virtuel domU

umount /mnt   vi /etc/xen/burkesys kernel = "/boot/vmlinuz-2.6.16-1-xen-k7" ramdisk = "/boot/initrd.img-2.6.16-1-xen-k7" memory = 192 name = "burkesys" vif = ['bridge=xenbr0'] #File Based:# disk = ['file:/xens/burkesys/diskimage.img,sda1,w','file:/xens/burkesys/swapimage.img,sda2,w'] #LVM Based:# disk = ['phy:/dev/main-vol2/twister,sda1,w', 'phy:/dev/main-vol2/twister,sda2,w'] #DHCP - remove the ip, gateway and netmask lines, and include:# dhcp = "dhcp" ip = "ip add" gateway = "ip add" netmask = "255.255.0.0" root = "/dev/sda1 ro" extra = '4'   ln -s /etc/xen/burkesys /etc/xen/auto/burkesys //link in the config file so that the Virtal Machine starts on Bootup of Dom0

Lancer et mettre à jour le serveur virtuel DomU

xm create burkesys -c

Vous allez voir votre serveur virtuel booter. Logger vous en suite et faire une mise à jour.

passwd   apt-get update apt-get upgrade
© 2012 Karlesnine Suffusion theme by Sayontan Sinha