用簡單的英語解釋什麼是 LXC 以及它有什麼用處
- 什麼是LXC?
- 它有什麼用?
- LXC 和普通虛擬化有什麼區別?
如果“普通英語”是指非技術人員,則無法輕鬆解釋差異。那頭髮太細了,不仔細考慮就分不開。
如果您所說的“簡單英語”是指與技術人員交談的管理類型,因此至少對技術主題有一個初步的了解,我送出以下措辭:
這是一種不同形式的虛擬化。
如果您查看 VMWare ESXi,那是一個完整的虛擬機管理程序,執行所謂的完整虛擬化。在硬體之上執行的虛擬化系統之間有一個非常小的層。有完整的硬體虛擬化,其中執行在虛擬機中的作業系統完全獨立於管理程序本身,並提供它所期望的所有硬體。
再上一步,看看像 VMWare Player、Workstation、ESX(不是 ESXi)或 VMWare Server 之類的東西,你就有了一個完整的作業系統來提供虛擬機管理程序的角色。但是,虛擬機仍然提供完整的虛擬硬體陣列。
另一種方法是準虛擬化,Xen 遵循了相當長的一段時間。在這種形式的虛擬化中,客戶作業系統知道它是虛擬化的並且已經被修改以在該環境中工作。有時,所有這些需求都是特殊的半虛擬化驅動程序。其他時候,需要徹底更改核心。
LXC 或 Linux Containers 又向前邁進了一步。在這種情況下,它正在執行完全相同的作業系統的多個實例。核心可能相同,但每個 OS 容器都執行多個使用者空間。每個容器可能有也可能沒有不同的文件系統。
容器提供了一種在程序之間提供強大安全隔離的方法,這種方法在具有相同使用者空間的系統中不可用。類 Unix 作業系統擁有“chroot jail”已經有一段時間了,但它不提供程序分離或限制監獄中程序消耗的資源的能力。通過容器化這些程序,可以限制資源使用,可以為它們分配離散的 IP 地址,並且可以將利用使用者空間的安全漏洞與系統的其餘部分隔離開來。
與其他類型的虛擬化相比,您會在哪裡使用 LXC?這取決於,但 LXC應該比任何其他虛擬化方法提供更少的虛擬化懲罰,因為它是同一個核心調解所有使用者空間呼叫,而不是一個虛擬機管理程序假裝是一堆期望與物理硬體對話的作業系統映像的硬體。因此,如果您有一堆需要相同作業系統版本的處理,並且可以同時重新啟動以進行更新,LXC 可以提供一種低成本的方式來安全地執行所有這些並進行資源管理。