FUSE
This page describes how to setup FUSE (filesystem in userspace) inside a VE.
FUSE is a filesystem in which data and metadata are provided by an ordinary userspace process. The filesystem can be accessed normally through the kernel interface.
Contents
[hide]Preparations
To use FUSE you need the following:
- OpenVZ kernel version 028test005 or higher
- Fuse lib
- Any FUSE-based filesystem
In the examples below sshfs is used.
Setup
Kernel
Download appropriate kernel from openvz.org or compile kernel with CONFIG_FUSE_FS
option set
Libfuse
Compile libfuse in a VE without kernel module
# vzctl enter 100 # tar xzf fuse-2.6.0.tar.gz # cd fuse-2.6.0 # ./configure --disable-kernel-module ... # make ... # make install
![]() |
Note: Sometimes libfuse.so.X is unseen by your programs. Usually this file is installed in /usr/local/lib directory so don't forget to add it into your /etc/ld.so.conf
|
Filesystem
Download and compile filesystem.
# vzctl enter 100 # tar xzf sshfs-fuse-1.7.tar.gz # cd sshfs-fuse-1.7 # ./configure ... # make ... # make install
VE tuning
You need to make a characted device named /dev/fuse
and grant your VE permissions to it
# vzctl set 100 --devices c:10:229:rw --save ... # vzctl exec 100 mknod /dev/fuse c 10 229 ...
Mounting filesystem
After this you may try to mount FUSE in a VE
# vzctl enter 100 # sshfs root@foo.org:/root /mnt/foo.org.root
Unmounting filesystem
In case of sshfs
after umounting an appropriate daemon must be killed. This may be done by the following command:
# fusermount -u moutpoint
Using fusectl filesystem
Fusectl is a helper filesystem for FUSE. You may mount it in a VE as well
# vzctl enter 100 # mount -t fusectl none /fuse_ctl