lxd 啟動篇分析

2022-07-17 04:36:09 字數 2390 閱讀 9789

本篇重點說的是lxd daemon的啟動篇:

由上面可知,我們可以通過啟動引數配置 對lxd的執行階段進行全方位的跟蹤,有cpu,記憶體,以及執行堆疊的資訊,這對lxd的問題定位很有幫助。lxd daemon守護程序的啟動重點在daemon初始化過程中:

下面對紅色部分詳細展開解釋:

從啟動篇看具備如下能力:

2:支援storage driver:為容器設定不同的檔案系統

3:支援bridge和ovs兩種網路方式

4:支援cpu,net,usb熱插拔

5::支援gpu裝置發現載入

6:支援**伺服器訪問

此部分涉及linux 較多知識。將涉及的簡單概括:

linux namespaces機制提供一種資源隔離方案。

pid,ipc,network

等系統資源不再是全域性性的,而是屬於某個特定的

namespace

。每個namespace

下的資源對於其他

namespace

下的資源都是透明,不可見的。因此在作業系統層面上看,就會出現多個相同

pid的程序。系統中可以同時存在兩個程序號為

0,1,2

的程序,由於屬於不同的

namespace

,所以它們之間並不衝突。而在使用者層面上只能看到屬於使用者自己

namespace

下的資源,例如使用

ps命令只能列出自己

namespace

下的程序。這樣每個

namespace

看上去就像乙個單獨的

linux

系統。user namespace主要是用了

clone_newuser

的引數,使用了這個引數後,內部看到的

uid和

gid已經與外部不同了。預設情況下容器沒有的

uid,系統自動設定上了最大的

uid65534

,預設uid

的定義檔案在

「/proc/sys/kernel/overflowuid」

。要把容器中的uid和真實系統的

uid給對映在一起,需要修改

/proc/$$/uid_map

和/proc/$$/gid_map

這兩個檔案。這兩個檔案的格式為:

id-inside-ns id-outside-ns length

ps:第乙個欄位id-inside-ns表示在容器顯示的

uid或

gid,

第二個欄位id-outside-ns表示容器外對映的真實的

uid或

gid。

第三個字段表示對映的範圍,一般填1,表示一一對應。

例:把真實的uid=1000對映成容器內的

uid=0

$cat/proc/2465/uid_map

0       1000          1

例:把namespace內部的

uid對映到外部設定整形

把namespace內部從

0開始的

uid對映到外部從

0開始的

uid,其最大範圍是無符號

32位整形

$cat/proc/$$/uid_map

0          0          4294967295

需要注意的是:

寫這兩個檔案的程序需要這個namespace中的

cap_setuid (cap_setgid)許可權(

可參看capabilities)

寫入的程序必須是此

user namespace

的父或子的

user namespace

程序。另外需要滿如下條件之一:

1)父程序將

effective uid/gid

對映到子程序的

user namespace

中2)父程序如果有

cap_setuid/cap_setgid

許可權,那麼它將可以對映到父程序中的任一

uid/gid

詳細介紹參考:

設定涉及iptables,ip link命令,ovs-vsctl命令。

相關參考:

詳細參考:

Hadoop 任務排程分析啟動篇

學習hadoop已有一段時間,從最初的搭建環境,配置環境,編寫mapreduce應用,到基於hive的查詢,慢慢的開始喜歡和習慣它的這種模式,最近對hadoop集群環境執行原理很感興趣,很想知道它究竟是怎麼做到這種分步式的運算與協調,也很想能夠從事這方面的工作.學習了董西成的 深入解析mapredu...

kubelet 原始碼分析 啟動篇

在kubernetes集群中,每個node節點 又稱minion 上都會啟動乙個kubelet服務進行。該程序用於處理master節點下發到本節點的任務,管理pod及pod中的容器。每個kubelet程序會在api server上註冊節點自身資訊,定期向master節點匯報節點資源的使用情況,並通過...

Android學習啟動篇

1.linux kernel development.2.understanding the linux kernel.3.linux device drivers.4.linux核心源 情景分析.看了linux kernel的書,當然也要看一下android的書了,這樣可以對android平台長什...