Installation u. Konfiguration Windows-NFS für VMware ESXi

In diesem Beitrag wird beschrieben, wie der Microsoft NFS-Server unter verschiedenen Windows Server-Version installiert und für die Einbindung an einem VMware ESXi-Host konfiguriert wird. Die am ESXi gemountete NFS-Freigabe kann bspw. zur Speicherung von ISO-Dateien, VM-Backups, oder (Test-)VMs dienen…

Die Konfiguration des Windows NFS-Dienstes kann auch für den Zugriff durch andere Linux-Systeme prinzipiell wie hier beschrieben durchgeführt werden.

Da dieser Beitrag doch recht umfangreich geraten ist, hier zu Anfang ein kurzer Überblick der in darin behandelten Punkte:

Installation Microsoft NFS-Server

Hat man den NFS-Server unter Windows noch nicht installiert, muß dies selbstverständlich zuerst geschehen:

Unter Windows 2003 (32-Bit) ist es für die Installation noch notwendig…

  1. … die Microsoft Services for Unix (SFU) herunterzuladen und zu extrahieren.
  2. Die Installation wird anschließend über die setup.exe durchgeführt – benötigt werden die Komponenten NFS – Server for NFS und Authentication tools for NFS – User Name Mapping und – Server for NFS-Authentication, welche auch in der Standard-Installation (neben weiteren Komponenten) enthalten sind.
  3. Der User Name Mapping Server soll mit Password and group files arbeiten.
    Windows Server 2003: Installation NFS-Server - User Name Mapping 1
  4. Und noch Pfad und Dateinamen der Dateien passwd und group hinterlegen.
    Windows Server 2003: Installation NFS-Server - User Name Mapping 2

    Sollte das Setup das Fehlen der Dateien beanstanden, können dort zuerst einfach zwei leere Textdateien erstellt werden. Sie werden später durch die vom ESXi-Host heruntergeladenen Dateien ersetzt.

Bei Windows Server 2003 R2, 2008 (je 32- und 64-Bit) und 2008 R2 kann der Dienst direkt vom Installationsmedium hinzugefügt werden.

  • Windows Server 2003 R2:
    Systemsteuerung -> Software -> Windows-Komponenten hinzufügen/entfernen -> Weitere Datei und Druckdienste für das Netzwerk -> Microsoft-Dienste für NFS
    Windows Server 2003 R2: Installation NFS-Server
  • Windows Server 2008/2008 R2:
    Verwaltung -> Server-Manager -> Rollen-> Dateidienste -> Dienste für NFS (Network File System)
    Windows Server 2008/2008 R2: Installation NFS-Server

Benutzernamenzuordnung

Um den Zugriff der ESXi-Benutzer auf die Freigabe über NTFS-Berechtigungen steuern zu können, wird die Benutzernamenzuordnung benötigt. Hier wird dem Linux-Benutzer ein Windows-Benutzer zugeordnet, der stellvertretend die NTFS-Berechtigungen erhält. Es bietet sich an – je nach Server- und AD-Version – einen unter 2003 laufenden User Name Mapping-Server zu nutzen, oder auf das Active Directory zurückzugreifen.

Beide Konfigurationen haben bei mir mit Windows Server 2008 R2 nicht funktioniert! Hier funktionierte nur der anonyme Zugriff. Weiteres zu den Problemen hier…

User Name Mapping-Server

Bei Nutzung eines unter Windows Server 2003/2003 R2 installierten User Name Mapping-Servers ist Folgendes durchzuführen:

ESXi SSH-Zugang aktivieren

Um die Benutzernamenzuordnung durchführen zu können, ist es zuerst notwendig die bereits zuvor erwähnten Dateien passwd und group aus dem /etc-Verzeichnis des ESXi-Hosts über einen SSH-Zugang herunterzuladen.

Die Aktivierung des SSH-Zugangs kann mit einem ESXi 4.1-Host relativ einfach durchgeführt werden:

Mit dem VMware vSphere-Client…:

Den Host in der Bestandsliste auswählen und auf der Registerkarte „Konfiguration“ unter Software -> Sicherheitsprofil auf Eigenschaften klicken. Dort hat man nun die Möglichkeit den Dienst Remote-Support (SSH) (in dessen Optionen) zu starten.

