在 CentOS 6 上設定 NFSv4

因為要設定 firewall 的 port 的問題,想要改用 NFSv4 的 protocol,因為 NFSv4 只需要使用到 2049 port,不像是 NFSv3 還會需使用到 RPC portmap RPC bind (port 111) 以及 RPC mounted 的 port (random port),這在防火牆的設定是,是非常困擾的,會需要另外進行設定,讓 RPC 服務將 port 開在指定的地方,才方便進行防火牆的設定

CentOS 5 和 6 是可支援 NFSv4 的,

設定的方式可以參考:

http://www.gtwang.org/2012/02/nfsv4.html

http://www.cyberciti.biz/faq/centos-fedora-rhel-nfs-v4-configuration/

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/s2-nfs-nfs-firewall-config.html

的說明,在這裡大致上說明一下如何設定。

首先,nfs-utils 要安裝好
執行 mkdir /exports 建立給 NFSv4 使用的虛擬目錄
建立要分享的目錄的掛載點,例如我要分享 share 目錄,先建立 /exports/share
再使用 mount --bind /home/share /exports/share 掛載要分享的目錄到 /exports 的掛載點下
可以將這個設定寫入 /etc/fstab 中,讓電腦開機時自動掛載:

/home/share /export/users none bind 0 0

設定 /etc/exportfs 檔案:

/export *(rw,fsid=0,no_subtree_check,sync)
/export/share 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,sync)

重新 export 目錄,執行 exportfs -rv

修改 /etc/sysconfig/nfs 檔案如下,不使用 NFSv2 NFSv3 protocol:

# grep -v "^#" /etc/sysconfig/nfs
MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="no"
RPCNFSDARGS="-N 2 -N 3"

執行 /etc/init.d/rpcbind start (CentOS 6 需要)
執行 /etc/init.d/nfs start

以上,完成 server 端的設定

其實 /etc/init.d/rpcbind 如果在 linux kernel 3.14 之後,是不需要的,原因請看下列的網址:
http://serverfault.com/questions/530908/nfsv4-and-rpcbind

進行 client 端的設定
使用 mount -t nfs4 server:/ /mnt/nfs
指令來 mount server 分享的空間

也可以將這個設定放在 /etc/fstab 中,在開機時自動 mount:

server:/share /mnt/nfs nfs4 defaults 0 0

firewall 只要開啟 port 2049 就可以連上 NFS 伺服器
以上,完成設定

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: