什么是虛擬目錄


文件系統可以把 XX文件放到 YY目錄,也可以把 DD目錄 放到 YY目錄。當我們像訪問某個文件 或者 目錄的時候,必須知道其路徑才可以,比如

Windows  C:\Program Files\Application Verifier\helo.txt

Linux  /user/someone/hello.txt

Linux 不像 Windows有盤符(C、D、E等等),這完全是設計問題。

Windows默認以各個分區為總入口,然后再入口下建立一級一級目錄。 

Linux默認以全局為總入口,各個分區被掛到某個目錄。

如果Linux也想跟Windows一樣,可以把分區掛載到 / 目錄下。例如 sda1分區掛載到/sda1,sda2分區掛載到/sda2,以此類推。

既然Linux可以做出類似於WIndows盤符的行為,那么Windows可以像Linux一樣,把某個分區掛載到某個目錄下嗎??  可以。  這種目錄叫做 虛擬目錄(Virtual Directory,即目錄中存放的不是屬於這個目錄的文件或者目錄,而是另一個存儲空間的目錄樹。

在一個多點集群環境中,每個節點都有各自的虛擬目錄,這個虛擬目錄會記錄其他節點上存儲空間的目錄樹。

其實虛擬目錄,本質上就是另一個存儲空間的目錄樹就像幼兒園小朋友打架,打架的是小盆友,但是出問題是找家長,因為家長知道小朋友在哪。虛擬目錄的本質是另一存儲空間的目錄樹,抓住這個 目錄樹 ,一切就清晰明了了。

集群內各個節點都有自己的文件系統以及Mount Point,每個節點都可以向外部Export所有節點上的Mount Point。例如:節點A將自己的分區sda1掛載到/user/zq/temp路徑下,然后這個路徑被NFS Export出去給客戶端訪問。那么節點A會通知其他節點生成這條Mount Point,這樣其他節點會知道這個路徑/user/zq/temp的實際存儲空間並不在本地所管理的存儲空間上,而位於節點A上。一旦其他節點收到針對這個路徑的訪問請求,由於他知道要訪問的數據不再自己身上,當然肯定也不知道在哪取數據。但是他知道A知道數據在哪,所以針對節點后端不共享存儲,節點后端共享存儲,又有2種獲得訪問數據的方法。

在一個集群環境中,是不允許出項2個同名路徑的,這就是Single Name Space (全局統一命名空間)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM