• Und wer ist…?
  • Holiday Berichte
    • Urlaub Schottland 2013
    • Urlaub Griechenland 2013
  • Services
  • Kontakt/GnuPG

KOKOLOR.ES

Hier geht's einfach mal um alles und nichts!

wheezy

Container Virtualisierung mit LXC unter Debian

20. Februar 2014 by Sebastian 4 Comments

Mich interessiert das Thema rund um die Container Virtualisierung LXC seitdem ich durch Zufall über einen Vortrag von Thomas Krenn auf youtube gestolpert bin. Da hab ich mich immer mal ein bisschen zu informiert, aber hab irgendwie nie so wirklich mal selbst rumprobiert. Nach einem Beitrag über LXC in der iX 2/2014 juckte es mir dann doch gewaltig in den Fingern. Nochmal zur Erklärung was LXC überhaupt ist, für die die es nicht wissen:

LXC (LinuX Containers) ist ein leichtgewichtige Alternative zur Virtualisierung mit Hypervisoren. Besonders eignet es sich, wenn sehr viele Linux-Gäste auf einem Host laufen sollen oder für die Isolierung einzelner Anwendendungen auf einem Host. Sie erlauben eine bessere Ressourcenauslastung bei nahezu nativer Performance der Container. Außerdem sind sie wesentlich schlanker als ihre Hypervisor-Pendants. Gastssysteme werden als einfache Unterverzeichnisse realisiert, aus denen der Host jeweils eine isolierte chroot-Umgebung startet. Der Boot Zyklus eines Containers startet dabei erst beim Aufruf von /sbin/init. Alle unterhalb dieses Punktes existierenden Ressourcen wie der Kernel, teilen sich alle Container, weshalb es auch nicht möglich ist andere Betriebssysteme wie Windows als LXC-Gast zu starten.

Ich werde heute erstmal die Installation von LXC 1.0.0-rc3 auf Debian Wheezy und die erste Benutzung niederschreiben. Es gibt zwar schon eine gute Anzahl von Anleitungen, überwiegend für Ubuntu – aber das war mir zu leicht mit ppa und so. Die Anleitungen für Debian waren irgendwie größten Teils nicht vollständig oder für ältere Versionen von LXC. Deshalb habe ich mal alles mitgeschrieben, was ich so gemacht habe und im Anschluss ist es mir auch gelungen innerhalb von 15 min das ganze lauffähig zu bekommen

Vorbereiten des Hosts

Installieren von Paketen die LXC benötigt, wobei bridge-utils optional ist, je nachdem für welche Netzwerkkonfiguration man sich entscheidet

apt-get install debootstrap bridge-utils

Als nächstes muss man das cgroup Dateisystem automatisch einhängen lassen. Dazu muss die /etc/fstab um folgende Zeile ergänzt werden

cgroup  /sys/fs/cgroup  cgroup  defaults  0   0

Um den Memory cgroup support (CONFIG_CGROUP_MEM_RES_CTLR) und Swap cgroup support (CONFIG_CGROUP_MEM_RES_CTLR_SWAP) zu aktivieren, welcher zwar seit Kernel 2.6.39-bpo60-2 integriert ist, aber per default deaktiviert ist, muss man folgendes in der /etc/default/grub ändern, bzw. ergänzen

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

Anschließend den grub updaten

update-grub

und einen Neustart.

Kompilieren

Als erstes mal git installieren

apt-get install git

und anschließend die Sourcen runterladen

git clone git://github.com/lxc/lxc

Noch ein paar Pakete zum kompilieren installieren

apt-get install build-essential automake pkg-config

Nun die autogen.sh im Ordner lxc ausführen, welche die configure Datei generiert

cd lxc/
./autogen.sh

Nochmal ein bzw. zwei zusätzliche Paket installieren, denn das Paket docbook2x wird nur benötigt falls ihr bei configure die Option für Manuals mit übergebt

apt-get install libcap-dev docbook2x

Jetzt sollte configure ohne Probleme durchlaufen. Ich habe noch ein paar zusätzliche Optionen für Pfade übergeben, aber die kann man sich auch im Help von configure durchlesen

./configure --enable-doc --with-init-script=sysvinit --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib --includedir=/usr/include --datarootdir=/usr/share --sysconfdir=/etc --localstatedir=/var
  • –enable-doc – Erstell manpages
  • –with-init-script=sysvinit – Welche Typen von initscripts installiert werden sollen

Sollte das geklappt haben kann man den Spass nun kompilieren und installieren

