NFS(Network File System)即網絡文件系統
一、RPC的功能:
記錄每一個NFS功能所對應端口號,而且在NFS客戶端請求時將該端口和功能對應的信息傳遞給請求數據的NFS客戶端,從而能夠確保客戶端能夠鏈接到正確的NFS端口上去,達到實現數據傳輸交互數據的目的。
二、啓動原理:
1)服務端啓動rpc服務(5:portmap,6:rpcbind)
2)服務端啓動nfs服務,並向rpc服務註冊
3)客戶端請求服務
4)服務端rpc服務返回端口給客戶端rpc服務
5)開始傳輸數據
三、實戰
1)實戰準備
操做系統:vim
版本:
bash
CentOS 6.6 2.6.32-504.el6.x86_64網絡
IP地址:
app
nfs_server: IP:192.168.1.12
nfs_client: IP:192.168.1.13
2)服務端、客戶端安裝軟件
tcp
服務端 [root@nfs_server ~]# yum install -y rpcbind nfs-utils 客戶端 [root@nfs_client ~]# yum install -y rpcbind nfs-utils
3)啓動服務端
ide
#啓動prc服務 [root@nfs_server ~]# /etc/init.d/rpcbind start Starting rpcbind: [ OK ] #進程查看rpc服務 [root@nfs_server ~]# ps -ef|grep rpcbind|grep -v grep rpc 1145 1 0 12:46 ? 00:00:00 rpcbind #查看rpc服務狀態 [root@nfs_server ~]# /etc/init.d/rpcbind status rpcbind (pid 1145) is running... #查看rpc對外服務 [root@nfs_server ~]# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper ###rpc服務中止後,rpc對外服務的報錯信息 #[root@nfs_server ~]# /etc/init.d/rpcbind stop #Stopping rpcbind: [ OK ] #[root@nfs_server ~]# rpcinfo -p localhost #rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused #啓動NFS服務 [root@nfs_server ~]# /etc/init.d/nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ] #再次查看對外服務信息,這時nfs服務已經在rpc服務中註冊 [root@nfs_server ~]# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 875 rquotad 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100005 1 udp 54673 mountd 100005 1 tcp 59044 mountd 100005 2 udp 40168 mountd 100005 2 tcp 47027 mountd 100005 3 udp 34129 mountd 100005 3 tcp 38298 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 60276 nlockmgr 100021 3 udp 60276 nlockmgr 100021 4 udp 60276 nlockmgr 100021 1 tcp 41624 nlockmgr 100021 3 tcp 41624 nlockmgr 100021 4 tcp 41624 nlockmgr #添加開機自啓動服務,及檢查 [root@nfs_server ~]# chkconfig nfs on [root@nfs_server ~]# chkconfig rpcbind on [root@nfs_server ~]# chkconfig --list nfs nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@nfs_server ~]# chkconfig --list rpcbind rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4)啓動客戶端
測試
客戶端只要啓動RPC服務便可 [root@nfs_client ~]# /etc/init.d/rpcbind start Starting rpcbind: [ OK ] [root@nfs_client ~]# /etc/init.d/rpcbind status rpcbind (pid 1266) is running... [root@nfs_client ~]# chkconfig rpcbind on [root@nfs_client ~]# chkconfig --list rpcbind rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
5)配置服務端
ui
#默認配置文件是空的 [root@nfs_server ~]# cat /etc/exports #建立共享目錄 [root@nfs_server ~]# mkdir /data #編輯配置文件 [root@nfs_server data]# vim /etc/exports [root@nfs_server data]# cat /etc/exports #share data for bbs by king 20150708 /data 192.168.1.0/24(rw,sync) #從新加載服務,即平滑重啓 [root@nfs_server data]# /etc/init.d/nfs reload #在服務端檢查服務是否正常共享 [root@nfs_server data]# showmount -e localhost Export list for localhost: /data 192.168.1.0/24
6)配置客戶端
操作系統
#在客戶端再次檢查服務是否正常共享 [root@nfs_client ~]# showmount -e 192.168.1.112 Export list for 192.168.1.112: /data 192.168.1.0/24 #開始掛載 [root@nfs_client ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 8.6G 1.7G 6.5G 20% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 32M 149M 18% /boot [root@nfs_client ~]# mount -t nfs 192.168.1.112:/data /mnt [root@nfs_client ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 8.6G 1.7G 6.5G 20% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 32M 149M 18% /boot 192.168.1.112:/data 8.6G 1.7G 6.5G 20% /mnt #測試 在服務端查看共享目錄文件 [root@nfs_server ~]# ls -l /data/ total 16 -rw-r--r-- 1 root root 56 Jul 7 19:24 2.sh -rw-r--r-- 1 root root 8 Jul 7 22:27 2.txt -rw-r--r-- 1 root root 29 Jul 7 19:56 3.txt -rw-r--r--. 1 root root 10 Jul 3 19:07 5.txt 在客戶端查看掛載的目錄文件 [root@nfs_client ~]# ls -l /mnt/ total 16 -rw-r--r-- 1 root root 56 Jul 7 19:24 2.sh -rw-r--r-- 1 root root 8 Jul 7 22:27 2.txt -rw-r--r-- 1 root root 29 Jul 7 19:56 3.txt -rw-r--r-- 1 root root 10 Jul 3 19:07 5.txt ###其實基本NFS服務搭建成功
7)注意事項:
server
(1)在共享目錄裏建立和刪除裏面的文件,須要服務端的共享目錄提供權限 (2)實際服務端配置文件位置 [root@nfs_server ~]# cat /var/lib/nfs/etab /data 192.168.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)