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

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

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

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

作者:傅寬,單位:中國移動智慧家庭運(yùn)營中心

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

1、LXC是什么?

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

圖1? 容器示意圖

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

Linux內(nèi)核提供了cgroups功能,允許在不需要啟動任何虛擬機(jī)的情況下對資源(CPU、內(nèi)存、塊 I/O、網(wǎng)絡(luò)等)進(jìn)行限制和優(yōu)先排序,還提供了名稱空間隔離功能,允許完全隔離應(yīng)用程序對操作環(huán)境的視圖,包括進(jì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容器的引用通常指運(yùn)行在Linux上的Docker容器的引用。

3LXC實(shí)現(xiàn)原理

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

4、為什么要選擇LXC?

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

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

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

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
TJA1042T/3/CM,118 1 NXP Semiconductors TJA1042 - High-speed CAN transceiver with Standby mode SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.55 查看
AD73311ARSZ-REEL 1 Rochester Electronics LLC SPECIALTY TELECOM CIRCUIT, PDSO20, SSOP-20
$9.29 查看
KSZ8995MA 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP128

ECAD模型

下載ECAD模型
$7.2 查看

相關(guān)推薦

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

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