999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

適用于電網調控系統的輕量級容器技術實現

2021-03-08 00:24:52顧雯軒顧文杰董子奇
計算機技術與發展 2021年2期
關鍵詞:資源

顧雯軒,高 原,顧文杰,鄒 慶,董子奇

(1.南瑞集團有限公司(國網電力科學研究院),江蘇 南京 211106;2.國電南瑞科技股份有限公司,江蘇 南京 211106;3.智能電網保護和運行控制國家重點實驗室,江蘇 南京 211106)

0 引 言

近年來,容器化技術成為了云生態系統中最受關注的技術之一。容器能夠提供資源隔離、資源限制功能,提高了系統的穩定性。容器通過鏡像技術對應用運行環境進行封裝,通過容器云管理平臺可以方便地實現持續集成和持續部署,降低了系統運維的工作量。

隨著特高壓電網的大規模建設,電網調度控制(簡稱調控)系統實時數據規模快速增加,整個調控系統中的應用數量也大量增加,對系統基礎資源管理能力和運維能力提出了更高要求。以往調控系統應用部署時不能有效限制應用使用的資源[1]。引入容器技術后,可以實現更細粒度的資源分配。通過容器的資源限制和資源隔離功能,將業務服務限制在分配的資源范圍內運行,在保證了系統資源充分利用的同時實現系統穩定運行。

但是,傳統的開源容器[2-4]技術不能完全滿足電網實時調控系統的要求。比如容器網絡不支持廣播,不具備限制網絡帶寬的功能,容器鏡像較大導致應用遷移和啟動耗時長。通過研究現有容器技術的實現原理,該文提出一種輕量級的容器服務技術,通過研究虛擬網橋技術實現了跨物理宿主機的廣播/組播通信;結合Linux流量控制內核技術實現容器網絡帶寬限制,并通過對私有數據的封裝降低容器體積,實現輕量化。

1 現有開源容器技術

1.1 資源限制和資源隔離

容器的實現主要依賴于Linux的內核技術CGroup[5],NameSpace[6-7]和聯合文件系統[8]。CGroup(Control Group控制組)是Linux內核提供的一種限制進程組使用宿主機物理資源的機制。通過給容器分配資源的控制機制,避免某個異常容器占用過多的宿主機資源,確保同時運行的多個容器對宿主機資源的合理利用。控制組可以提供內存、CPU、磁盤IO等資源的限制和查詢管理,但是net_cls子系統不具備直接限制網絡資源的功能,即不能限制某個容器內應用占用宿主機的帶寬大小。

NameSpace(命名空間)是Linux針對實現容器資源隔離而引入的特性。每個容器都可以擁有自己唯一的命名空間,運行在其中的進程都像是在獨立互不干擾的操作系統中運行一樣,彼此不可見。這個機制保證了容器運行環境的相互獨立,特別適合一個宿主機運行很多微服務的應用場景,能夠保證每個服務間使用操作系統資源以及服務自身數據的互不干擾。

1.2 容器網絡

開源容器Docker目前常用的三種網絡插件為Flannel[9]、Weave[10]、Calico[11]。Flannel通過給每臺宿主機分配一個子網的方式為容器提供虛擬網絡,使用UDP/VXLAN封裝IP包來創建overlay網絡,并借助etcd維護網絡的分配情況。Weave創建一個連接多個Docker主機的虛擬網絡,類似于一個以太網交換機,所有的容器都連接到這上面,互相通信。Calico在主機上創建了一堆的虛擬網卡,其中一端在主機上,另一端在容器的網絡命名空間里,然后在容器和主機中分別設置幾條路由,來完成網絡的互聯。

這三種插件都是通過給容器建立子網,給容器分配子網IP的方式,使得容器間可以互通。容器分配的IP與宿主機不是一個網段,跨宿主機的容器間可以進行TCP和UDP通信。在一個宿主機內部,容器之間可以進行組播/廣播通信,但是跨宿主機節點的容器之間無法進行組播/廣播通信。

1.3 容器鏡像

聯合文件系統的引入為構建容器和快速遷移提供了有效機制。

一個典型的Linux系統運行需要兩個文件系統:bootfs和rootfs。相同內核版本的不同Linux發行版本的bootfs都是一致的,并且是用戶不可更改的。另一個rootfs文件系統包含典型的目錄,包括/dev,/proc,/bin等再加上一些需要運行用戶程序的必要文件(配置文件,庫文件,可執行文件)。這個文件系統在不同的Linux發型版本中是不同的,并且是用戶可更改的。

