運維架構師能力要求,linux運維、架構之路-nfs網絡文件系統

 2023-10-18 阅读 20 评论 0

摘要:一、nfs介紹 ? ? ? ? ?NFS是Network File System的縮寫,是網絡文件系統,它的主要功能是通過網絡(一般是局域網)讓不同的主機系統之間可以共享文件或目錄,主要存儲用戶上傳的圖片附件等信息。 nfs共享文件實現原理 運維架構師能力要求?1、

一、nfs介紹

? ? ? ? ?NFS是Network File System的縮寫,是網絡文件系統,它的主要功能是通過網絡(一般是局域網)讓不同的主機系統之間可以共享文件或目錄,主要存儲用戶上傳的圖片附件等信息。

nfs共享文件實現原理

運維架構師能力要求?1、nfs工作原理

nfs服務端

① 先啟動rpc服務 /etc/init.d/rpcbind start

② 再啟動nfs服務 /etc/init.d/nfs start

③ ?nfs向rpc注冊端口和功能,端口號為111

hdfs架構圖、nfs客戶端

① 先啟動rpc服務 /etc/init.d/rpcbind start

② mount命令進行掛載

③ 向對端rpcbind請求nfs服務端口,nfs服務端返回端口信息

2、RPC服務介紹

hdfs架構。? ? ? 相當于租房中的中介,NFS服務啟動會產生多個進程和多個端口,不便于客戶端進行連接訪問,通過RPC服務接收NFS端口信息的注冊,并通過開啟RPC服務生成111端口,提供客戶端進行訪問

二、nfs服務部署

1、nfs服務端

①安裝nfs和rpc服務軟件

rpm -qa nfs-utils rpcbind
yum install nfs-utils rpcbind -y

②修改nfs配置文件

cat >>/etc/exports<<EOF 
/data 172.16.1.0/24(rw,sync)
EOF

運維框架?③啟動rpc、nfs服務

/etc/init.d/rpcbind start
/etc/init.d/nfs start

④創建共享目錄并授權

mkdir /data -p
chown -R nfsnobody.nfsnobody /data
id nfsnobody

⑤重啟nfs服務

/etc/init.d/nfs reload  #平滑重啟
/etc/init.d/nfs restart #強硬重啟

⑥檢查并測試nfs掛載服務

showmount -e 172.16.1.31 #檢查共享目錄列表信息
mount -t nfs 172.16.1.31:/data /mnt

2、nfs客戶端

docker nfs?①安裝nfs和rpc服務軟件

yum install nfs-utils rpcbind -y

②測試nfs共享目錄掛載

mount -t nfs 172.16.1.31:/data /mnt

③卸載目錄

退出共享目錄,再進行卸載           umount /mnt
不退出共享目錄,強制進行卸載        umount -lf /mnt
-l     Lazy  unmount  #懶惰的卸載
-f     Force unmount  #強制的卸載

三、nfs配置文件詳解

1、nfs授權客戶端地址配置說明

nfs負載均衡、客戶端地址

具體地址

說明

授權單一客戶端訪問NFS

172.16.1.41

centos nfs?一般情況,生產環境中此配置不多

授權整個網段訪問NFS

172.16.1.0/24

生產環境中最常用的配置,簡單、方便

授權整個網段訪問NFS

nfs部署。172.16.1.*

指定網段的另一種寫法(不推薦使用)

授權某個域名客戶端訪問

nfs.oldboyedu.com

此方法生產中一般情況不常用

文件系統?授權整個域名客戶端訪問

*.oldboyedu.com

此方法生產中一般情況不常用

?

2、nfs權限參數

centos7 nfs搭建?參數名稱

參數說明

rw ******

read-write表示可讀寫權限

ro

運維體系架構圖、read-only表示只讀權限

sync ******

請求或寫入數據時,數據同步寫到nfs-server的硬盤才返回

優點,數據安全不會丟;缺點,性能比不啟用該參數要差

async ******

centos7搭建nfs詳細步驟?寫入數據時先寫到緩沖區,直到硬盤有空檔才會再寫入磁盤,這樣可以提升寫入效率,如果服務器宕機或不正常關機,會損失緩存區中未寫入磁盤的數據

no_root_squash

保持root用戶不進行壓縮

訪問nfs server共享目錄的用戶如果是root的話,它對該目錄有root權限,這個配置原本是為無盤客戶端準備的,用戶應避免使用

root_squash

什么運維?如果訪問nfs server共享目錄的用戶是root,則它的權限將被壓縮成匿名用戶,同時它的UID和GID通常會變成nfsnobody賬號身份

all_squash ******

對所有訪問的用戶身份壓縮成匿名用戶,同時變成nfsnobody身份

生產中配置NFS的重要技巧:

1、? 確保所有客戶端服務器對NFS共享目錄具備相同用戶訪問權限

a、? all_squash把所有客戶端都壓縮成固定的匿名用戶(UID相同)

b、? 就是anonuid,anongid指定的UID和GID的用戶

2、所有的客戶端和服務端都需要有一個相同的UID和GID的用戶,即nfsnobody(UID必須相同)

anonuid ******

指定匿名用戶的UID

這個用戶的UID設置值通常為nfsnobody的UID值,當然也可以自行設置這個UID,但是這個UID必須存在于/etc/passwd中,如多臺web共享一個nfs目錄,通過這個參數可以使得不同的nfs客戶端寫入的數據對所有NFS客戶端保持同樣的用戶權限,即為配置的匿名UID對應用戶權限,一般默認即可

anongid ******

指定匿名用戶的GID,區別就是把UID(用戶ID)換成GID(組ID)

