Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:autres:vm:lxc:mode-utilisateur [12/07/2018 10:49] captnfab [Utilisation du conteneur] |
doc:autres:vm:lxc:mode-utilisateur [12/07/2018 11:20] captnfab [Préparation] |
||
---|---|---|---|
Ligne 95: | Ligne 95: | ||
<code root>sysctl --sys</code> | <code root>sysctl --sys</code> | ||
+ | Pour l'instant, les cgroups nécessaires ne sont pas créés par défaut. Créer le fichier suivant : | ||
+ | <code bash /usr/local/sbin/prepare-lxc-cgroups>#!/bin/sh | ||
+ | LXC_USERS=$(cat /etc/lxc/lxc-users) | ||
+ | for d in /sys/fs/cgroup/* | ||
+ | do | ||
+ | f=$(basename $d) | ||
+ | if [ "$f" = "cpuset" ] | ||
+ | then | ||
+ | echo 1 > $d/cgroup.clone_children; | ||
+ | elif [ "$f" = "memory" ] | ||
+ | then | ||
+ | echo 1 > $d/memory.use_hierarchy; | ||
+ | fi | ||
+ | for u in $LXC_USERS | ||
+ | do | ||
+ | mkdir -p $d/$u | ||
+ | chown -R $u $d/$u | ||
+ | done | ||
+ | done | ||
+ | </code> | ||
+ | |||
+ | Et rajouter ''lxcuser-test'' dans le fichier ''/etc/lxc/lxc-users''. S'il y a plusieurs utilisateurs, ils doivent être séparés par un espace. | ||
+ | |||
+ | Que l'on lancera automatiquement via systemd en créant ce service : | ||
+ | <code ini /etc/systemd/system/lxc-cgroups.service> | ||
+ | [Unit] | ||
+ | Description=Préparation cgroups pour lxc | ||
+ | After=local-fs.target | ||
+ | |||
+ | [Service] | ||
+ | Type=oneshot | ||
+ | RemainAfterExit=yes | ||
+ | ExecStart=/usr/local/sbin/prepare-lxc-cgroups | ||
+ | | ||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </code> | ||
+ | |||
+ | Et en l'activant | ||
+ | <code root>chmod a+x /usr/local/sbin/prepare-lxc-cgroups | ||
+ | systemctl enable /etc/systemd/system/lxc-cgroups.service | ||
+ | systemctl daemon-reload | ||
+ | systemctl start lxc-cgroups</code> | ||
===== Création du conteneur ===== | ===== Création du conteneur ===== | ||
Ligne 167: | Ligne 210: | ||
===== Utilisation du conteneur ===== | ===== Utilisation du conteneur ===== | ||
- | Pour l'instant, les cgroups nécessaires ne sont pas créés par défaut. Il faut, en tant que ''lxcuser-test'', lancer le script suivant avant de lancer le conteneur. | + | Il faut, en tant que ''lxcuser-test'', lancer le script suivant avant de lancer le conteneur. |
- | <code user>for d in /sys/fs/cgroup/* | + | <code bash /usr/local/bin/move-pid-to-cgroup>#!/bin/sh |
+ | PID=$1 | ||
+ | for d in /sys/fs/cgroup/* | ||
do | do | ||
- | f=$(basename $d) | + | echo $PID > $d/$USER/tasks |
- | echo "looking at $f" | + | |
- | if [ "$f" = "cpuset" ]; then | + | |
- | echo 1 | sudo tee -a $d/cgroup.clone_children; | + | |
- | elif [ "$f" = "memory" ]; then | + | |
- | echo 1 | sudo tee -a $d/memory.use_hierarchy; | + | |
- | fi | + | |
- | sudo mkdir -p $d/$USER | + | |
- | sudo chown -R $USER $d/$USER | + | |
- | echo $$ > $d/$USER/tasks | + | |
done</code> | done</code> | ||
+ | Via la commande | ||
+ | <code user>move-pid-to-cgroup $$</code> | ||
* Lancement | * Lancement |