6月21日任務
14.1 NFS介紹
14.2 NFS服務端安裝配置
14.3 NFS配置選項
14.1 NFS介紹
14.2 NFS服務端安裝配置
1、首先需要2台機器,一台是服務端,一台是客戶端,分別安裝nfs-utils。
服務端需要安裝的程序
[root@jimmylinux-001 ~]# yum install -y nfs-utils rpcbind
客戶端需要安裝的程序
[root@jimmylinux-001 ~]# yum install -y nfs-utils
2、編輯文件 vim /etc/exports
[root@jimmylinux-001 ~]# vim /etc/exports 寫入以下內容 /home/nfstestdir 192.168.52.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) 前面一段是共享目錄,后面一段定義你要給那個機器去分享共享這個目錄,指定一個IP或IP段。
3、創建要分享的目錄,並設置成777的權限,設置成777權限是為了方便一會做實驗。
[root@jimmylinux-001 ~]# mkdir /home/nfstestdir [root@jimmylinux-001 ~]# chmod 777 /home/nfstestdir
4、啟動rpcbind 服務
[root@jimmylinux-001 ~]# systemctl start rpcbind
查看rpcbind 服務監聽端口
[root@jimmylinux-001 ~]# netstat -lnpt 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 2572/rpcbind tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1101/nginx: master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 942/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1267/master tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1101/nginx: master tcp6 0 0 :::111 :::* LISTEN 2572/rpcbind tcp6 0 0 :::22 :::* LISTEN 942/sshd tcp6 0 0 ::1:25 :::* LISTEN 1267/master tcp6 0 0 :::3306 :::* LISTEN 1315/mysqld
5、啟動nfs服務,在啟動nfs服務后會自動啟動rpc相關的其他服務。
6、如果想讓nfs服務開機自啟動,還需要執行以下命令。
[root@jimmylinux-001 ~]# systemctl enable nfs Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
14.3 NFS配置選項
[root@jimmylinux-001 ~]# cat /etc/exports /home/nfstestdir 192.168.52.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) 括號里面是nfs的配置選項內容
NFS配置選項的含義:
rw 讀寫
ro 只讀
sync 同步模式,內存數據實時寫入磁盤(sync很快的就會把數據寫到磁盤去,但是不好之處就會降低磁盤效率)
async 非同步模式(不需要實時把數據寫入到磁盤,每隔一段時間會把內存數據刷入到磁盤,好處是可以保障磁盤效率,不好就是萬一斷電,數據可能會丟失)
no_root_squash 客戶端掛載NFS共享目錄后,root用戶不受約束,權限很大
root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
all_squash 客戶端上所有用戶在使用NFS共享目錄時都被限定為一個普通用戶
anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid
下面在客戶端上做一個掛載
1、安裝rpcbind,rpcbind包是由nfs-utils自帶的包一起安裝的。
[root@jimmylinux-002 ~]# yum install -y nfs-utils
2、假如有一台機器已經做了nfs的服務,可以使用showmount查看是否有權限。
如果出現上面的報錯,說明網絡不通,沒有辦法和192.168.52.128的111端口通訊,要么是對方的rpcbind服務沒有開啟,如果服務開啟了還不行,那就是防火牆的關系導致。
把服務端和客戶端的防火牆都關閉,包括selinux。
[root@jimmylinux-001 ~]# systemctl stop firewalld 關閉服務端防火牆
[root@jimmylinux-001 ~]# setenforce 0
[root@jimmylinux-002 ~]# systemctl stop firewalld 關閉客戶端防火牆 [root@jimmylinux-002 ~]# getenforce 關閉selinux Enforcing
[root@jimmylinux-002 ~]# setenforce 0
這個時候再showmount 查看權限就可以了
3、mount 掛載
可以在這個目錄下創建一個文件
為什么服務端和客戶端2邊的顯示名字不一樣呢?
因為在配置選項中有anonuid和anongid,而配置文件中有寫了一個
anonuid=1000,anongid=1000(1000的id來限定一個普通用戶)意思就是說一旦掛載了nfs共享的目錄,不夠用哪個用戶來操作,最終都是以1000uid和1000gid的用戶體現出來。
這個就是因為限定了用戶,所以會顯示成這樣子的。