溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NFS介紹與基本安裝

發(fā)布時間:2020-07-29 13:33:06 來源:網(wǎng)絡(luò) 閱讀:509 作者:我不是瘦子 欄目:建站服務(wù)器

1NFS介紹

NFS是Network File System的縮寫(分布式文件系統(tǒng)協(xié)議),==它最大的功能就是可以透過網(wǎng)絡(luò),讓不同的機(jī)器、不同的操作系統(tǒng)、可以彼此分享個別的檔案 (share files)==
NFS最早由Sun公司開發(fā),分2,3,4三個版本,2和3由Sun起草開發(fā),4.0開始Netapp公司參與并主導(dǎo)開發(fā),最新為4.1版本
NFS數(shù)據(jù)傳輸基于RPC協(xié)議,RPC為Remote Procedure Call的簡寫。

《客戶端NFS和服務(wù)端NFS通訊過程》
1)首先服務(wù)器端啟動RPC服務(wù),并開啟111端口
2)啟動NFS服務(wù),并向RPC注冊端口信息
3)客戶端啟動RPC(portmap服務(wù)),向服務(wù)端的RPC(portmap)服務(wù)請求服務(wù)端的NFS端口
4)服務(wù)端的RPC(portmap)服務(wù)反饋NFS端口信息給客戶端。
5)客戶端通過獲取的NFS端口來建立和服務(wù)端的NFS連接并進(jìn)行數(shù)據(jù)的傳輸。
NFS介紹與基本安裝
(注:rpcbind是centos6及以后稱之為rpcbind,portmap是centos5及以前的版本)

場景1:有3臺機(jī)器A,B,C,需求是這3臺機(jī)器的數(shù)據(jù)是一樣的,當(dāng)A的機(jī)器負(fù)載高時客戶想要訪問A服務(wù)器上的數(shù)據(jù)時,這時有2臺機(jī)器B,C的負(fù)載不是很高,將A與B,C的數(shù)據(jù)共享,可是怎么樣能時實的更新B,與C的機(jī)器上呢。
此時用NFS服務(wù)即可實現(xiàn),時實的更新的數(shù)據(jù)。(NFS不監(jiān)聽端口,portmap監(jiān)聽111端口)

2nfs服務(wù)端安裝配置

服務(wù)端的配置:

[root@chy01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.212.11  netmask 255.255.255.0  broadcast 192.168.212.255
        inet6 fe80::243b:ddac:7a2b:a5b  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:13:b3:3b  txqueuelen 1000  (Ethernet)
        RX packets 5269  bytes 2572740 (2.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1167  bytes 157323 (153.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(服務(wù)端的ip地址)
[root@chy01 ~]# yum install -y nfs-utils rpcbind
[root@chy01 ~]# vim /etc/exports
(nfs的配置文件)
/home/nfstestdir 192.168.212.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
(/home/nfstestdir 需要共享的目錄,這個目錄后續(xù)需要創(chuàng)建,192.168.212.0/24(給192.168.212.0這個網(wǎng)絡(luò)段共享目錄。(rw,sync,all_squash,anonuid=1000,anongid=1000)如此是
[root@chy01 ~]# mkdir /home/nfstestdir
[root@chy01 ~]# chmod 777 /home/nfstestdir
(創(chuàng)建目錄并且給777的權(quán)限)
[root@chy01 ~]# 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      1275/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2240/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      1744/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1275/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2240/master       
(可以查看到rpc服務(wù)已經(jīng)啟動)
[root@chy01 ~]# ps aux |grep nfs
root       3502  0.0  0.0 112664   976 pts/0    S+   07:06   0:00 grep --color=auto nfs
(雖然rpc已經(jīng)啟動,但是nfs服務(wù)并沒有啟動)
[root@chy01 ~]# systemctl start nfs
(手動啟動nfs)
[root@chy01 ~]# ps aux |grep nfs
root       3550  0.0  0.0      0     0 ?        S<   07:07   0:00 [nfsd4_callbacks]
root       3556  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3557  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3558  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3559  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3560  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3561  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3562  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3563  0.0  0.0      0     0 ?        S    07:07   0:00 [nfsd]
root       3568  0.0  0.0 112664   976 pts/0    S+   07:07   0:00 grep --color=auto nfs
(查看nfs服務(wù))
[root@chy01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
(nfs開機(jī)啟動)

客戶端簡單配置:

[root@chy ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.212.10  netmask 255.255.255.0  broadcast 192.168.212.255
        inet6 fe80::338e:589c:fa07:65e5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:70:77:62  txqueuelen 1000  (Ethernet)
        RX packets 8880  bytes 8055224 (7.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1205  bytes 139708 (136.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(客戶端的IP地址)
[root@chy ~]# yum install -y nfs-utils rpcbind
(同樣需要安裝nfs-utils包)

3nfs配置選項

nfs配置選項

[root@chy01 ~]# cat /etc/exports
/home/nfstestdir 192.168.212.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
rw 讀寫
 ro 只讀
 sync 同步模式,內(nèi)存數(shù)據(jù)實時寫入磁盤
 async 非同步模式
 no_root_squash 客戶端掛載NFS共享目錄后,root用戶不受約束,權(quán)限很大
 root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
 all_squash 客戶端上所有用戶在使用NFS共享目錄時都被限定為一個普通用戶
 anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid

掛載客戶端

在此就不需要在安裝nfs,因為之前就有安裝nfs安裝包(需要關(guān)閉防火墻)
[root@chy ~]# showmount -e 192.168.212.11
Export list for 192.168.212.11:
/home/nfstestdir 192.168.212.0/24
(可以看到共享的目錄/home/nfstestdir)
[root@chy ~]# mount -t nfs 192.168.212.11:/home/nfstestdir /mnt/ (掛載時需要加-t
[root@chy ~]# df -h 
文件系統(tǒng)                         容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root              8.8G  5.4G  2.9G   66% /
devtmpfs                         737M     0  737M    0% /dev
tmpfs                            748M     0  748M    0% /dev/shm
tmpfs                            748M  8.6M  739M    2% /run
tmpfs                            748M     0  748M    0% /sys/fs/cgroup
/dev/sda1                        190M  107M   70M   61% /boot
/dev/mapper/cl-var               8.4G  281M  7.7G    4% /var
/dev/mapper/cl-home              497M   26M  472M    6% /home
tmpfs                            150M     0  150M    0% /run/user/0
192.168.212.11:/home/nfstestdir  497M   26M  472M    6% /mnt
[root@chy mnt]# touch chy.111
[root@chy mnt]# ls -l 
總用量 0
-rw-r--r-- 1 mysql mysql 0 8月  24 08:06 chy.111
(在客戶端創(chuàng)建一個chy.111)
[root@chy mnt]# id mysql
uid=1000(mysql) gid=1000(mysql) 組=1000(mysql)

在服務(wù)端測試

[root@chy01 ~]# ls -l /home/nfstestdir/
總用量 0
-rw-r--r-- 1 mysql mysql 0 8月  24 08:06 chy.111
[root@chy01 ~]# id mysql
uid=1000(mysql) gid=1000(mysql) 組=1000(mysql)

也許有個疑問?為什么授權(quán)用戶和組是mysql呢?

[root@chy01 ~]# cat /etc/exports
/home/nfstestdir 192.168.212.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
我們看到,我們設(shè)置的權(quán)限為anonuid=1000,anongid=1000,那么1000就是mysql
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI