Xen的安裝 編譯和使用(二)

2021-07-06 06:43:08 字數 2502 閱讀 3336

博文目錄:

1. xen的安裝編譯

2. 建立半虛擬化guest os

3. 建立全虛擬化windows guest os

4. 建立全虛擬化linux guest os

建立半虛擬化guest

os

下如何安裝和編譯

xen,接下來開始正式使用

xen了。

l 概念理解

因為這段時間要做的工作是在虛擬機器中實現自動新增裝置和前後端驅動,所以對xen

中半虛擬化架構和分離裝置驅動模型進行了調研:

xen的半虛擬化裝置架構採用前後端分離的裝置驅動結構。虛擬裝置驅動包含兩個部分:

domu

中的前段裝置驅動(

fronted

)和dom0

中的後端裝置驅動。後端裝置驅動可以訪問真實的硬體裝置。

前端裝置驅動從guest os

接收io

請求,然後將

io請求**到後端,而後端接收到前端**的裝置請求後,檢查請求是否合法,然後通過本地的裝置驅動訪問真實的硬體裝置。

io完成後,後端裝置驅動通知前端裝置驅動已經準備就緒,然後前端驅動向

guest os

報告io

操作完成。

在xen

的半虛擬化架構中,同樣需要一種機制來發現裝置,連線裝置和驅動,自動匹配裝置和驅動。而且和

linux

不同的是,因為前端裝置和後端裝置是聯動的關係,當某一方裝置變動的時候,還必須通知另一方裝置的變動情況。為了完成這個工作,

xen提供了一條虛擬匯流排

xenbus

來管理所有的虛擬裝置和驅動。

xen系統的所有虛擬裝置都要註冊到

xenbus

。pci

匯流排也是作為乙個裝置註冊到

xenbus 

,通過註冊的

pci匯流排,執行掃瞄動作可以產生所有的

pci裝置。而所有的虛擬驅動也都要註冊到

xenbus

,從而可以自動完成虛擬裝置和驅動的匹配。

l 使用xen-tools

(半虛擬化管理工具)安裝虛擬機器

① 安裝xen-tools

:apt-get install -y xen-tools

② 需要安裝修改過的,支援半虛擬化的核心,此處使用host kernel

。在/boot

下的:vmlinuz-3.19.0-30-generic  initrd,img-3.19.0-30-generic

(我的系統核心是linux3.19.0-30)

③ 修改xen-tools

的配置檔案

,配置檔案中的值只在建立例項過程中沒有指定某個選項時提供預設值:

/etc/xen-tools/xen-tools.conf

需要修改如下項:

[...]

dir=/home/xen   #用於放置

img檔案的位置 

[注]:修改好

xen-tools.conf

後,就需要建立剛才指定的放置

img檔案的目錄位置:

# mkdir /home/xen

[...]

#指定例項的系統版本,

xt-guess-suite-and-mirror --suite

返回的是宿主機的系統版本

dist=`xt-guess-suite-and-mirror --suite`

[...]

# 指定例項所在網段

gateway =192.168.0.1

netmask =255.255.255.0

broadcast=192.168.0.255

[...]

# 指定例項使用的

kernel

,這裡就使用之前安裝的、支援半虛擬化的

kernel

kernel= /boot/vmlinuz-3.0.0-12-virtual

initrd=/boot/initrd.img-3.0.0-12-virtual

[...]

④ 開始建立例項:

# xen-create-image --hostname=ubuntu.example.com --size=4g --swap=1g --memory=1g  --ip=192.168.0.101  --arch=amd64  --role=udev(不要忘記角色)

⑤ 建立完成後,會在之前指定的目錄中生成img

檔案,作為虛擬機器例項的儲存,並在

/etc/xen

下生成.cfg

檔案,作為虛擬機器例項啟動的配置檔案。

⑥ 通過xl

命令啟動例項:

xl create ubuntu.example.com.cfg

-c建立的虛擬機器需要通過使用者名稱(root)

、密碼登入,在配置檔案(

/var/log/xen-tools/ubuntu.example.com.log

)裡可檢視密碼。

go安裝和編譯使用

1.安裝必備的編譯環境 sudo apt get install bison libc6 dev ed python setuptools python dev build essential sudo easy install mercurial hg clone r release go 卡住h...

Ubuntu14原始碼編譯安裝Xen4 6

之前一直使用的都是centos 6,但現在要把專案的程式移植到機房的機器上執行了,但機房安裝的是我不熟悉的ubuntu,所以沒辦法只能在ubuntu上重新安裝一次xen了,這篇文章主要記錄了我安裝的過程,以便以後需要時查閱。在ubuntu上原始碼編譯安裝xen其實跟在centos上沒有很大的區別,就...

使用 Ansible 編譯和安裝 nagios

我已經建立了乙個冪等的 ansible playbook,從原始碼安裝並且在 ubuntu 14.04 lts,debian 7.5 和 centos 6.5 平台測試了,這個 playbook 與 nelmon 在一起。一旦 playbook 執行,ansible 將 這些給你乙個基礎的 nagi...