1. 程式人生 > >aufs安裝及替換overlay的可行性分析

aufs安裝及替換overlay的可行性分析

概述:

https://blog.csdn.net/qq_37788558/article/details/84346641
在上面但文章裡,使用聯合檔案系統的一種實現:overlayfs 遇到問題,嘗試換用另一種實現:aufs
(具體是什麼問題可以看上面的文章)

aufs介紹

aufs是一種實現了聯合掛載(union mount)的檔案系統,同unionfs類似,它能夠將不同型別的檔案系統透明地層疊在一起,實現一個高效的分層檔案系統。說白了aufs就是能將不同的目錄掛載到某一目錄下,並將各個源目錄下的內容聯合到目標目錄下,這裡每個源目錄對應aufs中的一層,使用者在目標目錄讀寫時,感覺不到此目錄是聯合而來的。aufs中的每一層都可以有不同的許可權(只讀,讀寫),這個特性使得它在很多開源專案中有應用,比如Knoppix,Live CD, Docker等等。

實踐過程

檢測系統是否支援aufs

# grep aufs /proc/filesystems
# 

發現不支援

aufs預設沒有合入核心,據說被拒絕多次,此生無望。

升級核心

cd /etc/yum.repo.d
# 下載檔案
wget https://yum.spaceduck.org/kernel-ml-aufs/kernel-ml-aufs.repo
# 安裝
yum install kernel-ml-aufs
#編輯 grub.conf 檔案,修改 Grub 引導順序
 vim /etc/grub.conf
#重啟
reboot
#再次檢視
uname -r
3.10.5-3.el6.x86_64

grep aufs /proc/filesystems 
nodev   aufs

#成功

aufs配置

mkdir a b uniondir
mount -t aufs -o br=/mnt/test/a:/mnt/test/b none /mnt/test/uniondir

執行正常。

總結

同時結合對overlay的使用的比較,發現aufs相當於只設置了多個疊加的下層,相當於overlay的lowdir=./a:./b,那麼可能overlay也可以只設置多個疊加下層,不設定upperidr、workdir兩項。

mount -t overlay overlay -olowerdir=/mnt/mybucket:/mnt/source
/mnt/merged

overlay中,upper可寫,lower只讀,都在lower層,則不可寫,所以無法使用(沒嘗試都在upper層)

aufs中,多層會寫最上層