Dell EMC Unity:如何在 Unity 上設定 NFS 匯出的 NIS/Netgroup (使用者可修正)

Summary: 如何在 Unity 上設定 NFS 匯出的 NIS/Netgroup 本機檔案/Netgroup

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

先決條件:
  1. 在 Unity 上設定 NFS 共用的 netgroup。 
  2. 使用 NIS 伺服器進行 netgroup->主機名稱解析。本 KB 使用 CentOS 6.2 的原生 NIS 伺服器進行測試。其他 NIS 伺服器應具有其擁有者組態方法,但理論應相同。
  3. 允許 NIS/NFS/RPC 的網路連接埠。

Unity 中的 NIS/Netgroup。
Unity 可與 NIS 伺服器搭配進行 netgroup->主機名稱解析,其工作機制如下。(如需詳細資料,請參閱隨附的 tcpdump NIS.cap)
  1. 當 NFS 用戶端嘗試在 Unity 上掛接 NFS 共用時,Unity 會取得 NFS 用戶端的 IP 位址。
  2. Unity 會將帶有 NFS 用戶端 IP 位址的「YP match call」傳送到 NIS 伺服器,然後 NIS 伺服器會回覆帶有主機名稱的「YP match reply」。
  3. 如果 NIS 伺服器沒有正確的主機名稱項目 (在步驟 2 上),Unity 會將 DNS PTR 查詢傳送至 DNS 伺服器,查詢主機名稱的 PTR 記錄。
  4. Unity 會將帶有 NFS 用戶端主機名稱的「YP match call」傳送到 NIS 伺服器,然後 NIS 伺服器會回覆帶有 netgroup 名稱的「YP match call」。

Unity 中的本機/Netgroup:
  1. 當 NFS 用戶端嘗試在 Unity 上掛接 NFS 共用時,Unity 會取得 NFS 用戶端的 IP 位址。
  2. Unity 嘗試在 nas 伺服器內比對 IP 位址與本機主機中的主機名稱。
  3. 如果本機主機檔案沒有正確的主機名稱項目 (在步驟 2 上),Unity 會將 DNS PTR 查詢傳送至 DNS 伺服器,查詢主機名稱的 PTR 記錄。
  4. Unity 嘗試在 nas 伺服器內比對主機名稱與本機 netgroup 中的主機名稱。
注意:
自 Unity OE 4.1.x 起,Unity 支援在本機 netgroup 檔案中定義 netgroup
在 Unity OE 4.1.x 之前,Unity 不支援本機 netgroup 檔案


程序 (在 NIS 伺服器中定義 netgroup):
步驟 1 - Unity 上的組態
  1. 在「主機」功能表中,新增具有 netgroup  mfgnasroot 的 Netgroup Test1 
kA5j00000008VqPCAU_1_0

備註
  • 定義「Netgroup」名稱  mfgnasroot  必須與 NIS 伺服器中的 netgroup 名稱相符。
  • 請勿在 Netgroup 名稱中使用  _ ,在 netgroup 名稱中使用  _  可能會導致產生某些問題。
  1. 瀏覽至「檔案 -> NAS 伺服器 -> NAS 伺服器屬性 -> 命名服務-LDAP/NIS」並新增將「celerra」定義為「NIS 網域」的 NIS 伺服器,如以下螢幕擷取畫面所示。
kA5j00000008VqPCAU_1_1
  1. 「檔案 -> NFS 共用 -> 共用屬性 -> 主機存取」中,使用根權限新增 netgroup Test
kA5j00000008VqPCAU_1_2


步驟 2 - NIS 伺服器上的組態 (我使用 CentOS6.2 及其原生 NIS 軟體作為 NIS 伺服器)
  1. 確認已安裝以下封包。
# rpm -qa|egrep -i "^yp|^rpc"
ypserv-2.19-22.el6.x86_64
ypbind-1.20.4-29.el6.x86_64
yp-tools-2.9-12.el6.x86_64
rpcbind-0.2.0-8.el6.x86_64
  1. 定義 NIS 網域名稱
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=nis.example.com
GATEWAY=xxx.xxx.xxx.xxx
NISDOMAIN=celerra
  1. 「/etc/hosts」 (藍色) 中新增主機名稱及其 IP 位址,ypinit 使用「/etc/hosts」檔案來建立 YP 資料庫。