當啟動一個容器的時候,會將鏡像[12-13]的內容加載到容器內部。鏡像中的內容主要是rootfs文件系統以及一些用戶程序依賴文件。從同一個鏡像啟動多個容器時,rootfs文件系統會被加載重復加載多次,當在宿主機上啟動大量容器時,相同rootfs文件的重復加載對內存資源是一種浪費,并且對容器的啟動時間也有一定的影響。

一種最大化內存共享與最小化運行時環境的超輕量級容器[14]通過去除所有底層操作系統庫文件且單獨指定容器內應用依賴庫的方法構建輕量化容器。這種方法是一種量身定制的方法,但是如果在電力系統中使用,需要每個應用都能準確指定所需要的依賴庫,這對電力系統的研發人員具有一定挑戰性,且通用性不好,實施難度大。

2 輕量級容器架構

該文提出一種輕量級容器的實現方法,將容器運行時的存儲空間分為兩部分:公共存儲空間和私有存儲空間。其中,公共存儲空間共享宿主機的文件資源,私有存儲空間存儲容器應用或服務運行需要的相關文件資源。各個容器之間的私有存儲空間相互隔離,互不干擾,并且容器之間共享宿主機的文件資源;在容器內部,可以同時看到宿主機文件資源和自身的文件資源。

每個輕量級容器擁有獨立的工作目錄,工作目錄作為私有存儲空間是相互獨立的,容器只能訪問自己的工作目錄。各個輕量級容器在自身容器內部觀察到的工作目錄的路徑和命名是一致的,這樣保證了電力上層應用程序的通用性,即容器對應用程序是透明的。通過Linux NameSpace中的mnt[15]掛載命名空間實現數據隔離,這樣對某個輕量級容器的私有工作目錄進行操作不會影響到宿主機或其他輕量級容器的相同目錄。各個輕量級容器的工作目錄在宿主機上基于不同的路徑和目錄進行管理,目錄命名與容器命名相關聯,輕量級容器進行遷移打包的時候,只需要打包各自的工作目錄即可,因此容器鏡像的體積更小,整個鏡像封裝更加輕便。

輕量級容器結構如圖1所示。

圖1 輕量級容器結構

操作系統rootfs:宿主機文件系統包含bootfs和rootfs。其中bootfs和Linux內核相關,所有容器共享。rootfs包括常見的/dev,/proc,/etc,/usr等,所有容器也共享rootfs,在容器中看到就是宿主機的rootfs。

輕量級容器:從存儲空間來說包含兩部分:容器中運行的可執行程序以及需要的依賴庫,配置文件。這些都是存放在容器的私有工作目錄中的,各個容器之間相互看不見;共享宿主機rootfs文件系統,這個為公共存儲空間。

Linux操作系統內核:宿主機的操作系統內核,所有運行在該宿主機上的容器都共享Linux操作系統內核。容器的資源限制,資源隔離以及流量控制功能都需要操作系統內核的支持。

輕量級容器引擎:負責管理容器的整個生命周期,包括創建,啟動,停止,銷毀,主要功能的實現都是依賴Linux內核技術,包括控制組和命名空間。

3 輕量級容器架構

以上通用技術實現的容器還不能直接滿足電力實時調控系統的需求,原因是電力調控系統對可靠性和實時性要求非常高,所以整個系統底層建立了提供高可用管理和高速通信功能的基礎平臺,這個平臺的高可用和通信模塊需要使用廣播和組播進行通信。并且使用容器后,在一個物理機上不能發生某一個容器搶占了這個物理機所有帶寬的情況,否則實時系統的部分功能模塊可能就會失去作用。同時因為系統實時性要求高,容器啟動的時效性就要很高的要求,啟動時間越短越好。因此該文基于以下討論的三種技術實現了一種支持跨物理節點組播/廣播,并能提供網絡帶寬限制功能的輕量化容器。

3.1 網絡帶寬限制技術

網絡帶寬限制技術是通過控制組(Control CGroup)的net_ctl[16]子系統和Linux的流量控制(Traffic Control)[16]共同配合實現的。CGroup子系統net_cls可以給發送packet打上classid的標簽,用于過濾分類。有了這個標簽,流量控制器(tc)可以對分屬不同的CGroup進程發送的packet起作用。每個容器擁有獨立的網絡命名空間,且為容器內網卡配置的IP地址與宿主機的IP地址在一個網段上。如圖2所示,為了對該容器的發送數據進行網絡流量限制,需要在容器內的網卡上設置TC規則,其中eth1是容器內的網卡。然后在該容器的CGroup子系統net_cls下的相應目錄內,將tc class規則的classid傳給net_cls.classid文件。通過這樣的操作,該容器內所有的輸出網絡流量都會限制在tc class規則限定的value值內,其中,value為字符串,格式為數值+單位(kbps/mbps/kbit/mbit)。

