Utiliser Gentoo et Calculate Linux

Installer et utiliser LXC sur Gentoo / Calculate Linux

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

conteneurs







Présentation de LXC





LXC, contraction de l’anglais LinuX Containers est un système de virtualisation, utilisant l'isolation comme méthode de cloisonnement au niveau du système d'exploitation. Il est utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs partageant le même noyau et une plus ou moins grande partie du système hôte. Le conteneur apporte une virtualisation de l'environnement d'exécution (Processeur, Mémoire vive, réseau, système de fichier… ) et non pas de la machine. Pour cette raison, on parle de « conteneur » et non de machine virtuelle.



Ce système est similaire aux autres systèmes de virtualisations au niveau du système d'exploitation comme openVZ.





Prérequis pour l'installation





LXC a besoin des fonctionnalités CGROUP du noyau linux.



Ces valeurs de configuration doivent être positionnées à y :



Code BASH :
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_CGROUP_FREEZER=y
CONFIG_VETH=y
CONFIG_MACVLAN=y
CONFIG_MACVTAP=y
CONFIG_BRIDGE=y




On peut trouver ces valeurs via la commande suivante :



Code BASH :
zcat /proc/config.gz




Si tout n'est pas sur "y" :



Désactiver le FLAG minimal :

Code BASH :
echo "sys-kernel/calculate-sources -minimal" >> /etc/portage/package.use/custom




Puis réémerger le noyau :

Code BASH :
emerge -q sys-kernel/calculate-sources




Se rendre dans les sources :

Code BASH :
cd /usr/src/linux




Nettoyer les compilations précédentes :

Code BASH :
make distclean




Copier la configuration actuelle dans .config :

Code BASH :
zcat /proc/config.gz > .config




Passer à y les valeurs non définies :



Voici une commande sympathique pour vérifier tout d'un coup :

Code BASH :
grep CONFIG_NAMESPACES .config ; \
grep CONFIG_UTS .config ; \
grep CONFIG_IPC .config ; \
grep CONFIG_USER_NS .config ; \
grep CONFIG_PID_NS .config ; \
grep CONFIG_NET_NS .config ; \
grep CONFIG_CGROUPS .config ; \
grep CONFIG_CGROUP_DEVICE .config ; \
grep CONFIG_CPUSETS .config ; \
grep CONFIG_DEVPTS_MULTIPLE_INSTANCES .config ; \
grep CONFIG_CGROUP_FREEZER .config ; \
grep CONFIG_VETH .config ; \
grep CONFIG_MACVLAN .config ; \
grep CONFIG_MACVTAP .config ; \
grep CONFIG_BRIDGE .config
 




Puis éditer avec l'éditeur de son choix le fichier .config pour placer chaque valeur à y.

J'ai opté personnellement pour sed :

Code BASH :
sed -e 's/# CONFIG_CGROUP_DEVICE is not set/CONFIG_CGROUP_DEVICE=y/g' -i .config
sed -e 's/# CONFIG_CPUSETS is not set/CONFIG_CPUSETS=y/g' -i .config
sed -e 's/# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set/CONFIG_DEVPTS_MULTIPLE_INSTANCES=y/g' -i .config
sed -e 's/# CONFIG_CGROUP_FREEZER is not set/CONFIG_CGROUP_FREEZER=y/g' -i .config
sed -e 's/# CONFIG_VETH is not set/CONFIG_VETH=y/g' -i .config
sed -e 's/# CONFIG_MACVLAN is not set/CONFIG_MACVLAN=y/g' -i .config
sed -e 's/# CONFIG_MACVTAP is not set/CONFIG_MACVTAP=y/g' -i .config
sed -e 's/CONFIG_BRIDGE=m/CONFIG_BRIDGE=y/g' -i .config




Puis on recompile le noyau :

Code BASH :
make oldconfig
make
make modules_install
make install
dracut --force
#emerge @module-rebuild
#cl-setup-boot




Pour compiler plus vite, on peut passer à make l'argument -jX X est le nombre de processeurs + 1

Pour un intel i7 avec 8 coeurs :

Code BASH :
make -j9