1. NFS服務(wù)介紹
1.1 什么是NFS服務(wù)
NFS(Network File System)即網(wǎng)絡(luò)文件系統(tǒng)饵撑,它允許網(wǎng)絡(luò)中的計(jì)算機(jī)之間通過(guò)TCP/IP網(wǎng)絡(luò)共享資源僵腺。在NFS的應(yīng)用中镇饺,本地NFS的客戶端應(yīng)用可以透明地讀寫位于遠(yuǎn)端NFS服務(wù)器上的文件,就像訪問(wèn)本地文件一樣易遣,也就是說(shuō)客戶端PC可以掛載NFS服務(wù)器所提供的目錄并且掛載之后這個(gè)目錄看起來(lái)如同本地的磁盤分區(qū)一樣劫拢,可以使用cp、cd作儿、mv洛二、rm及df等與磁盤相關(guān)的命令。
1.2 NFS服務(wù)的有優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- 節(jié)省本地存儲(chǔ)空間攻锰,將常用的數(shù)據(jù)存放在一臺(tái)可以通過(guò)網(wǎng)絡(luò)訪問(wèn)的服務(wù)器上
- 簡(jiǎn)單容易上手
- 方便部署非沉浪唬快速,維護(hù)十分簡(jiǎn)單
缺點(diǎn):
- 容易發(fā)生單點(diǎn)故障口注,需要做備份處理
- 在高并發(fā)環(huán)境中效率性能有限
- 客戶端沒(méi)有認(rèn)證機(jī)制变擒,數(shù)據(jù)通過(guò)明文傳輸,缺乏安全性
- 對(duì)數(shù)據(jù)的完整性不做驗(yàn)證
- 多臺(tái)機(jī)器掛載NFS服務(wù)器時(shí)寝志,連接管理維護(hù)比較麻煩
2. NFS工作原理介紹
需要基于RPC服務(wù)
2.1 RPC簡(jiǎn)單介紹
RPC(Remote Procedure Call)遠(yuǎn)程過(guò)程調(diào)用娇斑。
主要功能:在指定每個(gè)NFS功能所對(duì)應(yīng)的端口號(hào),并且匯報(bào)給客戶端材部,讓客戶端正確的連接到端口號(hào)上去毫缆。
- a.執(zhí)行順序:1(注冊(cè)端口)--à2(達(dá)成協(xié)議)-à3(直接建立聯(lián)系)--à4(達(dá)成協(xié)議)--à5(建立連接)
- b.那為啥rpc能夠找到對(duì)應(yīng)的port呢?這是因?yàn)楫?dāng)服務(wù)器在啟動(dòng)NFS時(shí)會(huì)隨機(jī)取用數(shù)個(gè)port乐导,并且主動(dòng)的向RPC注冊(cè)苦丁,因此RPC可以知道每個(gè)NFS的port對(duì)應(yīng)的NFS功能,然后RPC又是固定使用port111來(lái)監(jiān)聽(tīng)客戶端的需求并匯報(bào)客戶端的正確的port物臂。
3. NFS Server安裝
3.1 服務(wù)器系統(tǒng)初始化
- 主機(jī)名hostname修改
- IP地址設(shè)定
- 防火墻iptables關(guān)閉
- 關(guān)閉selinux
3.2 yum安裝nfs服務(wù)和rpc服務(wù)
[root@nfs-server ~]# yum install nfs* rpcbind -y
3.3 檢查是否已經(jīng)安裝nfs和rpc服務(wù)
[root@nfs-server ~]# rpm -qa nfs* rpcbind
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6_8.2.x86_64
nfsometer-1.6-1.el6.noarch
nfs-ganesha-utils-2.3.2-1.el6.x86_64
nfs-ganesha-proxy-2.3.2-1.el6.x86_64
nfs-ganesha-mount-9P-2.3.2-1.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
nfs-ganesha-2.3.2-1.el6.x86_64
nfs-ganesha-vfs-2.3.2-1.el6.x86_64
nfs-ganesha-nullfs-2.3.2-1.el6.x86_64
nfs-utils-lib-devel-1.1.5-11.el6.x86_64
nfs4-acl-tools-0.3.3-8.el6.x86_64
3.4 啟動(dòng)rpc服務(wù)和nfs服務(wù)(先啟動(dòng)rpc后啟動(dòng)nfs)
[root@nfs-server ~]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
[root@nfs-server ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
3.5 設(shè)置開機(jī)自啟動(dòng)
[root@nfs-server ~]# chkconfig rpcbind on
[root@nfs-server ~]# chkconfig nfs on
[root@nfs-server ~]# chkconfig --list | egrep "nfs|rpcbind"
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfs-rdma 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3.6 建立和配置共享目錄
[root@nfs-server ~]# mkdir /data
[root@nfs-server ~]# vim /etc/exports
/data 192.168.84.1/24(rw,sync,no_all_squash)
3.7 平滑加載nfs服務(wù)并檢查
[root@nfs-server ~]# /etc/init.d/nfs reload
[root@nfs-server ~]# showmount -e localhost
Export list for localhost:
/data 192.168.84.1/24
4. NFS Client 安裝
4.1 安裝rpcbind服務(wù)
[root@nfs-client ~]# yum install rpcbinid -y
4.2 啟動(dòng)并檢查服務(wù)旺拉,設(shè)置開機(jī)自動(dòng)啟動(dòng)
[root@nfs-client ~]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
[root@nfs-client ~]# chkconfig rpcbind on
[root@nfs-client ~]# chkconfig --list | grep rpcbind
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4.3 掛載server端共享的文件
[root@nfs-client ~]# mount -t nfs 192.168.84.102:/data /tmp/
4.4 查看是否掛載成功
[root@nfs-client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
8.4G 1.1G 6.9G 14% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 477M 33M 419M 8% /boot
192.168.84.102:/data 8.4G 1.1G 6.9G 14% /tmp