NotePublic/Software/System/Virtualization/Xen/Xen_DomU_配置与使用.md

113 lines
3.0 KiB
Markdown
Raw Normal View History

# Xen DomU 配置与使用
在 [Xen 安装与配置](Xen_安装与配置.md) 完成了 Xen 虚拟机的安装,以及 Dom0 的配置。接下来我们对 DomU 进行配置。Xen DomU 可工作在 PV(paravirtualized) 和 HVM(hardware virtualized) 两种模式下。HVM 需要硬件虚拟化支持PV 不需要硬件虚拟化支持,但是需要修改 Guest 系统。
在 Linux 系统中可通过:
```sh
grep -E "(vmx|svm)" --color=always /proc/cpuinfo
```
命令检查系统是否支持 HVM 模式。
## 配置网络
本步骤不是必须的。但要进行虚拟机间网络通讯的话,就要对网络进行基本配置:
```sh
brctl addbr xenbr0
brctl addif xenbr0 eth0
```
注意要将 eth0 替换成实际的网卡名。
## 开启 Xen 服务
必须在 Dom0 中开启以下服务才能启动 DomU
```sh
systemctl start xenstored
systemctl enable xenstored
systemctl start xenconsoled
systemctl enable xenconsoled
systemctl start xendomains
systemctl enable xendomains
systemctl start xen-init-dom0
systemctl enable xen-init-dom0
```
## 管理 DomU
Xen 通过以下命令对 DomU 进行管理
```sh
# 创建 domU
xl create <domU config file>
# 查看各虚拟机使用的资源情况
xl top
# 查看虚拟机列表
xl list
# 切换到 domU 的命令行
xl console <domU name>
# 关闭 domU
xl shutdown <domU name>
# 销毁 domU 的虚拟机
xl destroy <domU name>
```
Xen 通过 xl create 命令创建虚拟机。该命令需要输入一个 domU 配置文件,下文用于介绍如何创建 domU 配置文件。
## 基本的 domU 配置文件
Xen 支持将磁盘文件、物理磁盘和物理分区、ISO镜像文件等挂载为磁盘设备。通过以下命令可以创建一个 10G 的磁盘文件
```sh
truncate -s 10G domU.img
```
以下是一个使用不同类别磁盘创建虚拟机的基本配置参考:
```config
name = "domU"
vcpus = 2
memory = 512
disk = [ "file:/path/to/domU.img,xvda,w", file:/path/to/ISO,sdc,r", "phy:/path/to/partition,sdb1,w" ]
vif = [ 'mac=00:16:3e:XX:XX:XX,bridge=xenbr0' ]
```
vcpus 用于指定虚拟 cpu 数量name 用于指定 domU 名称vif 用于指定网络界面,如果前面没有配置网络,就不要配置 vif。
## HVM domU 配置文件
HVM 模式通过 builder = 'hvm' 参数进行指定。通过 VNC 连接虚拟机的显示器。
```config
name = 'HVM_domU'
builder = 'hvm'
memory = 512
vcpus = 2
disk = [ 'phy:/dev/vg0/hvm_arch,xvda,w', 'file:/path/to/ISO,hdc:cdrom,r' ]
vif = [ 'mac=00:16:3e:00:00:00,bridge=xenbr0' ]
vnc = 1
vnclisten = '0.0.0.0'
vncdisplay = 1
```
以上配置,使用 vncviewer 连接到 Dom0:1默认是 5901 端口),可获得 DomU 的显示。
## PV domU 配置文件
PV 模式必须指定 kernel参考配置如下
```config
name = "PV_domU"
kernel = "/mnt/arch/boot/x86_64/vmlinuz"
ramdisk = "/mnt/arch/boot/x86_64/archiso.img"
extra = "archisobasedir=arch archisolabel=ARCH_201301"
memory = 512
disk = [ "phy:/path/to/partition,sda1,w", "file:/path/to/ISO,sdb,r" ]
vif = [ 'mac=00:16:3e:XX:XX:XX,bridge=xenbr0' ]
```
extra 用于指定 kernel 参数。