笔记本,无限网络连接。安装后Domain0下观察,具体信息如下:
在原始系统上一行命令将解决。
sudo apt install xen-hypervisor-amd64
重启之后xl list查看虚拟机状态
sudo xl list
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 loopback
auto wlp2s0
iface wlp2s0 inet dhcp
auto xenbr0
iface xenbr0 inet dhcp
bridge_ports wlp2s0
wlp2s0是无线网卡, xenbr0是网桥,他应该连接到wlp2s0上,但是不成功,networking服务也会因xenbr0启动失败。如果想启动成功,只好删除掉xenbr0。
本机采用无限网卡上网,由于无线网卡不允许在局域内广播,所以它是无法桥接的[^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
auto lo
iface lo inet loopback
auto wlp2s0
iface wlp2s0 inet dhcp
#auto xenbr0(为实现networking的)
#iface xenbr0 inet dhcp
# bridge_ports wlp2s0
vi /etc/systemd/system/network-online.target.wants/networking.service
调整里面TimeoutStart
,这里不要调太小了,比如几秒,否则就是真的timeout导致设备无法加载启动了。
systemctl status xen
查看得到由于qemu-system-i386的一个操作不支持导致Xen-daemon无法启动,这个问题还**没有找到**解决办法。LVM:
# 信息查看
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