Difference between revisions of "Bind mounts"
(→Filesystem layout) |
m (Better wording to clarify that the additional script is not a replacement for the one above, but rather needs to be run first.) |
||
| (35 intermediate revisions by 14 users not shown) | |||
| Line 1: | Line 1: | ||
| − | |||
| − | |||
Bind mounts can be used to make directories on the hardware node visible to the container. | Bind mounts can be used to make directories on the hardware node visible to the container. | ||
| − | + | This is how you can make host system's <code>/mnt/disk</code> directory available to a container 777: | |
| − | + | <source lang="bash"> | |
| − | + | CTID=777 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | echo '#!/bin/bash | |
| − | + | . /etc/vz/vz.conf | |
| − | + | . ${VE_CONFFILE} | |
| − | + | SRC=/mnt/disk | |
| + | DST=/mnt/disk | ||
| + | if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi | ||
| + | mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC} | ||
| + | ' > /etc/vz/conf/${CTID}.mount | ||
| − | + | chmod +x /etc/vz/conf/${CTID}.mount | |
| + | </source> | ||
| − | + | If you want read-only mount, add <code>-r</code> option to mount command. | |
| − | + | {{Note|When specifying destination directory, always use /vz/root/ or ${VE_ROOT} env. variable <nowiki>(avoid using /vz/private)</nowiki>}} | |
| + | {{Note|When binding directories from one container to another, make sure you have proper boot order (See [[Man/vzctl.8|BOOTORDER]] param.)}} | ||
| − | |||
| − | |||
| − | |||
| − | + | '''Instruction above will not work on OpenVZ 7 until you run the script below to enable Bind mounts:''' | |
| + | <source lang="bash"> | ||
| + | cat <<'EOF' > /etc/vz/conf/vps.mount | ||
| + | #!/bin/bash | ||
| + | . ${VE_CONFFILE} | ||
| + | VE_MOUNT=$(echo ${VE_CONFFILE} | sed 's/\.conf$/.mount/') | ||
| + | [ -x ${VE_MOUNT} ] && . ${VE_MOUNT} | ||
| + | exit 0 | ||
| + | EOF | ||
| − | + | chmod +x /etc/vz/conf/vps.mount | |
| − | + | </source> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
== See also == | == See also == | ||
| + | * {{Man|vzctl|8}} (ACTION SCRIPTS section) | ||
* [[NFS]] | * [[NFS]] | ||
* [[FUSE]] | * [[FUSE]] | ||
* [[Mounting filesystems]] | * [[Mounting filesystems]] | ||
| + | |||
| + | [[Category:HOWTO]] | ||
Latest revision as of 13:17, 20 November 2017
Bind mounts can be used to make directories on the hardware node visible to the container.
This is how you can make host system's /mnt/disk directory available to a container 777:
CTID=777
echo '#!/bin/bash
. /etc/vz/vz.conf
. ${VE_CONFFILE}
SRC=/mnt/disk
DST=/mnt/disk
if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi
mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC}
' > /etc/vz/conf/${CTID}.mount
chmod +x /etc/vz/conf/${CTID}.mountIf you want read-only mount, add -r option to mount command.
| Note: When specifying destination directory, always use /vz/root/ or ${VE_ROOT} env. variable (avoid using /vz/private) |
| Note: When binding directories from one container to another, make sure you have proper boot order (See BOOTORDER param.) |
Instruction above will not work on OpenVZ 7 until you run the script below to enable Bind mounts:
cat <<'EOF' > /etc/vz/conf/vps.mount
#!/bin/bash
. ${VE_CONFFILE}
VE_MOUNT=$(echo ${VE_CONFFILE} | sed 's/\.conf$/.mount/')
[ -x ${VE_MOUNT} ] && . ${VE_MOUNT}
exit 0
EOF
chmod +x /etc/vz/conf/vps.mountSee alsoEdit
- vzctl(8) (ACTION SCRIPTS section)
- NFS
- FUSE
- Mounting filesystems