NFS網路檔案系統

q_7發表於2024-03-14

一:網路檔案系統基礎

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的身份建立了

  

相關文章