亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Linux中Xen的奇異架構

發布時間:2021-09-27 10:58:09 來源:億速云 閱讀:96 作者:柒染 欄目:系統運維

如何理解Linux中Xen的奇異架構,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

  這一篇我要體驗的虛擬機系統是Xen。在虛擬機領域,Xen具有非常高的知名度,其名字經常在各類文章中出現。同時Xen也具有非常高的難度,別說玩轉,就算僅僅只是理解它,都不是那么容易。之所以如此,那是因為Xen采用了和我前面介紹的那幾個虛擬機完全不同的架構。在這里,我稱之為令人腦洞大開的奇異架構。

  比如說在經典的虛擬機架構中,虛擬機軟件運行于Host System之中,而Guest System運行于虛擬機軟件之中。為了提高Guest System的運行速度,虛擬機軟件一般會在Host System中使用內核模塊開一個洞,將Guest System的運行指令直接映射到物理硬件上。但是在Xen中,則根本沒有Host System的概念,傳說它所有的虛擬機都直接運行于硬件之上,虛擬機運行的效率非常的高,虛擬機之間的隔離性非常的好。

  當然,傳說只是傳說。我剛開始也是很納悶,怎么可能讓所有的虛擬機都直接運行于硬件之上。后來我終于知道,這只是一個噱頭。虛擬機和硬件之間,還是有一個管理層的,那就是Xen Hypervisor。當然Xen Hypervisor的功能畢竟是有限的,怎么樣它也比不上一個操作系統,因此,在Xen Hypervisor上運行的虛擬機中,有一個虛擬機是具有特權的,它稱之為Domain 0,而其它的虛擬機都稱之為Domain U。

  Xen的架構如下圖:

如何理解Linux中Xen的奇異架構從圖中可以看出,Xen虛擬機架構中沒有Host System,在硬件層之上是薄薄的一層Xen Hypervisor,在這之上就是各個虛擬機了,沒有Host System,只有Domain 0,而Guest System都是Domain U,不管是Domain 0還是Domain U,都是虛擬機,都是被虛擬機軟件管理的對象。

  既然Domain 0也是一個虛擬機,也是被管理的對象,所以可以給它分配很少的資源,然后將其余的資源公平地分配到其它的Domain。但是很奇怪的是,所有的虛擬機管理軟件其實都是運行在這個Domain 0中的。同時,如果要連接到其它Guest System的控制臺,而又不是使用遠程桌面(VNC)的話,這些控制臺也是顯示在Domian 0中的。所以說,這是一個奇異的架構,是一個讓人很不容易理解的架構。

  這種架構桌面用戶不喜歡,因為Host System變成了Domain 0,本來應該掌控所有資源的主操作系統變成了一個受管理的虛擬機,本來用來打游戲、編程、聊天的主戰場受到限制了,可能不能完全發揮硬件的性能了,還有可能運行不穩定了,自然會心里不爽。(Domain 0確實不能安裝專用顯卡驅動,確實會運行不穩定,這個后面會講。)但是企業級用戶喜歡,因為所有的Domain都是虛擬機,所以可以更加公平地分配資源,而且由于Domain U不再是運行于Domian 0里面的軟件,而是和Domain 0平級的系統,這樣即使Domain 0崩潰了,也不會影響到正在運行的Domain U。(真的不會有絲毫影響嗎?我表示懷疑。)

  下面開始在Ubuntu系統中體驗Xen。使用如下命令可以在Ubuntu的軟件源中搜索和Xen相關的軟件包以及安裝Xen Hypervisor:

代碼如下:

sudo aptitude search xensudo aptitude install xen-hypervisor-4.4-amd64

  傳說在舊版本的Xen Hypervisor上只能運行經過修改過的Linux內核。但是在目前的版本中不存在該問題。我機器上的Ubuntu 14.10系統不經任何修改,就可以當成Domain 0中的系統運行。至于是否讓該系統運行于Xen Hypervisor上,在啟動時可以選擇,如下圖:

如何理解Linux中Xen的奇異架構

  通過查看Grub的配置文件,可以看到通過Xen虛擬機啟動Ubuntu系統時,Grub先啟動的是/boot/xen-4.4-amd64.gz,然后才把Linux內核以及initrd文件作為模塊載入內存。也就是說,Grub啟動Xen Hypervisor,然后Xen Hypervisor運行Domian 0。

