TWI806341B - 主機的容器系統、動態掛載主機資料至容器的方法及應用程式 - Google Patents
主機的容器系統、動態掛載主機資料至容器的方法及應用程式 Download PDFInfo
- Publication number
- TWI806341B TWI806341B TW111100615A TW111100615A TWI806341B TW I806341 B TWI806341 B TW I806341B TW 111100615 A TW111100615 A TW 111100615A TW 111100615 A TW111100615 A TW 111100615A TW I806341 B TWI806341 B TW I806341B
- Authority
- TW
- Taiwan
- Prior art keywords
- container
- directory
- subdirectory
- management station
- shared
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
一種主機的容器系統,包括具有檔案系統的主機、運行於主機的容器的應用行程及應用程式介面伺服器、以及運行於主機中的容器管理器,其中容器管理站於檔案系統中建立來源目錄,並且將來源目錄掛載至應用行程的分享目錄。應用程式介面伺服器接收針對檔案系統中的一個目標子目錄所發出的請求指令,容器管理器依據請求指令將目標子目錄綁定掛載至來源目錄的子目錄。並且,容器管理站告知應用程式介面伺服器此目標子目錄於分享目錄中的位置,藉以通過容器中的分享目錄來存取所需資料。
Description
本發明涉及容器,尤其涉及在主機中使用的容器系統、可動態將主機資料掛載至容器的掛載方法,以及對應的應用程式。
容器(Container)是一種將作業系統虛擬化的技術。一台主機(Host)中可視需求建立多個容器,各個容器可分別用於執行小型服務、小型程序乃至於大型應用程式等任何作業。具體地,一個容器中包含了執行應用程式所需的程序檔(Process)、程式庫(Library)與組態檔(Config)等,但不需包含作業系統映像,因此相當輕巧,也容易被攜帶。
容器技術的最大特點就是可以把應用程式的執行環境封裝(isolated)起來,使容器內的應用程式的執行不會影響到容器外的環境。舉例來說,若多個應用程式需要分別使用不同版本的程式庫,則使用者可以讓這些應用程式分別執行在不同的容器中,藉此克服這些應用程式所需的程式庫版本不同而造成互相衝突的問題。
於常見情況下,容器被建立後的執行期間很短,並且在任務達成(例如一個指定的程序執行完畢)後就會被關閉。於此情況下,容器的相關資訊不會被儲存下來,故又稱為無狀態(stateless)的容器。部分容器內所執行的程序較為特殊(例如NFS-ganesha、Samba等用於連接不同通訊協定的軟體),因此執行期間較長,且不常被關閉。於此情況下,容器的相關資訊需要被保存,故又稱為有狀態(stateful)的容器。
上述有狀態的容器中的應用程式可在架構上區分為控制路徑(control path)與資料路徑(data path),其中控制路徑用以提供應用程式介面(Application Program Interface,API)給外部的管理者來對應用程式進行配置(例如通過網路來連接),而資料路徑則用以依據從控制路徑獲得的指令來分享對應的資料。由於控制路徑提供了容器向外連接的途徑,因此較容易成為駭客攻擊的主要來源。
雖然容器可將應用程式的執行環境封裝起來,以與外部環境隔離,但應用程式的執行仍需使用主機中的資料。然而,在建立容器時,系統並無法事先預測應用程式需要什麼資料。若管理者為了便利,直接將主機中的所有儲存空間(storage)皆掛載給容器,或是不當地開放可以自由查詢並掛載主機中的任意儲存空間的特權(privilege)給容器,則當駭客經由所述控制路徑侵入容器後,即可反向獲得主機內的檔案系統(File System,FS)的所有資料。如此一來,即違反了容器最原始要將執行環境與外部環境隔離的本意,並且增加了資安風險。
參閱圖1,為於主機中的容器使用示意圖。如圖1所示,主機1中主要可具備由多個目錄(directories)組成的檔案系統11,並且可運用至少一容器12,其中容器12內運行至少一個應用程式。於圖1中,所述應用程式於架構
上區分為應用程式介面伺服器(API Server)13與應用行程(Daemon)14,其中應用程式介面伺服器13對外提供控制路徑R1,應用行程14提供資料路徑R2。
如前文所述,由於無法預測應用程式執行時需要使用主機1中的什麼資料,因此部分管理者可能會為了便利,直接將整個檔案系統11皆綁定掛載(bind mount)給容器12中的分享目錄15。於此情況下,若駭客經由控制路徑R1入侵容器12,就可以直接經由分享目錄15來獲得主機1內的所有資料。
另一方面,部分管理者亦可能為了便利,直接於建立容器12時開放不恰當的特權給容器12。於此情況下,若駭客經由控制路徑R1入侵容器12,即可通過特定指令(例如docker下的CLI指令)來查詢並獲取主機1的所有資料。一旦上述情況發生,將使得容器12的隔離機制形同虛設。
本發明的主要目的,在於提供一種主機的容器系統、動態掛載主機資料至容器的方法及應用程式,係可於容器有需要時才將主機中的特定資料動態掛載給容器,降低主機內部的資料曝露在外的風險。
為了達成上述目的,本發明的容器系統主要包括:一主機(host),具有由多個目錄(directories)組成的一檔案系統(File System,FS);一應用行程(daemon),運行於該主機的一容器(container),並具有至少一分享目錄(shared directory);一容器管理站,運行於該主機,於該檔案系統中建立一來源目錄,並且該來源目錄掛載至該分享目錄;及
一應用程式介面伺服器(API Server),接收一外部管理者對於該檔案系統中的一目標子目錄的一請求指令,並將該請求指令轉送至該容器管理站;其中,該容器管理站依據該請求指令將該目標子目錄綁定掛載(bind mount)至該來源目錄之一來源子目錄,並告知該應用程式介面伺服器該目標子目錄於該分享目錄中的位置,藉此該容器通過該分享目錄分享該目標子目錄供內部運算或分享給外部用戶。
為了達成上述目的,本發明的方法主要包括下列步驟:a1)該容器管理站於該檔案系統中建立一來源目錄;a2)該容器管理站將該來源目錄掛載至該應用行程的一分享目錄;a)該容器管理站由該應用程式介面伺服器接收一請求指令,其中該請求指令為一外部管理者針對該檔案系統中的一目標子目錄所發出;b)該容器管理站依據該請求指令將該目標子目錄綁定掛載至該來源目錄的一來源子目錄;及c)該步驟b)後,該容器管理站告知該應用程式介面伺服器該目標子目錄於該分享目錄中的位置,以令該第二容器藉由該分享目錄分享該目標子目錄供內部運算或分享給外部用戶。
為了達成上述目的,本發明的應用程式記錄有電腦可執行程式碼,於一主機執行了該電腦可執行程式碼後,可實現上述本發明的方法中的各步驟。
本發明相對於相關技術所能達到的技術功效在於,容器管理站可於容器運行中,動態地將主機中的特定資料提供給容器,藉由降低容器一般
可存取的資料量以避免主機的資料曝露於外。並且,容器管理站不需要先關閉容器並修改組態檔後再重建容器,如此可同時兼顧安全性及便利性。
1:主機
11:檔案系統
111:目標子目錄
12:容器
13:應用程式介面伺服器
14:應用行程
15:分享目錄
R1:控制路徑
R2:資料路徑
2:主機
21:檔案系統
211:來源目錄
2111:來源子目錄
212:目標子目錄
22:容器
23:第一容器
24:第二容器
3:容器管理站
4:綁定資料庫
5:應用程式介面伺服器
6:應用行程
7:分享目錄
71:分享子目錄
8、81:行程間通訊
9:管理者
S10~S22:掛載步驟
S30~S42:建立步驟
S51~S66:掛載步驟
S70~S78:卸載步驟
S91~S96:卸載步驟
圖1為於主機中的容器使用示意圖。
圖2為本發明的容器系統的示意圖的第一具體實施例。
圖3為本發明的容器系統的示意圖的第二具體實施例。
圖4為本發明的容器系統的示意圖的第三具體實施例。
圖5為本發明的動態掛載方法的流程圖的第一具體實施例。
圖6為本發明的容器建立流程圖的第一具體實施例。
圖7為本發明的動態掛載方法的時序圖的第一具體實施例。
圖8為本發明的卸載方法的流程圖的第一具體實施例。
圖9為本發明的卸載方法的時序圖的第一具體實施例。
茲就本發明之一較佳實施例,配合圖式,詳細說明如後。
首請參閱圖2,為本發明的容器系統的示意圖的第一具體實施例。如圖2所示,本發明揭露了一種主機的容器系統,主要包括主機2,以及運行於主機2中的容器管理站3、應用程式介面伺服器(Application Program Interface Server,API Server)5及應用行程(Daemon)6。所述主機2可例如為個人電腦(Personal Computer,PC)、筆記型電腦、工業電腦(Industrial PC,IPC)、伺服器等電腦設備,但不加以限定。於一實施例中,所述容器管理站3為主機2內部的一項服務並
直接運行於主機2上,所述應用程式介面伺服器5與應用行程6運行於主機2中的至少一個容器22。
所述容器22為本技術領域中的常用技術手段,於此不再贅述。
具體地,應用程式介面伺服器5與應用行程6可為相同應用程式的不同功能,並且於架構上區分為應用程式介面伺服器5與應用行程6。當主機2要執行此應用程式時,先通過容器管理站3來建立容器22,並且再於容器22中運行此應用程式。藉此,將此應用程式(即,應用程式介面伺服器5與應用行程6)的執行環境與容器22外的環境隔離,而不會彼此影響。
於一實施例中,應用程式介面伺服器5用以對外(例如通過網際網路)提供控制路徑(Control Path),應用行程6用以提供資料路徑(Data Path),其中資料路徑可為對外提供或對內提供,不加以限定。管理者(Admin)可通過所述控制路徑發送指令至應用程式介面伺服器5,以控制容器22內的作動並查詢所需的資料。並且,管理者可通過所述資料路徑來獲取應用行程6所分享的相關資料。
於一實施例中,所述應用行程6為一種用來連接不同通訊協定(例如伺服器訊息區塊(Server Message Block,SMB)協定與網路文件共享系統(Common Internet File System,CIFS)協定)的軟體,例如為NFS-ganesha或Samba等,但不加以限定。所述NFS-ganesha與Samba為本技術領域的公知技術,於此不再贅述。
主機2內部具有由多個目錄(Directories)組成的檔案系統(File System,FS)21。如圖2所示,所述檔案系統2為一樹狀結構,並且於根目錄(/)
下包含了etc、home、mnt等目錄,mnt目錄進一步包含了a、b、…、z等子目錄。上述目錄與子目錄的目錄名稱僅為示例,並非用以限定本案的主要技術範圍。
如圖2所示,容器22中的應用行程6可具有自己的分享目錄7,例如圖2中所示的share目錄。當管理者通過資料路徑來從應用行程6獲取資料時,主要僅能獲取分享目錄7下的資料。更具體地,所述share目錄的目錄名稱為應用行程6一般分享資料時的固定用法,用以表示此目錄為可分享目錄(Share-able Directory)。
本發明的其中一個技術特徵在於,容器系統於建立容器22時僅令分享目錄7掛載(mount)極少量的內容(於圖2的實施例中,分享目錄7下沒有掛載任何資料),並且於應用行程6有分享需求時,再由容器管理站3從檔案系統21中動態掛載所需的資料至分享目錄7下。藉此,可以避免因為所述控制路徑被駭客入侵,導致主機2的檔案系統21中的重要資料經由分享目錄7而外洩的風險。
具體地,本發明的容器管理站3可以在建立(instantiate)容器22前,先於主機2的檔案系統21中建立一個來源目錄211。所述來源目錄211於圖2中以C2的目錄名稱為例,惟來源目錄211的目錄名稱並不具實質意義,可由管理者自行設定來源目錄211的目錄名稱,或由容器管理站3隨機產生一個任意的目錄名稱,不加以限定。
當容器22被建立後,容器管理站3將主機2的檔案系統21中的來源目錄211掛載至容器22中的分享目錄7(即,將”/C2”目錄掛載至”/share”目錄)。於一實施例中,容器管理站3主要是以從屬掛載(Slave mount)的方式將來源目錄211掛載至分享目錄7。通過從屬掛載技術的特性,當檔案系
統21中的一個子目錄被綁定掛載(bind mount)至來源目錄211下的一個來源子目錄時,所述綁定掛載關係會自動出現在分享目錄7。藉此,所述子目錄會在被綁定掛載至來源目錄211下的來源子目錄時,自動出現在分享目錄7下的一個分享子目錄(容後詳述)。
如圖2所示,應用程式介面伺服器5可通過控制路徑接收外部的管理者的請求指令。於一實施例中,所述請求指令可例如為管理者針對檔案系統21中特定的一個目標子目錄所發出。本發明中,應用程式介面伺服器5不直接執行此請求指令,而會將此請求指令轉傳(forward)至容器管理站3。
於一實施例中,容器管理站3通過行程間通訊(Inter-Process Communication,IPC)8與應用程式介面伺服器5溝通,因此,應用程式介面5可通過行程間通訊8轉傳所述請求指令給容器管理站3。
具體地,系統可以在佈署所述行程間通訊8時設定其使用本地端的通訊協定,藉此限制容器管理站3只能通過行程間通訊8接受並服務來自本地端信任域(Local Trust Domain)的請求。通過行程間通訊8的使用,即使應用程式介面伺服器5被駭客入侵,亦可避免駭客經由容器管理站3來取得主機2的資料的風險。
如上所述,本發明由容器管理站3來將來源目錄211掛載至分享目錄7,並且由容器管理站3來通過指令查詢檔案系統21的內容。為了實現上述作業,主機2必須要賦予容器管理站3一定程度的特權(privilege)。為了降低容器管理站3被駭客入侵而經由所述特權危害主機2的風險,容器管理站3只能經由所述行程間通訊8來與其他程序進行溝通。
值得一提的是,雖然行程間通訊8可降低駭客經由應用程式介面伺服器5而入侵容器管理站3的風險,然而若將應用程式介面伺服器5與應用行程6運行於同一個容器22中,則駭客仍有可能經由應用程式介面伺服器5而入侵應用行程6。
具體地,若將所述控制路徑與資料路徑放置在同一個容器22中,則由於資料路徑要分享出去的資料,從控制路徑都看得到,而由於控制路徑一般可連接網際網路,因此常常為駭客攻擊的主要來源。於此情況下,若檔案系統21中的任一個目錄/子目錄被掛載至分享目錄7,駭客就有可能經由分享目錄7來獲取主機2的檔案系統21內的其他資料。有鑑於此,本發明提供另一技術方案,係令應用程式介面伺服器5與應用行程6分別運行於不同的容器22中,以降低上述風險。
請參閱圖3,為本發明的容器系統的示意圖的第二具體實施例。圖3揭露了本發明的容器系統的另一個具體實施範例。圖3的實施例與圖2的實施例間的差異在於,容器管理站3運行第一容器23並於第一容器23中運行應用程式介面伺服器5,並且運行第二容器24並於第二容器24中運行應用行程6。
如圖3所示,第一容器23中的應用程式介面伺服器5除了通過所述行程間通訊8與容器管理站3溝通外,還通過另一行程間通訊81與第二容器24中的應用行程6溝通。藉由行程間通訊8、81僅接受並服務本地端信任域之特性,並且令應用程式介面伺服器5僅掛載極少量的主機資料(圖中未示),圖3的實施例可以進一步降低主機2的資料經由應用程式介面伺服器5而曝露在外的風險。
值得一提的是,應用程式介面伺服器5與容器管理站3間使用的行程間通訊8(例如可稱為第一行程間通訊)和應用程式介面伺服器5與應用行程6間使用的行程間通訊81(例如可稱為第二行程間通訊)是各自獨立的,並且可以分別採用不同的local IPC機制來實現,但並不加以限定。
具體地,容器管理站3只需要實做一種行程間通訊8,就可以支援多種不同的應用程式伺服器5(例如,Samba、nfs等各自具有自己的應用程式伺服器)。相較之下,應用程式伺服器5與應用行程6間的行程間通訊81可依據軟體的本質與實際需求而採用不同的實作方式。例如,Samba的應用程式伺服器5與應用行程6間採用的行程間通訊81,不一定需要與nfs的應用程式伺服器5與應用程式6間採用的行程間通訊81一樣。更具體地,所述行程間通訊8、81可以用不同的通訊協定來實作;即使是用一樣的通訊協定,但所支援的通訊指令仍然可以是不一樣的,端看應用程式伺服器5與應用行程6之間需要溝通的內容而定。
惟,上述僅為本發明的部分具體實施範例,但並不以此為限。
請同時參閱圖4,為本發明的容器系統的示意圖的第三具體實施例。如前文中所述,當容器管理站3從應用程式介面伺服器5接收所述請求指令後,可以從檔案系統21中查詢請求指令所指定的目標子目錄212的位置(圖4中的目標子目錄212以/mnt/a子目錄為例)。並且,容器管理站3將目標子目錄212綁定掛載(bind mount)至來源目錄211之來源子目錄2111(圖4中的來源子目錄2111以/C2/a子目錄為例)。
如圖4所示,容器管理站3在建立第二容器24時,是直接將來源目錄211從屬掛載至應用行程6下的分享目錄7。基於從屬掛載技術的特
性,當所述目標子目錄212被綁定掛載至來源子目錄2111後,所述綁定掛載關係會自動出現在第二容器24的分享目錄7,進而所述目標子目錄212會自動出現在第二容器24中的分享目錄7下的分享子目錄71(圖4中以/share/a子目錄為例)。
如上所述,在將目標子目錄212綁定掛載至來源子目錄2111後,與來源目錄211具有從屬掛載關係的分享目錄7下會自動出現相對應的分享子目錄71。據此,容器管理站3可以告知應用程式介面伺服器5所述目標子目錄212於分享目錄7中的位置。更具體地,容器管理站3可告知應用程式介面伺服器5所述目標子目錄212相同於第二容器24中的分享子目錄71。如此一來,應用程式介面伺服器5可以要求應用行程6將分享子目錄71進行分享,而第二容器24可以通過分享目錄7來分享被指定的目標子目錄212的內容(即,分享子目錄71的內容)以供內部運算,或是分享給外部用戶。
於一實施例中,應用程式介面伺服器5主要是通過行程間通訊8來接收容器管理站3的告知,並且通過行程間通訊81與應用行程6進行本地端溝通,以要求應用行程6分享所述分享子目錄71的內容。如此一來,可以降低駭客入侵應用程式介面伺服器5後,進一步經由應用程式介面伺服器5取得分享子目錄71的內容,仍至於取得主機2的整個檔案系統21的風險。
值得一提的是,一個叢集可以同時運行多台主機(即,多個節點(nodes)),各個節點可分別運行多個容器。本發明中,若一個叢集上運行了多個節點,則每一個節點需要分別運行一個容器管理站3,以對此節點中的一或多個容器進行管理。
續請參閱圖5,為本發明的動態掛載方法的流程圖的第一具體實施例。本發明進一步揭露了一種動態掛載主機資料至容器的方法(下面將於說明書中簡稱為掛載方法),所述掛載方法主要應用於如圖2、圖3及圖4所示的容器系統中,以在通過應用行程6分享資料的同時,降低主機2的資料外洩的風險。
值得一提的是,所述容器管理站3主要為主機2中運行的一個應用程式,並且為主機2提供特定服務。舉例來說,主機2可例如為網路儲存伺服器(Network Attached Storage,NAS),而容器管理站3可為用來提供網路存取服務的應用程式,並且通過容器的技術來於主機2上實現所述應用程式介面伺服器5與應用行程6。惟,上述僅為本發明的其中一種實施態樣,但並不以上述者為限。
所述應用程式中可記錄有電腦可執行程式碼,當一電子裝置,例如圖2至圖4所示的主機2執行了電腦可執行程式碼後,即可於其上運行所述容器管理站3,並且通過容器管理站3來實現圖5所示的掛載方法的各個具體步驟。
如圖5所示,要執行本發明的掛載方法,首先由主機2執行所述應用程式,以在主機2中運行容器管理站3。接著,由容器管理站3於主機2的檔案系統21中建立一個來源目錄211(步驟S10)。具體地,建立來源目錄211的目的在於,在不影響檔案系統21中其他目錄的情況下,將特定的子目錄掛載至容器中。因此,於步驟S10中,容器管理站3可以隨機產生來源目錄211的目錄名稱,並且可隨機決定來源目錄211在檔案系統21中的位置,藉此增加執行彈性。
步驟S10後,容器管理站3即可將來源目錄211掛載至應用行程6(即,如圖4所示的第二容器24)的分享目錄7(步驟S12)。於一實施例中,容器管理站3於步驟S12中是藉由從屬掛載的方式將來源目錄211掛載至應用行程6的分享目錄7,並且所述應用行程6可例如為Samba。惟,上述僅為本發明的其中一種實施範例,但不以此為限。
如圖4所示,本發明的容器系統還可於主機2中設置以硬體實現或以軟體實現的綁定資料庫(binding database)4。於上述步驟S10後,容器管理站3主要可將來源目錄211的相關資訊寫入將要建立的容器(例如圖4所示的第一容器23與第二容器24)的組態檔(Config),並且記錄於綁定資料庫4中。並且,容器管理站3將來源目錄211與即將建立的第二容器24的分享目錄7的掛載關係一同寫入所述組態檔中。
於步驟S12中,容器管理站3從綁定資料庫4中讀取所述組態檔,並且依據組態檔的內容來建立對應的第二容器24。藉此,當容器管理站3建立第二容器24後,即可直接於第二容器24中運行應用行程6,並且令應用行程6具備一個已與來源目錄211建立了掛載關係的分享目錄7。換句話說,容器管理站3可以先建立第二容器24,再建立來源目錄211與分享目錄7間的掛載關係;或者,容器管理站3亦可先建立來源目錄211與分享目錄7間的掛載關係並儲存為組態檔,接著再依據組態檔來建立第二容器24。
於建立第二容器24時,容器管理站3雖然將來源目錄211掛載至分享目錄7,但容器管理站3不必然掛載額外的子目錄給第二容器24(例如圖3所示,來源目錄211與分享目錄7下皆不具有任何資料)。此時,若第一容器23中的應用程式介面伺服器23接收外部管理者所發出的請求指令,則會經
由所述IPC8將此請求指令轉傳至容器管理站3,即,容器管理站3會由應用程式介面伺服器23接收到外部發送的請求指令(步驟S14)。
於接收到所述請求指令後,容器管理站3可對請求指令的內容進行解析。例如,當外部管理者想要查詢、擷取或使用檔案系統21中的一個目標子目錄212(例如圖4所示的/mnt/a子目錄)時,即可針對此目標子目錄212來發出對應的請求指令至應用程式介面伺服器23。容器管理站3在接收並解析了請求指令後,即可通過內部指令(例如CLI指令)的執行,於檔案系統21中尋找目標子目錄212(步驟S16)。
於找到目標子目錄212的位置後,容器管理站3進一步將目標子目錄212綁定掛載(bind mount)至來源目錄211下的來源子目錄2111(例如圖4所示的/C2/a子目錄)(步驟S18)。所述綁定掛載的技術為本技術領域的常用技術手段,於此不再贅述。
如前文所述,容器管理站3主要是通過從屬掛載技術來將來源目錄211掛載至第二容器24的分享目錄7。基於從屬掛載技術的特性,當所述目標子目錄212被綁定掛載至來源子目錄2111後,所述綁定掛載關係會自動出現在分享目錄7,因而所述目標子目錄212會自動自現在分享目錄7下的分享子目錄71(例如圖4所示的/share/a子目錄)。因此,於步驟S18後,容器管理站3可以告知應用程式介面伺服器5所述目標子目錄212於分享目錄7中的位置(步驟S20)。
具體地,於上述步驟S14中,容器管理站3主要可從應用程式介面伺服器5接收將目標子目錄212掛載至第二容器24的請求。於步驟S20
中,容器管理站3主要可告知應用程式介面伺服器5所述目標子目錄212就是第二容器24中的分享子目錄71。
於步驟S20後,應用程式介面伺服器5通過所述IPC81對應用行程6發出分享請求,以令第二容器24藉由分享目錄7來分享所述目標子目錄212(即,分享子目錄71)供主機2內部運算,或是分享給外部用戶(步驟S22)。
如前文所述,容器管理站3可先於綁定資料庫4中讀取要建立的容器的組態檔,再依據組態檔的內容建立對應的容器。若綁定資料庫4中存在容器的組態檔,代表這個容器之前已經建立過,後來被關閉(或是主機2曾經重新啟動(reboot));若綁定資料庫4中不存在容器的組態檔,代表這個容器是第一次被建立。因此,所需的容器是否曾經被建立,將會影響容器管理站3的建立作業。
請同時參閱圖6,為本發明的容器建立流程圖的第一具體實施例。如前文所述,本發明的掛載方法主要是將主機2的檔案系統21中的來源目錄211從屬掛載至第二容器24的分享目錄7,因此在執行掛載方法前,容器管理站3需先建立所述來源目錄211以及所述第二容器24。
本實施例中,容器管理站3首先隨機產生一個目錄名稱(例如圖4中所示之“C2”),並且基於此目錄名稱於檔案系統21的任意位置建立所述來源目錄211(步驟S30)。接著,容器管理站3於綁定資料庫4中查詢即將建立的第二容器24的組態檔(步驟S32),並且判斷綁定資料庫4中是否存在即將建立的第二容器24的組態檔(步驟S34)。
於一實施例中,所述組態檔為容器管理站4前一次建立第二容器24時記錄於綁定資料庫4中的資料,並且可例如包括分享目錄7於第二容
器24的路徑名稱(path name)、來源目錄211與分享目錄7的掛載關係、以及目標子目錄212與來源子目錄2111的綁定掛載關係的至少其中之一。
如前文所述,綁定資料庫4中可能存在所述組態檔(即,第二容器24曾被建立過後來被關閉),亦可能不存在所述組態檔(即,第二容器24未被建立過)。若容器管理站3於步驟S34中判斷綁定資料庫4中存在所述組態檔,則容器管理站3依據組態檔的內容將已被分享的目標子目錄212綁定掛載至來源子目錄2111(步驟S36)。於步驟S34後,容器管理站3再依據組態檔的內容建立第二容器7以及運行所述應用行程6(步驟S38)。
具體地,於步驟S38中,容器管理站3可依據組態檔中記錄的來源目錄211與分享目錄7的掛載關係來建立第二容器7。第二容器7被建立後,即具備了分享目錄7,並且分享目錄7與來源目錄211具備從屬掛載關係。因此,所述來源子目錄2111會經由從屬掛載的特性而自動出現在分享目錄7下的分享子目錄71,不需要容器管理站3再做額外的設定動作。
若容器管理站3於步驟34中判斷綁定資料庫4中不存在所述組態檔,則表示第二容器24不曾被建立過。此時,容器管理站3首先確定要建立的分享目錄7到第二容器24的命名空間(namespace)(步驟S40),並且將分享目錄7的路徑名稱(path name)儲存至綁定資料庫4,以做為第二容器24的組態檔(步驟S42)。於步驟S42後,容器管理站3依據來源目錄211與分享目錄7的掛載關係來建立第二容器24,並運行所述應用行程6(步驟S38)。
請同時參閱圖7,為本發明的動態掛載方法的時序圖的第一具體實施例。圖7以動作時序進一步說明容器管理站3、綁定資料庫4、應用程式
介面伺服器5(即,第一容器23)、應用行程6(即第二容器24)以及管理者9的作動。
如圖7所示,首先,主機2運行容器管理站3。容器管理站3運行後,於綁定資料庫4中查詢先前記錄的已被允許分享的目標子目錄212,以及先前配置的第二容器24中的分享目錄7的相關資料(步驟S51)。接著,容器管理站3於主機2的檔案系統21中隨機建立來源目錄211(例如圖4所示的/C2目錄),並將在步驟S51中查詢到的目錄子目錄212(若存在)綁定掛載至來源目錄211的來源子目錄2111(例如圖4所示的/C2/a子目錄)(步驟S52)。
於步驟S52後,容器管理站3即可運行第二容器24,並於第二容器24中運行應用行程6(例如為Samba),並且將來源目錄211從屬掛載第二容器24的分享目錄7(例如圖4所示的/share目錄)(步驟S53)。並且,容器管理站3將分享目錄7作為第二容器24的根目錄並儲存至綁定資料庫4,以做為第二容器24的組態檔(步驟S54)。
第二容器24被運行後,可依照自身的配置設定(configuration)來將分享目錄7中的子目錄的內容分享出去(步驟S55),藉此實現應用行程6(例如Samba)的主要功能。
於第二容器24被建立後(即,應用行程6被運行後),容器管理站3可進一步建立第一容器23,並於第一容器23中運行應用程式介面伺服器5(步驟S56)。
於第一容器23建立後(即,應用程式介面伺服器5被運行後),管理者9即可從外部連接應用程式介面伺服器5,並且發出查詢請求(步驟S57)。
其中,所述查詢請求是管理者9針對主機2的可分享目錄(share-able directories)所發出。
應用程式介面伺服器5接收所述查詢請求後,通過IPC8轉傳給容器管理站3,請求容器管理站3提供可分享目錄的清單。容器管理站3接收查詢請求後,即查詢主機2的檔案系統21並製作主機2的可分享目錄的清單,並且通過IPC8回覆給應用程式介面伺服器5(步驟S58)。應用程式介面伺服器5接收所述清單後,即可回覆此清單給管理者9(步驟S59)。
管理者9收到所述清單後,即可瞭解主機2的檔案系統21中目前有哪些目錄是可被允許分享的。因此,管理者9可依據實際需求,針對所需的目標子目錄212(例如圖4所示的/mnt/a)發出請求指令給應用程式介面伺服器5(步驟S60),以要求分享目標子目錄212。換句話說,管理者9要求分享的目標子目錄212,必然存在於容器管理站3所提供的所述可分享目錄的清單中。
值得一提的是,為了降低資安風險,所述可分享目錄的清單的內容可由容器管理站3來決定,以避免令管理者9直接查看到主機2的檔案系統21中的所有資料。惟,上述僅為本發明的其中一種實施方式,但並不以此為限。
應用程式介面伺服器5接收所述請求指令後,通過IPC8轉傳至容器管理站3,以請求容器管理站3將目標子目錄212掛載至第二容器24(步驟S61)。容器管理站3接收所述請求指令後,即於來源目錄211下建立一個來源子目錄2111(例如圖4所示的/C2/a),並且將檔案系統21中的目標子目錄212綁定掛載至來源子目錄2111(步驟S62)。並且,容器管理站3將此綁定掛載關係記錄至綁定資料庫4中(步驟S63)。
步驟S62後,所述目標子目錄212會基於從屬掛載的特性而自動出現在第二容器24的分享目錄7下的分享子目錄71。因此,容器管理站3可通過IPC8告知應用程式介面伺服器5其所請求的目標子目錄212即為第二容器24中的分享子目錄71(步驟S64)。
於接收容器管理站3的告知後,應用程式介面伺服器5再通過IPC81請求應用行程6分享所述分享子目錄71(步驟S65)。此時,應用行程6基於應用程式介面伺服器5的請求分享所述分享子目錄71,以供主機2內部運算使用,或是分享給外部的管理者9或其他用戶。並且,應用行程6將此分享的動作與內容記錄於自身的配置設定中(步驟S66)。
如上所述,經由本發明的掛載方法所執行的所有掛載動作都會由容器管理站3儲存至綁定資料庫4。當容器(尤其是運行應用行程6的第二容器24)需要被重建或是主機2需要重啟(reboot)時,容器管理站3可查詢綁定資料庫4中記錄的組態檔,以於重建容器或重啟主機2時自動完成先前已被允許的掛載。如此一來,本發明不但適用於使用執行期間長的容器的應用場景,亦可適用於使用執行期間短、或是需要被頻繁重建的容器的應用場景。
本發明的掛載方法是將目標子目錄212綁定掛載至來源子目錄2111,並且通過從屬掛載的特性於第二容器24中自動產生分享子目錄71。並且,本發明令應用程式介面伺服器5僅通過IPC81與應用行程6以及容器管理站3進行溝通,以降低資安風險。為了進一步降低主機2的資料外洩的風險,本發明的掛載方法還可在應用行程6的分享程序結束後,對目標子目錄212(以及來源子目錄2111與分享子目錄71)進行卸除掛載的動作。
請參閱圖8,為本發明的卸載方法的流程圖的第一具體實施例。如前文所述,應用行程6可依據應用程式介面伺服器5的請求,將分享子目錄71分享出去。當應用程式介面伺服器5接收到停止分享請求時,表示管理者9或其他用戶不再需要相關資料。此時,應用程式介面伺服器5經由IPC8將所述停止分享請求轉傳至容器管理站3。
容器管理站3經由IPC8從應用程式介面伺服器5接收所述停止分享請求(步驟S70),本實施例中,所述停止分享請求是管理者9針對主機2的檔案系統21中的目標子目錄212所發出的。
步驟S70後,容器管理站3通過IPC8告知應用程式介面伺服器5所述目標子目錄212於第二容器24的分享目錄7中的位置(步驟S72)。藉此,應用程式介面伺服器5可通過IPC81與應用行程6溝通,以請求應用行程6停止分享目標子目錄212(即,分享子目錄71)(步驟S74)。
步驟S74後,應用行程6停止分享,因此目標子目錄212已不需要被綁定掛載至來源子目錄2111。此時,容器管理站3卸載(unmount)目標子目錄212並移除來源子目錄2111(步驟S76)。如此一來,可以有效降低檔案系統21的資料經由所述掛載動作而外洩的風險。
並且,容器管理站3進一步將步驟S76中執行的卸載動作記錄於綁定資料庫4中(步驟S78)。於一實施例中,所述綁定資料庫4儲存在系統中的持續性儲存裝置(Persistent Storage)。即使主機2關機或斷電,綁定資料庫4中記錄的組態檔皆會被持續保存。如此一來,當第二容器24重建或主機2重啟時,容器管理站3可以依據綁定資料庫4的內容來自動且快速地將整個系統還原為重建或重啟前的狀態。
續請同時參閱圖9,為本發明的卸載方法的時序圖的第一具體實施例。圖9以動作時序進一步說明容器管理站3的上述卸載動作。
如圖9所示,當管理者9不再需要已分享的資料時,可發送停止分享請求至應用程式介面伺服器5(步驟S91)。應用程式介面伺服器5接收停止分享請求後,通過IPC8轉傳給容器管理站3(步驟S92)。容器管理站3接收停止分享請求後,從停止分享請求的內容得知管理者9請求停止分享目標子目錄212,因此容器管理站3通過IPC8告知應用程式介面伺服器5所述目標子目錄212(例如圖4所示的/mnt/a)即為第二容器24中的分享子目錄71(例如圖4所示的/share/a)(步驟S93)。
於收到容器管理站3的告知後,應用程式介面伺服器5通過IPC81與應用行程6溝通,並請求應用行程6停止分享所述分享子目錄71(步驟S94)。於收到應用程式介面伺服器5的請求後,應用行程6即可停止分享。
於步驟S93後,容器管理站3可從停止分享請求中得知管理者9不再需要存取目標子目錄212,因此可卸載所述目標子目錄212,並且移除來源目錄211下的來源子目錄2111(例如圖4所示的/C2/a)(步驟S95)。最後,容器管理站3再將上述卸載動作記錄至綁定資料庫4中(步驟S96)。如此一來,當第二容器24被重建時,就不會在分享目錄7下自動掛載分享子目錄71,進而可以降低資安風險。
本發明將一個應用程式於架構上分拆成應用程式介面伺服器及應用行程,並由分開的兩個容器來運行。並且,本發明令容器掛載最少的資料,並於有需要時,再由容器管理站動態地將主機中的特定資料掛載至應用行程所
在的容器。藉此,可以有效地降低使用者對於容器的不恰當設定,導致主機的資料外洩的風險。
以上所述僅為本發明之較佳具體實例,非因此即侷限本發明之專利範圍,故舉凡運用本發明內容所為之等效變化,均同理皆包含於本發明之範圍內,合予陳明。
2:主機
21:檔案系統
211:來源目錄
22:容器
3:容器管理站
4:綁定資料庫
5:應用程式介面伺服器
6:應用行程
7:分享目錄
8:行程間通訊
Claims (15)
- 一種主機的容器系統,包括:一主機(host),具有由多個目錄(directories)組成的一檔案系統(File System,FS);一應用行程(daemon),運行於該主機的一容器(container),並具有至少一分享目錄(shared directory);一容器管理站,運行於該主機,於該檔案系統中建立一來源目錄,並且該來源目錄掛載至該分享目錄;及一應用程式介面伺服器(API Server),接收一外部管理者對於該檔案系統中的一目標子目錄的一請求指令,並將該請求指令轉送至該容器管理站;其中,該容器管理站於該容器被建立而該應用行程被運行後,再依據該請求指令將該目標子目錄綁定掛載(bind mount)至該來源目錄之一來源子目錄,並告知該應用程式介面伺服器該目標子目錄於該分享目錄中的位置,藉此該容器通過該分享目錄分享該目標子目錄供內部運算或分享給外部用戶。
- 如請求項1所述的容器系統,其中該來源目錄以從屬掛載(Slave mount)的方式掛載至該分享目錄,該目標子目錄被綁定掛載至該來源子目錄後,藉由從屬掛載的特性自動出現於該分享目錄的一分享子目錄,其中該容器分享該分享子目錄供內部運算或分享給外部用戶。
- 如請求項2所述的容器系統,其中該應用程式介面伺服器與該應用行程運行於該主機的不同容器。
- 如請求項3所述的容器系統,其中該應用程式介面伺服器通過一第一行程間通訊(Inter-Process Communication,IPC)與該應用行程進行本地端溝 通,並且通過一第二行程間通訊轉傳該請求指令給該容器管理站並接收該容器管理站的告知。
- 如請求項4所述的容器系統,其中更包括一綁定資料庫,儲存該容器的一組態檔,該組態檔包括該分享目錄於該容器中的一路徑名稱(path name)、該來源目錄與該分享目錄的一掛載關係、以及該目標子目錄與該來源子目錄的一綁定掛載關係的至少其中之一。
- 如請求項5所述的容器系統,其中容器管理站查詢該綁定資料庫以取得該組態檔,依據該組態檔建立該容器,並於該容器中運行該應用行程。
- 一種動態掛載主機資料至容器的方法,應用於具有一檔案系統的一主機,其中該主機運行一應用行程、一應用程式介面伺服器及一容器管理站,該應用程式介面伺服器運行於一第一容器,該應用行程運行於一第二容器,並且該方法包括:a1)該容器管理站於該檔案系統中建立一來源目錄;a2)該容器管理站將該來源目錄掛載至該應用行程的一分享目錄;a)該容器管理站由該應用程式介面伺服器接收一請求指令,其中該請求指令為一外部管理者針對該檔案系統中的一目標子目錄所發出;b)該容器管理站於該第二容器被建立而該應用行程被運行後,再依據該請求指令將該目標子目錄綁定掛載至該來源目錄的一來源子目錄;及c)該步驟b)後,該容器管理站告知該應用程式介面伺服器該目標子目錄於該分享目錄中的位置,以令該第二容器藉由該分享目錄分享該目標子目錄供內部運算或分享給外部用戶。
- 如請求項7所述的方法,其中該步驟a2)通過從屬掛載的方式將該來源目錄掛載至該分享目錄,並且該步驟b)後,該目標子目錄藉由從屬掛載的特性自動出現於該分享目錄的一分享子目錄,該步驟c)由該第二容器分享該分享子目錄供內部運算或分享給外部用戶。
- 如請求項8所述的方法,其中該應用程式介面伺服器於該步驟a)中通過一第一IPC轉傳該請求指令給該容器管理站,並且於該步驟c)中通過該IPC接收該容器管理站的告知,並通過一第二IPC要求該應用行程分享該分享子目錄。
- 如請求項9所述的方法,其中該步驟a)之前更包括下列步驟:a01)於一綁定資料庫中查詢該第二容器的一組態檔,其中該組態檔包括該分享目錄於該第二容器中的一路徑名稱、該來源目錄與該分享目錄的一掛載關係、以及該目標子目錄與該來源子目錄的一綁定掛載關係的至少其中之一;a02)於該綁定資料庫中存在該組態檔時,依據該組態檔的內容將已被允許分享的該目標子目錄綁定掛載至該來源子目錄;及a03)該步驟a02)後,基於該來源目錄與該分享目錄的該掛載關係建立該第二容器,並於該第二容器中運行該應用行程。
- 如請求項10所述的方法,其中該步驟a)之前更包括下列步驟:a04)於該綁定資料庫中不存在該組態檔時,確定要建立的該分享目錄到該第二容器的一命名空間(namespace);a05)將該分享目錄的一路徑名稱(path name)儲存至該綁定資料庫做為該組態檔;及 a06)基於該來源目錄與該分享目錄的該掛載關係建立該第二容器,並於該第二容器中運行該應用行程。
- 如請求項11所述的方法,其中該步驟a)之前更包括一步驟a07):該容器管理站於該步驟a03)或該步驟a06後建立該第一容器,並於該第一容器中運行該應用程式介面伺服器。
- 如請求項9所述的方法,其中該步驟a)之前更包括下列步驟:a08)該容器管理站由該應用程式介面伺服器接收一查詢請求,其中該查詢請求為該外部管理者針對該主機的一可分享目錄所發出;及a09)該容器管理站依據該查詢請求回覆該可分享目錄的一清單給該應用程式介面伺服器,藉此提供給該外部管理者,其中該目標子目錄記錄於該清單中。
- 如請求項9所述的方法,其中更包括下列步驟:d)該容器管理站由該應用程式介面伺服器接收一停止分享請求,其中該停止分享請求為該外部管理者針對該目標子目錄所發出;e)該容器管理站告知該應用程式介面伺服器該目標子目錄於該分享目錄中的位置,藉此該應用程式介面伺服器請求該應用行程停止分享該目標子目錄;f)該容器管理站卸載該目標子目錄並移除該來源子目錄;及g)將卸載動作記錄於一綁定資料庫。
- 一種應用程式,記錄有電腦可執行程式碼,於一主機執行了該電腦可執行程式碼後,可實現如請求項7-14所述之各步驟。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW111100615A TWI806341B (zh) | 2022-01-06 | 2022-01-06 | 主機的容器系統、動態掛載主機資料至容器的方法及應用程式 |
| CN202210134950.8A CN116451213A (zh) | 2022-01-06 | 2022-02-14 | 主机的容器系统、动态挂载主机数据至容器的方法及应用程序 |
| US17/861,988 US12141102B2 (en) | 2022-01-06 | 2022-07-11 | Container system, method of dynamically mounting host data to container, and application program for the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW111100615A TWI806341B (zh) | 2022-01-06 | 2022-01-06 | 主機的容器系統、動態掛載主機資料至容器的方法及應用程式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI806341B true TWI806341B (zh) | 2023-06-21 |
| TW202328907A TW202328907A (zh) | 2023-07-16 |
Family
ID=86991704
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111100615A TWI806341B (zh) | 2022-01-06 | 2022-01-06 | 主機的容器系統、動態掛載主機資料至容器的方法及應用程式 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12141102B2 (zh) |
| CN (1) | CN116451213A (zh) |
| TW (1) | TWI806341B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12499085B2 (en) | 2024-01-29 | 2025-12-16 | Pure Storage, Inc. | Home directory level storage management of a file system |
| WO2023205035A1 (en) * | 2022-04-21 | 2023-10-26 | Folder Front, LLC | Intelligent folder-based data organization system |
| CN116975850B (zh) * | 2023-09-25 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 合约运行方法、装置、电子设备及存储介质 |
| CN117076005B (zh) * | 2023-10-16 | 2024-03-01 | 龙芯中科技术股份有限公司 | 一种应用运行方法、装置、电子设备及存储介质 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200540696A (en) * | 2004-03-10 | 2005-12-16 | Emre Baris Aksu | Storage of content-location information |
| TW201007489A (en) * | 2008-04-29 | 2010-02-16 | Maxiscale Inc | Peer-to-peer redundant file server system and methods |
| US20130179481A1 (en) * | 2012-01-11 | 2013-07-11 | Tonian Inc. | Managing objects stored in storage devices having a concurrent retrieval configuration |
| CN107885748A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 虚拟化实例的文件分层访问方法和装置 |
| US20180285139A1 (en) * | 2017-04-02 | 2018-10-04 | vEyE Security Ltd. | Hypervisor-based containers |
| US20200021577A1 (en) * | 2016-03-22 | 2020-01-16 | International Business Machines Corporation | Container independent secure file system for security application containers |
| CN111679887A (zh) * | 2020-06-04 | 2020-09-18 | 深圳前海微众银行股份有限公司 | 一种代理容器的配置方法及装置 |
| CN112799780A (zh) * | 2021-01-15 | 2021-05-14 | 中国银联股份有限公司 | 容器镜像共享方法、装置、服务器、设备及介质 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7908476B2 (en) * | 2007-01-10 | 2011-03-15 | International Business Machines Corporation | Virtualization of file system encryption |
| US8380806B2 (en) * | 2007-09-28 | 2013-02-19 | Emc Corporation | System and method for absolute path discovery by a storage virtualization system |
| US20090313259A1 (en) * | 2008-06-17 | 2009-12-17 | Microsoft Corporation | Container handlers for sharing and unsharing |
| US9740574B2 (en) * | 2014-05-09 | 2017-08-22 | Commvault Systems, Inc. | Load balancing across multiple data paths |
| US20200301789A1 (en) * | 2019-03-18 | 2020-09-24 | International Business Machines Corporation | File Sharing Among Virtual Containers with Fast Recovery and Self-Consistency |
| US20210303511A1 (en) * | 2020-03-30 | 2021-09-30 | Pure Storage, Inc. | Cloning a Managed Directory of a File System |
| US12373397B2 (en) * | 2020-03-30 | 2025-07-29 | Pure Storage, Inc. | Managing directory-tree operations in file storage |
-
2022
- 2022-01-06 TW TW111100615A patent/TWI806341B/zh active
- 2022-02-14 CN CN202210134950.8A patent/CN116451213A/zh active Pending
- 2022-07-11 US US17/861,988 patent/US12141102B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200540696A (en) * | 2004-03-10 | 2005-12-16 | Emre Baris Aksu | Storage of content-location information |
| TW201007489A (en) * | 2008-04-29 | 2010-02-16 | Maxiscale Inc | Peer-to-peer redundant file server system and methods |
| US20130179481A1 (en) * | 2012-01-11 | 2013-07-11 | Tonian Inc. | Managing objects stored in storage devices having a concurrent retrieval configuration |
| US20200021577A1 (en) * | 2016-03-22 | 2020-01-16 | International Business Machines Corporation | Container independent secure file system for security application containers |
| CN107885748A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 虚拟化实例的文件分层访问方法和装置 |
| US20180285139A1 (en) * | 2017-04-02 | 2018-10-04 | vEyE Security Ltd. | Hypervisor-based containers |
| CN111679887A (zh) * | 2020-06-04 | 2020-09-18 | 深圳前海微众银行股份有限公司 | 一种代理容器的配置方法及装置 |
| CN112799780A (zh) * | 2021-01-15 | 2021-05-14 | 中国银联股份有限公司 | 容器镜像共享方法、装置、服务器、设备及介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116451213A (zh) | 2023-07-18 |
| TW202328907A (zh) | 2023-07-16 |
| US20230214361A1 (en) | 2023-07-06 |
| US12141102B2 (en) | 2024-11-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI806341B (zh) | 主機的容器系統、動態掛載主機資料至容器的方法及應用程式 | |
| US9986033B2 (en) | Facilitating access to remote cloud services | |
| JP7143434B2 (ja) | クラウドサービスのデータキャッシング | |
| US7194532B2 (en) | Distributed file management method and program therefor | |
| US9300692B2 (en) | System and method for implementing data migration while preserving security policies of a source filer | |
| US20160179566A1 (en) | Independent access to virtual machine desktop content | |
| CN116034576B (zh) | 基于cos集群域名系统的跨多个cos集群的容器编排系统(cos)服务发现 | |
| EP4080377B1 (en) | Method to implement multi-tenant/shared redis cluster using envoy | |
| US7640247B2 (en) | Distributed namespace aggregation | |
| US9311314B2 (en) | System and method for migrating data from a source file system to a destination file system with use of attribute manipulation | |
| US12020081B2 (en) | Method to implement multi-tenant/shared redis cluster using envoy | |
| WO2016206414A1 (zh) | 多个虚拟桌面架构的融合方法及装置 | |
| US20140109089A1 (en) | System to rebuild difference virtual hard disk for updating operation system and method thereof | |
| US9304997B2 (en) | Asynchronously migrating a file system | |
| US20150066846A1 (en) | System and method for asynchronous replication of a network-based file system | |
| US11669318B2 (en) | Rapid software provisioning and patching | |
| Vazquez | Linux Containers (LXC) | |
| US12437115B2 (en) | Remote configuration changes over a security layer | |
| dos Santos et al. | Gridfs: Targeting data sharing in grid environments | |
| Biondo et al. | IBM DS8880 and Z/OS DFSMS: Transparent Cloud Tiering | |
| Kuhn et al. | Architecture overview | |
| La Lau | Databases | |
| Vazquez | FreeIPA AD Integration | |
| HK1175863A1 (zh) | 用於選擇桌面執行位置的方法和系統 | |
| JP2009211688A (ja) | ファイルをマイグレートする方法、システムおよびコンピュータ・プログラム |