【轉】 XenServer的架構


一、Dom0或者控制域

XenServer從安裝上看起來像是一個Linux,所以有些同學認為XenServer就是Linux或者是Linux修改的。真實的XenServerLinux的關系是這樣的:XenServer不是Linux,但Dom0Linux。之所以有這樣的誤區在於我們在安裝好XenServer之后是通過Dom0這個特權用戶空間進行控制和訪問XenServer的,這個Dom0是經過自定義和優化過后的CentOS系統,自然我們看起來、用起來都感覺和Linux並無二致。而且XenServer安裝所使用的引導裝載程序是extlinuxextlinux是一個對話框交互式的引導裝載程序。其工作原理和WindowsPE類似,WindowsPE系統其實本質是微軟的Windows安裝對話框交互式的引導裝載程序。

    Dom0既然是XenServer的管理控制平面而且有是基於Linux的定制版本,那么一定支持Linux的命令,但是Dom0是為了滿足XenServer的虛擬化平台控制和管理而設計,如果安裝或者修改一些沒有被明確設計或認證的安裝包以及配置文件,就可能影響XenServer的可伸縮性和性能,最壞的情況下可能導致XenServer出現崩潰。所以你可以在XenServer中嘗試一些Linux命令,會發現很多Linux沒有,並且Yum等軟件安裝管理器是沒有安裝的。基於這些考慮以及對Linux的增加的服務以及軟件包的控制等操作,Xen項目最初開發了XM命令,后來Citrix經過修改和優化,重新命名為XE命令。因此對於Dom0的控制並不向我們想象的那樣使用Linux命令直接進行控制,而是使用專用的XE命令集。XE命令其實也是屬於Shell腳本的一種,其運行機制仍然遵循Linux Shell命令的運行機制,即:

     1、解析命令:首先XE的程序會分析給出的命令行信息,分析這一行字符串,那個字符串是命令;

     2、分析命令:找到命令字符串之后,分析這個命令,根據命令類型調用各自命令的可執行文件;

     3、啟動進程:得到進一步的命令信息之后,提請給內核啟動為一個進程執行命令的可執行文件;

     4、調用功能:命令的可執行文件根據命令的選項或者配置文件信息,啟用或關閉相應的功能;

     5、調用參數:如果命令有參數,命令會根據參數設置的限定條件或者作用對象,進行相應的調整和執行。

   同時還有一些專用的命令:比如Linuxtop命令,top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況。你如果在Dom0中使用top,沒問題,但是top出來的系統資源和統計情況僅僅是Dom0這個特權Linux的系統統計信息,而不是整個XenServer的運行統計信息。而要使用Xentop這樣的命令。

    Dom0XenServer中所屬的位置如下圖所示:

wKiom1dWPSXjMuuuAAI1s5LgfpQ695.jpg-wh_50

在該圖中,我們看到三個主要硬件要素:計算,網絡和存儲。途中的箭頭線表示訪問的一個流程。在XenSerevr中,所述第一個虛擬機就是Dom0;在XenServer安裝好之后,默認會啟動一個虛擬機實例,在該虛擬機中啟動一系列的XenServer服務,以便運行整個XenServer環境,該虛擬機運行的環境有些特殊,其可以直接訪問和控制硬件,因此也被稱之為特權域。與之相對的,非特權域被稱為DomU,或者“Guest VMs””VM”。所有的域由虛擬機管理程序控制其提供計算服務的接口。這樣的Dom0使我們能夠直接通過Linux設備驅動程序來驅動硬件,而不必為XenServer的在開發專門的硬件驅動程序。而XenServer為虛擬機提供了一個虛擬設備接口用於承接虛擬機對硬件設備的調用命令,如圖中所示,XenServer使用前后端驅動模型。前后端驅動模型是指一個部分的驅動位於dom0(后端)中,而其余的驅動程序則位於DomU中(前端)。

這些虛擬機的虛擬設備模型部分由QEMU進行模擬。其中HVMPVHM不包含准虛擬化(PV)驅動程序,因此QEMUQEMU-DMHVNPVHVM模式下模擬一些硬件部件,如BIOS

最后,將這些管理或者服務的toolstack共同捆綁到一起,命名為XAPIXAPI同為開源項目,和Xen項目一樣;Xen項目是是專門實現將硬件資源進行抽象虛擬化的項目,XPAI項目是對其進行管理和維護的項目。

 

 

二、核心組件

Xapi

XAPI是一系列管理toolstack的接口,是基於 XML-RPC API,可通過此 API 以編程方式訪問一組數量龐大的XenServer 管理功能和工具。此 XenServer API 可以從遠程系統調用,也可以從 XenServer 主機本地調用。同時XAPI也回應關於80端口的HTTP請求頁面,提供一個下載XenCenter的安裝程序的鏈接路徑。

由於XenCenter通過XAPI管理XenServer的基礎架構,因此它的管理和維護就顯得特別重要,其相關的日志數據可以在以下路徑找到:/var/log/xensource.log/var/log/audit.log

 

xhad