# cat /etc/hosts
127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4
::1localhost localhost.localdomain localhost6 localhost6.localdomain6
xxx.xxx.xxx.xxx 5700CS139.example.com
xxx.xxx.xxx.xxx VNX5400_107.example.com

xxx.xxx.xxx.xxx nis.example.com nis
  1. 「/etc/netgroup」檔案中新增主機名稱,然後新增 NIS 網域名稱,如下所示 (如果 NIS 網域欄位保留空白,NFS 掛接將會失敗)
# cat /etc/netgroup
mfgnasroot (5700CS139.example.com,,celerra) (VNX5400_107.example.com,,celerra)
  1. 確認 ypbind、ypserver rpcbind 服務正在執行中。
# service ypbind status
ypbind (pid16711) 正在執行中...

# service ypserv status
ypserv (pid16758) 正在執行中...

# service rpcbind status
rpcbind (pid1274) 正在執行中...
  1. 初始化 YP 資料庫。
# /usr/lib64/yp/ypinit -m
此時,我們必須建構一個將執行 NIS 伺服器的主機清單。nis.example.com 在 NIS 伺服器主機的清單中。繼續為其他主機新增主機名稱,每行一個主機名稱項目,並在完成清單時,輸入<控制項 D>。

下一個要新增的主機:nis.example.com
下一個要新增的主機:

NIS 伺服器的當前清單看起來像這樣:

nis.example.com
 
這是正確的嗎?[y/n: y]y
我們需要幾分鐘來建立資料庫...
正在建立 /var/yp/celerra/ypservers...
正在執行 /var/yp/Makefile...
gmake[1]:正在進入目錄「/var/yp/celerra」
正在更新 passwd.byname...
正在更新 passwd.byuid...
正在更新 group.byname...
正在更新 group.bygid...
正在更新 hosts.byname...
正在更新 hosts.byaddr...
正在更新 rpc.byname...
正在更新 rpc.bynumber...
正在更新 services.byname...
正在更新 services.byservicename...
正在更新 netid.byname...
正在更新 protocol.bynumber...
正在更新 protocol.byname...
正在更新 mail.aliases...
正在更新 netgroup...
正在更新 netgroup.byhost...
正在更新 netgroup.byuser...
gmake[1]:正在離開目錄「/var/yp/celerra」

 
nis.example.com 已設定為 NIS 主伺服器。

現在您可以在所有從屬伺服器上執行 ypinit -s nis.example.com。

測試
從不屬於 netgroup mfgnasroot 的主機掛接 NFS 共用,存取遭拒。
[root@nis ~]# mount xxx.xxx.xxx.xxx:/Test /mnt
mount.nfs:掛接時存取遭伺服器拒絕
xxx.xxx.xxx.xxx:/Test
 
從屬於 netgroup mfgnasroot 的主機掛接 NFS 共用,存取成功。 
[root@5700CS139 nasadmin]# mount xxx.xxx.xxx.xxx:/Test /mnt
[root@5700CS139 nasadmin]# cd /mnt
[root@5700CS139 mnt]# touch 139

 
[root@VNX5400_107 nasadmin]# mount xxx.xxx.xxx.xxx:/Test /mnt
[root@VNX5400_107 nasadmin]# cd /mnt
[root@VNX5400_107 mnt]# touch 107

 
程序 (在本機檔案中定義 netgroup):
步驟 1 - Unity 上的組態
  1. 在「主機」功能表中,新增具有 netgroup  mfgnasroot 的 Netgroup Eric1 
kA5j00000008VqPCAU_1_3

備註
  • 定義「Netgroup」名稱  mfgnasroot  必須與本機檔案 netgroup 中的 netgroup 名稱相符。
  • 請勿在 Netgroup 名稱中使用  _ ,在 netgroup 名稱中使用  _  可能會導致產生某些問題。
  1. 瀏覽至「檔案 -> NAS 伺服器 -> NAS 伺服器屬性 -> 命名服務-本機檔案」。請擷取目前主機檔案與 netgroup 檔案;使用 Notepad++ 進行更新;將其儲存為 Unix 格式;最後予以上傳。
