Fragen Betreff libvirt und lxc

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
minimike
Beiträge: 5594
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Fragen Betreff libvirt und lxc

Beitrag von minimike » 30.01.2018 01:02:52

Hi

Ich habe einen LXC-Container mit libvirt realisiert. Der Container läuft (mit CentOS 7.4 als Gast) Jetzt würde ich gerne 3 Sachen realisieren.

1.) Kann man da Hardware verbauen um remote 3D zu bekommen?

2.) Im Container würde ich gerne loop devices z.B. /dev/loop0 aus einer Datei raus anlegen können. NBD würde es auch zur Not tun

3.) In Containern würde ich zu gerne ich KVM betreiben. Akso es läuft dann nur ein Container mit KVM und jeweils einem speziellen Software-Setup. Ich habe einige tuts gesehen die sich aber auf ein Setup mit LXC ohne libvirt beziehen. Geht das auch wenn libvirt mit im Spiel ist?

Code: Alles auswählen

virsh # dumpxml controller
<domain type='lxc' id='10643'>
  <name>controller</name>
  <uuid>6f0a1f39-9fc3-450f-8fb7-484eec8c0dca</uuid>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64'>exe</type>
    <init>/sbin/init</init>
  </os>
  <features>
    <privnet/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/lib/libvirt/libvirt_lxc</emulator>
    <controller type='virtio-serial' index='0'/>
    <filesystem type='mount' accessmode='passthrough'>
      <source dir='/media/lxc/controller/'/>
      <target dir='/'/>
    </filesystem>
    <filesystem type='mount' accessmode='passthrough'>
      <source dir='/media/swift'/>
      <target dir='/srv'/>
    </filesystem>
    <interface type='bridge'>
      <mac address='00:16:3e:0b:2c:8b'/>
      <source bridge='vswitch1'/>
      <virtualport type='openvswitch'>
        <parameters interfaceid='acb4a677-cd23-43a0-ba6b-ab00cf51850c'/>
      </virtualport>
      <target dev='vnet5'/>
      <guest dev='eth0'/>
    </interface>
    <console type='pty' tty='/dev/pts/4'>
      <source path='/dev/pts/4'/>
      <target type='lxc' port='0'/>
      <alias name='console0'/>
    </console>
  </devices>
  <seclabel type='dynamic' model='apparmor' relabel='yes'>
    <label>libvirt-6f0a1f39-9fc3-450f-8fb7-484eec8c0dca</label>
    <imagelabel>libvirt-6f0a1f39-9fc3-450f-8fb7-484eec8c0dca</imagelabel>
  </seclabel>
</domain>
Kann ich das mit der Combo libvirt + lxc hinbekommen? Und wenn ja wie?
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: Fragen Betreff libvirt und lxc

Beitrag von NAB » 30.01.2018 05:08:25

Vorweg: ich hab lxc nie benutzt!

Zu 3.)
Macht der hier nicht genau das?
https://blog.a2o.si/2015/10/26/how-to-r ... container/

Zu 2.)
Wie du Dateisystemteile durchreichst, weißt du ja schon. Du kannst auch /dev/loopX reinreichen:
https://libvirt.org/formatdomain.html#e ... ostDevCaps
(Das sind Blockdevices, oder? Sonst "misc".)

Zu 1.)
Eh, was? "Remote 3D"?`Wo ist denn "remote"?
Soweit ich das verstanden habe, gibt's da zwei Möglichkeiten. Du kannst deinen X-Server durchreichen:
https://wiki.archlinux.org/index.php/Li ... g_programs
so dass der Container einzelne X-Programme auf deinen Schirm zeichnen kann. Wenn ich die Konsequenzen richtig begreife, müsstest du vom Container aus auch deinen X-Server killen können, wenn du z.B. im Container einen X-Server startest, der gemeine Sachen mit /dev/dri/card0 macht.
Demzufolge könntest du eine zusätzliche Karte auch gezielt als /dev/dri/card1 durchreichen.
Wenn du es eh remote betreibst, kannst du auch die primäre Grafikkarte durchreichen, so wie der hier das macht:
https://mraw.org/blog/2011/04/05/Running_X_from_LXC/
(vorsicht, uralt)
Wieweit Libvirt das unterstützt weiß ich nicht ... ich würd's gemäß 2.) versuchen, als "misc".

Zu 0.)
lxc is deprecated:
https://access.redhat.com/articles/1365153
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Antworten