ESXi 4.1: SSH-Zugang über vSphere aktivieren (1)ESXi 4.1: SSH-Zugang über vSphere aktivieren (2)

…oder der ESXi-Server-Konsole (Direct Console User Interface – DCUI):

Dort kann nach Drücken von F2 und Anmeldung unter Troubleshooting Options der SSH-Zugang über den Punkt Enable Remote Tech Support (SSH) aktiviert werden.

ESXi 4.1: SSH-Zugang über Direct Console User Interface (DCUI) aktivieren

Eine Beschreibung zur Aktivierung des SSH-Zugangs für die ESXi-Versionen 3.5 und 4.0 findet man hier…

Anschließend können die Dateien /etc/passwd und /etc/group, bspw. mit WinSCP, heruntergeladen und in einem Verzeichnis auf dem Server, der den User Name Mapping-Dienst betreibt, gespeichert werden.

ESXi 4.1: Download der Dateien /etc/passwd und /etc/group mit WinSCP

Konfiguration User Name Mapping

Nachdem die für die NFS-Freigabe erforderlichen Komponenten installiert und die Dateien passwd und group des ESXi-Hosts auf dem Windows-Server abgelegt wurden, muß noch der root-Benutzer des ESXi über die Benutzernamenzuordnung auf die Freigabe berechtigt werden.

  • Windows Server 2003 (SFU):
    In der Verwaltung finden sich die Microsoft Windows Services for UNIX. In dieser MMC können nun unter User Name Mapping die bei der Installation angegebenen Pfade und die Domäne ggf. noch einmal angepaßt werden (Registerkarten „Configuration“ und „Maps“). Auf der Registerkarte „Maps“ -> Show User Maps können die Windows- (lokal oder Domäne) und UNIX-Benutzer (aus der passwd-Datei) aufgelistet werden. Nun muß man nur noch einen Windows-Benutzer, der auf den freizugebenden Ordner ausreichende NTFS-Berechtigungen besitzt, und den UNIX-Benutzer root markieren und durch einen Klick auf die Schaltfläche Add zu den Mapped Users hinzuzufügen. Anschließend Apply nicht vergessen… 😉
    Windows Server 2003 (SFU): Konfiguration User Name Mapping
  • Windows Server 2003 R2:
    Hier Verwaltung -> Microsoft-Dienste für NFS (Network File System) aufrufen; dort müssen zuerst in den Eigenschaften von Benutzernamenzuordnung unter der Registerkarte „UNIX-Benutzerquelle“ die Pfade der Kennwort- und Gruppendateien des ESXi hinterlegt werden.
    Windows Server 2003 R2: Konfiguration Benutzernamenzuordnung - Kennwort- und Gruppendatei
    Darauf hin kann man unter Benutzernamenzuordnung -> Benutzerzuordnungen eine neue Zuordnung erstellen… (Rechtsklick). Auch hier können nun wieder die lokalen und Domänen-Benutzer des Windows-Systems und die UNIX-Konten aus der passwd-Datei des ESXi aufgelistet und das Paar – Windows-Benutzer mit NTFS-Berechtigung auf Freigabe-Ordner + UNIX-Benutzer root – hinzugefügt werden.
    Windows Server 2003 R2: Konfiguration Benutzernamenzuordnung - Neue Zuordnung erstellen

    Unter 2003 R2 war es mir beim Mapping eines lokalen Windows-Benutzers auf den root zwar möglich die Freigabe zu mounten, doch waren keinerlei Berechtigungen vorhanden; bei einem Domänen-Benutzer bestand das Problem – mit gleichen NTFS-Berechtigungen auf den Freigabeordner – nicht. (Evtl. ließe sich das Problem durch einen verfügbaren Hotfixes beheben – jedoch nicht getestet.)

  • Windows Server 2008/2008 R2:
    In den beiden 2008er-Versionen des Windows-Servers ist der User Name Mapping-Dienst nicht mehr enthalten. Hier kann man nur noch auf einen bestehenden 2003-Server, der wie oben beschrieben konfiguriert wurde und in dessen Datei %windir%\msnfs\.maphosts der 2008-Server hinterlegt ist, verweisen. (Verwaltung -> Dienste für NFS (Network File System) -> Eigenschaften von Dienste für NFS)
    Windows Server 2008/2008 R2: Identitätszuordnung - User Name Mapping-Server

