Ergänzend zur Gluster Anleitung.
Um Gluster unter LXC einrichten zu können, sind weitere Schritte notwendig.
Diese werden notwendig, da es sich um keine Vollvirtualierung handelt und daher nicht alle Systempfade standardmäßig zur Verfügung stehen.
Beim einrichten und mounten des Glusterdevices kann es daher zu folgenden Fehlern in den Logverzeichnissen kommen:
Fuse Device
cannot open /dev/fuse (No such file or directory)
Lösung: Hier muss zuerst unter /var/lib/lxc/<LXC Name/LXC ID>/config
die Zeile lxc.cgroup.devices.allow = c <Major Nummer>:<Minor Nummer> rwm
hinzugefügt werden.
Die Major- und Minornummer sind hierbei eher unrelevant, da es sich um ein virtuelles Device handelt, die vergebenen Nummern müssen einfach nur frei sein.
Mit der Erweiterung der Config, wird dem Container erlaubt, unter der angegebenen Major/Minor ein weiteres Device anzulegen.
Welche noch frei sind, lässt sich mit einem ls -la /dev/
erkennen.
Beispiel:
brw-rw—— 1 root disk 8, 16 Feb 28 15:57 sdb
Hierbei liegt sdb physisch auf Major 8 und Minor 16.
Anschließend muss im LXC der Befehl mknod /dev/fuse c <vergebene Majornummer> <vergebene Minornummer>
benutzt werden.
Hier wird das entsprechend benötigte Fuse Device erzeugt.
Wichtig ist hierbei, dass das Verzeichnis nicht persistent ist.
Abhilfe schafft beispielsweiße ein Crontab „@reboot“ welcher das Verzeichnis erstellt.
Dies schützt dagegen nicht für cold reboots. Hier hilft nur ein Bash Script, welches regelmäßig prüft ob das Verzeichnis vorhanden ist und ggf. erstellt.
Apparmor
apparmor="DENIED" operation="mount"
Lösung: Unter /var/lib/lxc/<LXC Name/LXC ID>/config
die Zeile lxc.aa_profile=unconfined
eintragen.
Vorsicht!
Hierbei wir Apparmor im Container ausgeschaltet. Dies kann die Sicherheit des Containers und des Hostsystems beeinträchtigen.