成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

技術(shù)棧 | 如何高效運(yùn)用Xapi解決問題?

lscho / 3493人閱讀

摘要:節(jié)點(diǎn)并不是完全不能接受任何操作。這種協(xié)調(diào)目前由完成,因此不可能在資源池之間共享這種存儲(chǔ)。工具堆棧通常在特權(quán)初始域中運(yùn)行其所有組件,也稱為控制域。如果不使用在刷新之前取消則可能會(huì)丟失最近的更新。

概述

Xapi是Xen Server中的一組管理接口的統(tǒng)稱,是Xen Server管理的核心,由一系列的toolstack組成。

Xapi主要提供各客戶端以及Pool中各主機(jī)通信的接口。 客戶端可以通過Xapi來讀取Xen Server的配置、管理、License的管理、數(shù)據(jù)庫的維護(hù)等等,同時(shí)也包括如存儲(chǔ)、虛機(jī)、虛擬網(wǎng)卡、HA等資源的功能管理及控制。Xapi接口必須保持向后兼容,允許較老版本的客戶端可以正常工作。

其具有代表性的客戶端有XenCenter、Xen Orchestra、Openstack 和CloudStack 等。

基礎(chǔ)概念

在Xen中最基礎(chǔ)的概念是資源池(Pool)--整體集群作為單個(gè)實(shí)體進(jìn)行管理。即使單個(gè)Xen Host的非集群環(huán)境,Xapi對(duì)資源對(duì)象的管理也是通過Pool 來完成的。Xapi運(yùn)行在主機(jī)集群中,他們共享著部分存儲(chǔ)集群。這部分共享存儲(chǔ)也是建立高可用集群(HA)的前提保證。下圖展示的是運(yùn)行著Xapi的主機(jī)集群環(huán)境。

在任何時(shí)候,最多只有一個(gè)主機(jī)可以被稱為Pool Mater,它用來負(fù)責(zé)協(xié)調(diào)和鎖定資源池的資源。首次創(chuàng)建Pool時(shí),需要指定一臺(tái)機(jī)器為Pool Master,這臺(tái)機(jī)器則稱為Master Host(主節(jié)點(diǎn)),其他節(jié)點(diǎn)我們可以稱之為Slave Host(從節(jié)點(diǎn))。Pool Master角色也并非一成不變的。我們可以通過XenCenter等客戶端手動(dòng)調(diào)整Master Host節(jié)點(diǎn);也可配置HA的集群通過Xen自身的HA機(jī)制在Master Host宕機(jī)時(shí),自動(dòng)選舉新的節(jié)點(diǎn)為Master Host。

所有主機(jī)都會(huì)提供兩種協(xié)議的接口,一個(gè)是使用80端口的HTTP和XML/RPC協(xié)議接口以及使用443端口的TLS/SSL協(xié)議接口。雖然存在著這兩種接口協(xié)議,但并不是所有主機(jī)都能夠通過Xapi來下發(fā)操作請(qǐng)求的,在集群中僅Master Host具有著接受Xapi操作請(qǐng)求的權(quán)限。

如若嘗試將控制操作的請(qǐng)求發(fā)送到另一臺(tái)Slave Host的機(jī)器,將導(dǎo)致XenAPI重定向返回一個(gè)錯(cuò)誤消息,該錯(cuò)誤消息包含有這臺(tái)機(jī)器所處集群的Master Host的地址,以及詳細(xì)錯(cuò)誤提示。

作為Pool Master除了上文提及配置HA后的自動(dòng)遷移還會(huì)以有序的方式處理或轉(zhuǎn)發(fā)用戶請(qǐng)求(xe pool-designate-new-master)以及處理或轉(zhuǎn)發(fā)在緊急情況下的用戶請(qǐng)求(xe pool-emergency-transition-to-master)。

Slave Host節(jié)點(diǎn)并不是完全不能接受任何操作。為了提高效率,在Slave Host上允許進(jìn)行以下操作:

查詢性能計(jì)數(shù)器(及其歷史記錄)

連接到VNC控制臺(tái)

導(dǎo)入/導(dǎo)出(特別是當(dāng)磁盤在本地存儲(chǔ)上時(shí))

由于Master Host充當(dāng)協(xié)調(diào)器和鎖定管理器的角色,因此其他主機(jī)通常會(huì)與Master Host通信。Slave Host也會(huì)相互通信(通過相同的HTTP和XMLRPC通道)來完成以下功能

傳輸VM內(nèi)存映像(VM遷移)

鏡像磁盤(存儲(chǔ)遷移)

要注意的是,某些類型的共享存儲(chǔ)(特別是所有使用vhd的存儲(chǔ))需要協(xié)調(diào)磁盤GC和合并。這種協(xié)調(diào)目前由Xapi完成,因此不可能在資源池之間共享這種存儲(chǔ)。

工具集/toolstack

Xapi工具集需要主機(jī)在x86或ARM上運(yùn)行Xen 4.4或更高版本。Xen管理程序?qū)⒅鳈C(jī)劃分為多個(gè)域(Domain),其中一些域可以具有特權(quán)硬件訪問權(quán)限,其余部分是非特權(quán)客戶機(jī)(DomainU)。xapi工具堆棧通常在特權(quán)初始域Domain 0中運(yùn)行其所有組件,也稱為“控制域”。然而,有一些實(shí)驗(yàn)代碼支持“驅(qū)動(dòng)域(driver domains)”,允許存儲(chǔ)和網(wǎng)絡(luò)驅(qū)動(dòng)程序在其各自的域中隔離。

下圖顯示了在單主機(jī)上運(yùn)行Xen Server的情況。在一個(gè)集群環(huán)境中所有主機(jī)都運(yùn)行相同版本的Xen Server,除非Xen Server正處于版本迭代期間則不一定是完全相同的軟件版本。

工具集包含有一組協(xié)作守護(hù)程序,它們構(gòu)建在所有Xen主機(jī)通用的基本集之上。他們主要包含有:

Xapi:管理主機(jī)群集,協(xié)調(diào)對(duì)共享存儲(chǔ)和網(wǎng)絡(luò)的訪問。

Xenopsd:一個(gè)低級(jí)“域管理器”,負(fù)責(zé)通過libxc和libxl與Xen交互來創(chuàng)建、掛起、恢復(fù)、遷移、重新引導(dǎo)域。

Xcp-rrdd:一個(gè)性能計(jì)數(shù)器監(jiān)視守護(hù)程序,它聚合通過插件API定義的“數(shù)據(jù)源”并記錄每個(gè)守護(hù)程序的歷史記錄。

Xcp-networkd:主機(jī)網(wǎng)絡(luò)管理器,負(fù)責(zé)配置接口,網(wǎng)橋和OpenVSwitch實(shí)例

SM:Storage Manager插件,用于將Xapi的內(nèi)部存儲(chǔ)接口連接到外部存儲(chǔ)系統(tǒng)的控制API。

perfmon:監(jiān)視性能計(jì)數(shù)器的守護(hù)程序,如果值超過某個(gè)預(yù)定義的閾值,則發(fā)送“警報(bào)”。

mpathalert:監(jiān)視“存儲(chǔ)路徑”的守護(hù)程序,如果路徑出現(xiàn)故障并需要修復(fù)則發(fā)送“警報(bào)”。

snapwatchd:一個(gè)守護(hù)進(jìn)程,它響應(yīng)通過guest 虛擬機(jī)VSS代理(對(duì)于Windows)發(fā)送的快照請(qǐng)求。

stunnel:一個(gè)守護(hù)程序,它解碼TLS / SSL并將流量轉(zhuǎn)發(fā)到Xapi。

xenconsoled:允許訪問客戶機(jī)控制臺(tái)。這對(duì)所有Xen主機(jī)都是通用的。

xenstored:用于連接VM磁盤和網(wǎng)絡(luò)接口的鍵值對(duì)配置數(shù)據(jù)庫。這對(duì)所有主機(jī)也很常見。

工作機(jī)制

Xapi分為以下類別:

master-only:這些是當(dāng)前主要的API請(qǐng)求類型??蛻舳薃PI請(qǐng)求Master節(jié)點(diǎn),Master節(jié)點(diǎn)轉(zhuǎn)發(fā)請(qǐng)求到相應(yīng)的機(jī)器并鎖定相應(yīng)資源。