圖2 網絡帶寬限制原理

tc qdisc add dev eth1 root handle major:0 htb

tc class replace dev eth1 parent major: classid major: minor htb rate value

tc filter add dev eth1 protocol ip parent major:0 prio 1 handle major: minor cgroup

3.2 支持組播廣播的容器通信技術

電網調控系統目前多采用多機主備冗余機制,該機制使用廣播進行通信。調控系統的消息總線使用組播進行通信。因此,若需要輕量級容器運用到電網調控系統中,必須確保各個容器之間能夠進行組播/廣播通信,并且容器和物理節點之間也能對等地進行組播/廣播通信。文中輕量級容器分配IP的方式結合虛擬網橋和虛擬網卡技術實現。

工作原理如圖3所示。

圖3 虛擬網橋/網卡實現原理

(1)宿主機建立虛擬網橋br0,將物理網卡eth0的ip地址賦予br0,橋接到br0;

(2)創建一對虛擬網卡veth pair,其中一個虛擬網卡加入容器的網絡命名空間中,并更名為eth1,配置IP地址和路由。另一個網卡橋接到br0上。

如圖3所示,每個容器擁有獨立的IP地址,與宿主機配置在同一網段上,容器和容器,容器和宿主機之間都能進行廣播和組播通信。

3.3 容器輕量化技術

輕量化主要體現在相比Docker容器的鏡像(如圖4(a)所示)體積更小,層級更少。如圖4(b)所示,輕量級容器內部雖然可以看到整個Linux的文件操作系統,但并不表示輕量級容器鏡像包含Linux文件操作系統的整個信息。鏡像中只存放了支持容器運行的一些必備文件,包括依賴庫文件,程序執行文件和配置文件。創建容器的時候,會在宿主機上創建一個目錄用于存放容器的私有數據,并將鏡像中的文件拷貝至容器私有目錄中。然后通過mount的bind操作將這個私有目錄掛載至容器的相應目錄中。對于不同的容器來說,將私有目錄掛載至容器掛載空間的相同目錄中,由于容器擁有獨立的掛載隔離空間,這種操作是獨立的,互不干擾的。不同容器的相同掛載目錄中的內容是不一樣的,在此目錄中做文件修改,文件刪除或文件增加操作都只限于本容器內部,不會對其他容器的掛載目錄產生任何影響,同時對容器外面的宿主機而言也是不可見的。

(a)傳統容器鏡像結構

4 性能分析

本節通過在網絡性能、帶寬限制能力、啟動時間三方面將該文研究的輕量級容器與開源容器進行了對比,說明了輕量級容器在三個方面均優于開源容器。

4.1 帶寬限制

結合控制組的net_cls子系統和Linux流量控制功能,可以實現對容器發送數據的帶寬限制。通過scp跨主機拷貝大容量文本Text進行測試驗證,測試分兩組進行(見圖5):

圖5 帶寬使用對比

第一組在主機docker3上直接通過scp拷貝Text文本至主機節點docker1,通過iftop檢測網卡,發送速率約為800 Mb/s。

第二組測試是在輕量級容器中進行。首先啟動容器時通過參數設置,對該容器的帶寬值限制在20 Mb/s。然后通過scp拷貝和第一組中相同大小的文件Text文本至主機節點docker1,通過iftop檢測,發送速率控制在了20 Mb/s以內。

4.2 網絡通信性能對比

本節對目前Docker主流的網絡開源組件和文中所述的輕量級容器網絡組件進行性能對比。對比的方面包括帶寬和時延,通過發送不同KiB大小的數據包鏡像檢測。采用測試5次取平均值的方法。

(a)host宿主機帶寬 (b)Flannel帶寬

帶寬性能檢測結果如圖6所示,圖中的橫坐標表示發送數據包的大小,從1到64遞增,單位為KiB;縱坐標為帶寬,單位為MB/sec。從圖中對比可知,Flannel和Weave的帶寬性能較差,Calico和網橋方式與主機性能差不多,其中網橋方式性能最優。

時延性能測試結果如圖7所示,圖中的橫坐標表示發送數據包的大小,從1到64遞增,單位為KiB;縱坐標表示時延,單位是μs。從對比中可知,Calico和網橋方式與主機性能差不多,且網橋方式性能最優,Weave和Flannel會隨著數據包越來越大而時延越來越大。

(a)host宿主機時延 (b)Flannel時延

4.3 啟動時間性能對比

這里從容器中的進程啟動時間來對比分析一下文中的輕量級容器和Docker容器的性能。

