openEuler 24.03 (LTS-SP2)简单KVM安装+桥接模式
华为文档创建虚拟机步骤
配置bios支持虚拟化
2、检查系统是否支持虚拟化
3、安装虚拟化相关组件,并启动
yum install -y qemu virt-install virt-manager libvirt-daemon-qemu edk2-aarch64.noarch virt-viewer
systemctl start libvirtd
systemctl enable libvirtd
4、创建桥接网络接口并配置网桥
为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux网桥、Open vSwitch网桥等多种类型的网桥。如图所示,数据传输路径为“虚拟机 -> 虚拟网卡设备 -> Linux网桥或Open vSwitch网桥 -> 物理网卡”。创建网桥,除了为虚拟机配置虚拟网卡设备外,为主机创建网桥是连接虚拟化网络的关键。
本节给出搭建Linux网桥和Open vSwitch网桥的方法,使虚拟机连接到网络,用户可以根据情况选择搭建网桥的类
搭建Linux网桥
以物理网卡eth0绑定到Linux网桥br0的操作为例,使用root用户执行如下命令搭建Linux网桥:
确保已安装 bridge-utils,用于管理网络桥接
yum -y install bridge-utils
配置物理接口 enp125s0f1
cp /etc/sysconfig/network-scripts/ifcfg-enp125s0f0 .
echo 'DEVICE=enp125s0f0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0'>/etc/sysconfig/network-scripts/ifcfg-enp125s0f0
配置桥接接口 br0
echo 'DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.8.60
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=114.114.114.114
DNS2=8.8.8.8'>/etc/sysconfig/network-scripts/ifcfg-br0
重启网卡
sudo systemctl restart NetworkManager
4、创建虚拟化磁盘
[root@localhost ~]# ls /mnt/
[root@localhost ~]# mkdir -p /mnt/data/vm/images/
[root@localhost ~]# virsh pool-define-as vmPool --type dir --target /mnt/data/vm/images/
定义池 vmPool
[root@localhost ~]# virsh pool-build vmPool
构建池 vmPool
[root@localhost ~]# virsh pool-start vmPool
池 vmPool 已启动
[root@localhost ~]# virsh pool-autostart vmPool
池 vmPool 标记为自动启动
5、准备虚拟机配置文件
创建虚拟机需要虚拟机配置文件。假设配置文件为 master.xml ,以虚拟机 hostname 为 k8smaster0 的节点为例,参考配置如下:
vim /mnt/data/vm/xml/master0.xml
关键修改项(确保每个虚拟机唯一):
由于虚拟机相关配置必须唯一,新增虚拟机需要适配修改如下内容,保证虚拟机的唯一性:
● name:虚拟机 hostname,建议尽量小写。例中为 k8smaster0
● nvram:nvram的句柄文件路径,需要全局唯一。例中为 /var/lib/libvirt/qemu/nvram/k8smaster0.fd
● disk 的 source file:虚拟机磁盘文件路径。例中为 /mnt/vm/images/master0.img
● interface 的 mac address:interface 的 mac 地址。例中为 52:54:00:00:00:80 要每台都不一样吧
● 37 行:切换成桥接模式,关联桥接网卡
<domain type='kvm'><name>k8smaster0</name><memory unit='GiB'>8</memory><vcpu>8</vcpu><os><type arch='aarch64' machine='virt'>hvm</type><loader readonly='yes' type='pflash'>/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw</loader><nvram>/var/lib/libvirt/qemu/nvram/k8smaster0.fd</nvram></os><features><acpi/><gic version='3'/></features><cpu mode='host-passthrough'><topology sockets='2' cores='4' threads='1'/></cpu><iothreads>1</iothreads><clock offset='utc'/><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>restart</on_crash><devices><emulator>/usr/libexec/qemu-kvm</emulator><disk type='file' device='disk'><driver name='qemu' type='qcow2' iothread="1"/><source file='/mnt/data/vm/images/master0.img'/><target dev='vda' bus='virtio'/><boot order='1'/></disk><disk type='file' device='cdrom'><driver name='qemu' type='raw'/><source file='/mnt/data/vm/iso/openEuler-24.03-LTS-SP2-aarch64-dvd.iso'/><readonly/><target dev='sdb' bus='scsi'/><boot order='2'/></disk><interface type='bridge'><mac address='52:54:00:00:00:80'/><source bridge='br0'/><model type='virtio'/></interface><console type='pty'/><video><model type='virtio'/></video><controller type='scsi' index='0' model='virtio-scsi'/><controller type='usb' model='ehci'/><input type='tablet' bus='usb'/><input type='keyboard' bus='usb'/><graphics type='vnc' listen='0.0.0.0'/></devices><seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>
6、创建并启动虚拟机
virsh define master0.xml
virsh list --all
virsh start master0
获取vnc端口号
ss -anpt|grep qemu-kvm
五、VNC连接创建好的虚拟机并安装系统
因为 centos7 默认网卡发生改变,我们需要修改内核参数,使用 eth0 作为网卡
配置虚拟机静态IP
echo 'TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=enp3s0
UUID=91f1574f-e9f1-413a-8a92-52a25dc4005d
DEVICE=enp3s0
ONBOOT=yes
IPADDR=192.168.8.61
NETMASK=255.255.255.0
GATEWAY=192.168.8.1'>/etc/sysconfig/network-scripts/ifcfg-enp3s0