10.3 NFS服務端部署環境準備 10.3.1 NFS服務部署伺服器準備 伺服器系統 角色 IP Centos6.7 x86_64 NFS伺服器端(NFS-server) 192.168.1.14 Centos6.7 x86_64 NFS客戶端(Web-lamp01) 192.168.1.15 C
10.3 NFS服務端部署環境準備
10.3.1 NFS服務部署伺服器準備
伺服器系統 | 角色 | IP |
Centos6.7 x86_64 | NFS伺服器端(NFS-server) | 192.168.1.14 |
Centos6.7 x86_64 | NFS客戶端(Web-lamp01) | 192.168.1.15 |
Centos6.7 x86_64 | NFS客戶端(Web-lnmp02) | 192.168.1.16 |
10.3.2 NFS服務部署架構圖
10.3.3 NFS伺服器端操作系統及內核版本
1 [root@NFS-server ~]# cat /etc/redhat-release 2 CentOS release 6.7 (Final) 3 [root@NFS-server ~]# username -r 4 [root@NFS-server ~]# uname -r 5 2.6.32-573.el6.x86_64 6 [root@NFS-server ~]# uname -m 7 x86_64
10.4 NFS服務安裝前準備
10.4.1 查詢nfs-utils和rpcbind包是否安裝
1 [root@NFS-server ~]# rpm -qa nfs-utils rpcbind ##查詢結果為兩個安裝包都未安裝 2 [root@NFS-server ~]#
知識擴展:
安裝NFS軟體安裝的3種方法:
檢查:rpm -qa nfs-utils rpcbind ←最佳
1)方法1:yum -y install nfs-utils rpcbind
2)方法2:通過系統光碟里的rpm包安裝,命令如:rpm -ivh nfs-utils-1.2.3-36.e16.x86_64.rpm
3)方法3:LANG=en
yum grouplist|grep -i nfs
yum groupinstall "NFS file server" -y
10.4.2使用方法1安裝所需軟體包
10.4.3檢查安裝包是否安裝上
1 [root@NFS-server ~]# rpm -qa nfs-utils rpcbind 2 rpcbind-0.2.0-11.el6_7.x86_64 3 nfs-utils-1.2.3-64.el6.x86_64
10.4.4 接下來啟動相應的服務
1 [root@NFS-server ~]# /etc/init.d/rpcbind status <==檢查rpcbind服務狀態 2 rpcbind is stopped 3 [root@NFS-server ~]# rpcinfo -p localhost <==rpcbind服務未啟動檢查 rpcinfo信息報錯 4 rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused 5 [root@NFS-server ~]# /etc/init.d/rpcbind start <==啟動rpcbind服務 6 Starting rpcbind: [ OK ] 7 [root@NFS-server ~]# /etc/init.d/rpcbind status 8 rpcbind (pid 2083) is running... 9 [root@NFS-server ~]# /etc/init.d/nfs status <==查看nfs服務狀態 10 rpc.svcgssd is stopped 11 rpc.mountd is stopped 12 nfsd is stopped 13 rpc.rquotad is stopped 14 [root@NFS-server ~]# /etc/init.d/nfs start <==啟動nfs服務 15 Starting NFS services: [ OK ] 16 Starting NFS quotas: [ OK ] 17 Starting NFS mountd: [ OK ] 18 Starting NFS daemon: [ OK ] 19 Starting RPC idmapd: [ OK ]
10.4.5 設置開機自啟動
1 [root@NFS-server ~]# chkconfig --level 35 nfs on <==設置nfs服務開機自啟動 2 [root@NFS-server ~]# chkconfig --list nfs 3 nfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off 4 [root@NFS-server ~]# chkconfig --level 35 rpcbind on 5 [root@NFS-server ~]# chkconfig --list rpcbind <==<==設置rpcbind服務開機自啟動 6 rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
10.5 配置NFS服務端
10.5.1 NFS服務端配置文件路徑
NFS服務配置文件路徑為:/etc/exports,並且預設是為空。
1 [root@NFS-server ~]# ll /etc/exports 2 -rw-r--r--. 1 root root 0 Jan 12 2010 /etc/exports 3 [root@NFS-server ~]# cat /etc/exports 4 [root@NFS-server ~]#
10.5.2 編輯NFS服務端配置文件
1 [root@NFS-server ~]# vim /etc/exports 2 /data 192.168.1.0/24(rw,sync,all_squash) <==添加如下內容
1 [root@NFS-server ~]# vim /etc/exports 2 /data 192.168.1.0/24(rw,sync,all_squash) <==添加如下內容 3 [root@NFS-server ~]# mkdir -p /data <==創建共用目錄/data 4 [root@NFS-server ~]# ls -ld /data 5 drwxr-xr-x. 3 root root 4096 Nov 26 15:19 /data <==當前共用目錄的屬主屬組分別為root 6 [root@NFS-server ~]# chown -R nfsnobody.nfsnobody /data <==修改/data及子文件屬主屬組為nfsnobody 7 [root@NFS-server ~]# ls -ld /data 8 drwxr-xr-x. 3 nfsnobody nfsnobody 4096 Nov 26 15:19 /data
10.5.3 重新載入NFS服務(優雅重啟)
1 [root@NFS-server ~]# /etc/init.d/nfs reload ===exportfs -r 2 [root@NFS-server ~]# cat /var/lib/nfs/etab 3 /data 192.168.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,all_squash) 4 [root@NFS-server ~]# showmount -e 192.168.1.14 <==掛載前首先檢查有許可權需要掛載的信息 5 Export list for 192.168.1.14: 6 /data 192.168.1.0/24 <---可以看到共用/data目錄
10.5.4 檢查或測試掛載
1 [root@NFS-server test]# mount -t nfs 192.168.1.14:/data /mnt ##將/data共用目錄掛載到/mnt目錄 2 [root@NFS-server test]# df -h 3 Filesystem Size Used Avail Use% Mounted on 4 /dev/sda3 7.1G 1.5G 5.3G 22% / 5 tmpfs 279M 0 279M 0% /dev/shm 6 /dev/sda1 190M 36M 145M 20% /boot 7 192.168.1.14:/data 7.1G 1.5G 5.3G 22% /mnt
註意:
大型企業工作場景統一按照運維規範將服務的啟動寫到/etc/rc.local文件里,而不用chkconfig管理。把/etc/rc.local文件作為本機的重要檔案,所有服務的開機自啟動都必須放入/etc/rc.local。這樣規範的好處是,一旦有運維人員離職,或者業務遷移時都通過/etc/rc.local很容易查看伺服器相關的服務,可以方便運維管理。並且把啟動命令放入到/etc/rc.local文件中一定要加上啟動服務的註釋。
1 [root@NFS-server test]# vim /etc/rc.local 2 #!/bin/sh 3 # 4 # This script will be executed *after* all the other init scripts. 5 # You can put your own initialization stuff in here if you don't 6 # want to do the full Sys V style init stuff. 7 8 touch /var/lock/subsys/local 9 #start up nfs services by zhurui at 20160226 10 /etc/init.d/rpcbind start <==開機自啟rpcbind服務 11 /etc/init.d/nfs start <==開機自啟nfs服務
Web-lamp01客戶端部署:
1 1.安裝軟體 2 [root@Web-lamp01 ~]# yum -y install nfs-utils rpcbind 3 Loaded plugins: fastestmirror, security 4 Setting up Install Process 5 Loading mirror speeds from cached hostfile 6 * base: mirrors.sina.cn 7 * extras: mirrors.opencas.cn 8 * updates: centos.ustc.edu.cn 9 base | 3.7 kB 00:00 10 extras | 3.4 kB 00:00 11 extras/primary_db | 34 kB 00:00 12 updates | 3.4 kB 00:00 13 2.啟動rpcbind 14 [root@Web-lamp01 ~]# /etc/init.d/rpcbind start 15 Starting rpcbind: [ OK ] 16 [root@Web-lamp01 ~]# 17 3.配置開機自啟動 18 [root@Web-lamp01 ~]# chkconfig --level 35 rpcbind on 19 [root@Web-lamp01 ~]# chkconfig --list rpcbind 20 rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off 21 [root@Web-lamp01 ~]# 22 4.測試服務端共用 23 [root@Web-lamp01 ~]# showmount -e 192.168.1.14 24 Export list for 192.168.1.14: 25 /data 192.168.1.0/24 26 5.掛載 27 [root@Web-lamp01 ~]# mount -t nfs 192.168.1.14:/data /mnt 28 [root@Web-lamp01 ~]# df -h 29 Filesystem Size Used Avail Use% Mounted on 30 /dev/sda3 7.1G 1.5G 5.3G 22% / 31 tmpfs 279M 0 279M 0% /dev/shm 32 /dev/sda1 190M 36M 145M 20% /boot 33 192.168.1.14:/data 7.1G 1.5G 5.3G 22% /mnt 34 6.測試讀,寫 35 伺服器端: 36 [root@NFS-server test]# cd /data/ 37 [root@NFS-server data]# ll 38 total 8 39 -rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 12:20 fs.sf 40 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 26 15:19 test 41 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 28 12:20 zhurui 42 [root@NFS-server data]# mkdir zhurui1 43 [root@NFS-server data]# ll 44 total 12 45 -rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 12:20 fs.sf 46 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 26 15:19 test 47 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 28 12:20 zhurui 48 drwxr-xr-x. 2 root root 4096 Nov 28 12:21 zhurui1 49 客戶端: 50 [root@Web-lamp01 ~]# cd /mnt/ 51 [root@Web-lamp01 mnt]# ll 52 total 4 53 drwxr-xr-x. 2 nobody nobody 4096 Nov 26 15:19 test 54 [root@Web-lamp01 mnt]# touch fs.sf 55 [root@Web-lamp01 mnt]# ll 56 total 4 57 -rw-r--r--. 1 nobody nobody 0 Nov 28 12:20 fs.sf 58 drwxr-xr-x. 2 nobody nobody 4096 Nov 26 15:19 test 59 [root@Web-lamp01 mnt]# mkdir zhurui 60 [root@Web-lamp01 mnt]# ls -ld zhurui/ 61 drwxr-xr-x. 2 nobody nobody 4096 Nov 28 12:20 zhurui/ 62 [root@Web-lamp01 mnt]# ll 63 total 12 64 -rw-r--r--. 1 nobody nobody 0 Nov 28 12:20 fs.sf 65 drwxr-xr-x. 2 nobody nobody 4096 Nov 26 15:19 test 66 drwxr-xr-x. 2 nobody nobody 4096 Nov 28 12:20 zhurui 67 drwxr-xr-x. 2 nobody nobody 4096 Nov 28 12:21 zhurui1 68 7.開機自啟動 69 [root@Web-lamp01 mnt]# vim /etc/rc.local 70 #start up rpcbind services by zhurui 20160226 71 72 /etc/init.d/rpcbind start 73 74 /bin/mount -t nfs 192.168.1.14:/data /mnt
Web-lnmp02客戶端部署跟Web-lamp01部署步驟相同,這裡就不多加說明
14 1 1.安裝軟體 15 2 [root@Web-lnmp02 ~]# yum -y install nfs-utils rpcbind 16 3 Loaded plugins: fastestmirror, security 17 4 Setting up Install Process 18 5 Loading mirror speeds from cached hostfile 19 6 * base: mirrors.sina.cn 20 7 * extras: mirrors.opencas.cn 21 8 * updates: centos.ustc.edu.cn 22 9 base | 3.7 kB 00:00 23 10 extras | 3.4 kB 00:00 24 11 extras/primary_db | 34 kB 00:00 25 12 updates | 3.4 kB 00:00 26 13 2.啟動rpcbind 27 14 [root@Web-lnmp02 ~]# /etc/init.d/rpcbind start 28 15 Starting rpcbind: [ OK ] 29 16 [root@Web-lnmp02 ~]# 30 17 3.配置開機自啟動 31 18 [root@Web-lnmp02 ~]# chkconfig --level 35 rpcbind on 32 19 [root@Web-lnmp02 ~]# chkconfig --list rpcbind 33 20 rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off 34 21 [root@Web-lnmp02 ~]# 35 22 4.測試服務端共用 36 23 [root@Web-lnmp02 ~]# showmount -e 192.168.1.14 37 24 Export list for 192.168.1.14: 38 25 /data 192.168.1.0/24 39 26 5.掛載 40 27 [root@Web-lnmp02 ~]# mount -t nfs 192.168.1.14:/data /mnt 41 28 [root@Web-lnmp02 ~]# df -h 42 29 Filesystem Size Used Avail Use% Mounted on 43 30 /dev/sda3 7.1G 1.5G 5.3G 22% / 44 31 tmpfs 279M 0 279M 0% /dev/shm 45 32 /dev/sda1 190M 36M 145M 20% /boot 46 33 192.168.1.14:/data 7.1G 1.5G 5.3G 22% /mnt 47 34 6.測試讀,寫 48 35 伺服器端: 49 36 [root@NFS-server test]# cd /data/ 50 37 [root@NFS-server data]# ll 51 38 total 8 52 39 -rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 12:20 fs.sf 53 40 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 26 15:19 test 54 41 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 28 12:20 zhurui 55 42 [root@NFS-server data]# mkdir zhurui1 56 43 [root@NFS-server data]# ll 57 44 total 12 58 45 -rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 28 12:20 fs.sf 59 46 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 26 15:19 test 60 47 drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Nov 28 12:20 zhurui 61 48 drwxr-xr-x. 2 root root 4096 Nov 28 12:21 zhurui1 62 49 客戶端: 63 50 [root@Web-lnmp02 ~]# cd /mnt/ 64 51 [root@Web-lnmp02 mnt]# ll 65 52 total 4 66 53 drwxr-xr-x. 2 nobody nobody 4096 Nov 26 15:19 test 67 54 [root@Web-lnmp02 mnt]# touch fs.sf 68 55 [root@Web-lnmp02 mnt]# ll 69 56 total 4 70 57 -rw-r--r--. 1 nobody nobody 0 Nov 28 12:20 fs.sf 71 58 drwxr-xr-x. 2 nobody nobody 4096 Nov 26 15:19 test 72 59 [root@Web-lnmp02 mnt]# mkdir zhurui 73 60 [root@Web-lnmp02 mnt]# ls -ld zhurui/ 74 61 drwxr-xr-x. 2 nobody nobody 4096 Nov 28 12:20 zhurui/ 75 62 [root@Web-lnmp02 mnt]# ll 76 63 total 12 77 64 -rw-r--r--. 1 nobody nobody 0 Nov 28 12:20 fs.sf 78 65 drwxr-xr-x. 2 nobody nobody 4096 Nov 26 15:19 test 79 66 drwxr-xr-x. 2 nobody nobody 4096 Nov 28 12:20 zhurui 80 67 drwxr-xr-x. 2 nobody nobody 4096 Nov 28 12:21 zhurui1 81 68 7.開機自啟動 82 69 [root@Web-lnmp02 mnt]# vim /etc/rc.local 83 70 #start up rpcbind services by zhurui 20160226 84 71 85 72 /etc/init.d/rpcbind start 86 73 87 74 /bin/mount -t nfs 192.168.1.14:/data /mnt
10.6 mount掛載性能優化參數選項
(1)禁止更新目錄及文件時間戳掛載
1 mount -t nfs -o noatime,nodiratime 192.168.1.14:/data
(2)安全加優化的掛載方式
1 mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 192.168.1.14:/data /mnt
(3)預設的掛載方式
1 mount -t nfs 192.168.1.14:/data /mnt
10.7 NFS內核優化
對應的具體內核優化命令:
1 cat >>/etc/sysctl.conf<<EOF 2 net.core.wmem_default = 8388608 3 net.core.rmem_default = 8388608 4 net.core.rmem_max = 16777216 5 net.core.wmem_max = 16777216 6 EOF
執行sysctl -p生效