[lxc-devel] [lxcfs/master] README: update
brauner on Github
lxc-bot at linuxcontainers.org
Mon Jun 19 09:07:35 UTC 2017
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 365 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20170619/ddbe3b9e/attachment.bin>
-------------- next part --------------
From d4096b667a2a2d0cca2773e12e579bfc9675eb8f Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Mon, 19 Jun 2017 10:29:34 +0200
Subject: [PATCH] README: update
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
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)
More information about the lxc-devel
mailing list