Benutzernamenzuordnung über das Active Directory (2003R2-2008R2)

Ab Windows Server 2003 R2 kann die Benutzernamenzuordnung, alternativ zum User Name Mapping-Server, über das Active Directory erfolgen. Als Voraussetzung ist es jedoch ggf. notwendig auf einem (min.) 2003 R2 Domänen Controller das AD-Schema zu erweitern und die Komponente Identitätsverwaltung für UNIX zu installieren (Installation 2003 R2, 2008), damit die benötigten Attribute auf der Registerkarte „UNIX-Attribute“ in der Active Directory Benutzer und Computer-MMC verfügbar sind.

Konfiguration Dienste für NFS

Die Konfiguration in diesem Fall ist simpel:

In der bereits zuvor erwähnten MMC Eigenschaften der Dienste für NFS aufrufen, dort unter der Registerkarte „Allgemeine Einstellungen“ die Active Directory-Zuordnung aktivieren und den Namen der Domäne eintragen.

Dienste für NFS: Konfiguration Active Directory-Suche/Identitätszuordnung

AD-Benutzer zuordnen

Für die Zuordnung des ESXi-root-Benutzers zu einem AD-Benutzer muß unter der Registerkarte „UNIX-Attribute“ die NIS-Domäne ausgewählt und in die Felder UID und GID eine 0 eingetragen werden. Anschließend werden dem AD-Benutzer, wie gehabt, noch die gewünschten NTFS-Berechtigungen auf den Freigabe-Ordner erteilt.

Mapping ESXi-root  Active Directory-Benutzer über "UNIX-Attribute"

Zugriff mit ClientGroup einschränken

Um den Zugriff auf die NFS-Freigabe auf die IP-Adressen der ESXi-Hosts zu beschränken, können diese mit dem Tool nfsadmin in einer Client Gruppe zusammengefasst werden.

Gruppe (hier „ESXi-Server“) erstellen:

nfsadmin server creategroup ESXi-Server

Mitglieder hinzufügen (bspw. den ESXi-Host mit der IP 10.0.0.10):

nfsadmin server addmembers ESXi-Server 10.0.0.10

NFS-Freigabe-Einstellungen

Nun kann auf dem Windows-System ein Ordner für den ESXi-Host freigegeben werden:

  1. Die Eigenschaften des Ordners aufrufen
  2. Registerkarte „NFS-Freigabe„: Ordner Freigeben, keinen Anonymen Zugriff zulassen
    Windows NFS-Freigabe (1)
  3. NFS-Berechtigungen:
    ALLE COMPUTER – Kein Zugriff – Root-Zugriff nicht zugelassen
    ESXi-Server – Schreibzugriff – Root-Zugriff zugelassen
    Windows NFS-Freigabe (2)

Einbindung als Datenspeicher am ESXi

Zu guter Letzt muß nun nur noch die Freigabe am ESXi gemountet werden. Über den vSphere-Client den ESXi-Host auswählen und unter der Registerkarte „Konfiguration“ -> Hardware – Speicher den Punkt Speicher hinzufügen… anklicken. Im folgenden Assistenten die Option Netzwerkdateisystem (NFS) wählen und anschließend Server-Name/-IP, den Freigabenamen und einen Datenspeichernamen angeben.

ESXi: NFS-Freigabe als Datenspeicher hinzufügen (1)ESXi: NFS-Freigabe als Datenspeicher hinzufügen (2)

Alternativen

Wer sich nun denkt „Benutzernamenzuordnung…? Client Gruppe…? Das brauch‘ ich nicht!“, dem sei noch der andere Weg kurz aufgezeigt:

Das Mounten des NFS-Freigabe am ESXi kann auch ohne Benutzernamenzuordnung und/oder IP-Beschränkung durch eine Gruppe erfolgen. Dafür ist nur die Durchführung der Schritte zur Installation des NFS-Servers notwendig. Auf den freigegebenen Ordner muß dann allerdings die Gruppe ANONYMOUS-ANMELDUNG (nur 2003/2003 R2), oder alternativ die Gruppe Jeder (+ Option Netzwerkzugriff: Die Verwendung von „Jeder“-Berechtigungen für anonyme Benutzer ermöglichen in der lokalen Sicherheitsrichtlinie aktivieren!), entsprechende NTFS-Berechtigungen erhalten.

Wird keine ClientGroup erstellt, wird die Berechtigung „Schreibzugriff – Root-Zugriff zugelassen“ einfach für ALLE COMPUTER erteilt.

Die NFS-Freigabe sieht dann wie folgt aus:

Windows NFS-Freigabe - Anonymous-AnmeldungWindows NFS-Freigabe - ALLE COMPUTER

Probleme beim Mounten am ESXi

Hier noch kurz zusammengefasst Fehler, die beim Mounten des NFS im vSphere-Client aufgetreten sind, und deren jeweilige mögliche Ursache:

  • Aufruf von „HostDatastoreSystem.CreateNasDatastore“ für Objekt „ha-datastoresystem“ auf ESXi „<IP-Adresse>“ ist fehlgeschlagen.
    Vorgang fehlgeschlagen, Diagnosebericht: Unable to complete Sysinfo operation.  Please see the VMkernel log file for more details.
    Aussagekräftiger sind hierzu die Meldungen im VMkernel-Log:
    VMkernelLog: NFS-Mount - Problem Netzwerkverbindung: [esx.problem.vmfs.nfs.mount.connect.failed] Failed to mount server  mount point . Error: Unable to connect to NFS server. | WARNING: NFS: 913: RPC error 13 (RPC was aborted due to timeout) trying to get port for Mount Program (100005) Version (3) Protocol (TCP) on Server () | NFS: 160: NFS mount :/ failed: Unable to connect to NFS server
    [esx.problem.vmfs.nfs.mount.connect.failed] Failed to mount server mount point . Error: Unable to connect to NFS server. | WARNING: NFS: 913: RPC error 13 (RPC was aborted due to timeout) trying to get port for Mount Program (100005) Version (3) Protocol (TCP) on Server () | NFS: 160: NFS mount :/ failed: Unable to connect to NFS server

    -> Problem mit der Netzwerkverbindung/Firewall

    VMkernelLog: NFS-Mount - NFS-Dienst nicht gestartet: WARNING: NFS: 918: Server () does not suppoert Mount Program (100005) Version (3) Protocol (TCP) | NFS: 171: NFS mount :/ status: The NFS server does not support MOUNT version 3 over TCP
    WARNING: NFS: 918: Server () does not suppoert Mount Program (100005) Version (3) Protocol (TCP) | NFS: 171: NFS mount :/ status: The NFS server does not support MOUNT version 3 over TCP

    -> NFS-Dienst nicht gestartet

    VMkernelLog: NFS-Mount - Freibabe existiert nicht: WARNING: NFS: 213: Got error 2 from mount call | WARNING: NFS: 959: MOUNT failed with MOUNT status 2 (Not found) trying to mount Server () Path (/) | NFS: 171: NFS mount :/ status: Themount request was denied by the NFS server. Check that the export exists and that the client is permitted to mount it
    WARNING: NFS: 213: Got error 2 from mount call | WARNING: NFS: 959: MOUNT failed with MOUNT status 2 (Not found) trying to mount Server () Path (/) | NFS: 171: NFS mount :/ status: Themount request was denied by the NFS server. Check that the export exists and that the client is permitted to mount it

    -> Falscher Freigabename

    VMkernelLog: NFS-Mount - keine NFS-Berechtigung: WARNING: NFS: 213: Got error 12 from mount call | WARNING: NFS: 959:MOUNT failed with MOUNT status 13 (Permission denied) tring to mount Server () Path (/) | NFS: 171: NFS mount :/ status: The mount request was denied by the NFS server. Check thar the export exists and that the client is permitted to mount it
    WARNING: NFS: 213: Got error 12 from mount call | WARNING: NFS: 959:MOUNT failed with MOUNT status 13 (Permission denied) tring to mount Server () Path (/) | NFS: 171: NFS mount :/ status: The mount request was denied by the NFS server. Check thar the export exists and that the client is permitted to mount it

    -> Fehlerhafte Konfiguration der NFS-Berechtigungen: Host nicht über Gruppe oder „ALLE COMPUTER“ berechtigt

  • Aufruf von „HostDatastoreSystem.CreateNasDatastore“ für Objekt „ha-datastoresystem“ auf ESXi „<IP-Adresse>“ ist fehlgeschlagen.
    Vorgang fehlgeschlagen, Diagnosebericht: Cannot open volume: /vmfs/volumes/2042e4ea-774dcfbe
    -> Fehlende/Falsche Benutzernamenzuordnung o.a.  User Name Mapping-Server nicht angegeben/AD nicht verfügbar
    -> keine NTFS-Berechtigung des gemappten Windows-Benutzers auf den Ordner
    -> Bei anonymen Zugriff: Gruppe Jeder keine NTFS-Berechtigung/Lokale Sicherheitsrichtlinie nicht angepaßt
    -> NFS-Berechtigungen: Root-Zugriff nicht zugelassen