四、nfs客戶端掛載參數

參數

參數意義

系統默認參數

suid

nosuid

當掛載的文件系統上有任何SUID的程序時,只要使用nosuid就能夠取消

suid

rw

ro

可以指定文件系統是只讀(ro)還是可寫(rw)

rw

dev

nodev

是否可以保留裝置文件的特殊功能?一般來說只有/dev,才會有特殊的裝置,因此可以選擇nodev

dev

exec

noexec

是否具有執行文件的權限?如果想要掛載的僅是普通資源數據區(例如:圖片、附件)那么可以選擇noexec

exec

user

nouser

是否允許普通用戶擁有文件的掛載與卸載功能,如果要保護文件系統,最好不要為普通用戶提供掛載與卸載功能

nouser

auto

noauto

這個auto指的是”mount -a”時會不會掛載的項目,如果不需要這個分區隨時掛載,可以設置為noauto

auto

soft

hard

當nfs客戶端以soft掛載server時,若網絡或server出現問題,造成客戶端和server無法傳輸資料,客戶端就會一直嘗試,直到timeout后顯示錯誤才停止,若用hart模式掛載硬盤時,剛好與soft相反,客戶端一直嘗試連接到server

若server有回應就繼續剛才的操作,若沒有回應客戶端會一直嘗試

?

hard

intr

當使用hart掛載的資源timeout后,若有指定的intr參數,可以在timeout后把它中斷掉,避免出問題時系統整個被nfs鎖死,建議使用intr

rsize

wsize

讀出與寫入的區塊大小,這個設置可以影響客戶端與server端傳輸數據的緩沖存儲量,在局域內,客戶端與server都具有足夠的內存,這個值可以設置大一點,提升緩沖區塊提升nfs文件系統的傳輸能力,但也不能設置太大,最好以網絡能夠傳輸最大值為限

?

五、企業nfs共享存儲優化

1、服務端

①硬件:多塊sas/ssd磁盤,raid0/raid5/raid10,網上吞吐量要大,至少千兆(多塊bond)

②NFS服務端配置:/data 172.16.1.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)

③內核優化,優化nfs讀寫速度

cat >>/etc/sysctl.conf<<EOF
net.core.wmem_default=8388608
net.core.rmem_default=8388608
net.core.rmem_max=16777216
net.core.wmem_max=16777216
EOF
sysctl -p

2、客戶端

①nfs客戶端掛載參數建議

mount –t nfs –o nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,wsize=131072 172.16.1.31 :/data /mnt

②禁止更新目錄及文件時間戳掛載

mount –t nfs –o noatime,nodiratime 172.16.1.31:/data /mnt

③追求極致,可以使用下面參數掛載

mount –t nfs –o fg,hard,intr,rsize=131072,wsize=131072 172.16.1.31:/data /mnt

④經過實際測試,CentOS6.X默認的掛載參數性能還是不錯的,簡單,方便

mount –t nfs 172.16.1.31:/data /mnt

六、 autofs自動掛載

①設置開機不一定要掛載的目錄,當用的時候才實現自動掛載。
②用戶不使用自動掛載的目錄一段的時間,會自動卸載。(默認時間為5分鐘)

1、客戶端安裝autofs

yum install autofs -y

2、nfs服務端創建共享目錄、授權

mkdir /oldboy -p
chown -R nfsnobody.nfsnobody /oldboy/
[root@nfs-nfs01 oldboy]# cat /etc/exports
/oldboy 172.19.5.0/24(rw,sync,all_squash)
/etc/init.d/nfs reload

3、客戶端修改autofs配置文件

echo "/nfs    /etc/auto.nfs" >>/etc/auto.master          #主配置文件,/nfs表示掛載點,auto.nfs表示所應用的配置文件
echo "*   -rw     172.19.5.31:/oldboy/" >>/etc/auto.nfs  #表示要掛載點,也可以指定/nfs,rw表示可讀寫權限
                 172.19.5.31:/oldboy/                    #nfs共享目錄
/etc/init.d/autofs restart                               #重啟服務

4、nfs服務端查看共享目錄下內容

[root@nfs-nfs01 oldboy]# ll /oldboy/
total 4
-rw-r--r-- 1 nfsnobody nfsnobody    0 Aug 23 16:09 abc.log
drwxr-xr-x 2 nfsnobody nfsnobody 4096 Aug 23 14:52 onlylady

5、客戶端autofs查看

[root@test02 nfs]# ll /nfs/
total 0 #此時查看為空
[root@test02 oldboy]# df –h  #查看掛載點也沒有
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda3      6.9G  2.9G  3.7G  44% /
tmpfs           497M   12K  497M   1% /dev/shm
/dev/xvda1      190M   66M  115M  37% /boot
[root@test02 oldboy]# cd /nfs/ #進入掛載點/nfs
[root@test02 nfs]# cd oldboy   #只有cd進行入到nfs共享目錄oldboy下面,立馬激活,自動掛載
[root@test02 oldboy]# ll
total 4
-rw-r--r-- 1 nfsnobody nfsnobody    0 Aug 23 14:52 b.txt
drwxr-xr-x 2 nfsnobody nfsnobody 4096 Aug 23 14:52 onlylady
[root@test02 oldboy]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda3            6.9G  2.9G  3.7G  44% /
tmpfs                 497M   12K  497M   1% /dev/shm
/dev/xvda1            190M   66M  115M  37% /boot
172.19.5.31:/oldboy/  6.9G  1.7G  4.9G  26% /nfs/oldboy

轉載于:https://www.cnblogs.com/yanxinjiang/p/7419469.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/146435.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息