1. 場景
某機關需要配置 NFS 伺服器,為同步圖檔檔案。
主機名:nfs.local,test.local
IP位址:192.168.3.15、192.168.3.18
2. 實驗環境
2.1. 作業系統
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
# uname -a
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
2.2. 伺服器基本配置
修改 IP 位址。(注意:根據您的實作環境進行配置)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.3.15
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
修改主機名
# vi /etc/sysconfig/network
NETWORKING=yes
#HOSTNAME=localhost.localdomain
HOSTNAME=nfs.local
# service network restart
為了友善實驗,将防火牆關閉。
# service iptables stop
# chkconfig iptables off
同時關閉 selinux。
# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
重新啟動以便生效。
reboot或init 6
3. NFS伺服器安裝與配置
3.1. 安裝NFS伺服器元件
3.1.1.通過YUM來進行安裝
通過 YUM 來解決包的相關性。
# yum -y install nfs-utils
很友善地就安裝完畢了
3.2. 啟動NFS服務
NFS 依賴rpcbind服務,設定為其自動啟動
# chkconfig rpcbind on
# chkconfig nfs on
# service rpcbind start
# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
在日志檔案/var/log/messages 中,會看到如下資訊:
rpc.mountd[1797]: Version 1.2.3 starting
kernel: NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state
recovery directory
kernel: NFSD: starting 90-second grace period
3.3. 配置NFS伺服器(192.168.3.15)
檢視目前共享的 NFS 資訊
# showmount -e localhost
Export list for localhost: 空白無輸出
配置 export 檔案
# vi /etc/exports
添加如下内容,注意選項中逗号之間沒有空格!
/home/tomcat/image/webapps/static/resources *(rw,no_root_squash,no_all_squash,sync)
儲存退出
exportfs -r //重新挂載/etc/exports中的設定
service rpcbind restart
service nfs restart
3.3.1. 服務端驗證NFS共享:
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/home/tomcat/image/webapps/static/resources *
注:正常能顯示出上面設定的共享目錄,如果報如下錯誤:
clnt_create: RPC: Program not registered
說明 rpcbind服務與NFS服務 啟動順序不對,把他倆都停了,重新啟動,先啟動rpcbind服務再啟動nfs服務;
3.4. 配置NFS客戶機(192.168.3.18)
NFS 客戶機也需要安裝 nfs-utils 包。
[root@localhost ~]# showmount -e 192.168.3.15
Export list for 192.168.3.15:
3.5. 用戶端基本配置
IPADDR=192.168.3.18
HOSTNAME=test.local
為了友善實驗,将防火牆、selinux關閉。
3.6. 啟動服務
啟動rpcbind服務,設定為其自動啟動
用戶端rpcbind服務一定要啟動,nfs可以不用啟動
3.7. 設定啟動自動挂載(192.168.3.18)
[root@localhost ~]# vi /etc/fstab
新增
<code>192.168.3.15:/home/tomcat/image/webapps/static/resources /home/tomcat/image/webapps/static/resources nfs defaults 0 0</code>
<code>#</code>
<code># /etc/fstab</code>
<code># Created by anaconda on Fri Dec 16 15:54:15 2016</code>
<code># Accessible filesystems, by reference, are maintained under '/dev/disk'</code>
<code># See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info</code>
<code>/dev/mapper/VolGroup-lv_root</code> <code>/ ext4 defaults 1 1</code>
<code>UUID=78193f8b-3efc-4c29-bbaf-2d0b1613d69f </code><code>/boot</code> <code>ext4 defaults 1 2</code>
<code>/dev/mapper/VolGroup-lv_home</code> <code>/home</code> <code>ext4 defaults 1 2</code>
<code>/dev/mapper/VolGroup-lv_swap</code> <code>swap swap defaults 0 0</code>
<code>tmpfs </code><code>/dev/shm</code> <code>tmpfs defaults 0 0</code>
<code>devpts </code><code>/dev/pts</code> <code>devpts gid=5,mode=620 0 0</code>
<code>sysfs </code><code>/sys</code> <code>sysfs defaults 0 0</code>
<code>proc </code><code>/proc</code> <code>proc defaults 0 0</code>
<code>192.168.3.15:</code><code>/home/tomcat/image/webapps/static/resources</code> <code>/home/tomcat/image/webapps/static/resources</code> <code>nfs defaults 0 0</code>
四.知識擴充
exports指令:
參數說明如下。
(1)-a:全部挂載(或解除安裝)/etc/exports檔案内的設定。
(2)-r:重新挂載/etc/exports中的設定,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
(3)-u:解除安裝某一目錄。
(4)-v:在export時将共享的目錄顯示在螢幕上。
/etc/exports檔案内容格式:
<共享目錄> [用戶端1 選項(通路權限,使用者映射,其他)]
使用者映射選項
all_squash:将遠端通路的所有普通使用者及所屬組都映射為匿名使用者或使用者組(nfsnobody);
no_all_squash:與all_squash取反(預設設定);
root_squash:将root使用者及所屬組都映射為匿名使用者或使用者組(預設設定);
no_root_squash:與rootsquash取反;
anonuid=xxx:将遠端通路的所有使用者都映射為匿名使用者,并指定該使用者為本地使用者(UID=xxx);
anongid=xxx:将遠端通路的所有使用者組都映射為匿名使用者組賬戶,并指定該匿名使用者組賬戶為本地使用者組賬戶(GID=xxx);
其它選項
secure:限制用戶端隻能從小于1024的tcp/ip端口連接配接nfs伺服器(預設設定);
insecure:允許用戶端從大于1024的tcp/ip端口連接配接伺服器;
sync:将資料同步寫入記憶體緩沖區與磁盤中,效率低,但可以保證資料的一緻性;
async:将資料先儲存在記憶體緩沖區中,必要時才寫入磁盤;
wdelay:檢查是否有相關的寫操作,如果有則将這些寫操作一起執行,這樣可以提高效率(預設設定);
no_wdelay:若有寫操作則立即執行,應與sync配合使用;
subtree:若輸出目錄是一個子目錄,則nfs伺服器将檢查其父目錄的權限(預設設定);
no_subtree:即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的權限,這樣可以提高效率;
本文轉自ling118 51CTO部落格,原文連結:http://blog.51cto.com/meiling/1911807,如需轉載請自行聯系原作者