Posts router status mathematics

lxc auf odroid-u2 / gentoo

Ich nenne ja schon geraume Zeit ein ODROID-U2 mein Eigen.

Zur Zeit nutze ich es als

  • wLan-router
  • file-server
  • http-server
  • etc

Da sich die 4 cores bei diesen Aufgaben allerdings immer langweilen, ich gerade etwas Zeit habe und schon immer einen terminal-Server haben wollte. Habe ich mich etwas mit lxc beschäftigt. Der terminal-Server soll natürlich vom essentiellen Server-System etwas abgeschottet sein und dafür bot sich ein lxc-Container an. Alternativen ließen sich leider nicht umsetzten :

  • virtualbox ( nur x86/x86_64 )
  • qemu ( der arm Cortex-A9 Prozessor auf dem odroid kann leider kein LPAE ( Large Physical Address Extensions ), dies ist aber Vorraussetzung für das kvm Kernel-Modul, ab diesem Punkt habe ich qemu nicht weiter verfolgt

LXC installiert man straightforward mit einem simplen emerge. Danach habe ich noch einige Pfade angepasst, damit die Container nicht auf meiner SD-Card landen ( welche nur das Basis-System beinhaltet ) sondern auf der externen Hard-Disk gespeichert werden.

  • lxc.rootfs = /pfadZumRootfsDerContainer, sollte man in /etc/lxc/default.conf setzen, dort wird dann das rootfs abgelegt
  • /var/cache/lxc/, kann über simples sym-linken verschoben werden, dient als cache für die container-Installationen
  • /var/lib/lxc/, kann über simples sym-linken verschoben werden, beinhaltet die spezifischen Container

Danach kann man mit lxc-create -n guestname -t gentoo den Container erstellen lassen. Siehe auch Gentoo Wiki LXC. An der config des Containers habe ich nichtmehr viel anpassen müssen. Das Netzwerk übernehmen ich vom Host (im Container dhcp-deaktivieren !) deswegen :

  • lxc.network.type = none
  • lxc.cgroup.memory.limit_in_bytes = 1500M
  • lxc.cgroup.memory.memsw.limit_in_bytes = 4G

Zugriff erfolgt über ssh auf einem anderen Port als der ssh-Zugang auf dem Host-System.

Fallstricke :

  • der container startet das init-script sysctl und verändert damit die Einstellungen am host ( ich hatte keine Internet-Verbindung mehr, weil ip-forwarding auf einmal deaktiviert war)
  • das gentoo-template für arm benutzt mfloat-abi=softfp, das habe ich leider zu spät entdeckt