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…
- … die Microsoft Services for Unix (SFU) herunterzuladen und zu extrahieren.
- 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.
- Der User Name Mapping Server soll mit Password and group files arbeiten.
- Und noch Pfad und Dateinamen der Dateien passwd und group hinterlegen.
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 2008/2008 R2:
Verwaltung -> Server-Manager -> Rollen-> Dateidienste -> Dienste für NFS (Network File System)
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.
…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.
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.
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 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.
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.
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)
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.
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.
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:
- Die Eigenschaften des Ordners aufrufen
- Registerkarte „NFS-Freigabe„: Ordner Freigeben, keinen Anonymen Zugriff zulassen
- NFS-Berechtigungen:
ALLE COMPUTER – Kein Zugriff – Root-Zugriff nicht zugelassen
ESXi-Server – Schreibzugriff – Root-Zugriff zugelassen
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.
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:
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:
-> Problem mit der Netzwerkverbindung/Firewall-> NFS-Dienst nicht gestartet
-> Falscher Freigabename
-> 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:
Der Sniffer bestätigt das…:
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
- Download: Windows Services for Unix Version 3.5
- Download: WinSCP
- VMware KB1003677: Tech Support Mode for Emergency Support
- VMware KB1017910: Using Tech Support Mode in ESXi 4.1
- VMware KB1004490: Troubleshooting the failed process of adding a data store from a Windows Services NFS device
- VMware KB1003967: Troubleshooting connectivity issues to an NFS datastore
- Microsoft KB891760: A description of the ports that you must open […] to enable access to Windows Services for UNIX 3.5
- Microsoft KB: NFS-Hotfixes
- Microsoft TechNet: Microsoft Dienste für NFS (Network File System)
- Microsoft TechNet: Verwalten von Dienste für NFS (2003 R2)
- Microsoft TechNet: Sichern des Zugriffs auf den Server der Benutzernamenzuordnung
- Microsoft TechNet: Extending Your Active Directory Schema in Windows Server 2003 R2
- Microsoft TechNet: Identity Management for UNIX (Installation 2003 R2/2008)
- Microsoft TechNet: nfsadmin
- Microsoft TechNet: Schrittweise Anleitung für Dienste für NFS unter Windows Server 2008
- Microsoft TechNet: Neues in Dienste für NFS in Windows Server 2008 R2
- MSDN Blog: Services for UNIX – Interoperability