NFS服務配置

1、NFS簡介

NFS是Network File System的縮寫。
NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新爲4.1版本。
NFS數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。
NFS應用場景是:A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致。mysql

NFS結構
NFS服務配置
NFS原理
NFS服務配置linux

2、服務端配置NFS

在坐實驗前,準備兩臺虛擬機,A服務端(192.168.242.128),B客戶端(192.168.242.129)。nginx

一、安裝NFS服務

[root@zlinux ~]# yum install -y nfs-utils      //yum工具安裝nfs-utils時會一併安裝recbind

二、編輯配置文件

[root@zlinux ~]# vim /etc/exports                                 //加入如下內容

/home/nfstestdir 192.168.241.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

小括號內的權限選項含義:sql

rw: 讀寫
ro: 只讀
sync: 同步模式,內存數據實時寫入磁盤
async :非同步模式
no_root_squash: 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大
root_squash: 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
all_squash: 客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶
anonuid/anongid: 和上面幾個選項搭配使用,定義被限定用戶的uid和gidvim

三、建立目錄並修改權限

[root@zlinux ~]# mkdir /home/nfstestdir
[root@zlinux ~]# chmod 777 /home/nfstestdir/

四、查看服務是否啓動

[root@zlinux ~]# netstat -lntp            //111端口說明rpcbind已啓動
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      800/nginx: master p 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      781/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1321/master         
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      800/nginx: master p 
tcp6       0      0 :::3306                 :::*                    LISTEN      1331/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      781/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1321/master         
[root@zlinux ~]# ps aux |grep rpc          //rpcbind服務已啓動
rpc        2476  0.0  0.0  64964  1048 ?        Ss   19:11   0:00 /sbin/rpcbind -w
root       3931  0.0  0.0 112680   972 pts/0    R+   21:02   0:00 grep --color=auto rpc
[root@zlinux ~]# systemctl start nfs                       //啓動nfs服務
[root@zlinux ~]# ps aux |grep nfs
root       3983  0.0  0.0      0     0 ?        S<   21:04   0:00 [nfsd4_callbacks]
root       3989  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       3990  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       3991  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       3992  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       3993  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       3994  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       3995  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       3996  0.0  0.0      0     0 ?        S    21:04   0:00 [nfsd]
root       4002  0.0  0.0 112680   976 pts/0    R+   21:04   0:00 grep --color=auto nfs
[root@zlinux ~]# systemctl enable nfs                 //設爲開機啓動
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@zlinux ~]# systemctl enable rpcbind

3、NFS客戶端設置

先安裝好nfs-utils安裝包。app

一、查看服務端共享目錄

[root@zlinux02 ~]# showmount -e 192.168.242.128
Export list for 192.168.242.128:
/home/nfstestdir 192.168.1.0/24

使用showmount -e IP命令,可查看NFS共享狀況。dom

二、在客戶端掛載NFS

[root@zlinux02 ~]# mount -t nfs 192.168.242.128:/home/nfstestdir /mnt/
[root@zlinux02 ~]# df -h              //ke能夠看到增長了/mnt分區。
文件系統                          容量  已用  可用 已用% 掛載點
/dev/sda3                          26G  2.7G   24G   11% /
devtmpfs                          903M     0  903M    0% /dev
tmpfs                             912M     0  912M    0% /dev/shm
tmpfs                             912M  8.6M  904M    1% /run
tmpfs                             912M     0  912M    0% /sys/fs/cgroup
/dev/sda1                         197M  109M   88M   56% /boot
tmpfs                             183M     0  183M    0% /run/user/0
192.168.242.128:/home/nfstestdir   26G  3.4G   23G   14% /mnt

三、建立測試文件

# 客戶端建立查看
[root@zlinux02 ~]# cd /mnt/  
[root@zlinux02 mnt]# touch nfstestfile.txt
[root@zlinux02 mnt]# ls -l
總用量 0
-rw-r--r--. 1 mysql mysql 0 3月  26 21:27 nfstestfile.txt

# 服務端查看
[root@zlinux ~]# ls -l /home/nfstestdir/
總用量 0
-rw-r--r--. 1 mysql mysql 0 3月  26 21:27 nfstestfile.txt

#無論用哪一個用戶操做,將以1000uid,1000gid 操做
[root@zlinux ~]# id mysql
uid=1000(mysql) gid=1000(mysql) 組=1000(mysql)

4、exportfs命令

exportfs命令經常使用選項:ssh

-a 所有掛載或者所有卸載
-r 從新掛載
-u 卸載某個目錄
-v 顯示共享目錄async

經常使用組合: exportfs -arv
服務端更改配置文件後,不重啓服務,直接執行該命令就可使更改後的配置文件生效。
注意: 在重啓nfs服務以前須要先將全部掛載點卸載,不然將發生程序錯誤,嚴重者會拖垮系統。
服務端修改:tcp

[root@zlinux ~]# vim /etc/exports                  //增長一行如下內容

/tmp/ 192.168.242.0/24(rw,sync,no_root_squash)

[root@zlinux ~]# exportfs -arv
exporting 192.168.242.0/24:/tmp
exporting 192.168.242.0/24:/home/nfstestdir

客戶端查看:

[root@zlinux02 ~]# showmount -e 192.168.242.128
Export list for 192.168.242.128:
/tmp             192.168.242.0/24
/home/nfstestdir 192.168.242.0/24
[root@zlinux02 ~]# showmount -e 192.168.242.128
Export list for 192.168.242.128:
/tmp             192.168.242.0/24
/home/nfstestdir 192.168.242.0/24

5、NFS客戶端問題

客戶端掛載共享目錄後,無論是root用戶仍是普通用戶,建立新文件時屬主、屬組爲nobody
客戶端掛載時加上-o nfsvers=3客戶端和服務端都須要vim /etc/idmapd.conf把 "#Domain = local.domain.edu" 改成 "Domain = xxx.com" (域名自定義),而後再重啓rpcidmapd服務

相關文章
相關標籤/搜索