vserver 0.4 changes log

vserver 0.4 changes log

previous versions: 0.3
Change log index


/usr/lib/vserver/vunify utility: new

The vunify script is used to unify the disk space used by several vservers. Vservers are running in chroot environment. As such, they can't share files. This is useful (secure, flexible), but annoying: Not fun having glibc installed 10 times for example.

It is possible to share files using hard links. vunify was created to merge common package using hard link so they use the same disk space. It works like this

/usr/lib/vserver/vunify refserver serv1 serv2 serv3 -- pkg1 pkg2 pkg3 ...

refserver is the reference server. serv1 to serv3 are other vservers and all vservers have a copy of the same RPM packages pkg1, pkg2. The utility will extract the list of file own by the various packages. Configuration files are omitted from the list. Then it will walk the vservers and erase the files and setup a hard link pointing to the file in refserver. Once done, it will turn the file immutable bit. This bit prevent the vservers from modifying the file. Even root can't do it. You will end up saving a log of disk space. You may gain some performance as well since the various shared object will be loaded only once in memory for all vservers. This could be noticeable if you have many vservers.

Experiment have shown that unifying the packages bash, glibc, perl and binutils save 60 megabytes per vserver. Given those package seldom change, this is a nice saving.

vunify also feature a --undo option to un-unify some package. It turns off the immutable bit and place a copy of the files in each vservers. This can be useful if you intend to update one package.

Have fun!

vserver command enhancement

The build option now turn off all service in the newly created vserver. this is useful because in general, a vserver runs few services. Further, many common services found in Linux are useless in a vserver environment. So after installing a vserver "enter" it (vserver VSERVER-name enter) and enable the service you need with either Linuxconf or chkconfig.

Bug fixes

rebootmgr service missing

vserver 0.3 has introduced a new service called rebootmgr allowing virtual server to request a reboot (of themselves). Unfortunately the sysv init script was missing in the package.