ARM架构下的QEMU/KVM虚拟化问答
1. NAT与MACVTAP的区别:
o NAT用于虚拟机通过宿主机网络访问互联网(三层IP层),隐藏内部网络结构。
o MACVTAP( "MAC Virtual Tap")允许虚拟机直接在物理网络上通信(二层MAC层),提供独立的MAC地址,适用于需要高性能网络的场景。设计初衷是实现虚拟机间的网络通信(在Virtual Machine Manager里面配置时提示:在多数配置中,macvtap不能为主机到客户机的网络通信工作)。
2. 虚拟机网络配置:
o 在Virtual Machine Manager中,选择网桥(br0)作为虚拟机的网络类型,使虚拟机通过宿主机的网桥连接到外部网络。虚拟机内部的网络配置和进入linux配置网络是一样的。
o 宿主机部分的配置
o 安装bridge-utils包、sudo brctl addbr br0、sudo ifconfig br0 up、sudo ifconfig eth0 down、sudo brctl addif br0 eth0(或者:sudo ip link set dev eth0 master br0)、设置网桥的IP和网关:ip addr add 192.168.1.2/24 dev br0、sudo route add default gw 192.168.1.1 br0。将eth0、br0都up,如果没有up的话。
o 修改ifcfg-br0配置文件(重启后也生效)
确保br0在系统启动时被激活,将ONBOOT设置为yes。
添加DEVICE和TYPE行,以确保配置文件被正确识别为网桥设备。并添加DNS服务器信息。
o 修改ifcfg-enp125s0f0配置文件
添加BRIDGE参数,指定该接口应该加入的网桥名称。
由于enp125s0f0将加入网桥,不需要为它单独设置IPADDR、NETMASK和GATEWAY,这些将由网桥br0管理。BOOTPROTO参数指定了网络接口在启动时获取IP地址的方式none。DEFROUTE参数决定了是否为该网络接口启用默认路由no。
o 重启NetworkManager服务进行配置文件验证。
3. 扩展虚拟机磁盘文件:
o 使用qemu-img resize命令将虚拟机磁盘文件从40G扩展到100G,然后扩展虚拟机内的lvm和文件系统以使用新增空间。sudo qemu-img resize /var/lib/libvirt/images/kylin10.0_vm1.qcow2 +60G
o BIOS Vendor ID: QEMU 这表明虚拟机的BIOS是由QEMU提供的。QEMU是一个开源的虚拟化工具,它可以模拟不同的处理器架构和硬件设备,包括BIOS。在这里,"QEMU"是虚拟机BIOS的供应商标识符,意味着BIOS是QEMU虚拟化软件的一部分,而不是传统意义上由主板制造商提供的固件。
4. 复制虚拟机:
o 使用virt-clone工具复制虚拟机磁盘和配置,然后使用virt-sysprep工具重置/清除新虚拟机磁盘的系统配置,如执行历史等。virt-clone -o kylin10.0_vm1 --auto-clone -n kylin10.0_vm25、virt-sysprep -d kylin10.0_vm25(但存在虚拟机内ifcfg-*配置文件的MAC地址未更新的问题(该MAC行删除即可)、以及配置第一次启动命令来修改IP地址不支持Kylin、可采用virt-sysprep的运行脚本方式来对IP做修改替换)
5. HW-SAS3508磁盘阵列卡:
o 询问了价格和性能。基于MegaRAID架构的8端口12Gbit/s SAS控制器,采用PCIe 3.0 x8接口。
6. pvcreate命令无法在/dev/sda上创建物理卷:Device /dev/sda excluded by a filter.
o 讨论了可能的原因,包括设备过滤、设备状态和配置问题。global_filter用于系统级设备过滤,types指定LVM处理的设备类型。讨论了使用lvmdiskscan命令来检查设备类型的方法。
o 创建/dev/sda1分区并成功创建物理卷、前面不成功可能因为有签名
o 创建了一个新分区 1,类型为“Linux filesystem”,大小为 9.1 TiB。 分区 #1 包含一个 vfat 签名。 您想移除该签名吗?是[Y]/否[N]:y 写入命令将移除该签名。 1 分区上的文件系统/RAID 签名将被擦除。
o 因为LVM需要一个“干净”的分区,没有任何文件系统签名,以便它可以在分区上创建自己的物理卷。
o 12个9T的磁盘,是不是应该做一个RAID的,现在我把其中一个/dev/sda分区了并加入了lvm,是不是破坏了原来的设计用途?
7. UEFI(Unified Extensible Firmware Interface)启动的虚拟机不支持内部快照的问题:internal snapshots of a VM with pflash based firmware are not supported、/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw
o UEFI提供了图形用户界面、更快的启动速度、安全启动、支持更大的硬盘、以64位模式运行等改进。主机系统上安装了OVMF(开放虚拟机固件)包。OVMF是QEMU虚拟机的Intel TianoCore固件的一部分,用于支持UEFI启动。
o BIOS使用文本界面、启动速度较慢、不支持安全启动、最大支持2TB硬盘、以16位模式运行。
o UEFI启动的虚拟机不支持内部快照的主要原因是,内部快照需要能够对虚拟机的固件(如pflash)进行快照(为什么?快照不是针对虚拟机磁盘吗?UEFI固件应该是在主板上吧),而UEFI固件的存储方式与BIOS不同,它使用的是变量存储(如Efi Variables),这些变量存储不支持内部快照。此外,UEFI固件的复杂性和启动流程的不同也导致了内部快照的不支持。
o 存储位置:
外部快照:快照数据存储在虚拟机的外部文件中,通常是一个新的qcow2文件,原磁盘文件成为新文件的backing file(只读)。
内部快照:快照数据存储在虚拟机磁盘文件内部,通常与虚拟机的磁盘文件是同一个文件。
o 使用virsh snapshot-create-as命令创建快照。virsh snapshot-create-as --domain kylin10.0_vm1 --name kylin10.0_vm1_snapshot1 --disk-only、virsh domblklist kylin10.0_vm1
o libvirt不支持直接删除外部快照(也包括恢复 revert),需手动删除快照文件和元数据。
o 讨论了外部快照的局限性和不便之处,包括管理复杂性、恢复操作的复杂性、存储空间的占用、性能影响和数据一致性问题。
8. 切换到BIOS启动的操作步骤:
o 编辑虚拟机XML配置文件,移除UEFI相关配置,添加BIOS配置,然后重启虚拟机。不能成功。
o 重新创建虚拟机,安装前自定义配置、固件不选择UEFI,而选择空,也不能安装:“不支持的配置:ACPI requires UEFI on this architecture”
o 有一种可能是,ARM架构下只支持UEFI、不支持BIOS?
o 查看dmesg输出或操作系统内部信息确认启动模式。
cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.19.90-89.11.v2401.ky10.aarch64 root=/dev/mapper/klas-root ro rd.lvm.lv=klas/root rd.lvm.lv=klas/swap video=VGA-1:640x480-32@60me rhgb quiet console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off audit=0
dmesg
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: EFI v2.70 by EDK II
[ 0.000000] efi: SMBIOS 3.0=0x83bed0000 MEMATTR=0x83a907018 ACPI 2.0=0x8384f0018 MEMRESERVE=0x838400a18
- 点赞
- 收藏
- 关注作者
评论(0)