make
make install

Anlegen eines ersten Containers mit Netzwerk

Sollte die Installation ohne Probleme durchgelaufen sein ist LXC installiert und es kann mit lxc-checkconfig geprüft werden ob alle Voraussetzungen erfüllt sind

lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-3.2.0-4-amd64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled

--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled

--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled

Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig

Einen neuen Container legt man wie folgt an

lxc-create -n c1 -t debian

-n gibt dabei den Namen des Containers und -t das Template (verfügbare Templates liegen unter /usr/share/lxc/templates) an. In früheren Versionen ist das Debian Template übrigens kaputt (z.B. Version im Repository), dafür kann man dann dieses Template verwenden.
Das erste anlegen eines Containers dauert etwas, da er erstmal die Dateien herunter laden muss. Das anlegen künftiger Container geschieht in wenigen Sekunden, da die Dateien lediglich aus dem Cache in den Ordner des neuen Containers gesynct werden.
Standartmäßig wird mit diesem Befehl im Verzeichnis /var/lib/lxc ein Unterverzeichnis mit dem Containernamen erstellt, welcher die Containerkonfiguration und das rootfs enthält. In unserem Fall also /var/lib/lxc/c1. Die config Datei sollte wie folgt aussehen

# Template used to create this container: /usr/share/lxc/templates/lxc-debian
# Parameters passed to the template:
# For additional config options, please look at lxc.conf(5)
lxc.network.type = empty
lxc.rootfs = /var/lib/lxc/c1/rootfs

# Common configuration
lxc.include = /usr/share/lxc/config/debian.common.conf

# Container specific configuration
lxc.mount = /var/lib/lxc/c1/fstab
lxc.utsname = c1
lxc.arch = amd64

Als Netzwerktyp ist derzeit noch empty angegeben, da wir aber eine Netzwerkverbindung haben wollen ergänzen wir die Datei mit folgenden Einträgen

# Network configuration
lxc.network.name = veth0           # Name des Interfaces im Container
lxc.network.flags = up
lxc.network.link = br0             # Bridge Interface auf dem Host
lxc.network.veth.pair = veth0-sid  # Interface auf dem Host welches benutzt wird um LXC zum Host zu connecten
lxc.network.ipv4 = 192.168.1.1/24  # IP Adresse des Containers
lxc.network.ipv4.gateway = 192.168.1.254

In der Zeile lxc.network.type muss noch das empty durch veth ersetzt werden. Andere Beispiele liegen unter /usr/share/doc/lxc/examples.
Meine /etc/network/interfaces auf dem Host habe ich dann wie folgt angepasst:

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
        up iptables -t nat -F POSTROUTING
        up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

auto br0
iface br0 inet static
      address 192.168.1.254
      netmask 255.255.255.0
      bridge_ports none

Nun muss noch das IPv4 Forwarding aktiviert werden. In der Datei /etc/sysctl.conf folgende Zeile hinzufügen oder die vorhandene suchen und unkommentieren (mir fällt grad das Wort nicht ein :D )

net.ipv4.ip_forward=1

Mit diesen Einstellungen sollte der Container mit der Außenwelt kommunizieren können. Um das zu testen tut man folgendes

sysctl net.ipv4.ip_forward=1
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ifup br0

lxc-start -n c1 -d

-n gibt den Namen des Containers an und -d das er als Daemon laufen soll. Mit dem Befehl

lxc-console -n c1

kann man sich nun mit dem Container verbinden und auf diesem mit root root einloggen.

So das soll es erstmal gewesen sein. Ich werde denke mal in Zukunft weiter berichten, wenn ich damit noch mehr rummgespielt hab.

Quellen: Debian Wiki – LXC, coderwall – Clean LXC + NAT configuration (Debian Wheezy)

Posted in: Allgemein, IT, Linux, Opensource Tagged: cgroup, debian, linux, lxc, virtualization, wheezy

Debian Wheezy auf mein Hauptrechner

15. Februar 2013 by Sebastian Leave a Comment

Nachdem ich mir vor kurzem beim Versuch Cinnamon 1.6 zu installieren das ganze System zerschossen hab und es auch nicht mehr repariert bekommen hab, habe ich mich nun entschieden, wie auf meinem Notebook Debian Wheezy zu installieren. Wie ihr seht bin damit sehr zufrieden auf meinem Notebook und es läuft auf diesem auch sehr viel schneller als Ubuntu.

Ich brauchte keine Datensicherung machen, da meine /home Partition eh auf einer anderen Platte liegt und das System auf meine SSD kommt (geht ab wie Smitz Katze :D ).

Bei der Installation kam direkt ein Problem, meine Netzwerkkarte wurde nicht erkannt, also noch schnell Realtek Firmware für meine RTL8168e bei Debian runtergeladen und in den /firmware Ordner des Sticks gepackt und schon gings weiter. Die Installation lief ohne weitere Probleme durch und das System bootete. Nun, wie ich mir schon dachte musste ich erst mal wieder die Radeon Opensource Treiber installieren, aber nach einem Neustart funzte es noch immer nicht. Nach einem Blick in dmesg fand ich auch schnell die Lösung:

[    8.891102] [drm] radeon kernel modesetting disabled; it requires firmware-linux-nonfree.

Also firmware-linux-nonfree installiert und nach einem Neustart funktionierte es nun. Auf meinem Hauptrechner ist Gnome3 noch viel schneller als auf meinem Notebook, das macht richtig Spass.

Beim einrichten meines Systems musste ich noch ein paar Änderungen vornehmen, wie bei meinem Notebook, die ich allerdings noch nicht beschrieben hatte. Die die ich bereits im Notebook Beitrag beschrieben hab lass ich hier aus, Bsp. gvfs-fuse. Da war zum einen das Dock von Gnome3 welches per Default immer rechts im Bildschirm ist. Das ist natürlich extrem hinderlich beim scrollen im Browser oder so. Hier muss die Datei

/usr/share/gnome-shell/extensions/dock\@gnome-shell-extensions.gcampax.github.com/extension.js

bearbeitet werden und unter const PositionMode der Wert bei Right auf 0 und bei Left auf 1 gesetzt werden. Wie ihr seht gibt es dazu noch keine grafische Oberfläche worüber man das einstellen kann. Weiter ging es mit OpenVPN. Hier musste ich noch das Plugin für den Networkmanager installieren, welches da heißt network-manager-openvpn-gnome. Als nächstes kam Skype dran, hier muss man auf einem 64 Bit System dpkg mitteilen das er auch 32 Bit installieren soll:

dpkg –add-architecture i386 && apt-get update

Danach funktionierte auch hier alles super.

Im Anschluss musste ich direkt testen was ich schon seit langer Zeit vor hatte -> Steam. Nach der Anleitung auf der Steam Community ging dies auch recht schnell und es sieht echt gut aus. Ich bin nahezu begeistert :)

Steam_under_wheezy

 

UPDATE: CS1.6 funktioniert auch, allerdings gibt es hier ein paar FPS Probleme. Man bekommt nich mehr als 60fps, wodurch das Spiel merklich „langsam“ wird, wie als ob das Bild nachzieht. Nach Abschalten von Vsync sind zwar wieder 100fps drin, allerdings lagt dann das Bild beim drehen, nich extrem aber doch merklich. Das werd ich mir nochmal anschauen müssen.

 

Posted in: IT, Linux Tagged: ati, debian, gnome, linux, mint, realtek, steam, wheezy

Debian Wheezy auf meinem eeePC 1015px

12. Januar 2013 by Sebastian Leave a Comment

Weil schon seit einer Weile meine Linux Mint Version auf meinem Notebook nicht mehr supported wurde, habe ich mich schon seit längerem entschlossen mein Notebook neu aufzusetzen, nur hatte ich bisher noch keine Distribution gefunden welche ich aufspielen wollte. Diese habe ich bisher durchgetestet:

  • Sabayon 10
  • Linux Mint 13 MATE
  • Linux Mint 13 Cinnamon

Ich hatte auch mal eine Zeit lang überlegt Gentoo aufzuspielen, aber da wurde mir von einem Kollegen abgeraten. Eigentlich bin ich ein großer Mint Fan, aber die MATE Version war mir noch zu buggy und unschön designt. Die Cinnamon Version welche ich auf Arbeit und meinem großen Rechner benutze funktionierte zwar bisher am besten von den dreien auf meinem Netbook, allerdings gab es auch hier ein paar Probleme die mich nach einiger Zeit aufregten. Also dachte ich mir schlussendlich „Du hast mit Debian angefangen, also Back to the Roots“. Somit habe ich es heute endlich angepackt und auf Arbeit ein Backup gemacht und Debian Wheezy installiert.

