存儲(chǔ)服務(wù)

一、概述介紹

NFS是Network File System的縮寫,中文意思是網(wǎng)絡(luò)文件系統(tǒng),
主要功能是通過(guò)網(wǎng)絡(luò)(一般是局域網(wǎng))讓不同的主機(jī)系統(tǒng)之間可以共享文件或目錄

互聯(lián)網(wǎng)中小型網(wǎng)站集群機(jī)構(gòu)后端常用NFS進(jìn)行數(shù)據(jù)共享  (新華日?qǐng)?bào))
大型網(wǎng)站,那么有可能還會(huì)用到更復(fù)雜的分布式文件系統(tǒng),例如:Moosefs(mfs)、GlusterFS(*)、FastDFS

二、存在意義:

1)實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一存儲(chǔ)
2)節(jié)省磁盤購(gòu)買成本

三、存儲(chǔ)原理

   a 在存儲(chǔ)客戶端創(chuàng)建本地存儲(chǔ)數(shù)據(jù)目錄
   b 在存儲(chǔ)服務(wù)端創(chuàng)建共享存儲(chǔ)數(shù)據(jù)目錄
   c 實(shí)現(xiàn)客戶端目錄和存儲(chǔ)目錄建立掛載
  # 客戶端目錄中操作數(shù)據(jù)等價(jià)于存儲(chǔ)服務(wù)器目錄中操作數(shù)據(jù)

四、部署過(guò)程

rpc (rpcbind) --- 遠(yuǎn)程過(guò)程調(diào)用服務(wù)程序 nfs每次重啟服務(wù)進(jìn)程和端口都會(huì)發(fā)生變化,有了rpc,他會(huì)管理nfs的進(jìn)程及端口,統(tǒng)一到111
(類似于中介)

服務(wù)端

1.安裝軟件程序
yum install -y rpcbind nfs-utils
#檢查軟件版本
rpm -qa rpcbind nfs-utils
2.vim /etc/exports
    /data   web*(rw)
    配置文件樣例:
    /projects       proj*.local.domain(rw)
        /usr            *.local.domain(ro) @trusted(rw)
    ①                ②                             ③
    ① 設(shè)置定義數(shù)據(jù)存儲(chǔ)目錄
    ② 定義允許哪些主機(jī)存儲(chǔ)數(shù)據(jù) 定義網(wǎng)段信息  定義地址信息  定義主機(jī)名稱信息
    ③ 定義存儲(chǔ)數(shù)據(jù)參數(shù)
3.創(chuàng)建存儲(chǔ)目錄
    mkdir /data
    chown nfsnobody.nfsnobody /data
4.編寫本地解析配置文件
    vim /etc/hosts
    172.16.1.7  web01
    172.16.1.8  web02
    172.16.1.9  web03
5.啟動(dòng)服務(wù)
    systemctl start rpcbind 
    systemctl start nfs

五、服務(wù)端配置文件詳細(xì)參數(shù)

/etc/exports
    rw    --- 是否允許向存儲(chǔ)目錄中存儲(chǔ)數(shù)據(jù)  存儲(chǔ)目錄可讀可寫
    ro    --- 是否允許向存儲(chǔ)目錄中存儲(chǔ)數(shù)據(jù)  存儲(chǔ)目錄只讀狀態(tài)
    async --- 異步傳輸數(shù)據(jù)  客戶端(存儲(chǔ)數(shù)據(jù))  ----  服務(wù)端 (內(nèi)存) ---> 服務(wù)端(磁盤)
    sync  --- 同步傳輸數(shù)據(jù)  客戶端(存儲(chǔ)數(shù)據(jù))  ----  服務(wù)端 (磁盤)
    root_squash     --- 是否將用戶信息做映射轉(zhuǎn)換  將root用戶身份進(jìn)行轉(zhuǎn)換 (默認(rèn)轉(zhuǎn)換用戶nfsnobody)
    no_root_squash  --- 是否將用戶信息做映射轉(zhuǎn)換  將root用戶身份不做轉(zhuǎn)換 
    all_squash      --- 是否將用戶信息做映射轉(zhuǎn)換  將普通用戶身份進(jìn)行轉(zhuǎn)換 (默認(rèn)轉(zhuǎn)換用戶nfsnobody)
    no_all_squash   --- 是否將用戶信息做映射轉(zhuǎn)換  將普通用戶身份不做轉(zhuǎn)換
    anonuid        ----指定uid
    anongid       -----指定gid