Beim Mapping einer NFS-Freigabe eines Windows 2008 Server R2 (ohne anonymen Zugriff zu erlauben) erhielt ich im vSphere-Client die erste o.g. Fehlermeldung. Ein 2008-Server hat bei gleicher Konfiguration einwandfrei funktioniert.

Im VMkernel-Log stand dazu folgendes:

VMkernelLog: NFS-Mount - 2008 R2 Authentifizierungs-Problem: WARNING: NFS: 1016: NFS FSINFO RPC failed with RPC status 7 (RPC authentication error) on Server () Path (/) | NFS: 171: NFS mount :/ status: Unable to query remote mount point's attributes
WARNING: NFS: 1016: NFS FSINFO RPC failed with RPC status 7 (RPC authentication error) on Server () Path (/) | NFS: 171: NFS mount :/ status: Unable to query remote mount point’s attributes

Der Sniffer bestätigt das…:

NFS: Antwort Windows 2008 R2 -> ESXi - AUTH_ERROR - rejected for security reasons (5)
AUTH_ERROR – rejected for security reasons (5)

Jedoch die Meldungen im Windows 2008 R2-Event-Log besagten das Gegenteil:
Zum einen allgemein: NfsServer – ID 1007 („Die Zuordnungsinformationen wurden erfolgreich von der Benutzernamenzuordnung abgerufen.“) und auch direkt bzgl. des Zugriffsversuchs durch den ESXi: Server for NFS – ID 1 („Der Bereitstellungsvorgang war erfolgreich.“)


War die Benutzernamenzuordnung konfiguriert und zusätzlich der anonyme Zugriff auf die Freigabe aktiviert, war Besitzer der über vSphere erstellten Dateien der Windows-Benutzer. Hätte die Benutzernamenzuordnung ein Problem, hätte ich erwartet, daß der Besitzer die Gruppe ANONYMOUS-ANMELDUNG ist, wie bei nicht zugeordneten Konten sonst auch üblich.


Die Installation der für Windows 2008 R2 verfügbaren Hotfixes für NFS brachte zwar eine Änderung des Verhaltens, doch ein Mount am ESXi war weiterhin nicht möglich. (Ich erhielt im vSphere nicht mehr die erste, sondern die zweite o.g. Meldung :-()

Bisher habe ich leider keine Lösung zum beschriebenen Verhalten unter Windows Server 2008 R2.
Hat jemand eine funktionierende Konfiguration? Worin unterscheidet sie sich?

Sollte jemand zufällig vor dem gleichen Problem stehen, oder es vllt. sogar schon hinter sich haben, wäre ich einen kurzen Hinweis über die Kommentarfunktion, oder das Kontaktformular dankbar…

Natürlich ist, wie immer, auch sonstige Kritik auf diesem Wege willkommen ;-).


Weitere nützliche Hilfen zum Troubleshooting der NFS-Verbindung sind unter den Links zu finden… auch lesenswert zum Thema ist der MSDN Blog: Services for UNIX – Interoperability.

Links

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne
(3 Bewertungen, ⌀: 4,30 / 5)
Loading...

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Neue BeiträgeOft gelesene BeiträgeNeueste KommentareBlog abonnieren

Gib Deine E-Mail-Adresse an, um diesen Blog zu abonnieren und Benachrichtigungen über neue Beiträge via E-Mail zu erhalten.