Größe: 1189
Kommentar:
|
Größe: 3842
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 7: | Zeile 7: |
= Probleme = LXC ist noch in der Entwicklung, früher waren LXC-Container nicht ausbruchsicher, dies ist aber seit Debian Jessie nicht mehr der Fall siehe https://wiki.debian.org/LXC == Konvertierung eines Linux-VServer Gastes in einen LXC Container == http://schmidi2.blog.com/2010/10/25/migrating-from-vserver-to-lxc/ = Installation des Hosts = Der Anleitung im [[https://wiki.debian.org/LXC|Debian Wiki]] folgend, muss zunächst das LXC-Paket installiert werden: {{{ root@containers:~# apt-get install lxc Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: arch-test bridge-utils busybox-static cloud-image-utils debootstrap distro-info dns-root-data dnsmasq-base genisoimage libaio1 libglib2.0-0 libglib2.0-data liblxc1 libpam-cgfs lxc-templates lxcfs qemu-utils rsync shared-mime-info uidmap uuid-runtime xdg-user-dirs Suggested packages: cloud-utils-euca ubuntu-archive-keyring squid-deb-proxy-client shunit2 wodim cdrkit-doc btrfs-progs lvm2 python3-lxc qemu-block-extra The following NEW packages will be installed: arch-test bridge-utils busybox-static cloud-image-utils debootstrap distro-info dns-root-data dnsmasq-base genisoimage libaio1 libglib2.0-0 libglib2.0-data liblxc1 libpam-cgfs lxc lxc-templates lxcfs qemu-utils rsync shared-mime-info uidmap uuid-runtime xdg-user-dirs 0 upgraded, 23 newly installed, 0 to remove and 0 not upgraded. Need to get 8030 kB of archives. After this operation, 34.4 MB of additional disk space will be used. Do you want to continue? [Y/n] }}} = Vorbereitung der unprivilegierten Root-Container = Da die als VServer gedachten Container von Root während des Startes des Systems erzeugt werden, diese aber unprivilegiert sein sollen, muss ein uid- und gid-Bereich dem Nutzer Root zugewiesen werden (vergl. https://linuxcontainers.org/lxc/getting-started/#creating-unprivileged-containers-as-root): {{{ root@containers:/etc# git diff diff --git a/lxc/default.conf b/lxc/default.conf index d2d1d51..30231e3 100644 --- a/lxc/default.conf +++ b/lxc/default.conf @@ -1,3 +1,5 @@ lxc.net.0.type = empty lxc.apparmor.profile = generated lxc.apparmor.allow_nesting = 1 +lxc.idmap = u 0 100000 65536 +lxc.idmap = g 0 100000 65536 diff --git a/subgid b/subgid index dc7d014..44be50f 100644 --- a/subgid +++ b/subgid @@ -1,2 +1 @@ -dh:100000:65536 -bodo:165536:65536 +root:100000:65536 diff --git a/subuid b/subuid index dc7d014..44be50f 100644 --- a/subuid +++ b/subuid @@ -1,2 +1 @@ -dh:100000:65536 -bodo:165536:65536 +root:100000:65536 }}} |
Was ist LXC und warum machen wir damit VServer
LXC steht für Linux-Containers und ist eine Art virtueller Server für Linux. Dabei nutzen alle virtuellen Server-Instanzen den Kernel der Wirtsystems mit. Implementiert werden die Container in Linux über die Namespace Erweiterungen, die dafür sorgen, dass Prozesse in eigene Adressräume isoliert werden können. Da dies nicht nur Prozesse und Speicher, sondern auch Netzwerke umfasst, können hiermit vollständige virtuelle Server implementiert werde.
Bislang wurde bei PING die ältere Linux-VServer-Implentierung eingesetzt, die einen eigenen Kernel-Patch und Userspace-Tools implementiert. Bis zur Version Squeeze von Debian wurde dabei vom Debian-Kernel-Team ein entsprechend gepatchter Kernel zur Verfügung gestellt. Mit Release von Wheezy wurde dies allerdings zu Gunsten der weiter fortgeschrittenen Entwicklung der Linux-Containers entfernt.
Für Linux-Containers sind einige Optionen zu Namespaces zu aktivieren, was aber bei den Kernel-Images von Debian bereits der Fall ist. Es ist somit nur noch das Paket lxc zu installieren, welches die Userspace-Tools zu Erzeugung und Verwaltung der Container enthält.
Probleme
LXC ist noch in der Entwicklung, früher waren LXC-Container nicht ausbruchsicher, dies ist aber seit Debian Jessie nicht mehr der Fall siehe https://wiki.debian.org/LXC
Konvertierung eines Linux-VServer Gastes in einen LXC Container
http://schmidi2.blog.com/2010/10/25/migrating-from-vserver-to-lxc/
Installation des Hosts
Der Anleitung im Debian Wiki folgend, muss zunächst das LXC-Paket installiert werden:
root@containers:~# apt-get install lxc Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: arch-test bridge-utils busybox-static cloud-image-utils debootstrap distro-info dns-root-data dnsmasq-base genisoimage libaio1 libglib2.0-0 libglib2.0-data liblxc1 libpam-cgfs lxc-templates lxcfs qemu-utils rsync shared-mime-info uidmap uuid-runtime xdg-user-dirs Suggested packages: cloud-utils-euca ubuntu-archive-keyring squid-deb-proxy-client shunit2 wodim cdrkit-doc btrfs-progs lvm2 python3-lxc qemu-block-extra The following NEW packages will be installed: arch-test bridge-utils busybox-static cloud-image-utils debootstrap distro-info dns-root-data dnsmasq-base genisoimage libaio1 libglib2.0-0 libglib2.0-data liblxc1 libpam-cgfs lxc lxc-templates lxcfs qemu-utils rsync shared-mime-info uidmap uuid-runtime xdg-user-dirs 0 upgraded, 23 newly installed, 0 to remove and 0 not upgraded. Need to get 8030 kB of archives. After this operation, 34.4 MB of additional disk space will be used. Do you want to continue? [Y/n]
Vorbereitung der unprivilegierten Root-Container
Da die als VServer gedachten Container von Root während des Startes des Systems erzeugt werden, diese aber unprivilegiert sein sollen, muss ein uid- und gid-Bereich dem Nutzer Root zugewiesen werden (vergl. https://linuxcontainers.org/lxc/getting-started/#creating-unprivileged-containers-as-root):
root@containers:/etc# git diff diff --git a/lxc/default.conf b/lxc/default.conf index d2d1d51..30231e3 100644 --- a/lxc/default.conf +++ b/lxc/default.conf @@ -1,3 +1,5 @@ lxc.net.0.type = empty lxc.apparmor.profile = generated lxc.apparmor.allow_nesting = 1 +lxc.idmap = u 0 100000 65536 +lxc.idmap = g 0 100000 65536 diff --git a/subgid b/subgid index dc7d014..44be50f 100644 --- a/subgid +++ b/subgid @@ -1,2 +1 @@ -dh:100000:65536 -bodo:165536:65536 +root:100000:65536 diff --git a/subuid b/subuid index dc7d014..44be50f 100644 --- a/subuid +++ b/subuid @@ -1,2 +1 @@ -dh:100000:65536 -bodo:165536:65536 +root:100000:65536