同步傳輸數(shù)據(jù)直接存儲(chǔ)到磁盤
異步傳輸數(shù)據(jù)先存儲(chǔ)到內(nèi)存再存儲(chǔ)磁盤
配置存儲(chǔ)服務(wù)參數(shù)時(shí):root_squash,no_all_squash,anonuid=xxx,anongid=xxx
root_squash,no_all_squash,這兩個(gè)可以不寫,默認(rèn)配置里已經(jīng)有了

六、默認(rèn)配置

cat /var/lib/nfs/etab 
/data   172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

客戶端

1.安裝軟件程序
    yum install -y  nfs-utils
2.掛載應(yīng)用存儲(chǔ)服務(wù)
    mount -t nfs 172.16.1.31:/data  /mnt

七、客戶端掛載參數(shù)

       cat /proc/mounts
       172.16.1.31:/data /mnt nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0

       mount -o 掛載參數(shù)
       rsize        提示數(shù)據(jù)存儲(chǔ)效率,減緩存儲(chǔ)服務(wù)器壓力          在客戶端內(nèi)存中設(shè)置了緩存
       wsize        提升數(shù)據(jù)讀取效率,減緩存儲(chǔ)服務(wù)器壓力          在客戶端內(nèi)存中設(shè)置了緩沖
       hard         實(shí)現(xiàn)長(zhǎng)連接掛載操作                           (對(duì)于架構(gòu)而言,配置hard容易造成耦合度過(guò)程)  架構(gòu)師
       soft         實(shí)現(xiàn)長(zhǎng)連接掛載操作(具有超時(shí)時(shí)間timeo=600)  (對(duì)于架構(gòu)而言,配置soft可以實(shí)現(xiàn)解耦)        架構(gòu)師
       proto        網(wǎng)絡(luò)掛載時(shí)選擇通訊協(xié)議 (tcp/udp) 
       atime        訪問存儲(chǔ)數(shù)據(jù)時(shí),會(huì)消耗磁盤IO, 影響磁盤性能    
       noatime      訪問存儲(chǔ)數(shù)據(jù)時(shí),不要更改atime屬性信息, 不會(huì)消耗磁盤IO, 減少磁盤性能消耗   優(yōu)化
       diratime     訪問存儲(chǔ)目錄時(shí),會(huì)消耗磁盤IO, 影響磁盤性能
       nodiratime   訪問存儲(chǔ)目錄時(shí),不要更改目錄atime屬性信息, 不會(huì)消耗磁盤IO, 減少磁盤性能消耗   優(yōu)化
客戶端掛載操作
   臨時(shí)掛載操作: mount -t nfs 存儲(chǔ)服務(wù)器地址:存儲(chǔ)目錄  本地掛載點(diǎn)目錄
   永久掛載操作: 
   方法一: 利用/etc/rc.local 
   方法二: 利用/etc/fstab
            172.16.1.31:/data    /mnt   nfs     defaults        0 0
   PS: 關(guān)注系統(tǒng)啟動(dòng)順序
        先加載/etc/fstab  ---> 啟動(dòng)網(wǎng)絡(luò)服務(wù) ---> 加載/etc/fstab(systemctl start remote-fs.target)

存儲(chǔ)服務(wù)權(quán)限說(shuō)明:*****

1)存儲(chǔ)服務(wù)端配置文件參數(shù)沒有設(shè)置正確(rw/ro xxx_squash)
2) 存儲(chǔ)服務(wù)端存儲(chǔ)目錄本身權(quán)限配置問題
3)存儲(chǔ)客戶端掛載參數(shù)配置問題        (ro)
4)存儲(chǔ)目錄權(quán)限繼承關(guān)系              (服務(wù)端配置文件中不要有目錄層級(jí)配置)       

八、存儲(chǔ)服務(wù)常用命令

rpcinfo   --- 查看nfs服務(wù)注冊(cè)信息
rpcinfo -p 172.16.1.31
showmount --- 查看可用掛載目錄信息
showmount -e 172.16.1.31 
exportfs  --- 管理nfs服務(wù)運(yùn)行狀態(tài)
exportfs  -rv 平滑重啟相當(dāng)于systemctl reload nfs

九、存儲(chǔ)服務(wù)企業(yè)應(yīng)用

棄用NFS案例: 如何解決NFS服務(wù)單點(diǎn)故障
讀取數(shù)據(jù)時(shí):棄用NFS服務(wù)(將存儲(chǔ)數(shù)據(jù)和web服務(wù)器數(shù)據(jù)做同步),  讓用戶讀取web服務(wù)器本地?cái)?shù)據(jù)
寫入數(shù)據(jù)時(shí):棄用NFS服務(wù)(寫入數(shù)據(jù)到本地 將數(shù)據(jù)進(jìn)行恢復(fù)同步),讓用戶寫入web服務(wù)器本地?cái)?shù)據(jù)
分布式存儲(chǔ)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容