Difference between revisions of "Mounting filesystems"
($VZROOT, formatting) |
m (make good on promise in preceeding section to refer to /vz as /vz.) |
||
Line 36: | Line 36: | ||
The correct command to issue on the HN is: | The correct command to issue on the HN is: | ||
− | mount --bind /home | + | mount --bind /home /vz/root/777/home |
The VE must be started and the destination directory must exist. The VE will see this directory mounted like this: | The VE must be started and the destination directory must exist. The VE will see this directory mounted like this: |
Revision as of 20:42, 26 December 2007
Mounting filesystems within a VE
To mount filesystems inside a VE, you have several choices:
Bind mount from Hardware Node
Recent Linux kernels support an operation called 'bind mounting' which makes part of a mounted filesystem visible at some other mount point. See 'man bind' for more information.
Bind mounts can be used to make directories on the hardware node visible to the VE.
OpenVZ uses two directories. Assuming our VE is numbered 777, these directories are:
$VZROOT/private/777 $VZROOT/root/777
Note: $VZROOT is usually /vz , on Debian systems however this is /var/lib/vz . In this document this is further referred to as /vz .
|
The /vz/private directory contains root directory contents. This directory or subdirectory may be symlinked onto a different filesystem, for example:
/vz/private -> /mnt/openvz
Putting VE root directories onto a separate filesystem (not the hardware node root filesystem) is good storage management practice. It protects the Hardware Node root filesystem from being filled up by a VE; this could cause problems on the Hardware Node.
Requirement
On the HN we have a directory '/home' which we wish to make available (shared) to all VEs.
You would think that you could bind mount this directory, as in: 'mount --bind /home /vz/private/777/home' but this does not work — the contents of /home cannot be seen within the VE.
This is where the second directory listed above (/vz/root/777) is used. If a VE is not started, this directory is empty. But after starting a VE, this directory contains what the VE sees as its mounted filesystems.
The correct command to issue on the HN is:
mount --bind /home /vz/root/777/home
The VE must be started and the destination directory must exist. The VE will see this directory mounted like this:
# df Filesystem 1K-blocks Used Available Use% Mounted on simfs 10485760 298728 10187032 3% / tmpfs 484712 0 484712 0% /lib/init/rw tmpfs 484712 0 484712 0% /dev/shm ext3 117662052 104510764 7174408 94% /home