Créer un domaine Xen
Ce guide vous aide à utiliser xen-tools pour mettre en place un domaine Xen avec une partition /var séparée.
Ce guide est testé sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Prérequis
Ce guide nécessite:
- le rôle "automatic" pour xen-tools décrit par Configurer xen-tools sur Debian.
Paramètres
Choisissez le nom d'hôte du futur domaine:
XEN_HOST="host.domain.xen1"
Je vous propose d'utiliser la convention de nommage suivante:
- host: Code pour l'utilisation de la machine, par exemple: mysql pour un serveur MySQL.
- domain: Nom de l'entreprise, par exemple: biapy
- xen1: Code pour le serveur Xen, par exemple: ovh3 pour le 3ème serveur hébergé par OVH.
Cela donne:
XEN_HOST="mysql.biapy.ovh3"
Renseignez la taille de l'espace dédié aux données variables du domaine (ici, 10Go):
XEN_VAR="10g"
Renseignez l'adresse IP assignée au futur domaine:
XEN_IP="10.0.0.3"
Remarque: Pour obtenir l'adresse IP du domaine en DHCP, utilisez:
# XEN_IP="dhcp"
Création du domaine
Initialisation
Vérifiez les paramètres de l'adresse IP:
if [ "${XEN_IP}" = "dhcp" -o -z "${XEN_IP}" ]; then
IP_OPTIONS="--dhcp"
else
IP_OPTIONS="--ip ${XEN_IP}"
fi
Initialisez le domaine:
command xen-create-image --hostname "${XEN_HOST}" \ ${IP_OPTIONS} --passwd --role automatic
Ajout d'un système de fichier /var
Selon les recommandations de la Linux Standard Base, le chemin "/var" contient les fichiers pouvant être modifiés par le système (base de données, e-mails, données des sites Internet, sauvegardes, etc...). Ce guide assigne un espace disque dédié à cette partition pour faciliter l'ajustement de sa taille en fonction des besoins du domaine créé.
Créez le volume logique LVM du système de fichier:
LVM_VG=$(command grep 'lvm' '/etc/xen-tools/xen-tools.conf' \
| command sed -e 's/lvm = //') command lvcreate -n "${XEN_HOST}-var" -L "${XEN_VAR}" "${LVM_VG}" command mkfs.ext4 "/dev/${LVM_VG}/${XEN_HOST}-var"
Modifiez le domaine pour l'utiliser:
command umount "/dev/${LVM_VG}/${XEN_HOST}-disk" MOUNT_POINT=$(command mktemp -d) command mount "/dev/${LVM_VG}/${XEN_HOST}-disk" "${MOUNT_POINT}" DISK_TYPE="sda" if [ -n "$(command grep -e "xvda" "${MOUNT_POINT}/etc/fstab")" ]; then DISK_TYPE="xvda" fi command echo "/dev/${DISK_TYPE}3 /var ext4 defaults 0 1" \
>> "${MOUNT_POINT}/etc/fstab" VAR_MOUNT_POINT=$(command mktemp -d) command mount "/dev/${LVM_VG}/${XEN_HOST}-var" "${VAR_MOUNT_POINT}" command cp -a "${MOUNT_POINT}/var/"* "${VAR_MOUNT_POINT}" command umount "${VAR_MOUNT_POINT}" command umount "${MOUNT_POINT}" if [ $(command grep "disk[\t ]*=.*\]" "/etc/xen/${XEN_HOST}.cfg" \
| command wc --lines) -eq 0 ]; then command sed -i -e "/^disk[\t ]*=.*/a\\ 'phy:${LVM_VG}\/${XEN_HOST}-var,${DISK_TYPE}3,w'," \ "/etc/xen/${XEN_HOST}.cfg" else command sed -i \
-e "s/^\(disk[\t ]*=.*\)\]/\1, 'phy:${LVM_VG}\/${XEN_HOST}-var,sda3,w' ]/" \
"/etc/xen/${XEN_HOST}.cfg" fi
Démarrage
Activez le nouveau domaine avec:
command xm create "/etc/xen/${XEN_HOST}.cfg"
Configurez l'activation automatique du domaine au démarrage du système:
command mkdir --parents "/etc/xen/auto"
command mv "/etc/xen/${XEN_HOST}.cfg" "/etc/xen/auto"
Résolution des problèmes
Domaines Ubuntu
Les domaines Ubuntu posent parfois des problèmes de configuration des locales. Si c'est le cas, générez vos locales:
command locale-gen 'fr_FR.UTF-8'
Modifier le fichier "/etc/environment" et assurrez-vous qu'il contient:
LANG=fr_FR.UTF-8
Redémarrez le domaine pour prendre en compte les modifications.