xhadXenServer的高可用性(HA)守護進程。如果XenServer主機是在資源池中且啟用HA,那么這個進程就會自動啟動。這個進程負責主機與與其他成員的服務器的心跳檢測以及負責維護池中所有的心跳活動,通過監視計時器超時以及主機的狀態以確定哪些主機已關機。

Xhad本身也屬於XAPItoolstack系列工具之一,其也監視XAPI服務的運行。如果XAPI服務停止或者出現故障,那么xhad也將會重新啟動XPAI服務。而且HA也是通過XAPI命令進行配置,並將得到的配置存儲在每個主機/etc/xensource/xhad.conf的配置文件中。相關xhad日志數據存儲在/var/log/xha.log,方便我們進行查看管理和排錯。

xenopsd

xenopsdXen的操作后台進程,負責管理Guest VM(來賓虛擬機)的生命周期,同時提供管理(XAPI)和虛擬化進程(Xen)之間的分離。例如創建或啟動來賓虛擬機時,就會有一個xenopsd進程創建:負責管理該來賓虛擬機低級別的任務,如資源處理、資源使用情況等統計信息的收集。Xenopsd的日志數據可以在以下目錄找到:/var/log/xensource.log

xcp-rrdd

XCP-rrdd是一個守護進程,用於接收虛擬機提交的數據,然后將其存儲在一個數據庫中,這是一個循序的過程。這個守護進程接受存儲的是有關來賓虛擬機xenopsd進程操作所使用的資源度量信息。比如是磁盤IOPSCPU負載、網絡使用負載和吞吐,以及在XenServer中使用的NVIDIA GRID GPU直通和vGPU應用的負載指標。然后這些信息被分布顯示在XenCenter的性能選項卡中,如用於查看當前和歷史的來賓虛擬機性能信息。

XCP-rrdd相關日志數據可以在以下目錄找到:/var/log/xcp-rrdd-plugins.log/var/log/xensource.log

xcp-networkd

這個守護進程負責監測和報告XenServer網絡接口狀態等信息,比如虛擬橋接網絡。

SM

SM負責映射支持的存儲解決方案到XAPI作為存儲庫,並對其進行管理。同時管理虛擬存儲設備到存儲的對應關系,以及處理存儲相關的操作,比如存儲的遷移和快照。

存儲管理器的日志數據這個目錄下:/ var/ log /SMlog

perfmon

perfmon即性能監視器,是跟蹤Dom0性能和統計Dom0信息的后台程序。

Mpathalert

Mpathalert是當存儲有問題發生時,發送通知到XenCenter,或通過XAPI管理接口發送消息到其他的管理平台。這是一個十分有用的工具,用以解決特定的存儲類型的網絡問題,也實現在XenServer啟用多路徑之后,單其中一條路徑出現問題的情況下發送消息,防止存儲的單點故障。

日志相關的蘇數據存儲路徑在以下目錄:/var/log/daemon.log/var/log/messages

snapwatchd

snapwatchd守護進程負責調用,監控和使用日志記錄相關的VM快照的信息。如虛擬磁盤的狀態,同步信息,以及調用XAPI跟蹤來賓虛擬機的磁盤或相關快照的任何變化。我們知道快照的原理主要有2種,一種是RoW一種是CoW,不管是那種,對虛擬磁盤制作了快照之后,對於虛擬磁盤的任何改寫都會受到嚴格的監控。日志數據可以在目錄:/var/log/SMlog

stunnel

Stunnel是安全隧道,用於加密各種真實或虛擬的節點之間的流量,其使用Open SSL進行加密。客戶端連接到來賓系統VM,如通過XenCentervncterm訪問,可以利用安全通道,以確保這些類型的會話保持獨立和安全。

有關安全通道的日志數據在以下路徑中:/var/log/secure/var/log/xensource.log

xenconsoled

記錄由xenconsoled處理的基於控制台的活動日志,包括來賓和控制域控制台。日志數據存儲在目錄:/var/log/xen//var/log/daemon.log

Xenstored

xenstored守護程序是駐留在Dom0中的數據庫。它提供低級別的操作,比如虛擬內存,共享內存和接口XenBus通用I / O操作。XenBus提供了類似於PCI設備抽象的總線,允許客戶虛擬機和Dom0之間進行通信。同時設備驅動程序間進行交互也與xenstored配置數據庫有關,xenstored也會處理設備的操作,如關機重啟等命令從XAPI發送到虛擬機。

日志數據存儲在以下目錄:/var/log/xenstored-access.log/var/log/messages/var/log/xensource.log

squeezed

squeezed是運行在Dom0中的負責對Xen的動態內存進行管理的一個進程。 XAPI調用squeezed進程,確定物理主機是否有資源供來賓虛擬機啟動。反過來,squeezed負責與每個運行的VM接口通訊,在保證有足夠的內存用於VM的前提下,將剩余沒有使用的內存返還給主機內存。

運行的日志可以在以下目錄查看:/var/log/xensource.log/var/log/xenstored-access.log/var/log/squeezed.log

 

本文出自 “我拿流年亂了浮生” 博客,請務必保留此出處http://tasnrh.blog.51cto.com/4141731/1786859


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM