The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxcfs/pull/194
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === Signed-off-by: Christian Brauner <[email protected]>
From d4096b667a2a2d0cca2773e12e579bfc9675eb8f Mon Sep 17 00:00:00 2001 From: Christian Brauner <[email protected]> Date: Mon, 19 Jun 2017 10:29:34 +0200 Subject: [PATCH] README: update Signed-off-by: Christian Brauner <[email protected]> --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b307d8f..2f24d6a 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,31 @@ # lxcfs ## Introduction -FUSE filesystem for LXC, offering the following features: - - a cgroupfs compatible view for unprivileged containers - - a set of cgroup-aware files: - - cpuinfo - - meminfo - - stat - - uptime +LXCFS is a small FUSE filesystem written with the intention of making Linux +containers feel more like a virtual machine. It started of as a side-project of +`LXC` but is by now useable by any runtime. -In other words, it will provide an emulated `/proc` and `/sys/fs/cgroup` folder for the containers. +LXCFS will take care that the information provided by crucial files in `procfs` +such as: + +``` +/proc/cpuinfo +/proc/diskstats +/proc/meminfo +/proc/stat +/proc/swaps +/proc/uptime +``` + +are container aware such that the values displayed (e.g. in `/proc/uptime`) +really reflect how long the container is running and not how long the host is +running. + +Prior to the implementation of cgroup namespaces by Serge Hallyn `LXCFS` also +provided a container aware `cgroupfs` tree. It took care that the container +only had access to cgroups underneath it's own cgroups and thus provided +additional safety. For systems without support for cgroup namespaces `LXCFS` +will still provide this feature. ## Usage The recommended command to run lxcfs is: @@ -17,6 +33,10 @@ The recommended command to run lxcfs is: sudo mkdir -p /var/lib/lxcfs sudo lxcfs /var/lib/lxcfs +A container runtime wishing to use `LXCFS` should then bind mount the +approriate files into the correct places on container startup. + +### LXC In order to use lxcfs with systemd-based containers, you can either use LXC 1.1 in which case it should work automatically, or otherwise, copy the `lxc.mount.hook` and `lxc.reboot.hook` files (once built) from this tree to @@ -28,3 +48,15 @@ lxc.autodev = 1 lxc.kmsg = 0 lxc.include = /usr/share/lxc/config/common.conf.d/00-lxcfs.conf ``` + +## Upgrading LXCFS without breaking running containers +LXCFS is implemented using a simple shared library without any external +dependencies other than `FUSE`. It is completely reloadable without having to +umount it. This ensures that container can be kept running even when the shared +library is upgraded. + +To force a reload of the shared library at the next possible instance simply +send `SIGUSR1` to the pid of the running `LXCFS` process. This can be as simple +as doing: + + kill -s USR1 $(pidof lxcfs)
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
