天天看點

NFS網絡存儲服務

NFS網絡存儲服務

1、什麼是NFS?
network file system 網絡檔案系統

通過網絡存儲群組織檔案的一種方法和機制

2.為什麼要用共享存儲:
前端所有的應用伺服器接收到使用者上的檔案(圖檔、視訊等)都會統一的放到後端的存儲上

為什麼要共享:
所有節點伺服器都需要将内容存到存儲上,取得統一來取

3.共享存儲的種類:
單一存儲系統就是NFS,适用于中小型企業,相當于阿裡雲的NAS服務、OSS對象存儲
大型企業會用分布式存儲FastDFS、Coph、GlstorFS、Mfs

大型存儲廠商:EMC、Netapp


4、NFS工作原理:

啟動服務,而且還要啟動很多端口
NFS需要很多服務和端口,端口而且經常變化

如何讓用戶端找到這些端口呢?(RPC服務)

NFS服務:
1.nfs服務(程序)
2.rpc服務(對外的固定端口)

用戶端請求nfs服務,先找到rpc 


用戶端---- >> 
RPC服務--- >> 

NFS服務 (向RPC服務注冊啟動的端口)

※實踐:
1.主機

2.NFS軟體清單

nfs-utils:NFS服務的主程式,包括rpc.nfsd、rpc.mountd

rpcbind:RPC主程式


3.安裝 #all server and client
yum install nfs-utils rpcbind –y


4.啟動服務
systemctl start rpcbind.service #啟動rpcbind
systemctl enable rpcbind.service #開機自啟動


[root@nfs01 ~]# rpcinfo -p 127.0.0.1
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper


systemctl start nfs #啟動nfs
systemctl enable nfs #開機自啟動

5.配置nfs
nfs配置檔案 /etc/exports
EXAMPLE
       #sample /etc/exports file
       /               master(rw) trusty(rw,no_root_squash)
       /projects       proj*.local.domain(rw)
       /usr            *.local.domain(ro) @trusted(rw)
       /home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
       #将遠端通路的使用者及所屬組都映射為指定UID和GID的匿名使用者
       /pub            *(ro,insecure,all_squash)
       /srv/www        -sync,rw server @trusted @external(ro)
       /foo            2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
       /build          buildhost[0-9].local.domain(rw)
       帶共享的目錄        通路的主機(權限)  
1)待共享的目錄,存取東西的目錄 例如:/data
2)通路的主機
    172.16.1.7(web01) 單個主機
    172.16.1.0/24 網段
    172.16.1.*    網段
    master 主機名
3) ()權限
    rw 可讀寫 read write
    ro 隻讀 read only
    sync 寫到磁盤才算完成,安全
    async 異步寫到遠端緩沖區,速度快,不安全
    
    root_squash 如果通路nfs server共享目錄的使用者是root,則它的權限将被壓縮成匿名使用者
    all_squash 不管用戶端是什麼使用者,到服務端都是nfsnobody
    anonuid 匿名使用者的UID
    anongid 匿名使用者的GID
    
6.更改預設NFS預設使用者

例如:
[root@nfs01 ~]# useradd -u 1111 www
[root@nfs01 ~]# id www
uid=1111(www) gid=1111(www) 組=1111(www)

[root@nfs01 ~]# chown -R www.www /data/

vim /etc/exports
/data 172.16.0.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)

~[root@nfs01 ~]# systemctl reload nfs


#用戶端
[root@web01 ~]# useradd -u 1111 www
[root@web01 ~]# mount 172.16.1.31:/data/ /data/
[root@web01 ~]# df -hT
172.16.1.31:/data nfs4       19G  2.2G   17G   12% /data

[root@web01 mnt]# touch new_web01




※NFS重點:

1.nfs的通路原理

2.nfs作為叢集共享存儲角色的搭建、部署

3.nfs的排障和進階優化

4.mount 指令的知識和參數,如-o (noatime...)

5.fstab檔案知識以及fstab故障修複

6.常用指令 showmount exportfs umount(-lf) rpcinfo

7.NFS的優缺點,适合的場景