Je viens de recevoir mon KS2G OVH et j’aimerais y faire tourner des linux containers (lxc).
Cependant, j’ai constaté que le noyau OVH manquait de pas mal d’options notament sur le réseau et les cgroups.
Pour remédier à tout ça, il va falloir compiler un nouveau noyau et tant qu’à faire le dernier en date de notre cher Linus.
On download le dernier kernel officiel
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.11.1.tar.xz
On récupère le dernier fichier de config kernel chez OVH
wget -c ftp://ftp.ovh.net/made-in-ovh/bzImage/latest-production/config-3.10.9-xxxx-grs-ipv6-64
On install les dépendances pour la compilation
apt-get install make gcc lzma ncurses-dev dpkg-dev
Il faut ensuite bien sûr extraire la livraison
tar -xvf linux-3.11.1.tar.xz
Copier le fichier de conf OVH pour prise comme base. C’est cette conf à laquelle on ajoutera la prise en charge des cgroups et divers paramètres réseau
cp config-3.10.9-xxxx-grs-ipv6-64 linux-3.11.1/.config
On lance le menu de configuration (dont la conf de base est celle du fichier OVH)
cd linux-3.11.1 make menuconfig
L’idée c’est d’ajouter la prise en charge des options ci-dessous
General setup ---> [*] Control Group support ---> [*] Example debug cgroup subsystem [*] Namespace cgroup subsystem [*] Freezer cgroup subsystem [*] Device controller for cgroups [*] Cpuset support [*] Include legacy /proc//cpuset file [*] Simple CPU accounting cgroup subsystem [*] Resource counters [*] Memory Resource Controller for Control Groups [*] Memory Resource Controller Swap Extension [*] Memory Resource Controller Swap Extension enabled by default (NEW) [*] Enable perf_event per-cpu per-container group (cgroup) monitoring [*] Group CPU scheduler ---> [*] Group scheduling for SCHED_OTHER [*] Group scheduling for SCHED_RR/FIFO <*> Block IO controller [*] Enable Block IO controller debugging -*- Namespaces support ---> [*] UTS namespace [*] IPC namespace [*] PID Namespaces [*] Network namespace [*] Networking support ---> Networking options ---> <*> 802.1d Ethernet Bridging [*] IGMP/MLD snooping <*> 802.1Q VLAN Support [*] GVRP (GARP VLAN Registration Protocol) support Device Drivers ---> [*] Network device support ---> --- Network device support < > Intermediate Functional Block support (NEW) < > Dummy net driver support (NEW) < > Bonding driver support (NEW) <*> MAC-VLAN support (EXPERIMENTAL) <*> MAC-VLAN based tap driver (EXPERIMENTAL) < > EQL (serial line load balancing) support (NEW) < > Universal TUN/TAP device driver support (NEW) <*> Virtual ethernet pair device < > General Instruments Surfboard 1000 (NEW) Character devices ---> -*- Unix98 PTY support [*] Support multiple instances of devpts
On compile notre nouvau noyau et on lui donne un numéro de version (prévoir plus d’une heure sur un KS2G OVH)
make KDEB_PKGVERSION=1.0 deb-pkg
Enfin on installe notre nouveau noyau
dpkg -i linux-image-3.11.1-xxxx-grs-ipv6-64_1.0_amd64.deb linux-headers-3.11.1-xxxx-grs-ipv6-64_1.0_amd64.deb
Ne pas oublier de positionner le noyau par défaut dans /boot/grub/grub.conf sur le nouvau noyau.
On redémarre et on prie 😉
source : http://www.delloye.org/linux/lxc.html
Laisser un commentaire