normal-local:這些是對(duì)性能有著特殊要求的情況,允許從節(jié)點(diǎn)去調(diào)用的API。例如磁盤導(dǎo)入/導(dǎo)出和控制臺(tái)連接等,它們直接發(fā)送到對(duì)數(shù)據(jù)到相關(guān)主機(jī),不必經(jīng)過Master節(jié)點(diǎn)的轉(zhuǎn)發(fā)。

emergency:是處理Master Host離線這種緊急情況下使用的API請(qǐng)求類型。

主機(jī)在接受到API請(qǐng)求后,先判斷本機(jī)可以接受該類型的請(qǐng)求,如果可以執(zhí)行,API調(diào)用就會(huì)進(jìn)入“消息轉(zhuǎn)發(fā)”層。消息轉(zhuǎn)發(fā)層將會(huì):

鎖定資源(通過current_operations機(jī)制實(shí)現(xiàn))

選擇需要執(zhí)行請(qǐng)求的主機(jī)

如果請(qǐng)求應(yīng)在本地運(yùn)行,則使用直接函數(shù)調(diào)用; 否則,消息轉(zhuǎn)發(fā)代碼會(huì)對(duì)特定的Slave Host進(jìn)行同步API調(diào)用。需注意的是Xapi目前使用“thread per request”(一個(gè)線程處理一個(gè)請(qǐng)求)模型,該模型會(huì)為每個(gè)請(qǐng)求創(chuàng)建一個(gè)完整的POSIX線程。即使僅轉(zhuǎn)發(fā)請(qǐng)求,這個(gè)線程仍然會(huì)被創(chuàng)建,并會(huì)一直阻塞直至相關(guān)Slave Host返回結(jié)果。

如果XenAPI請(qǐng)求內(nèi)容是VM生命周期相關(guān)的操作,它將轉(zhuǎn)換為Xenopsd API調(diào)用并通過Unix域套接字進(jìn)行轉(zhuǎn)發(fā)。Xapi和Xenopsd都有類似的task的概念,當(dāng)前的Xapi task(所有操作在task的上下文中運(yùn)行)會(huì)被綁定到Xenopsd task上,之后Xapi還會(huì)用來傳遞取消操作和更新task進(jìn)度。

如果XenAPI請(qǐng)求內(nèi)容為存儲(chǔ)操作,則將消息轉(zhuǎn)發(fā)至“存儲(chǔ)訪問”層。存儲(chǔ)訪問層需:

驗(yàn)證存儲(chǔ)對(duì)象是否處于正確狀態(tài)(驗(yàn)證SR掛載狀態(tài);VDI掛載、激活 以及VDI是否具有讀寫權(quán)限)

調(diào)用Storage Manager API(SMAPI)v2接口中的相關(guān)操作

使用SMAPIv2到SMAPIv1轉(zhuǎn)換器生成必要的命令行來與SMAPIv1插件(EXT,NFS,LVM等)通信并執(zhí)行

將存儲(chǔ)對(duì)象的狀態(tài)(包括VDI.a(chǎn)ttach調(diào)用的結(jié)果)持久化

在內(nèi)部,smapiv1插件通過對(duì)xapi數(shù)據(jù)庫的特權(quán)訪問來直接設(shè)置字段(例如VDI.virtual_size),這些字段將被視為對(duì)其他客戶端是只讀的。SMAPIv1插件也依賴于Xapi

了解可能訪問存儲(chǔ)的所有主機(jī)

鎖定資源池中的磁盤

通過“Xapi插件”機(jī)制在其他主機(jī)上安全地執(zhí)行代碼

Xapi數(shù)據(jù)庫包含主機(jī)和VM的元數(shù)據(jù),并共享給整個(gè)Pool。Master Host會(huì)在內(nèi)存中緩存一份副本,所有其他節(jié)點(diǎn)在使用時(shí)會(huì)查詢Master Host中緩存的數(shù)據(jù)。數(shù)據(jù)庫將每個(gè)對(duì)象都會(huì)有一個(gè)事件計(jì)數(shù)器,生成計(jì)數(shù)器用于實(shí)現(xiàn)XenAPI中event.next和event.from的相關(guān)操作。如果啟用了“redo-log”, 那么所有數(shù)據(jù)庫寫入操作都會(huì)以增量的形式同步寫入共享塊設(shè)備。如果不使用redo-log”在刷新之前取消Xapi則可能會(huì)丟失最近的更新。

總結(jié)

