54.nfs介紹 服務端安裝配置 配置選項

14.1 NFS介紹mysql

14.2 NFS服務端安裝配置linux

14.3 NFS配置選項sql

 

 

 

 

 

14.1 NFS介紹:vim

 

 

~1.NFS是Network File System的縮寫centos

是基於網絡層面的,是藉助網絡實現數據的同步bash

~2.NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新爲4.1版本網絡

其實並無想象的更新的那麼快。但並不該該NFS使用的普遍性app

~3.NFS數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。負載均衡

!!RPC說白了就是要爲NFS這個服務提供支持。服務端與客戶端通訊的時候,自己不能直接通訊,須要藉助RPC協議來完成ssh

~4.NFS應用場景是:A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致

也就是在ABC這三臺機器上,任何一臺更新了數據,其餘兩臺立刻就能看到。

A機器負載很高,B和C做爲A的負載均衡

 

 

NFS的原理:

以下圖,服務端要啓動NFS的服務,那這個服務要想與客戶端提供服務,就要藉助RPC協議。那RPC協議是以RPCbind服務實現的(centos5以及以前的版本叫作portmap,centos6以及以後的叫rpcbind。其實是一個東西),最終實現RPC之間的通訊。

NFS服務自己不監放任何端口。最終監聽端口,實現tcp/ip通訊的過程是由rpcbind服務所產生的RPC協議實現的。rpcbind監聽111端口

tcp/ip二者之間先通訊。NFS會在RPC協議裏面去註冊一個端口(好比某某端口),告訴RPC通訊的端口是什麼。而後rpcbind在告訴客戶端的rpcbind端口是什麼。而後NFS這臺機器在和服務端的這個端口去通訊。最終實現數據的傳輸

!!總之一句話。NFS這個服務須要藉助RPC協議來通訊

 

 

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

14.2 NFS服務端安裝配置:

 

 

~1.yum install -y nfs-utils rpcbind //服務端安裝這兩個包。客戶端安裝nfs-utils

~2.vim /etc/exports//加入以下內容

/home/nfstestdir

//這一段表示分享出去的目錄。就是服務端要保持一致的目錄是哪個192.168.208.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

//這一段表示,你要跟那個機器去共享目錄

保存配置文件後,執行以下準備操做

~4.mkdir /home/nfstestdir

~5.chmod 777 /home/nfstestdir

777爲了方便實驗

~6.systemctl start rpcbind

~7.systemctl start nfs

~8.systemctl enable rpcbind

~9.systemctl enable nfs

 

 

知識點:

若是在安裝一個文件的時候,發現一個包(好比epel.repo)安裝太慢了,咱們能夠暫時先禁掉他。

cd /etc/yum.repos.d/

mv epel.repo epel.repo1 改一下名字就好了

 

實例:

[root@axinlinux-01 ~]# yum install -y nfs-utils rpcbind A機器(服務端)上安裝這兩個包

[root@axinlinux-02 ~]# yum install -y nfs-utils B機器(客戶端)上安裝nfs-utils

[root@axinlinux-01 ~]# vim /etc/exports 在A機器上vim這個文件

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

[root@axinlinux-01 ~]# mkdir /home/nfstestdir

[root@axinlinux-01 ~]# chmod 777 /home/nfstestdir

[root@axinlinux-01 ~]# netstat -lntp 看一下端口

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:22              0.0.0.0:*               LISTEN      864/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      981/master          
tcp6       0      0 :::3306                 :::*                    LISTEN      1128/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      864/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      981/master

[root@axinlinux-02 ~]# netstat -lntp #阿鑫在作的時候客戶端要重啓才能夠顯示111

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:22              0.0.0.0:*               LISTEN      852/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1115/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      1073/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      852/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1115/master

[root@axinlinux-01 ~]# systemctl restart rpcbind 開啓這兩個

[root@axinlinux-01 ~]# systemctl restart nfs

[root@axinlinux-01 ~]# systemctl enable rpcbind 開機啓動這兩個

[root@axinlinux-01 ~]# 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配置選項:

 

 

 

咱們剛纔vi了/etc/exports,並寫入了

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

看一下括號裏均可以寫哪些選項呢:

~1.rw 讀寫

~2.ro 只讀

~3.sync 同步模式,內存數據實時寫入磁盤

sync會很快地寫入到磁盤裏去,可是相應的會下降磁盤的效率

