NFS介紹
NFS是Network File System的縮寫斑唬,是網(wǎng)絡(luò)文件系統(tǒng)檀训,它的主要功能是通過網(wǎng)絡(luò)(一般是局域網(wǎng))讓不同的主機(jī)系統(tǒng)之間可以共享文件或目錄王带,主要存儲(chǔ)用戶上傳的圖片附件等信息砰嘁。
NFS服務(wù)部署
- 先通過Multipass 創(chuàng)建nfsserver 節(jié)點(diǎn)(關(guān)于Multipass 請(qǐng)點(diǎn)擊查看相關(guān)內(nèi)容)
#創(chuàng)建nfsserver 節(jié)點(diǎn)
% multipass launch --name nfsserver
#進(jìn)入nfsserver 節(jié)點(diǎn)
% multipass shell nfsserver
#成功進(jìn)入后件炉,將會(huì)得到如下結(jié)果
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-109-generic aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Fri May 6 22:22:22 CST 2022
System load: 0.03
Usage of /: 27.2% of 4.68GB
Memory usage: 19%
Swap usage: 0%
Processes: 101
Users logged in: 0
IPv4 address for enp0s1: 192.168.64.12
IPv6 address for enp0s1: fd67:d40e:50d4:ad7b:5054:ff:fe81:c2b1
0 updates can be applied immediately.
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
其中IP: 為容器可訪問的IP地址。
- 開始安裝服務(wù)端所需要的組件
% sudo apt-get install -y nfs-kernel-server
- 創(chuàng)建需要共享的目錄(例如/nfsdata/share)
$ sudo mkdir -p /nfsdata/share
- 配置好目錄權(quán)限
$ sudo chown nobody:nogroup /nfsdata/share
$ sudo chmod 755 /nfsdata/share
- 修改關(guān)鍵配置文件:/etc/exports
sudo vim /etc/exports
#添加可指定客戶端訪問權(quán)限矮湘,
# /nfsdata/share 192.168.100.*(rw,sync,no_subtree_check)
#代表允許前綴為192.168.100. 的IP 可訪問NFS
#如允許任意IP訪問斟冕,則加入如下語句
/nfsdata/share *(rw,sync,no_subtree_check)
#配置參數(shù)說明
rw:讀書
ro:只讀
root_squash: 當(dāng)NFS客戶端以root管理員訪問時(shí),映射為NFS服務(wù)器的匿名用戶
no_root_squash:當(dāng)NFS客戶端以root管理員訪問時(shí)缅阳,映射為NFS服務(wù)器的root用戶
all_squash: 不論NFS客戶端使用什么身份帳號(hào)訪問磕蛇,均映射為NFS服務(wù)器的匿名用戶
async:優(yōu)先將數(shù)據(jù)保存到內(nèi)存,然后再寫入硬盤十办,這樣效率更高秀撇,但可能會(huì)丟失數(shù)據(jù)。
sync: 同時(shí)將數(shù)據(jù)寫入到內(nèi)存與硬盤向族,保證不丟失數(shù)據(jù)呵燕。
- 檢查nfs服務(wù)的目錄
#重新加載配置
$ sudo exportfs -ra
#查看共享的目錄和允許訪問的ip段
$ sudo showmount -e
#正常會(huì)輸出如下結(jié)果
#Export list for nfsserver:
#/nfsdata/share *
- 重啟nfs服務(wù)使以上配置生效
$ sudo systemctl restart nfs-kernel-server
安裝客戶端進(jìn)行驗(yàn)證
- 先在服務(wù)端的/nfsdata/share 創(chuàng)建一個(gè)測(cè)試文件
sudo vim /nfsdata/share/test.txt
#輸入Hello NFS!
- 在本機(jī)"終端"新打一個(gè)multipass client 節(jié)點(diǎn)件相,可以名為nfsclient
#創(chuàng)建nfsclient 節(jié)點(diǎn)
% multipass launch --name nfsclient
#進(jìn)入nfsclient 節(jié)點(diǎn)
% multipass shell nfsclient
- 安裝NFS 客戶端
% sudo apt-get install -y nfs-common
- 開始進(jìn)行掛載
#先創(chuàng)建一個(gè)待掛載目錄
sudo mkdir /nfsdata
#進(jìn)行對(duì)192.168.64.12 NFS服務(wù)端掛載
sudo mount -t nfs -o nolock,nfsvers=3 192.168.64.12:/nfsdata/share /nfsdata
- 驗(yàn)證
ls /nfsdata
#輸出結(jié)果
#test.txt
#發(fā)現(xiàn)出現(xiàn)了之前在server創(chuàng)建的文件再扭,代表掛載成功。
#同時(shí)查看一下 磁盤信息
df -h
#得到(192.168.64.12:/nfsdata/share)的掛載信息
Filesystem Size Used Avail Use% Mounted on
udev 453M 0 453M 0% /dev
tmpfs 97M 1.1M 96M 2% /run
/dev/sda1 4.7G 1.3G 3.4G 28% /
tmpfs 485M 0 485M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 485M 0 485M 0% /sys/fs/cgroup
/dev/loop0 58M 58M 0 100% /snap/core20/1408
/dev/loop1 38M 38M 0 100% /snap/snapd/15183
/dev/loop2 62M 62M 0 100% /snap/lxd/22761
/dev/sda15 98M 290K 98M 1% /boot/efi
tmpfs 97M 0 97M 0% /run/user/1000
192.168.64.12:/nfsdata/share 4.7G 1.3G 3.4G 28% /nfsdata