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.

How does alpha util-vserver use them?

Using the default settings, alpha util-vserver creates a new namespace for each vserver. There are at least two points in doing this, one being cosmetic, one being related to security.

The cosmetic reason is that your host's namespace isn't cluttered with all those mounts inside the vservers. Security is added since alpha util-vserver also overlays the original root directory with the vserver's root directory (using a recursive bind mount), that way chroot break-outs fail since you end up being in the root directory which is now the vserver's root directory anyway ;) (you can also secure your vservers against chroot break-outs if you don't use namespaces, see chroot-barrier).

Drawbacks?

Yes, there are some drawbacks if you use namespaces for your vservers, but only minor ones.

Since namespaces are isolated from each other, you cannot directly add a mount to a vserver using "mount", instead you have to switch to the vserver's namespace first. Fortunately alpha util-vserver comes with a tool that allows you to switch to a vserver's namespace easily.

# To get a bash in the namespace of vserver "myvserver":
vnamespace -e myvserver bash
# The same in context 123
vnamespace -e 123 bash

# To mount something in the namespace of vserver "myvserver":
vnamespace -e myvserver mount /dev/somenode /path/to/mount/point
# To unmount something in the namespace of context 123
vnamespace -e 123 umount /path/to/mount/point

Recent versions of alpha util-vserver automatically translate a vserver-name to a context id, with older tools you may have to use the context id. Remember that if you do bind mounts, the source of the bind mount has to be already available in the vserver's namespace.

Using the new configuration scheme you can also configure mounts for a vserver in the configuration to be automatically setup while starting the vserver, see [The Great Flower Page] for details.