En résumé

Cette machine a pour but de faire tourner les machines virtuelles de Grenode et de certains de ses membres.

  • IP: 91.216.110.19

Matériel

  • Dell poweredge R210
  • Stockage : 2 x disques SATA 1 To WD1001FALS – RAID1
  • Mémoire vive : 12 Go = 1 x 4Go (?) + 2 x 4Go (DDR3 1333 ECC)

Réseau / vlan / Xen

Tant que les vlan de Grenode ne sont pas mis en place, nous utilisons une configuration réseau façon debian avec l'inteface eth0 qui participe au bridge br-eth0. Nous chuntons les srcipts de configuration réseau du dom0 de xen dans la config de xend (/etc/xen/xend-config.sxp) :

    (network-script 'network-dummy')

et nous utilisons des ligne du type dans la config des domU :

    vif = [ 'mac=00:1A:31:E5:33:10,bridge=br-eth0' ]

Attention : avec ce type configuration, il ne faut pas appeler le bridge xenbr[0-9]+ car les bridge nommés ainsi sont traités d'une manière particulière par Xen l'amenant à se prendre les pieds dans le tapis.

Plusieurs liens intéressants sur la question des vlan et de xen :

Stockage

Objectifs

  • Tout en raid 1
  • Chiffrement pour grenode avec une seule clé pour toutes ses machines virtuelles.
  • La possibilité de choisir si la machine est cryptée pour les membres
  • La possibilité de tout dimensionner....
  • La possibilité de rajouter des paires de disques pour augmenter la taille si besoin est.

Schéma de partitionnement

d1 
 \
   raid 1 ◼ ext3 (boot)                       
 /        |                             ◼ ext3 (dom0)
d2        ◼ pv                          ◼ swap (dom0-swap)
           \                            |
             vg1 −◼ crypt −− pv −− vg2 −◼ ext3 (outils.grenode.net-disk)
                  |                     ◼ swap (outils.grenode.net-swap)
                  |                     |
                  |                     …
                  |                        
                  |
                  ◼ crypt −− pv −− vg3 −◼ ext3 (membre1-disk)
                  |                     ◼ swap (membre1-swap)
                  |
                  ◼ ext3 (membre2-disk)
                  ◼ swap (membre2-swap)
                  |
                  …
  • vg1 / vg-data ~ 1To

    • lv-grenode
    • lv-membre1
    • lv-membre2-disk
    • lv-membre2-swap
  • vg2 / vg-grenode ~ 300 Go

    • palanquee.grenode.net-disk
    • palanquee.grenode.net-swap
    • outils.grenode.net-disk
    • outils.grenode.net-swap
  • vg3 / un membre

Il reste deux volumes logiques dans le vg grenode dom0 et dom0-swap. Ces deux volumes étaient ceux de palanquee lorsqu'elle tournait sur une archi 32 bit. À priori, ils peuvent être supprimés. Mais par précaution, cela n'a pas encore été fait (2010/09/03).

Redimensionement

Il est possible d'augmenter la taille des partitions à chaud. Par contre pour réduire il faut démonter les partition. Pour cela, il est possible d'utiliser les outils : lvresize, cryptsetup, resize2fs.

Xen: manipulation des domU

On utilise les outils du paquet xen-tools qui sont configurés dans /etc/xen-tools/xen-tools.conf

Voir la page Xen du wiki debian :

  • résolution du bug «clocksource/0: Time went backward»

Créer une machine virtuelle

une machine virtuelle pour Grenode

    xen-create-image --lvm=grenode \
        --ip=80.67.166.9 --hostname=outils.grenode.net \
        --size=9GB --swap=512MB --memory=384 --role=udev

une machine virtuelle pour un membre

Voir ce document pratique

Lancer automatiquement une machine virtuelle au démarage.

Normalememt, pour chaque machine virtuelle se trouve un fichier de configuration dans le repertoire /etc/xen/ . Il suffit de créer un lien symbolique comme suit :

     ln -s /etc/xen/<machine>.cfg /etc/xen/auto/

Graphe des températures

Pour connaître la température sur palanquee, il est possible d'utiliser la commande ipmitool après avoir ajouté les modules ipmi-si et ipmi-devintf dans le noyau (ils ont été rajouté dans le fichier /etc/modules) :

    sudo ipmitool sensor                  # Liste tous les indicateurs
    sudo ipmitool sensor get "CPU0 TEMP"  # Affiche les information concerant CPU0 TEMP

Ensuite on trouve sur le web, plein de plugin ipmi pour munin. Celui de palanquee a été récupéré ici et adapté à nos besoins. Pour l'activer, il faut faire un lien symbolique dans /ect/munin/plugin comme ceci :

    cd /etc/munin/plugins
    sudo ln -s ipmi_sensor_u_degrees /usr/local/share/munin/plugins/ipmi_sensor_

Utilisation de xen-shell

Xen fournit un petit utilitaire fourni par xen-tools dont le but est permettre la gestion d'un domU par son/ses administrateurs. Cet utilitaire se présente sous la forme d'une invite de commande avec laquelle il est possible d'utiliser les directives de 'xm' spécifique au domU concerné.

Il est donc possible de définir un compte unix pour chacun des domU avec comme shell xen-shell.

Limitations / Remarques

  • ce shell ne permet pas de modifier le mot de passe d'un compte unix. Une manière de contourner ce problème est de permettre l'accès en ssh uniquement avec authentification par clé.

  • Un compte unix peut gérer plusieurs machines virtuelles.

Concrètement

  • Création du compte unix <user> et désactivation de son mot de passe

    adduser --shell /usr/bin/xen-shell --disabled-password

  • Ajout de l'utilisateur dans la configuration du domU /etc/xen/<domU>.cfg

    echo "xen_shell = ''" >> /etc/xen/.cfg

  • Création d'un groupe xen-shell, autorisation sudo à exécuter 'xm', ajout de l'utilisateur dans ce groupe

    addgroup xen-shell adduser xen-shell echo '%xen-shell ALL=(root) NOPASSWD: /usr/sbin/xm' >> /etc/sudoers

  • Ajout des clés SSH des administrateurs du domU

    sudo su mkdir /home//.ssh echo "" >> /home//.ssh/authorized_keys chown -R : /home//.ssh exit