Linux 上的 ZFS 用於 RHEL/OEL NFS 共享

Linux 上的 ZFS 用於 RHEL/OEL NFS 共享

我正在 Linux 上嘗試 ZFS for Oracle Linux (OLE) 6.1(Red Hat RHEL 6.1 相容克隆)。我編譯安裝成功斯普利茲夫斯用於 Oracle Unbreakable Kernel。 Zfs 正在工作,我透過以下方式建立了鏡像

zpool create -f -o ashift=12 tank mirror sdb sdc

現在我正在嘗試分享我的名為“tank/nfs”的 zfs 池,如所述zfsonlinux 站點

zfs set sharenfs=on tank/nfs

所以我創建了坦克/NFS並設定網路檔案系統

現在我正在嘗試在本地主機上掛載 nfs 共享來測試它

mount -t nfs4 127.0.0.1:/tank/nfs /mnt

但我得到mount.nfs4: mount system call failed

所以問題是:

如何共享 NFS 資料夾或 OLE 正確的 iSCSI 磁碟區並安裝它透過 ZFS 使用 Linux 用戶端在 Linux 上。

答案是 mount 127.0.0.1:/tank/nfs /mnt

答案1

你的nfs伺服器設定肯定有問題。

請嘗試按照此操作如何用於將 RHEL 6 設定為 nfs 伺服器。

答案2

為了建立 NFS 掛載,您需要portmap在嘗試掛載之前執行該服務。

運行/sbin/service portmap start並重試您的 NFS 掛載。

對於 RHEL6 及更高版本,它位於rpcbind-/sbin/service rpcbind start

答案3

根據我在 FreeBSD 和 Debian GNU/kFreeBSD 上使用 ZFS 的經驗,我發現 sharenfs 功能沒有很好地實現。您可以在 /etc/exports 中設定 NFS 匯出。

您想要匯出的每個 ZFS 檔案系統都需要自己的匯出行。我們發現對於數百個檔案系統來說這太慢了。您還應該嘗試使用單一檔案系統,就像使用傳統檔案系統一樣。

Linux 中的 NFS 導出

您必須編輯 /etc/exports 檔案才能在 Linux 中啟用 NFS。對於 Linux 中的 NFSv4,每個匯出的檔案系統都必須安裝在稱為 NFSv4 偽檔案系統的單一目錄下。在這種情況下,那就是/tank。偽檔案系統下的掛載點可以使用不同的存取控制方法和匯出選項匯出。在 psuedofilesystem 下安裝的任何檔案系統都必須在 /etc/exports 中取得自己的匯出行。

/etc/導出:

/tank *(fsid=0)
/tank/nfs *(rw,sync)

要使 /etc/exports 的更改生效,您應該運行exportfs -r.

對於 NFSv4,您需要在客戶端和伺服器上執行 idmapd,以方便從使用者名稱到使用者 ID 號碼的對應。

在 Linux NFSv4 中,匯出與 NFSv3 及更低版本不同。鑑於偽檔案系統是 /tank,您的掛載命令將是:

mount -t nfs -o vers=4 server:/nfs /mnt

對於 NFSv3,它將是:

mount -t nfs -o vers=3 server:/tank/nfs /mnt

答案4

考慮在 Solaris 或 SolE 11 或 OpenIndiana 上本地執行 ZFS。在我看來,Linux 上的 ZFS 遠未達到任何適合生產的狀態。帶有 NFS 的 ZFS 在基於 Solaris 的作業系統上具有本機集成,但在 Linux 上則不然。

相關內容