Nach der Installation war ich überaus positiv überrascht, denn mein größtes bedenken war ob mir Gnome 3 gefallen würde, da ich bisher eigentlich nur negatives gehört/gelesen habe. Für mich kann ich aber sagen, dem ist nicht so. Ich find Gnome 3 richtig super, es läuft flüssig und keine Abstürze (Cinnamon stürtzte auf meinem Netbook bespielsweise regelmäßig ab). Es ist zwar etwas gewöhnungsbedürftig, aber das is nicht sooo wild. Das zweite war was mir bedenken bereitete war die Debian eigene Anpassung von Thunderbird, genannt Icedove, allerdings ist die auch recht gut gelungen, auch wenn sie nicht so aktuell war. Wenn ich mir überlege wie gruselig früher Iceweasel (der Debian Firefox) war, haben die echt mächtige Fortschritte gemacht.

Nach der Installation musste ich noch die Wireless Firmware installieren (BCM4313), welches ich so tat:

nano /etc/apt/sources.list

Hinzufügen von

deb http://ftp.us.debian.org/debian wheezy main contrib non-free

Und weiter mit

aptitude update

aptitude install firmware-brcm80211 wireless-tools

modprobe -r brcmsmac ; modprobe brcmsmac

Danach funktionierte mein WLAN und ich konnte gemütlich auf der Couch weitermachen. Nachdem ich dann mplayer und VLC installiert hatte und diese testen wollte, indem ich von meiner NAS via SMB eine Anime Folge schauen wollte, wurde mir dies aber verweigert, da sich die Player weigerten die Dateien via smb-Link abzuspielen. Hier fehlte mir der FUSE Daemon für das Gnome Virtual File System, kurz gvfs-fuse, welcher dafür verantwortlich ist das Samba Share in mein Homeverzeichnis zu mounten, damit auch nicht GVFS Applikationen darauf zugreifen können.

aptitude install gvfs-fuse

Danach musste ich noch meinen User zur fuse Gruppe hinzufügen, damit er auch Zugriff bekommt:

gpasswd -a username fuse

Nun musste ich mich noch einmal Aus- und wieder Einloggen und schon konnte ich meine Filme von der NAS schauen.

Das waren bisher auch erstmal für heute. Wie gesagt bis jetzt bin ich sowas von zufrieden. Back to the Roots war also ein gute Entscheidung :)

Posted in: IT, Linux Tagged: asus, debian, eeepc, gnome, linux, mint, wheezy

Social Shit

Fediverse PGP-Key XMPP Matrix Git Github

Kategorien

  • Allgemein
  • Android
  • Anime
  • Arbeit
  • Entertainment
  • Games
  • Handy
  • IT
  • Linux
  • Monitoring
  • Netzwerk
  • Opensource
  • Privates
  • QEK Junior
  • Rattis
  • Showtime Ost
  • Showtime West
  • Windows

Interessantes

  • 5222.de
  • chr.istoph's Blog
  • Lainblog
  • World of Edolas

Archive

  • Juni 2023
  • August 2019
  • Oktober 2018
  • März 2018
  • Dezember 2017
  • Juli 2017
  • Juni 2017
  • Mai 2017
  • März 2017
  • Februar 2017
  • Januar 2017
  • Dezember 2016
  • November 2016
  • September 2016
  • August 2016
  • Juli 2016
  • Juni 2016
  • Mai 2016
  • April 2016
  • März 2016
  • Februar 2016
  • Dezember 2015
  • November 2015
  • September 2015
  • August 2015
  • Juli 2015
  • Juni 2015
  • Mai 2015
  • April 2015
  • März 2015
  • Februar 2015
  • November 2014
  • Oktober 2014
  • August 2014
  • Juli 2014
  • Juni 2014
  • Mai 2014
  • April 2014
  • März 2014
  • Februar 2014
  • Dezember 2013
  • November 2013
  • Oktober 2013
  • September 2013
  • August 2013
  • Juli 2013
  • April 2013
  • März 2013
  • Februar 2013
  • Januar 2013
  • Dezember 2012
  • November 2012
  • September 2012
  • Juli 2012
  • Juni 2012
  • Mai 2012
  • Februar 2012
  • Januar 2012

Tags

android anime apt bash bugs debian freifunk freifunk-aachen gnome hardware htpc kernel linux lucid lxc mdadm mint monitoring mysql network nginx openwrt outdoor package pgp php postgres precise raid redmine squeeze telekom testing trusty ubuntu virtualization vserver wheezy windows xbmc xenial xorg xubuntu zabbix zarafa

Datenschutzerklärung | Impressum

Copyright © 2025 KOKOLOR.ES.

Omega WordPress Theme by ThemeHall