一:網路檔案系統基礎
1:儲存的歷史和發展
1:DAS(直連式儲存)
透過有線介質直接連線到伺服器新增儲存空間(行動硬碟,u盤等)
案例:筆記本外接u盤,增加了筆記本的儲存空間
2:NAS(網路附加儲存),透過網路將目錄共享出去
表現的形式就是:目錄
windows和window和linux之間共享,cifs
linux和linux之間共享:nfs協議
3:SAN(儲存區域網路)
伺服器和專業的儲存裝置之間構建了一套網路
可以是網路裝置
普通交換機+普通網線 ip-san
光交+光纖 FC-SAN(支援網狀通道協議)
2:nfs基礎(典型的NAS儲存)
c/s架構,客戶端+服務端
服務名為nfs-server
軟體包:nfs-utils
主配置檔案:/etc/exports
格式:共享目錄的路徑 訪問的主機ip/掩碼(選項)
服務端共享許可權引數
共享許可權 |
功能 |
ro/rw |
只讀或者讀寫共享 |
sync/async |
同步或者非同步 |
sec=sys |
基於標準Linux檔案許可權訪問 |
root_squash |
打壓root使用者,客戶端的root使用者對映到服務端為nobody使用者 |
no_root_squash |
不打壓root使用者,客戶端是root ,服務端也是root |
all_squash |
打壓普通使用者,客戶端的普通使用者對映到服務端是nobody使用者 |
no_all_squash |
不打壓普通使用者,客戶端的普通使用者對映到服務端是UID相同的使用者 |
客戶端掛載選項引數
suid/nosuid |
檔案系統是否支援suid功能 |
ro/rw |
只讀或者讀寫 |
dev/nodev |
是否支援裝置檔案 |
exec/noexec |
是否支援可執行檔案執行 |
user/nouser |
是否支援使用者掛載系統 |
auto/noauto |
是否支援自動掛載,即mount -a或者系統啟動時自動掛載 |
二:配置NFS服務
1:服務端配置
[root@server ~]# yum -y install nfs-utils vim /etc/exports /opt/share *(rw) #資料夾也要有w的許可權,否則無法進行寫入的操作 [root@server opt]# ll share/ -d drwxr-xrwx. 2 root root 6 Mar 14 10:24 share/ #selinux沒有影響,防火牆放行 [root@server opt]# firewall-cmd --permanent --add-service=nfs success [root@server opt]# firewall-cmd --permanent --add-service=mountd success [root@server opt]# firewall-cmd --permanent --add-service=rpc-bind success [root@server opt]# firewall-cmd --reload success [root@server opt]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client mountd nfs rpc-bind ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@server opt]# #重啟nfs服務 [root@server opt]# systemctl restart rpcbind [root@server opt]# systemctl restart nfs-server
檢查放行的檔案
#重啟還可以使用 exportfs -r #檢視放行的檔案 [root@server opt]# exportfs -r [root@server opt]# exportfs -v /opt/share <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
2:客戶端訪問
#客戶端安裝 nfs-utils #檢視能訪問的檔案 [root@cleint ~]# showmount -e 192.168.20.10 Export list for 192.168.20.10: /opt/share * #進行掛載 [root@cleint ~]# mount -t nfs 192.168.20.10:/opt/share /mnt/ [root@cleint ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 16G 2.3G 14G 15% / devtmpfs devtmpfs 980M 0 980M 0% /dev tmpfs tmpfs 992M 0 992M 0% /dev/shm tmpfs tmpfs 992M 9.5M 982M 1% /run tmpfs tmpfs 992M 0 992M 0% /sys/fs/cgroup /dev/sda1 xfs 497M 123M 375M 25% /boot tmpfs tmpfs 199M 0 199M 0% /run/user/0 overlay overlay 16G 2.3G 14G 15% /var/lib/docker/overlay2/e55fe24a15185361e97c606df2af102d3f4d719984ac998c80e8228f78d7e925/merged 192.168.20.10:/opt/share nfs4 36G 4.8G 31G 14% /mnt [root@cleint ~]#
三:autofs自動掛載
1:自動掛載
1:基礎
根據需求實現自動掛載,不需要反覆的執行mount和umount操作
不僅僅支援nfs,也可以支援不同的檔案系統
1)autofs只在客戶端操作,不需要在服務端進行任何的操作
2)autofs自動掛載的共享所有人都能使用,就和自己主機上面的目錄一樣使用
3)autofs是一個服務,使用systemd進行服務管理
手動掛載的缺點:
用的時候掛載,不用的時候,掛載會佔用一定的系統資源,手動麻煩
4)配置檔案/etc/auto.master,裡面沒有要求,配置目錄/etc/auto.masterd下面的檔案已.autofs結尾
如果是在目錄裡面配置的話,需要2個檔案 /etc/auto.master.d/test.autofs 和/etc/auto.test2個檔案;如果是在配置檔案裡面的話,/etc/auto.master和/etc/test.auto2個檔案
2:操作
將服務端的opt目錄下目檔案自動的掛載到客戶端的mnt目錄
服務端的操作:
與nfs的服務端的操作一致
客戶端的操作
vim /etc/auto.master.d/test.autofs /share /etc/test.auto vim /etc/test.auto share1 192.168.20.10:/opt/share #重啟autofs服務 [root@client ~]# systemctl restart autofs [root@client ~]# cd /share/ [root@client share]# ls [root@client share]# cd share1 [root@client share1]# ls file1 [root@client share1]# 是一個隱藏目錄,可以直接進去
關閉服務,就沒有了
2:autofs萬用字元自動掛載
就是利用home這個父級目錄,下面的使用者的目錄作為子目錄,然後變成共享的目錄
服務端的配置
與nfs的配置一樣
vim /etc/exports /rhome/user1 *(rw) /rhome/user2 *(rw) [root@server rhome]# systemctl restart nfs-server
客戶端的配置
[root@client /]# vim /etc/auto.master /home /opt/user.conf [root@client opt]# vim user.conf * -rw 192.168.20.10:/rhome/& 使用su - 使用者就能看到
實現了共享目錄自動掛載到客戶端的/home/user中,實現了客戶端的使用者家目錄使用的是NFS服務端的儲存空間
四:一些引數的使用
比如,root使用者不對映
服務端的配置 /opt/share *(rw,sync,no_root_squash) [root@server rhome]# systemctl restart nfs-server 客戶端訪問 [root@client ~]# showmount -e 192.168.20.10 Export list for 192.168.20.10: /opt/share * [root@client ~]# mount -t nfs 192.168.20.10:/opt/share /mnt/ [root@client mnt]# touch file2 [root@client mnt]# ll total 0 -rw-r--r--. 1 root root 0 Mar 14 11:01 file1 -rw-r--r--. 1 root root 0 Mar 14 18:41 file2 #建立檔案就不是以nobody的身份建立了