測試中使用的rocky_cloud:latest開源docker容器包含了運行電網調控系統所需的最小化國產操作系統模塊,輕量級容器因為與底層宿主機操作系統共享模塊,所以大小要小很多。采用測試5次取平均值的方法,輕量級容器和Docker中只啟動一個測試程序,見表1。測試程序單獨啟動時需要1 022 ms。

表1 鏡像大小對比

通過輕量級容器啟動測試程序需要1 025 ms,Docker啟動該測試程序需要2 133 ms。圖8中,橫坐標標識同時啟動容器的個數,分別測試了同時啟動2個容器,4個容器,8個容器,16個容器,32個容器時。縱坐標標識容器啟動需要花費的時間,單位是μs。從圖8中分析可知,基本上用Docker啟動進程需要花費的時間是輕量級容器的2倍。

圖8 啟動時間性能對比

5 結束語

提出了一種適用于電網調控實時系統的輕量級容器技術實現方法,在網絡帶寬限制,跨物理機通信方式和輕量化方面都進行了相關工作。主要的工作包括:結合Linux內核技術實現容器網絡帶寬的限制功能;結合虛擬網橋網卡技術,為容器分配獨立的IP地址并支持跨主機的組播廣播通信方式;提出了輕量級容器私有工作空間的概念,通過共享Linux文件操作系統的方式實現容器的輕量化。最后通過實驗結果分析,該輕量級容器在支持組播/廣播通信的同時具備帶寬限制的功能,且體積小,遷移快速方便,啟動性能上優于傳統容器。

猜你喜歡
資源
讓有限的“資源”更有效
污水磷資源回收
基礎教育資源展示
崛起·一場青銅資源掠奪戰
藝術品鑒(2020年7期)2020-09-11 08:04:44
一樣的資源,不一樣的收獲
我給資源分分類
資源回收
做好綠色資源保護和開發
當代貴州(2018年28期)2018-09-19 06:39:04
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
激活村莊內部治理資源
決策(2015年9期)2015-09-10 07:22:44
主站蜘蛛池模板: 久久国产亚洲偷自| 久久香蕉国产线看观看精品蕉| 黄色网页在线观看| 欧美人人干| 国产免费久久精品99re丫丫一| 欧美精品v欧洲精品| 亚洲国产亚洲综合在线尤物| 国产成人亚洲日韩欧美电影| 特级毛片免费视频| 三上悠亚精品二区在线观看| 国产福利不卡视频| 国产SUV精品一区二区6| 国产美女主播一级成人毛片| 国产欧美高清| 伊在人亞洲香蕉精品區| 国产熟睡乱子伦视频网站| 亚洲欧美日韩天堂| 一本大道香蕉中文日本不卡高清二区| 国产91特黄特色A级毛片| 久久永久免费人妻精品| 91在线精品免费免费播放| AV在线麻免费观看网站| 色婷婷电影网| 国产精品一区二区不卡的视频| 亚洲最大福利网站| 日韩精品毛片| 亚洲第一在线播放| 激情综合图区| 亚洲床戏一区| 亚洲一区二区在线无码| 国产激情第一页| 操操操综合网| 国产一区二区免费播放| 免费a级毛片视频| 91久久偷偷做嫩草影院精品| 97在线免费| 久草视频精品| 一本大道在线一本久道| 国产丝袜无码精品| 青青草原偷拍视频| 久久国产精品77777| 国产精品无码AV中文| 亚洲婷婷六月| 最新国产精品第1页| 内射人妻无套中出无码| 97视频精品全国在线观看| 亚洲一区二区三区香蕉| 91外围女在线观看| 思思热精品在线8| 免费a在线观看播放| 无码高潮喷水在线观看| 亚洲国内精品自在自线官| 久久精品国产亚洲麻豆| 999精品色在线观看| 真实国产乱子伦视频| 国产无码网站在线观看| 色九九视频| 真人免费一级毛片一区二区| 国产成人精品日本亚洲| 中文无码精品A∨在线观看不卡 | 夜夜拍夜夜爽| 中文字幕人成乱码熟女免费| 亚洲日韩精品伊甸| 制服丝袜一区二区三区在线| 亚洲第一区欧美国产综合| 中国特黄美女一级视频| 亚洲有无码中文网| 毛片久久网站小视频| 午夜高清国产拍精品| 亚洲成年人片| 伊人久久精品亚洲午夜| 日韩大乳视频中文字幕| 正在播放久久| 国产无码制服丝袜| 国产精品免费露脸视频| 99偷拍视频精品一区二区| 亚洲天堂日本| 国产 在线视频无码| 精品国产91爱| 亚洲天堂自拍| Jizz国产色系免费| 本亚洲精品网站|