文章目录
- 环境
- Xen安装过程
- Xen PV镜像构建
- 网络问题记录
- 连接Domain0和Domain1的背景设置
- 其他的可能发生的问题
- 常见命令参考
- 参考
环境 笔记本,无限网络连接。安装后Domain0下观察,具体信息如下:
文章图片
Xen安装过程 在原始系统上一行命令将解决。
sudo apt install xen-hypervisor-amd64
重启之后xl list查看虚拟机状态
sudo xl list
可以看到Domain0的信息,这里就算是安装完成了。
文章图片
Xen PV镜像构建 Xen支持HVM(硬件支持下的全虚拟化),PV(半虚拟化), PVH(HVM全虚拟化下的PV优化),HVM有依赖qemu的支持。Xen的特色虚拟化就是它的PV了,这里概述下过程。
与《使用xen-tools在Ubuntu18中安装Xen PV 虚拟机》过程类似。以下过程做一些补充。
首先需要准备一些空闲的磁盘区域,如果没有空闲分区了, 可以用系统自带的有GUI的Disks进行Resize,下图是我的磁盘状态partition5挂载的是Ubuntu的/目录,6是swap,7 8 是创建出给DomainU 的LVM分区。
文章图片
lvm的文件系统更为灵活,类似于内存页表,将底层物理磁盘PV(Physical Volume)空间划分为PE(Physical Entry),接下来需要将PE组合起来成为VG(Volume Group),成为VG后可以作为虚拟机的磁盘分区。
这里假设你已经完成了空闲空间的创建,开始创建lvm空间。
首先确定自己空闲的磁盘,我这里Disk上显示的很清楚可,是/dev/sda上有空闲。
fdisk /dev/sda
n #开始创建新空间
分区编号:直接enter编号
询问分区开头位置:直接enter(紧跟前一个分区结束扇区)
+20G #分配20G空间
t #改变分区格式
31 #设置为lvm格式
w #保存退出
eg:如下图,创建了分区9,最后不保存的话按q,不要输入w。
文章图片
到了这里就可以根据LVM分区创建VG了。
sudo pvcreate /dev/sda9#创建PV,PE
sudo vgcreate vg0 /dev/sda9 #vg0 是vg的名字
至此空间的事情完成。
这里也采用《使用xen-tools在Ubuntu18中安装Xen PV 虚拟机》的方法使用xen-tools创建及启动,直接记录命令过程,/etc/xen-tools/mirrors.conf里可以设置镜像源。
sudo apt install xen-tools
sudo xen-create-image --hostname=pvGuest0 --memory=1024mb --size=20Gb --vcpu=1 --lvm=vg0 --dhcp --pygrub --dist=xenial #创建镜像
创建过程出现了问题主要查看/var/log/xen-tools/pvGuest0.log,个人实现中发现镜像源的目录层级如果不与官方的一致,也会出问题,所以尽量用《使用xen-tools在Ubuntu18中安装Xen PV 虚拟机》提到的镜像源。
sudo xl create -c /etc/xen/pvGuest0.cfg #启动
到了这里就安装启动成功了。
网络部分的设置主要设置**/etc/network/interfaces**,继续参考《使用xen-tools在Ubuntu18中安装Xen PV 虚拟机》,本文的无线网卡无法桥接到网桥。
ubuntu20.04已经不在networkscripts里面修改网卡信息了,主要在interfaces里,贴一下interfaces的信息
auto lo
iface lo inet loopbackauto wlp2s0
iface wlp2s0 inet dhcpauto xenbr0
iface xenbr0 inet dhcp
bridge_ports wlp2s0
wlp2s0是无线网卡, xenbr0是网桥,他应该连接到wlp2s0上,但是不成功,networking服务也会因xenbr0启动失败。如果想启动成功,只好删除掉xenbr0。
文章图片
网络问题记录 【虚拟化|Xen pv实践及问题记录】本机采用无限网卡上网,由于无线网卡不允许在局域内广播,所以它是无法桥接的[^2]。如果无线网卡支持WDS(4addr)的或许可以成功,这里可以参考askubuntu论坛里的一个问题《How to bridge a wireless interface with another wireless interface (both on the same computer)?》通过
iw
命令可以测试iw phy0 info
可以用grep检查下有没有4addr,WDS,如果没有那应该跟我一样,无法桥接了。
文章图片
xenbr0可以跟domianU的vif接口连接成功,但是无法启动networking,brctl显示添加也会提示操作不成功。
$ sudo brctl addif xenbr0 wlp2s0
can't add wlp2s0 to bridge xenbr0: Operation not supported
连接Domain0和Domain1的背景设置
- Domain0 IP: 192.168.199.122/255.255.255.0
Domain0 interfaces配置
auto lo
iface lo inet loopbackauto wlp2s0
iface wlp2s0 inet dhcp#auto xenbr0(为实现networking的)
#iface xenbr0 inet dhcp
# bridge_ports wlp2s0
ifconfig 信息如下:
文章图片
- Domain1 IP: 192.168.199.123/255.255.255.0
具体信息如下
文章图片
网桥xenbr0: 192.168.199.xx,xenbr0正常(btctl show)。
文章图片
Domain0和Domain1的networking服务必须都正常运行。
文章图片
最后的效果:采用网桥连接后,Domain0/1无法上网,可以互相ping通。把网桥地址随便改变后(不在同一子网),Domain0可以重新上网,Domain之间无法ping通。
- 系统启动的时候raise network interface 5min,等待太久,调整networking服务的配置信息[^4],
vi /etc/systemd/system/network-online.target.wants/networking.service
调整里面
TimeoutStart
,这里不要调太小了,比如几秒,否则就是真的timeout导致设备无法加载启动了。- 【未解决】LSB: Xen-daemon 启动失败
通过systemctl status xen
查看得到由于qemu-system-i386的一个操作不支持导致Xen-daemon无法启动,这个问题还**没有找到**解决办法。
文章图片
# 信息查看
sudo vgs # volume group的信息
sudo pvs # physical volumes的信息# 创建
sudo pvreate
sudo vg create
xen,xen-tools:
# 查看创建过得PV镜像(xen-tools)
sudo xen-list-images# 根据描述文件启动PV(xen)
sudo xl create -c /etc/xen/pvXXX.cfg
网络
sudo brctl show #显示网桥
sudo brctl addbr xenbr0#创建网桥xenbr0
sudo brctl addif xenbr0 eth0 #连接eth0到网桥xenbr0
sudo ifconfig xenbr0 up#启动xenbr0
sudo ifconfig xenbr0 down #关闭xenbr0
sudo ifconfig eth0 192.168.199.123 netmask 255.255.255.0 #临时设置ip# systemd服务查看
sudo systemctl restart networking
sudo systemctl status networking
sudo systemctl start networking# 修改服务配置文件后,重新加载
sudo systemctl daemon-reload
参考
- 使用xen-tools在Ubuntu18中安装Xen PV 虚拟机
- 在Ubuntu上将Wifi桥接到以太网无法正常工作
- How to bridge a wireless interface with another wireless interface (both on the same computer)?
- debian:A start job is running for Raise network interfaces(ns/5min 3s)
- Xen Project Beginners Guide