如何理解Linux中Xen的奇異架構

  前面提到Host System一下子變成了Domain 0中的操作系統是讓桌面用戶比較不爽的事,這里詳細論述。雖然說目前的Xen同時支持全虛擬化和半虛擬化,支持操作系統不經任何修改就運行于Xen虛擬機上(全虛擬),但是系統是否穩定還是和內核有很大關系的。比如說我在Ubuntu 14.04剛推出的那段時間,在Ubuntu 14.04中使用Xen是沒有什么問題的,但是經過幾次系統升級后,Xen就出問題了,沒辦法成功進入Domain 0中的Ubuntu 14.04。現在我用的是Ubuntu 14.10,已經升過好幾次級了,目前使用Xen還是很穩定的。其次就是顯卡驅動的問題,我的Ubuntu當主系統用時,使用的是NVIDIA的顯卡驅動,但是當Ubuntu運行于Domain 0中時,就不能使用NVIDIA的顯卡驅動了,否則無法進入圖形界面。

  下面來測試一下Xen虛擬機的運行效果。通過前文的探討,可以看出一個虛擬機的運行需要兩個要素:一是一套虛擬的硬件系統,二是一個包含了操作系統的磁盤鏡像。QEMU虛擬機關于硬件的配置全由命令行指定,VirtualBox虛擬機的硬件配置存在于配置文件中,而Xen呢,它也存在于配置文件中,這個配置文件要我們自己寫。至于磁盤鏡像,還是復用我之前創建的那個WinXP.img吧,記住,它是qcow2格式的。

  先進入我主目錄的virtual-os目錄,ls 看一下,里面有我之前創建的WinXP.img。然后,我們創建一個WinXP_Xen.hvm配置文件,其內容如下:

代碼如下:

builder = "hvm"
name = "WinXP_Xen.hvm"
memory = 2048
vcpus = 2
disk = [ '/home/youxia/virtual-os/WinXP.img, qcow2, hda, rw' ]
sdl = 1

  這段配置文件很簡單,也很容易懂。 hvm 代表這是一個全虛擬化的虛擬機,和全虛擬化相對的是半虛擬化,半虛擬化只能運行經過修改的內核,但是可以獲得更高的性能。為該虛擬機分配2個CPU和2G內存,并指定硬盤鏡像文件。最后一個 sdl=1 表示使用SDL圖形庫顯示虛擬操作系統的界面,如果不想用SDL,也可以寫成 vnc=1,這樣需要使用 vncviewer 才能連接到虛擬機操作系統的桌面。

  至于Xen的配置文件怎么寫,管理命令怎么用,這個必須得有學習資料。通過 man xl 和 man xl.cfg 查看手冊頁是可以的,但是最全面的資料還是在Xen的官網 http://www.xenproject.org 上。

  使用 sudo xl list 命令可以看到系統中只有一個Domain 0在運行,然后使用 sudo xl create -c WinXP_Xen.hvm 即可運行一個Domian U虛擬機,該虛擬機使用WinXP_Xen.hvm配置文件。 xl 命令的 -c 選項表示把Domain U的控制臺顯示在Domain 0中,如果不用 -c 選項而使用 -V 選項,則創建虛擬機后使用 vncviewer 進行連接。新建的虛擬機運行起來后,再次使用 sudo xl list 命令,可以看到除了Domain 0,還多了一個名稱為“WinXP_Xen.hvm”的虛擬機。運行效果如下圖:

如何理解Linux中Xen的奇異架構

  關于Xen更多更高級的功能,比如動態遷移什么的,我這里就不試了。至于說到Xen虛擬機的隔離性,如果一個Domain U崩潰了,肯定是不會影響到Domain 0和其它Domain U的,但是如果Domain 0崩潰了,Domain U真的不會受到任何影響嗎?Domain 0崩潰了怎么重啟它呢?這都是我沒想明白的問題。在折騰Xen的過程中,我曾多次重啟過機器,重啟后一看,WinXP_Xen.hvm還在繼續運行,似乎是沒有受到Domain 0的影響,但是我就想,我機器都重啟了,電源都斷了,Domain U它真的能絲毫不受影響嗎?

總結:

  1.Xen虛擬機不應該是桌面用戶的首選,因為它架構比較奇異不容易理解,可能因內核升級而出現不穩定,不能充分發揮桌面硬件的性能,比如顯卡;桌面用戶還是應該首選VirtualBox。

  2.企業及客戶可以考慮Xen,因為它可以提供較好的性能和隔離性,企業級用戶不需要桌面用戶那么多的功能,所以可以把Domain 0做到很薄,可以完全不要圖形界面,也不用經常升級內核,甚至可以選擇一個經過修改優化的內核,這樣就可以在一套硬件上運行盡可能多的虛擬機。

關于如何理解Linux中Xen的奇異架構問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲周县| 贺兰县| 丹巴县| 安乡县| SHOW| 盖州市| 丰镇市| 恩施市| 茌平县| 汝南县| 淮南市| 常熟市| 靖江市| 黄龙县| 新兴县| 江都市| 澎湖县| 洪湖市| 道真| 许昌县| 台南市| 株洲市| 阿拉善右旗| 白沙| 贵定县| 龙胜| 兴国县| 彭州市| 鹤庆县| 高淳县| 丽水市| 古田县| 马鞍山市| 凤城市| 洛扎县| 九龙坡区| 德庆县| 德安县| 恭城| 红安县| 和平区|