~4.async 非同步模式

與sync對應的。不須要實時的寫入到磁盤裏去。每一個一段時間會將內存的數據刷新到磁盤裏去。好處是能保證磁盤的效率,很差的地方是萬一斷電,會形成數據丟失

~5.no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大

至關於客戶端root用戶讀寫共享目錄,在本地的操做

~6.root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶

與no_root_squash相對應的,客戶端root訪問共享目錄時,會受限制,成爲普通用戶

~7.all_squash 客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶

~8.anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid

定義用戶被限定爲誰。不管客戶端上登陸的用戶是誰,都默認成uid和gid設定的用戶(咱們以前設定的爲1000)

 

 

客戶端掛載:

~1.yum install -y nfs-utils

安裝後就不須要啓動什麼了

~2.showmount -e 192.168.208.128 //該ip爲NFS服務端ip

機器上作了nfs的服務,看一下,有沒有權限。報錯的話查看服務端rpcbind是否監聽111端口,或基本是雙方防火牆未關閉

~3.mount -t nfs 192.168.133.130:/home/nfstestdir /mnt

~4.df -h

~5.touch /mnt/aminglinux.txt

~6.ls -l /mnt/aminglinux.txt //能夠看到文件的屬主和屬組都爲1000

 

 

 

 

實例:

[root@axinlinux-02 ~]# showmount -e 192.168.30.134 在客戶端是showmount一下

clnt_create: RPC: Program not registered

報錯

[root@axinlinux-02 ~]# systemctl stop firewalld 關閉客戶端防火牆

[root@axinlinux-02 ~]# setenforce 0 關閉selinux

[root@axinlinux-02 ~]# getenforce 查看是否關閉selinux

Permissive

[root@axinlinux-01 ~]# systemctl stop firewalld 客戶端上也要關閉防火牆

[root@axinlinux-01 ~]# getenforce 查看是否關閉selinux

Permissive

[root@axinlinux-02 ~]# showmount -e 192.168.30.134 再次showmount,OK

報錯

clnt_create: RPC: Program not registered

解決方法

systemctl restart nfs

再試一次,成功。

Export list for 192.168.30.134:
192.168.30.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) *
/home/nfstestdir

能夠看到共享的目錄,以及共享的IP

[root@axinlinux-02 ~]# mount -t nfs 192.168.30.134:/home/nfstestdir /mnt/ 掛載。須要指定-t nfs,還有服務端的IP以及共享的目錄

[root@axinlinux-02 ~]# df -h 看一下

文件系統                         容量  已用  可用 已用% 掛載點
/dev/sda3                         46G  4.9G   41G   11% /
devtmpfs                         476M     0  476M    0% /dev
tmpfs                            487M     0  487M    0% /dev/shm
tmpfs                            487M  7.7M  479M    2% /run
tmpfs                            487M     0  487M    0% /sys/fs/cgroup
/dev/sda1                        197M  130M   67M   66% /boot
tmpfs                             98M     0   98M    0% /run/user/0
192.168.30.134:/home/nfstestdir   46G  4.9G   41G   11% /mnt

[root@axinlinux-02 ~]# cd /mnt 咱們測試一下,進入到mnt,touch一個axin.txt

[root@axinlinux-02 mnt]# touch axin.txt

報錯

touch: 沒法建立"axin.txt": 權限不夠

解決方法

檢查/home/nfstestdir屬組是否爲nfsnobody,不是添加

[root@afeilinux-01 nfstestdir]# chown -R nfsnobody /home/nfstestdir
[root@afeilinux-01 nfstestdir]# chgrp -R nfsnobody /home/nfstestdir

或者
[root@afeilinux-01 nfstestdir]# chown -R nfsnobody:nfsnobody /home/nfstestdir

[root@axinlinux-02 mnt]# ls -l axin.txt 能夠看到室友這個文件的,他的屬主與屬組都是咱們以前建立1000

-rwxr-xr-x. 1 nfsnobody nfsnobody 0 7月  31 10:58 axin.txt

[root@axinlinux-01 ~]# ls -l /home/nfstestdir/axin.txt 在回到服務端看一下這個文件。也是有的

-rwxr-xr-x. 1 nfsnobody nfsnobody 0 7月  31 10:58 /home/nfstestdir/axin.txt
相關文章
相關標籤/搜索