kA5j00000008VqPCAU_1_4
主機檔案範例:
#主機檔案包含 IP 位址及其對應主機名稱的清單。
#
#主機檔案的每一行定義一個主機,並具有以下格式:
#   IP_address 主機名稱別名
#,其中:
#- IP_address 是主機的 IP 位址。
#- hostname 是主機的正式名稱。
#- aliases 提供名稱變更、替代拼寫、較短的主機名稱或通用主機名稱 (例如,本機主機)。
#
#欄位由任意數量的空格或 tab 字元或兩者分隔。
#
xxx.xxx.xxx.xxx    opennms.example.com opennms
xxx.xxx.xxx.xxx  vnx5400-1cs0.example.com    vnx5400-1cs0
xxx.xxx.xxx.xxx   vnx5400-1cs1.example.com    vnx5400-1cs1


netgroup 檔案的範例:
#netgroup 檔案包含網路群組名稱的清單,其中包含屬於該群組的主機的主機名稱清單。
#除了將主機對應到網路群組之外,它還將使用者對應到網路群組。
#
#Netgroup 檔案的每一行定義一個群組,並具有以下格式:
#   groupname member1 member2 ...
#
# 每個成員可能是另一個群組的名稱,或者指示特定的主機、使用者和網域,稱為三元組,如下所示:
#   (hostname,username,domainname)
#
# 三元組的三個欄位中的任何一個都可以為空白,這表示該欄位中的所有值都包含在內。
#任一欄位中的破折號 (-) 表示沒有有效的值。
#例如,以下這一行定義了一個名為 ouruniverse 的群組,該群組由 NIS 網域 ourdomain 中的所有主機和使用者組成。
#   ouruniverse (,,ourdomain)
#
# 以下幾行定義了一個名為 ourhosts 的群組,該群組包含網域中的所有主機,但不包含網域中的任何使用者,
# 和一個名為 ourusers 的群組,包含所有使用者但不包含任何主機。
#     ourhosts (,-,ourdomain)
#     ourusers (-,,ourdomain)
#
# 以下這一行定義了一個名為 ouruniverse 的群組,該群組由兩個主機 hostatlanta 和 hostboston 組成。
#   ouruniverse (hostatlanta,,),(hostboston,,)
#
# 注意:不允許 IP 位址。
#
#netgroup 檔案可以包含所需的任意行數;但每行的長度必須小於 1 KB。
#如有必要,可以使用反斜線 (\) 作為延續字元在另一行上繼續一行。
#但是,三元組不能拆分到兩行。
#
#注意:如果使用反斜線 (\) 作為延續字元,則它必須是該行的最後一個字元。它的後面不可以跟著空格。
mfgnasroot (opennms,,example.com),(vnx5400-1cs1,,example.com),(vnx5400-1cs0,,example.com)
  1. 「檔案 -> NFS 共用 -> 共用屬性 -> 主機存取」中,使用根權限新增 netgroup Eric1
kA5j00000008VqPCAU_1_5



測試
從不屬於 netgroup mfgnasroot 的主機掛接 NFS 共用,存取遭拒。
[root@VNX5400-1CS0 ~]# mount xxx.xxx.xxx.xxx:/unity_nfs /mnt
mount: xxx.xxx.xxx.xxx: /unity_nfs 失敗,伺服器提供的原因:權限遭拒

 
從屬於 netgroup mfgnasroot 的主機掛接 NFS 共用,存取成功。 
[root@opennms ~]# mount xxx.xxx.xxx.xxx:/unity_nfs /mnt
[root@opennms ~]# umount /mnt
[root@opennms ~]# mount xxx.xxx.xxx.xxx:/unity_nfs /mnt
[root@opennms ~]# cd /mnt
[root@opennms mnt]# touch opennms
[root@opennms mnt]# ll
total 102528
-rw-r--r-- 1 root root 104857600 Jun 12 23:51 emctest
drwxr-xr-x 6 root root      8192 Jun 13 02:42 eric
drwxr-xr-x 2 root root      8192 Jun  5 06:11 lost+found
-rw-r--r-- 1 root root         0 Jul 13  2017 opennms

Additional Information

  • 在 Unity GUI 上新增 netgroup 時不要在 netgroup 名稱中使用「_」。否則將會傳回錯誤訊息「失敗的無效 DNS 名稱...」。
  • 對於 netgroup 中的多個 IP 位址,如果需要定義 NFS 共用的 IP 位址/範圍,請在主機功能表中建立主機/子網路項目。

Affected Products

Dell EMC Unity Family

Products

Dell EMC Unity Family, Dell EMC Unity Hybrid
Article Properties
Article Number: 000022455
Article Type: How To
Last Modified: 16 Jun 2025
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.