Overlay文件系統(tǒng)

Overlay文件系統(tǒng)

一個Overlay文件系統(tǒng)包含兩個文件:

  • 一個upper文件系統(tǒng)
  • 一個lower文件系統(tǒng)
    lower文件系統(tǒng)的數(shù)據(jù)不會被修改,所以修改都發(fā)生在upper文件系統(tǒng)中。除此之外,還有2個空目錄:work和merged。work目錄屬于操作過程文件,merged屬于overlay掛載目錄(即掛載后的目錄),會包含lower和upper兩個系統(tǒng)的內(nèi)容。

Overlay文件系統(tǒng)如何掛載?

  • 首先加載overlay模塊: $sudo modprobe overlay
  • 創(chuàng)建四個文件目錄:lower, upper, merged, work, 并在lower和upper下創(chuàng)建幾個測試數(shù)據(jù)。
  • 在/root目錄下執(zhí)行如下掛載指令,可以看到空的merged文件夾中已經(jīng)包含了lower以及upper文件夾中的所有文件和目錄。
$ mount -t overlay overlay -o lowerdir=./lower, upperdir=./upper, workdir=./work ./merged
- 使用df -h命令可以查看新構(gòu)建的overlay文件系統(tǒng)已經(jīng)掛載。

overlay文件系統(tǒng)的讀、寫與刪除操作

讀取操作

  • 讀upper沒有而lower與的文件時,從lower讀
  • 讀只在upper有的文件時,從lower讀
  • 讀lower和upper都有的文件,則需要從upper讀

寫入操作

  • 寫只在upper有的文件, 直接在upper上寫
  • 寫在lower和upper都有的文件,直接在upper寫
  • 寫只在lower有的文件時,則會做一個copy_up的操作,先從lower拷貝一份文件到upper中,同時為文件創(chuàng)建一個硬鏈接。此時可以看到upper目錄下生成了2個新的文件,寫的操作支隊從lower復(fù)制到upper文件生效,而lower還是原文件。

刪除操作

  • 刪除lower和upper都有的文件時,upper中文件被刪除,在upper目錄下創(chuàng)建一個without文件,而lower文件不會被刪除。
  • 刪除lower有而upper沒有的文件,會為被刪除的文件在upper目錄下創(chuàng)建一個without文件,而在lower下的不會被刪除。
  • 刪除lower和upper都有的目錄時時,upper的會被刪除,在upper目錄下創(chuàng)建一個類似without文件的opaqu目錄,而lower下的不會被刪除。

因而,可以發(fā)現(xiàn),lower是只讀的,無論對lower上文件或目錄做任何操作都不會對lower做更改。所有的操作都只在upper上進(jìn)行。
注意:在掛載完成后,目錄將變?yōu)榭勺x可寫,但所有的修改(在upper上)都是暫時的,重啟后恢復(fù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容