Xen pv实践及问题记录

文章目录

  • 环境
  • Xen安装过程
  • Xen PV镜像构建
  • 网络问题记录
    • 连接Domain0和Domain1的背景设置
  • 其他的可能发生的问题
  • 常见命令参考
  • 参考

环境

笔记本,无限网络连接。安装后Domain0下观察,具体信息如下:
Xen pv实践及问题记录_第1张图片

Xen安装过程

在原始系统上一行命令将解决。

sudo apt install xen-hypervisor-amd64

重启之后xl list查看虚拟机状态

sudo xl list

可以看到Domain0的信息,这里就算是安装完成了。
xllist

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分区。
Xen pv实践及问题记录_第2张图片
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。
Xen pv实践及问题记录_第3张图片到了这里就可以根据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。
Xen pv实践及问题记录_第4张图片

网络问题记录

本机采用无限网卡上网,由于无线网卡不允许在局域内广播,所以它是无法桥接的[^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,如果没有那应该跟我一样,无法桥接了。
iw
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 loopback

auto wlp2s0
iface wlp2s0 inet dhcp

#auto xenbr0(为实现networking的)
#iface xenbr0 inet dhcp
#	bridge_ports wlp2s0

ifconfig 信息如下:
Xen pv实践及问题记录_第5张图片

  • Domain1 IP: 192.168.199.123/255.255.255.0
    具体信息如下
    Xen pv实践及问题记录_第6张图片
    网桥xenbr0: 192.168.199.xx,xenbr0正常(btctl show)。
    bridge
    Domain0和Domain1的networking服务必须都正常运行。
    networking
    最后的效果:采用网桥连接后,Domain0/1无法上网,可以互相ping通。把网桥地址随便改变后(不在同一子网),Domain0可以重新上网,Domain之间无法ping通。

其他的可能发生的问题

  1. 系统启动的时候raise network interface 5min,等待太久,调整networking服务的配置信息[^4],
vi /etc/systemd/system/network-online.target.wants/networking.service

调整里面TimeoutStart,这里不要调太小了,比如几秒,否则就是真的timeout导致设备无法加载启动了。

  1. 【未解决】LSB: Xen-daemon 启动失败
    通过systemctl status xen查看得到由于qemu-system-i386的一个操作不支持导致Xen-daemon无法启动,这个问题还**没有找到**解决办法。
    Xen pv实践及问题记录_第7张图片

常见命令参考

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

参考

  1. 使用xen-tools在Ubuntu18中安装Xen PV 虚拟机
  2. 在Ubuntu上将Wifi桥接到以太网无法正常工作
  3. How to bridge a wireless interface with another wireless interface (both on the same computer)?
  4. debian:A start job is running for Raise network interfaces(ns/5min 3s)
  5. Xen Project Beginners Guide

你可能感兴趣的:(虚拟化,操作系统)