Ich versuche ZFS unter Linux für Oracle Linux (OLE) 6.1 (Red Hat RHEL 6.1 kompatibler Klon). Ich habe erfolgreich kompiliert und installiertsplUndzfsdarauf für Oracle Unbreakable Kernel. Zfs funktioniert und ich habe Mirror erstellt von
zpool create -f -o ashift=12 tank mirror sdb sdc
Jetzt versuche ich, meinen ZFS-Pool namens "tank/nfs" freizugeben, wie unterZfsonlinux-Site.
zfs set sharenfs=on tank/nfs
Also habe ichPanzer/NFSund setzennfsZuAn.
Jetzt versuche ich, die NFS-Freigabe auf dem lokalen Host zu mounten, um sie zu testen.
mount -t nfs4 127.0.0.1:/tank/nfs /mnt
Aber ich bekommemount.nfs4: mount system call failed
Die Frage ist also:
So geben Sie einen NFS-Ordner freioder iSCSI-Volumes bei OLE richtig und mounten Sie esmit Linux-Client über ZFSunter Linux.
die Antwort ist
mount 127.0.0.1:/tank/nfs /mnt
Antwort1
Es muss etwas mit der Konfiguration Ihres NFS-Servers nicht stimmen.
Bitte versuchen Sie dieswie manzum Einrichten von RHEL 6 als NFS-Server.
Antwort2
Um eine NFS-Einbindung herzustellen, muss der portmap
Dienst vor dem Einbindungsversuch ausgeführt werden.
Führen Sie /sbin/service portmap start
die NFS-Einbindung aus und versuchen Sie es erneut.
Für RHEL6 und neuer ist dies in rpcbind
-/sbin/service rpcbind start
Antwort3
Nach meiner Erfahrung mit ZFS unter FreeBSD und Debian GNU/kFreeBSD ist die Sharenfs-Funktion nicht gut implementiert. Sie können Ihre NFS-Exporte in /etc/exports einrichten.
Jedes ZFS-Dateisystem, das Sie exportieren möchten, benötigt eine eigene Exportzeile. Wir fanden, dass dies bei Hunderten von Dateisystemen zu langsam ist. Sie sollten auch versuchen, ein einzelnes Dateisystem zu verwenden, als ob Sie ein herkömmliches Dateisystem verwenden würden.
NFS-Exporte unter Linux
Sie müssen die Datei /etc/exports bearbeiten, um NFS in Linux zu aktivieren. Mit NFSv4 in Linux muss jedes exportierte Dateisystem in einem einzigen Verzeichnis namens NFSv4-Pseudodateisystem gemountet werden. In diesem Fall wäre das /tank. Mountpoints unter dem Pseudodateisystem können mit unterschiedlichen Zugriffskontrollmethoden und Exportoptionen exportiert werden. Alle unter dem Pseudodateisystem gemounteten Dateisysteme müssen eine eigene Exportzeile in /etc/exports erhalten.
/etc/exports:
/tank *(fsid=0)
/tank/nfs *(rw,sync)
Damit Änderungen an /etc/exports wirksam werden, sollten Sie ausführen exportfs -r
.
Für NFSv4 müssen Sie idmapd sowohl auf dem Client als auch auf dem Server ausführen, um die Zuordnung vom Benutzernamen zur Benutzer-ID-Nummer zu erleichtern.
Unter Linux NFSv4 ist der Export anders als unter NFSv3 und niedriger. Wenn das Pseudodateisystem /tank ist, lautet Ihr Mount-Befehl:
mount -t nfs -o vers=4 server:/nfs /mnt
Für NFSv3 wäre es:
mount -t nfs -o vers=3 server:/tank/nfs /mnt
Antwort4
Erwägen Sie, ZFS nativ auf Solaris oder SolE 11 oder OpenIndiana zu verwenden. Meiner Meinung nach ist ZFS unter Linux noch lange nicht produktionsreif. ZFS mit NFS ist auf Solaris-basierten Betriebssystemen nativ integriert, auf Linux jedoch nicht.