Xapi為程序開發(fā)者提供一個(gè)靈活,穩(wěn)定,方便,快捷的Xen Server管理接口,使得用戶可以根據(jù)自身需求進(jìn)行量身定制。但是由于使用“thread per request”模式會(huì)給Master Host帶來較大的資源開銷,使用時(shí)可盡量合并請(qǐng)求操作,減少并發(fā)數(shù)量,來降低Xapi對(duì)Master節(jié)點(diǎn)資源消耗。

作者:啟迪云-高級(jí)開發(fā)工程師 盧柳


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/5367.html

相關(guān)文章

  • 關(guān)于XenServer的高可用,這篇都說清楚了

    摘要:旨在發(fā)生單點(diǎn)故障后,消除單點(diǎn)故障的影像,盡可能在剩余資源池上運(yùn)行業(yè)務(wù)。首先需要找出屬于最大全連接組以下簡稱的,用選擇一個(gè),重啟丟失連接的。是通過在每個(gè)主機(jī)中進(jìn)行配置,高可用集群中,每個(gè)主機(jī)上該配置文件都必須保持一致,如果不一致將導(dǎo)致不可用。概述隨著云計(jì)算市場(chǎng)的快速發(fā)展,用戶對(duì)服務(wù)的實(shí)時(shí)性需求越來越高,系統(tǒng)的穩(wěn)定性和可用性顯得尤為重要。高可用性HA(High Availability)可以做到...

    thekingisalwaysluc 評(píng)論0 收藏0
  • LRS+XAPI教育學(xué)習(xí)記錄(安裝lrs,以及用xapi傳輸數(shù)據(jù)到lrs)

    摘要:關(guān)于跟國內(nèi)基本用的少,質(zhì)料基本都是英文的,中文的也就只有繁體的一些少少的資料。安裝其實(shí)很簡單,就是一些小東西麻煩而已,還有一點(diǎn)就是頁面是英文的不要怕英語考五分的渣現(xiàn)在在狂補(bǔ)英文。準(zhǔn)備工作,安裝數(shù)據(jù)庫。 此LRS團(tuán)隊(duì)出了最新版的LRS,是node寫的。運(yùn)行速度是本文寫的這個(gè)版本的無數(shù)倍,待我整理好再發(fā)出來。關(guān)于lrs跟xapi國內(nèi)基本用的少,質(zhì)料基本都是英文的,中文的也就只有繁體的一些少...

    airborne007 評(píng)論0 收藏0
  • LRS+XAPI教育學(xué)習(xí)記錄(安裝lrs,以及用xapi傳輸數(shù)據(jù)到lrs)

    摘要:關(guān)于跟國內(nèi)基本用的少,質(zhì)料基本都是英文的,中文的也就只有繁體的一些少少的資料。安裝其實(shí)很簡單,就是一些小東西麻煩而已,還有一點(diǎn)就是頁面是英文的不要怕英語考五分的渣現(xiàn)在在狂補(bǔ)英文。準(zhǔn)備工作,安裝數(shù)據(jù)庫。 此LRS團(tuán)隊(duì)出了最新版的LRS,是node寫的。運(yùn)行速度是本文寫的這個(gè)版本的無數(shù)倍,待我整理好再發(fā)出來。關(guān)于lrs跟xapi國內(nèi)基本用的少,質(zhì)料基本都是英文的,中文的也就只有繁體的一些少...

    劉東 評(píng)論0 收藏0
  • 還記得三大虛擬化技術(shù)之一的XenServer嗎?

    摘要:的首次公開發(fā)行是在年。年,得到了廣泛的采用,和都將添加進(jìn)他們的虛擬化解決方案。收購之后將其產(chǎn)品整合,統(tǒng)一更名為。奠定了在服務(wù)器虛擬化市場(chǎng)的地位。年月日,項(xiàng)目被宣布作為一個(gè)合作項(xiàng)目移至基金會(huì)下。前言XenServer是一個(gè)由Citrix發(fā)起和管理的開源項(xiàng)目和社區(qū)。該項(xiàng)目開發(fā)的開源軟件實(shí)現(xiàn)了虛擬化的多種功能,允許在硬件設(shè)備上安全地運(yùn)行多個(gè)操作系統(tǒng)和應(yīng)用程序,完成硬件整合和自動(dòng)化;將靜態(tài)、復(fù)雜的I...

    Jochen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<