Strategie für Dateisystemberechtigungen für freigegebenen KVM-Ordner

578
AlanObject

Ich habe eine Ubuntu / KVM-Hypervisor-Umgebung, die Zugriff (über NFS) auf ZFS-Dateien (auch Dateisysteme) hat. Ich habe die VM-Images auf einem ZFS-Dateisystem gehostet, das, obwohl nicht das schnellste der Welt, sehr stabil macht.

Was ich möchte, ist, den Gast-VMs direkten Zugriff auf ein ZFS-Dateisystem zu gewähren, indem sie eine gemeinsam genutzte KVM-Funktion verwenden, um VMs Zugriff auf eine ZFS-Datei zu gewähren und diese im Gastsystem bereitzustellen. Dafür gibt es zwei Gründe:

  1. Ich hoffe auf eine Verbesserung der Geschwindigkeit, da nur eine Dateisystemstruktur - ZFS - anstelle von ext4 über ZFS verwaltet wird, was ich jetzt habe.

  2. Ich möchte, dass die Benutzer auf die Snapshot-Funktion von ZFS zugreifen können.

Ich habe es geschafft, die Volumes wie beschrieben zu mounten, aber ich konnte sie nicht mounten, damit sie beschreibbar sind. Bei der Suche im Web finde ich, dass der effektive Benutzername libvirt + ist, aber ich konnte keine chmod- Einstellung für das Zieldateisystem finden, die funktionieren wird.

Kann mir jemand eine Anleitung geben, wie man damit umgehen soll?

2

1 Antwort auf die Frage

2
Dan

Um den taktischen Teil Ihrer Frage zu beantworten, klingt das so, als würden Sie NFS verwenden, um das Gast / Host-Sharing durchzuführen. Dann kommt es nur noch auf eine NFS-Berechtigungsfrage an. Stellen Sie auf dem Host sicher, dass es sich um freigegebenes Lesen / Schreiben handelt, z. B. zfs set sharenfs="rw=@w.x.y.z/N" tankwo w.x.y.z/Nsich die IP-Adressen befinden, denen Sie Zugriff auf diese Freigabe gewähren möchten. Ein vollständigeres Beispiel finden Sie hier .

Aber auch zu deinen Zielen:

  1. Wenn der Host VM-Festplattendateien in ZFS speichert und der Gast darüber hinaus ext4 verwendet, ist es unwahrscheinlich, dass ZFS einen erheblichen "Dateisystem-Overhead" in Bezug auf die Leistung hinzufügt. Schließlich erstellt KVM in diesem Modus nur selten (wenn überhaupt) neue Dateien, sodass Metadaten nicht sehr oft in ZFS aktualisiert werden müssen. Meine Vermutung ist, dass Sie, wenn Sie keine sehr leistungsabhängige Workload in den VMs ausführen (Datenbank mit hohem Durchsatz usw.), keinen großen Unterschied feststellen werden.

  2. Ich kenne keine Möglichkeit, den Benutzern der Gäste die Snapshot-Funktion von ZFS zur Verfügung zu stellen. Dies kann mit Zonen unter Solaris und Jails unter FreeBSD und vielleicht Docker / lxd / lxc unter Linux (ich bin mir nicht so sicher), aber definitiv nicht mit KVM + QEMU. Ich denke, der einzige Weg, dies mit KVM zu tun, wäre, Ihren Benutzern Zugriff zfs snapshotauf den Host selbst zu gewähren (entweder mit direktem SSH-Zugriff oder über einen Dienst oder etwas anderes).

Es gibt andere Gründe, warum das Aufbewahren von Dateien auf dem Host sinnvoll ist (Konsolidierung plus alle normalen Vorteile von ZFS: einfachere Sicherung, Datenintegrität, Kontingente und Reservierungen usw.), aber ich glaube nicht, dass dies beides besonders sein wird einfacher in Ihrer neuen Konfiguration.