We currently migrate to MediaWiki from our old installation, but not all content has been migrated yet. Take a look at the Wiki Team page for instructions how to help or browse through our new wiki at wiki.linux-vserver.org to find the information already migrated.

Namespaces

Vous avez peut-être entendu parler des "namespaces" (espaces de nom) qu'utilise alpha util-vserver, et vous vous demandez a quoi ca sert, et qu'est-ce que c'est . Le petit document qui suit vous donne l'explication.

Qu'est ce que les namespaces?

Les Namespaces sont une fonctionnalité du noyau Linux, qui permet à différents processus d'avoir chacun une vue différente sur le système de fichier. Normalement, vous n'avez qu'une seule et unique arborescence de fichiers avec des montages par ci, par la. Avec les namespaces, vous pouvez maintenant avoir différentes partitions montées pour chaque ensemble de processus souhaité.

En clair, soient A et B deux processus dans différents namespaces, (dé)monter une partition dans l'un des namespace n'affectera pas l'autre namespace. Lorsque vous montez un système de fichier, il va apparaitre uniquement dans le namespace courant, de même lorsque vous le démontez. Les namespaces sont détruits automatiquement lorsque tous les processus utilisant ce namespace sont morts.

De plus, tous les montages sont automatiquement démontés. Vous n'avez plus à vous occuper des montages orphelins, qui vous empecheraient, par exemple, d'ejecter votre cd-rom, si bien entendu, vous avez tué tous les processus qui en faisaient usage.

Comment les outils alpha util-vserver utilisent les namespace ?

Lorsque vous utilisez les paramètres par défaut, les outils alpha util-vserver créent un namespace pour chaque nouveau vserver. Il observer au moins deux choses à cet instant, l'une purement esthétique, l'autre en rapport avec la sécurité.

Au niveau esthétique, l'espace de noms (namespace) de votre serveur hôte n'est pas encombré par tous ces montages utilisés par chacun des vservers.

Au niveau sécurité, il y a un gain certain, puisque les outils alpha util-vserver masquent la racine originelle du vserver par la racine du vserver (en utilisant un appel récursif à mount), toute tentative d'échapper au chroot sera donc infructueuse, la racine du vserver étant, de toute manière, elle-même... (même si vous n'utilisez pas les namespaces, vous pouvez aussi sécuriser vos vserver contre les tentatives pour échapper au chroot, voir chroot-barrier-french).

Inconvenients?

Oui, il y a quelques inconvénients à utiliser les namespace pour vos vserver, mais ils sont mineurs.

Puisque les espaces de noms sont isolés les uns des autres, vous ne pouvez pas utiliser directement "mount". A la place, vous devez entrer dans l'espace de nom du vserver d'abbord. Heureusement, les outils alpha util-vserver sont fournis avec un outil permettant d'entrer dans le namespace d'un vserver facilement.

# Pour lancer un bash dans le namespace du vserver "mon_vserver":
vnamespace -e mon_vserver bash
# Même chose pour entrer dans le contexte 123
vnamespace -e 123 bash

# Pour monter un système de fichier dans le namespace du vserver "mon_vserver":
vnamespace -e mon_vserver mount /dev/peripherique /point/de/montage
# Pour démonter un système de fichier du contexte 123
vnamespace -e 123 umount /path/to/mount/point

Les versions récentes des outils alpha util-vserver traduisent automatiquement le nom d'un vserver en context id, alors que dans les anciennes versions, il fallait utiliser le context id. Souvenez vous que pour monter un système de fichier, sa source doit déjà être visible dans le namespace du contexte en question.

Avec une configuration récente, vous pouvez configurer vos montages pour un vserver donné, de manière à ce qu'il soit automatiquement mis en place au démarrage du vserver. Voir pour celà:

[The Great Flower Page] for details.