ADMIN-Tipp: KVM-Storage auf NFS

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Um Virtualisierung effizient zu nutzen, müssen die Images der virtuellen Maschinen im Netz gespeichert sein. NFS ist eine der vielen Optionen, die Linux-KVM bietet. 

Virtualisierung bietet beim Management von IT-Umgebungen eine Reihe von Vorteilen. Richtig eingesetzt, vereinfacht sich die Bereitstellung neuer Server und Dienste, das Backup und Disaster Recovery im Fehlerfall. Auch Lastverteilung ist je nach Service mit virtuellen Maschinen einfacher umzusetzen als mit physischer Hardware.

Für Redundanz und Lastverteilung bedarf es aber mehrerer VM-Hosts, die Zugriff auf Massenspeicher im Netz besitzen, auf denen die virtuellen Disks der VMs liegen. Der Linux-Hypervisor KVM bietet dazu einige Optionen, etwa iSCSI, Samba-Shares oder NFS. Letzteres ist eine gute Option, den aktuellen NFS-Versionen sind zuverlässig, einfach aufzusetzen und verbreitet. So bieten beispielsweise auch Netapp-Filer das NFS-Protokoll. 

Die Libvirt übernimmt selbständig das Mounten eines NFS-Share, wenn sie entsprechend konfiguriert ist. Dazu ist es zunächst nötig, einen Storage-Pool zu definieren, beispielsweise mit dem Commandline-Tool "virsh". Das wiederum benötigt eine XML-Datei, die Ort und Format des Storage bestimmt. Ein Beispiel dafür sieht so aus:

<pool type='netfs'>
  <name>virtimages</name>
  <source>
    <host name='10.0.0.20'/>
    <dir path='/nfs'/>
    <format type='nfs'/>
  </source>
  <target>
    <path>/virtimages</path>
    <permissions>
      <mode>0755</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

Mit dieser XML-Datei, als "virtimages.xml" gespeichert, lässt sich ein Storage-Pool mit dem Namen "virtimages" definieren:

virsh pool-define virtimages.xml 

Der folgende Befehl legt fest, dass der Storage-Pool automatisch startet:

virsh pool-autostart virtimages

Je nach Linux-Distribution sind noch die Eigentümer und Rechte der Dateien anzupassen. Wer SELinux mit Red-Hat und Co verwendet, kann eine spezielle SEBool-Einstellung verwenden, die den Zugriff ermöglicht:

 setsebool virt_use_nfs 1

Wer experimentierfreudig ist, kann die Storage-Backends für die verteilten Dateisysteme GlusterFS, RADOS (Ceph), Sheepdog ausprobieren, die Libvirt ebenfalls unterstützt.

15.01.2015

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2020