加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1、LXC是什么?
    • 2、邏輯管線執(zhí)行LXC可以做什么?
    • 3、LXC實現(xiàn)原理
    • 4、為什么要選擇LXC?
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

五分鐘技術(shù)趣談 | 路由器常用技術(shù)LXC簡介

2023/11/20
3478
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:傅寬,單位:中國移動智慧家庭運營中心

容器是一個隔離的環(huán)境,可促進微服務(wù)并提供卓越的擴展性和快速部署等優(yōu)勢。本文介紹LXC(Linux容器)的特性、原理和應(yīng)用范圍。

1、LXC是什么?

Linux Containers (LXC)是一種操作系統(tǒng)級虛擬化方法,用于使用單個Linux內(nèi)核在控制主機上運行多個獨立的Linux系統(tǒng)(容器)。

圖1? 容器示意圖

2、邏輯管線執(zhí)行LXC可以做什么?

Linux內(nèi)核提供了cgroups功能,允許在不需要啟動任何虛擬機的情況下對資源(CPU、內(nèi)存、塊 I/O、網(wǎng)絡(luò)等)進行限制和優(yōu)先排序,還提供了名稱空間隔離功能,允許完全隔離應(yīng)用程序對操作環(huán)境的視圖,包括進程樹、網(wǎng)絡(luò)、用戶 ID和掛載的文件系統(tǒng)。

LXC結(jié)合了內(nèi)核的cgroup和對隔離名稱空間的支持,為應(yīng)用程序提供了一個隔離的環(huán)境。早期版本的Docker使用LXC作為容器執(zhí)行驅(qū)動程序,盡管LXC在v0.9中是可選的,并且在Docker v1.10中放棄了支持。對Linux容器的引用通常指運行在Linux上的Docker容器的引用。

3LXC實現(xiàn)原理

LXC使用以下內(nèi)核特性來來實現(xiàn)虛擬化:

Kernel namespaces (ipc, uts, mount, pid, network and user)

Apparmor and SELinux profiles

Seccomp policies

Chroots (using pivot_root)

Kernel capabilities Control groups (cgroups)

其中mount namespace與pivot_root的結(jié)合使用,實現(xiàn)了文件系統(tǒng)的隔離。在啟動容器的時候,首先clone出一個容器進程,clone指定了CLONE_NEWNS標致,這樣就會為這個新啟動的容器創(chuàng)建一個新的mount namespace,結(jié)果使這個容器有一個新的文件層次視圖,在clone過程中,子進程會復(fù)制父進程的mount namespace,mount namespace的作用主要是體現(xiàn)在mount與umount(其實還有pivot_root)上面,由于具有不同的文件層次圖,每一個mount namespace中的mount、umount與pivot_root操作對其他mount namespace中的進程是不可見的,這樣在容器啟動過程中執(zhí)行pivot_root操作將當前容器進程的root切換為/var/lib/lxc/<container>/rootfs時(注:不能將一個目錄掛載到根目錄/,所以要調(diào)用系統(tǒng)接口pivot_root),對容器外其他進程而言是不可見的,容器外進程的root仍為之前的root而不是/var/lib/lxc/<container>/rootfs。比如,容器中的進程訪問/var與容器外進程訪問/var其實是不同的/var, 容器中進程訪問的實際是/var/lib/lxc/<container>/rootfs/var。換句話說,如果clone時不指定CLONE_NEWNS,這樣當容器執(zhí)行pivot_root時,會影響到容器之外的所有進程,容器外的所有進程的root目錄都會被改變。

4為什么要選擇LXC?

LXC是所謂的操作系統(tǒng)層次的虛擬化技術(shù),與傳統(tǒng)的HAL(硬件抽象層)層次的虛擬化技術(shù)相比有以下優(yōu)勢:

? 更小的虛擬化開銷(LXC的諸多特性基本由內(nèi)核特供,而內(nèi)核實現(xiàn)這些特性只有極少的花費)。

? 快速部署。利用LXC來隔離特定應(yīng)用,只需要安裝LXC,即可使用LXC相關(guān)命令來創(chuàng)建并啟動容器來為應(yīng)用提供虛擬執(zhí)行環(huán)境。傳統(tǒng)的虛擬化技術(shù)則需要先創(chuàng)建虛擬機,然后安裝系統(tǒng),再部署應(yīng)用。

LXC跟其他操作系統(tǒng)層次的虛擬化技術(shù)相比,最大的優(yōu)勢在于LXC被整合進內(nèi)核,不用單獨為內(nèi)核打補丁。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
KSZ8721BLI-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48
$3.1 查看
TJA1051T/3/CM,118 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.03 查看
KSZ9897RTXC-TR 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下載ECAD模型
暫無數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

移動Labs是中國移動的社交化新媒體平臺,是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進門戶。