close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 7 years ago

Last modified 16 months ago

#3338 reopened Aufgabe

Projekt: SHeilA mit qed

Reported by: bau Owned by: bau
Priority: bei Gelegenheit Milestone: Wunschliste
Component: Server: LML-Server (paedml) Severity: beeinträchtigt den Unterricht einiger Lehrer
Keywords: Cc:

Description

Nach den Erfolgen mit den VM im Schülernetz (virtuelles XP) und Lehrernetz (virtuelles Win 7) und den positiven Erfahrungen mit den Bücherkellerrechnern (virtuelles XP auf einem minimalen Debian 8) kann diese Entwicklung fortgeführt werden zu SHeilA (SelbstHeilendeArbeitsstationen), die sich per Reboot heilen lassen.

  1. Für Windows-Systeme
    • minimales Debian
    • minimales X
    • virtualBox
    • qemu-utils
    • Windows in einem qed-Container installiert, der wird per torrent verteilt
    • ballon-qed über den Container legen und bei jedem Start neu erzeugen
    • oder den ballon per Menü-Auswahl entfernen
    • USB-* Methode für Virtualbox leitet alle USB-Geräte an die VM weiter
  1. Für Linux-Systeme
    • ein bestehendes System (Ubuntu) wird in ein qed-Image verpackt
    • ctorrent muss in der initramfs vorhanden sein (-> Script /etc/initramfs-tools/hooks/linboE einfügen -> copy_exec, Beispiele unter /usr/share/initramfs-tools/hooks)
    • die initramfs muss das Modul nbd aus qemu-utils laden (/etc/initramfs-tools/modules)
    • anschließend vor dem Kernelboot ein Script (/etc/initramfs-tools/scripts/init-premount/linboE) ausführen, welches das qed per torrent holt, einen Ballon drüberlegt und den Ballon als device bereitstellt:
         qemu-img create -f qed -b system.qed ballon.qed
         qemu-nbd -c /dev/nbd0 ballon.qed
      
    • dann booten von root=/dev/nbd0p1

Change History (9)

comment:1 by bau, 7 years ago

Querverweis: #3117

comment:2 by lehm, 6 years ago

Resolution: → ungültig
Status: new → closed

Noch aktuell?

comment:3 by bau, 6 years ago

Resolution: ungültig
Status: closed → reopened

Ja, brandaktuell - nur leider noch nicht umgesetzt

comment:4 by Rüdiger Kupper, 5 years ago

Component: Software (Ubuntu) → Server (paedml)
Milestone: Schuljahr 2019/20 → Wunschliste
Priority: normal → gering

Wohl eher ein Wunsch?

comment:5 by bau, 5 years ago

Ein sehr innovativer Wunsch, der technisch super laufen würde - woher soll aber die Zeit kommen, um das zu entwickeln - lassen wir das mal weiter offen :-(

comment:6 by bau, 4 years ago

Zur Frage: qcow2 oder qed:
"Es (Anm.: qed) bietet weniger Funktionen als qcow2, aber ermöglicht aber wesentlich schnellere Zugriffe und sorgt für bessere Datenintegrität."

​http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Speichermedien/_Image-Formate

Zudem ist VirtualBox nur in der Lage qed zu benutzen, nicht qcow2. Somit sollten wir uns auf qed beschränken.

comment:7 by bau, 4 years ago

Das da: ​https://manpages.ubuntu.com/manpages/xenial/man8/initramfs-tools.8.html beschreibt ziemlich genau, was ich beim Booten machen möchte: Mittels des HOOK-Scripts wird der Kerneltreiber (nbd / qemu-nbd) in das initramfs gepackt, mittels des BOOT-Scripts wird das Kernelmodul geladen (vgl: ​https://gist.github.com/shamil/62935d9b456a6f9877b5).

Anschließend steht dann /dev/nbd0 als Blockdevice zur Verfügung, darin muss wohl noch mit fdisk eine Partition erstellt werden und dann sollte das als Kernelparameter root=/dev/nbd0p1 booten.

Unter ​https://gluster-users.gluster.narkive.com/M5aRjHCl/netboot-pxe-boot-from-glusterfs beschreibt jemand, wie man von glusterfs / tftp booten kann.

comment:8 by bau, 4 years ago

Insgesamt müsste es so gehen:

  • den Kernel von irgendwoher booten (tftp/nfs oder glusterfs oder lokale Platte)
  • ein mini-Linux bereitstellen
  • auf dem Server konfigurierbar oder lokal auswählbar:
    • booten eines Imagefiles
    • mit oder ohne Ballon-File
    • Ballon-File neu erstellen oder altes benutzen oder ein vorgefertigtes benutzen
    • Imagefiles per Torrent holen / per ctorrent bereitstellen
  • per chroot mit dem Imagefile weiter booten
Note: See TracTickets for help on using tickets.