1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        服務(wù)部署-NFS服務(wù)器

        共 9220字,需瀏覽 19分鐘

         ·

        2021-06-24 13:09

        關(guān)注「開源Linux」,選擇“設(shè)為星標(biāo)”
        回復(fù)「學(xué)習(xí)」,有我為您特別篩選的學(xué)習(xí)資料~

        目錄

        1. NFS協(xié)議

          1.1 工作原理

          1.2 激活NFS服務(wù)

          1.3 各個版本之間的比較

        2. NFS服務(wù)

          2.1 安裝NFS服務(wù)

          2.2 服務(wù)文件配置

        3. 實(shí)戰(zhàn)演示

        一、NFS 協(xié)議

        NFS服務(wù)工作在TCP2049端口,UDP2049端口。

        NFS是Network File System的縮寫,即網(wǎng)絡(luò)文件系統(tǒng),是一種使用于分散式文件系統(tǒng)的協(xié)定。功能是通過網(wǎng)絡(luò)讓不同的機(jī)器、不同的操作系統(tǒng)能夠彼此分享個別的數(shù)據(jù),讓應(yīng)用程序在客戶端通過網(wǎng)絡(luò)訪問位于服務(wù)器磁盤中的數(shù)據(jù),是在類Unix系統(tǒng)間實(shí)現(xiàn)磁盤文件共享的一種方法。

        這個NFS服務(wù)器可以讓你的PC來將網(wǎng)絡(luò)遠(yuǎn)程的NFS服務(wù)器分享的目錄,掛載到本地端的機(jī)器當(dāng)中, 在本地端的機(jī)器看起來,那個遠(yuǎn)程主機(jī)的目錄就好像是自己的一個磁盤分區(qū)槽一樣。

        1.1 工作原理

        因?yàn)?NFS 支持的功能相當(dāng)?shù)亩?,而不同的功能都會使用不同的程序來啟動?每啟動一個功能就會啟用一些端口來傳輸數(shù)據(jù),因此, NFS 的功能所對應(yīng)的端口才沒有固定住, 而是隨機(jī)取用一些未被使用的小于 1024 的端口來作為傳輸之用。但如此一來又造成客戶端想要連上服務(wù)器時的困擾, 因?yàn)榭蛻舳说靡婪?wù)器端的相關(guān)端口才能夠聯(lián)機(jī)吧!

        NFS在文件傳送或信息傳送過程中依賴于RPC協(xié)議。RPC,即遠(yuǎn)程過程調(diào)用的縮寫,是能使客戶端執(zhí)行其他系統(tǒng)中程序的一種機(jī)制。RPC 最主要的功能就是在指定每個 NFS 功能所對應(yīng)的端口號,并且回報(bào)給客戶端,讓客戶端可以連接到正確的端口上去。

        NFS本身是沒有提供信息傳輸?shù)膮f(xié)議和功能的,但NFS卻能讓我們通過網(wǎng)絡(luò)進(jìn)行資料的分享,這是因?yàn)镹FS使用了一些其它的傳輸協(xié)議。而這些傳輸協(xié)議用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程序,或者說NFS也是一個RPC SERVER。所以只要用到NFS的地方都要啟動RPC服務(wù),不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實(shí)現(xiàn)PROGRAM PORT的對應(yīng)??梢赃@么理解RPC和NFS的關(guān)系:NFS是一個文件系統(tǒng),而RPC是負(fù)責(zé)負(fù)責(zé)信息的傳輸。

        事實(shí)上,有很多這樣的服務(wù)器都是向 RPC 注冊的,舉例來說,NIS (Network Information Service) 也是 RPC server 的一種。

        RPC又是如何知道每個NFS的端口呢?

        • 這是因?yàn)楫?dāng)服務(wù)器在啟動 NFS 時會隨機(jī)取用數(shù)個端口,并主動的向 RPC 注冊,因此 RPC 可以知道每個埠口對應(yīng)的 NFS 功能,然后 RPC 又是固定使用 111 端口來監(jiān)聽客戶端的需求并報(bào)客戶端正確的埠口, 所以當(dāng)然可以讓 NFS 的啟動更為輕松愉快了。
        • 所以你要注意,要啟動 NFS 之前,RPC 就要先啟動了,否則 NFS 會無法向 RPC 注冊。另外,RPC 若重新啟動時,原本注冊的數(shù)據(jù)會不見,因此 RPC 重新啟動后,它管理的所有服務(wù)都要重新啟動來重新向 RPC 注冊。

        那客戶端如何向NFS服務(wù)端交換數(shù)據(jù)數(shù)據(jù)呢?

        • (1) 客戶端會向服務(wù)器端的 RPC 的111端口發(fā)出 NFS 檔案存取功能的詢問要求
        • (2) 服務(wù)器端找到對應(yīng)的已注冊的 NFS 守護(hù)進(jìn)程端口后,會回報(bào)給客戶端
        • (3) 客戶端了解正確的端口后,就可以直接與 NFS 守護(hù)進(jìn)程來聯(lián)機(jī)

        1.2 激活 NFS 服務(wù)

        NFS 服務(wù)需要激活幾個重要的 RPC 守護(hù)進(jìn)程

        工作流程

        nfs—client => portmapper => mountd => nfs-server(nfsd)

        (1) rpc.nfsd

        • 這個守護(hù)進(jìn)程主要的功能,則是在管理客戶端是否能夠登入主機(jī)的權(quán)限,其中還包含這個登入者的 ID 的判別。

        (2) rpc.mountd

        主要功能

        • 這個守護(hù)進(jìn)程主要的功能,則是在管理 NFS 的檔案系統(tǒng),用于給用戶提供訪問令牌。
        • 訪問的令牌,由本地的RPC提供隨機(jī)端口。本地的RPC叫做portmapper,可以使用rpcinfo -P查看。
        • RPC的portmapper服務(wù)工作在1111端口。

        請求過程

        • 當(dāng)客戶端順利的通過 rpc.nfsd 而登入主機(jī)之后,在它可以使用 NFS server 提供的檔案之前,還會經(jīng)過檔案使用權(quán)限 的認(rèn)證程序,就是那個-rwxrwxrwx、ownergroup那幾個權(quán)限啦。

        • 然后它會去讀 NFS 的設(shè)定檔 /etc/exports 來比對客戶端的權(quán)限,當(dāng)通過這一關(guān)之后,客戶端就可以取得使用 NFS 檔案的權(quán)限啦。

        注釋:NFS需要有兩個套件

        • nfs-utils

        NFS服務(wù)的主要套件

        提供rpc.nfsdrpc.mountd兩個NFS守護(hù)進(jìn)程和與其它相關(guān)文檔與說明文件、執(zhí)行檔等的套件

        • portmap

        主要負(fù)責(zé)RPC端口和守護(hù)進(jìn)程的映射關(guān)系,即portmapper

        在激活任何一個RPC server之前,我們都需要激活portmapper才行

        1.3 各個版本之間的比較

        NFS是一種網(wǎng)絡(luò)文件系統(tǒng),從1985年推出至今,共發(fā)布了3個版本:NFSv2、NFSv3、NFSv4,NFSv4包含兩個次版本NFSv4.0和NFSv4.1。經(jīng)過20多年發(fā)展,NFS發(fā)生了非常大的變化,最大的變化就是推動者從Sun變成了NetApp,NFSv2和NFSv3基本上是Sun起草的,NetApp從NFSv4.0參與進(jìn)來,并且主導(dǎo)了NFSv4.1標(biāo)準(zhǔn)的制定過程,而Sun已經(jīng)被Oracle收購了。

        1. NFSv2

        • ·NFSv2·是第一個以RFC形式發(fā)布的版本,實(shí)現(xiàn)了基本的功能。

        2. NFSv3

        協(xié)議特點(diǎn)

        • NFSv3修正了NFSv2的一些bug,兩者有如下一些差別,但是感覺沒有本質(zhì)的差別。

        區(qū)別差別

        • (1) NFSv2只支持同步寫,如果客戶端向服務(wù)器端寫入數(shù)據(jù),服務(wù)器必須將數(shù)據(jù)寫入磁盤中才能發(fā)送應(yīng)答消息。NFSv3支持異步寫操作,服務(wù)器只需要將數(shù)據(jù)寫入緩存中就可以發(fā)送應(yīng)答信息了。

        • (2) NFSv3增加了ACCESS請求,ACCESS用來檢查用戶的訪問權(quán)限。因?yàn)榉?wù)器端可能進(jìn)行uid映射,因此客戶端的uidgid不能正確反映用戶的訪問權(quán)限。

        • (3) 一些請求調(diào)整了參數(shù)和返回信息,畢竟NFSv3和NFSv2發(fā)布的間隔有6年,經(jīng)過長期運(yùn)行可能覺得NFSv2某些請求參數(shù)和返回信息需要改進(jìn)。

        3. NFSv4.0

        協(xié)議特點(diǎn)
        • 相比NFSv3NFSv4發(fā)生了比較大的變化,最大的變化是NFSv4有狀態(tài)了。NFSv2和NFSv3都是無狀態(tài)協(xié)議,服務(wù)區(qū)端不需要維護(hù)客戶端的狀態(tài)信息。

        • 無狀態(tài)協(xié)議的一個優(yōu)點(diǎn)在于災(zāi)難恢復(fù),當(dāng)服務(wù)器出現(xiàn)問題后,客戶端只需要重復(fù)發(fā)送失敗請求就可以了,直到收到服務(wù)器的響應(yīng)信息。

        區(qū)別差別

        (1) NFSv4增加了安全性,支持RPCSEC-GSS身份認(rèn)證。

        (2) NFSv4設(shè)計(jì)成了一種有狀態(tài)的協(xié)議,自身實(shí)現(xiàn)了文件鎖功能和獲取文件系統(tǒng)根節(jié)點(diǎn)功能。

        (3) NFSv4只提供了兩個請求NULLCOMPOUND,所有的操作都整合進(jìn)了COMPOUND中,客戶端可以根據(jù)實(shí)際請求將多個操作封裝到一個COMPOUND請求中,增加了靈活性。

        (4) NFSv4文件系統(tǒng)的命令空間發(fā)生了變化,服務(wù)器端必須設(shè)置一個根文件系統(tǒng)(fsid=0),其他文件系統(tǒng)掛載在根文件系統(tǒng)上導(dǎo)出。

        (5) NFSv4支持delegation。由于多個客戶端可以掛載同一個文件系統(tǒng),為了保持文件同步,NFSv3中客戶端需要經(jīng)常向服務(wù)器發(fā)起請求,請求文件屬性信息,判斷其他客戶端是否修改了文件。如果文件系統(tǒng)是只讀的,或者客戶端對文件的修改不頻繁,頻繁向服務(wù)器請求文件屬性信息會降低系統(tǒng)性能。NFSv4可以依靠delegation實(shí)現(xiàn)文件同步。

        (6) NFSv4修改了文件屬性的表示方法。由于NFS是Sun開發(fā)的一套文件系統(tǒng),設(shè)計(jì)之出NFS文件屬性參考了UNIX中的文件屬性,可能Windows中不具備某些屬性,因此NFS對操作系統(tǒng)的兼容性不太好。

        4. NFSv4.1

        • NFSv4.0相比,NFSv4.1最大的變化是支持并行存儲了。在以前的協(xié)議中,客戶端直接與服務(wù)器連接,客戶端直接將數(shù)據(jù)傳輸?shù)椒?wù)器中。

        • 當(dāng)客戶端數(shù)量較少時這種方式?jīng)]有問題,但是如果大量的客戶端要訪問數(shù)據(jù)時,NFS服務(wù)器很快就會成為一個瓶頸,抑制了系統(tǒng)的性能。NFSv4.1支持并行存儲,服務(wù)器由一臺元數(shù)據(jù)服務(wù)器(MDS)和多臺數(shù)據(jù)服務(wù)器(DS)構(gòu)成,元數(shù)據(jù)服務(wù)器只管理文件在磁盤中的布局,數(shù)據(jù)傳輸在客戶端和數(shù)據(jù)服務(wù)器之間直接進(jìn)行。由于系統(tǒng)中包含多臺數(shù)據(jù)服務(wù)器,因此數(shù)據(jù)可以以并行方式訪問,系統(tǒng)吞吐量迅速提升。

        二、NFS 服務(wù)

        CentOS7NFSv4作為默認(rèn)版本,NFSv4使用TCP協(xié)議(端口號是2049)和NFS服務(wù)器建立連接。

        # 系統(tǒng)環(huán)境
        系統(tǒng)平臺:CentOS release 7.0 (Final)
        NFS Server IP:192.168.10.10
        防火墻已關(guān)閉/iptables: Firewall is not running.
        SELINUX=disabled

        2.1 安裝 NFS 服務(wù)

        服務(wù)端

        • 服務(wù)端,程序包名nfs-utils、rpcbind,默認(rèn)都已經(jīng)安裝了
        • 可以通過rpm -ql nfs-utils查看幫助文檔等信息

        客戶端

        • 客戶端,需要安裝程序包名nfs-utils,提供基本的客戶端命令工具
        [root@localhost ~]# yum install nfs-utils
        Loaded plugins: langpacks, product-id, subscription-manager
        ......
        Package 1:nfs-utils-1.3.0-0.el7.x86_64 already installed and latest version
        Nothing to do

        查看NFS服務(wù)端口

        • NFS啟動時會隨機(jī)啟動多個端口并向RPC注冊,為了方便配置防火墻,需要固定NFS服務(wù)端口。
        • 這樣如果使用iptablesNFS端口進(jìn)行限制就會有點(diǎn)麻煩,可以更改配置文件固定NFS服務(wù)相關(guān)端口
        • 分配端口,編輯配置文件/etc/sysconfig/nfs
        # 使用rpcinfo -P會發(fā)現(xiàn)rpc啟動了很多監(jiān)聽端口
        [root@localhost ~]# rpcinfo -p localhost
           program vers proto   port  service
            100000    4   tcp    111  portmapper
            100000    2   udp    111  portmapper
            100005    1   udp  49979  mountd
            100005    1   tcp  58393  mountd
            100003    2   tcp   2049  nfs
            100227    2   tcp   2049  nfs_acl
            ......

        # 添加如下
        [root@localhost ~]# vim /etc/sysconfig/nfs
        RQUOTAD_PORT=30001
        LOCKD_TCPPORT=30002
        LOCKD_UDPPORT=30002
        MOUNTD_PORT=30003
        STATD_PORT=30004

        啟動服務(wù)

        [root@localhost ~]# service nfs start
        Starting NFS services:        [OK]
        Starting NFS quotas:          [OK]
        Starting NFS mountd:          [OK]
        Starting NFS daemon:          [OK]
        Starting NFS idmapd:          [OK]

        2.2 服務(wù)文件配置

        • 相關(guān)文件和命令
        • 配置文件/etc/exports

        我們可以按照“共享目錄的路徑 允許訪問的 NFS 客戶端(共享權(quán)限參數(shù))”的格式,定義要共享的目錄與相應(yīng)的權(quán)限

        [root@localhost ~]# cat /etc/exports
        /nfsfile 192.168.10.*(rw,sync,root_squash)
        /tmp/serverdir 192.168.174.132(rw,sync,no_root_squash) 192.168.174.133(ro,sync,no_root_squash)

        三、實(shí)戰(zhàn)演示

        如果有興趣,可以嘗試:兩臺 web 服務(wù)器,共享關(guān)系型數(shù)據(jù)庫,共享 NFS 服務(wù)器,利用 DNS 記錄輪詢提供負(fù)載均衡。

        第 1 步:機(jī)器設(shè)置

        • 創(chuàng)建服務(wù)端和客戶端
        • 關(guān)閉iptablesselinux服務(wù)
        主機(jī)名稱操作系統(tǒng)IP地址
        NFS服務(wù)端RHEL 7192.168.10.10
        NFS客戶端RHEL 7192.168.10.20
        # 清空NFS服務(wù)器上面iptables防火墻的默認(rèn)策略,以免默認(rèn)的防火墻策略禁止正常的NFS共享服務(wù)
        [root@localhost ~]# iptables -F
        [root@localhost ~]# service iptables save
        iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

        第 2 步:創(chuàng)建共享目錄

        • NFS服務(wù)器上,建立用于NFS文件共享的目錄
        • 在NFS服務(wù)器上,設(shè)置足夠的權(quán)限確保其他人也有寫入權(quán)限
        [root@localhost ~]# mkdir /nfsfile
        [root@localhost ~]# chmod -Rf 777 /nfsfile
        [root@localhost ~]# echo "welcome to localhost.com" > /nfsfile/readme

        第 3 步:編輯配置文件/etc/exports

        • 定義要共享的目錄與相應(yīng)的權(quán)限
        • 請注意,NFS 客戶端地址與權(quán)限之間沒有空格
        # 把/nfsfile目錄共享給192.168.10.0/24網(wǎng)段內(nèi)的所有主機(jī),讓這些主機(jī)都擁有讀寫權(quán)限
        [root@localhost ~]# vim /etc/exports
        /nfsfile 192.168.10.*(rw,sync,root_squash)

        第 4 步:啟動和啟用 NFS 服務(wù)程序

        • 在啟動NFS服務(wù)之前,還需要順帶重啟并啟用rpcbind服務(wù)程序,并將這兩個服務(wù)一并加入開機(jī)啟動項(xiàng)中
        [root@localhost ~]# systemctl restart rpcbind
        [root@localhost ~]# systemctl enable rpcbind

        [root@localhost ~]# systemctl start nfs-server
        [root@localhost ~]# systemctl enable nfs-server
        ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

        第 5 步:NFS 客戶端的配置

        • 使用showmount命令查詢NFS服務(wù)器的遠(yuǎn)程共享信息
        • showmount命令輸出格式為“共享的目錄名稱 允許使用客戶端地址”
        showmount命令
        參數(shù)作用
        -e顯示NFS服務(wù)器的共享列表
        -a顯示本機(jī)掛載的文件資源的情況NFS資源的情況
        -v顯示版本號
        exportfs命令
        • 維護(hù)exports文件導(dǎo)出的文件系統(tǒng)表的專用工具,可以修改配置之后不重啟NFS服務(wù)
        • export -ar:重新導(dǎo)出所有的文件系統(tǒng)
        • export -au:關(guān)閉導(dǎo)出的所有文件系統(tǒng)
        • export -u FS: 關(guān)閉指定的導(dǎo)出的文件系統(tǒng)
        # 查看NFS服務(wù)器端共享的文件系統(tǒng)
        # showmount -e NFSSERVER_IP
        [root@localhost ~]# showmount -e 192.168.10.10
        Export list for 192.168.10.10:
        /nfsfile 192.168.10.*

        # NFS客戶端創(chuàng)建一個掛載目錄,掛載服務(wù)端NFS文件系統(tǒng)到本地
        # mount -t nfs SERVER:/path/to/sharedfs  /path/to/mount_point
        [root@localhost ~]# mkdir /nfsfile
        [root@localhost ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile
        # 掛載成功后就應(yīng)該能夠順利地看到在執(zhí)行前面的操作時寫入的文件內(nèi)容了
        [root@localhost ~]# cat /nfsfile/readme
        welcome to linuxprobe.com

        # 如果希望NFS文件共享服務(wù)能一直有效,則需要將其寫入到fstab文件中
        # SERVER:/PATH/TO/EXPORTED_FS  /mount_point  nfs  defaults,_netdev  0  0
        [root@localhost ~]# vim /etc/fstab
        /dev/mapper/rhel-root / xfs defaults 1 1
        UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
        /dev/mapper/rhel-swap swap swap defaults 0 0
        /dev/cdrom /media/cdrom iso9660 defaults 0 0
        192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0

        文章作者: Escape 

        鏈接: https://escapelife.github.io/posts/c49dfbab.html 

        整理:微信公眾號【開源Linux】

        關(guān)注「開源Linux」加星標(biāo),提升IT技能

        瀏覽 60
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            欧美老妇人一区二区免费视频 | 在飞机上一级毛片 | 亚洲欧美国产精品久久久久久久 | 日韩在线视频一区二区三区 | 91综合在线 | 国产骚逼视频 | 日韩人妻无码电影 | 丁香激情五月 | www精品| 成人AV影视在线播放 |