Centos7.9安装配置KVM虚拟化
libvirt-python:libvirt库的Python 绑定,在Python中使用 libvirt 的功能,包括对虚拟机、存储池、网络等资源的管理,以及对虚拟化宿主机的监控和控制。libguestfs-tools:虚拟机镜像管理工具,包括virt-cat、virt-edit、virt-ls、virt-rescue。qemu-kvm:即qemu+kvm,kvm负责cpu和内存的虚拟化,而qem
Centos7.9安装配置KVM虚拟化
记录在操作系统CentOS7.9配置安装KVM虚拟化。系统采用最小化安装,配置了国内镜像源。
安装环境:
Intel CPU + Windows 10 + Workstation
1. KVM虚拟化安装
1.1 检查硬件是否支持
egrep -c '(vmx|svm)' /proc/cpuinfo
如果输出的数字大于 0,则表示CPU 支持虚拟化。
如果是物理机,需要在bios中开启Inter VT-x或AMD-V/RVI。如果是使用vmware workstation等虚拟化软件,需要打开虚拟机的嵌套虚拟化:
1.2 安装kvm软件包
# 安装KVM虚拟化及管理工具
sudo yum install qemu-kvm libvirt libvirt-client virt-install bridge-utils libguestfs-tools virt-manager virt-viewer
# 安装python API(可选)
sudo yum install libvirt-python
说明:
- qemu-kvm:即qemu+kvm,kvm负责cpu和内存的虚拟化,而qemu负责IO设备,如网卡和磁盘等的虚拟化。
- libvirt:KVM管理工具,为不同的虚拟机监视器提供了统一的接口
- libvirt-client:包含了一组用于与 libvirt 库交互的命令行工具
- virt-install:用于guestos安装,包括virsh,virt-clone等工具
- bridge-utils:配置网桥
- libguestfs-tools:虚拟机镜像管理工具,包括virt-cat、virt-edit、virt-ls、virt-rescue
- virt-manager:图形界面管理KVM虚拟化
- virt-viewer:用于虚拟机控制台
- libvirt-python:libvirt库的Python 绑定,在Python中使用 libvirt 的功能,包括对虚拟机、存储池、网络等资源的管理,以及对虚拟化宿主机的监控和控制
1.3 启用和启动 libvirtd 服务
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
sudo systemctl status libvirtd
# 检查kvm内核模块
$ lsmod | grep kvm
kvm_intel 188740 0
kvm 637515 1 kvm_intel
irqbypass 13503 1 kvm
1.4 添加用户到 libvirt 组
sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $USER
$ id
uid=1000(test) gid=1000(test) groups=1000(test),10(wheel),36(kvm),992(libvirt)
注意:修改组后,需要重新登录或注销再登录才能使更改生效。
1.5 创建网桥(br0)
如果你打算从本机(Centos7.9)之外访问 KVM 虚拟机,你必须将虚拟机的网卡映射至网桥。virbr0 网桥是 KVM 安装完成后自动创建的,仅做测试用途。
$ brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400ff2f20 yes virbr0-nic
# 关闭系统防火墙
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
# 关闭NetworkManager服务
$ sudo systemctl stop NetworkManager
$ sudo systemctl disable NetworkManager
# 桥接设备关联宿主机网卡
$ sudo virsh iface-bridge ens33 br0
Created bridge br0 with attached device ens33
Bridge interface br0 started
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c2937ae01 yes ens33
virbr0 8000.525400ff2f20 yes virbr0-nic
2. 创建和管理虚拟机
可以使用virt-manager,命令行,xml文件等方法创建。
本文中使用的宿主机环境为vmware虚拟机,需要在宿主机centos中开启嵌套虚拟化:
# 默认没有开启
$ cat /sys/module/kvm_intel/parameters/nested
N
# 重新加载kvm内核
$ sudo modprobe -r kvm_intel
$ sudo modprobe kvm_intel nested=1
# 再次查看
$ cat /sys/module/kvm_intel/parameters/nested
Y
2.1 使用virt-manager创建
使用命令行virt-manager启动:
创建虚拟机:
将系统iso上传到宿主机的/var/lib/libvirt/images,光驱文件选择iso:
设置cpu和内存:
设置存储,磁盘放置在default存储池中:
设置网络为br0网桥:
启动控制台开始安装系统。
2.2 使用xml文件创建
创建xml文件:
$ sudo vi testvm.xml
# xml内容如下
<domain type='kvm'>
<name>testvm</name>
<memory unit='MiB'>2048</memory>
<currentMemory unit='MiB'>2048</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
</os>
<devices>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/testvm.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/var/lib/libvirt/images/ubuntu-20.04.6-live-server-amd64.iso' index='1'/>
<backingStore/>
<target dev='sda' bus='sata'/>
</disk>
<interface type='bridge'>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
<graphics type="vnc" autoport="yes" keymap="en-us" listen="0.0.0.0"/>
</devices>
</domain>
xml内容的编写可以参考已有的虚拟机,使用virsh dumpxml <domain-id>可以生成虚拟机的xml文件。
创建虚拟磁盘:
# 创建10G大小的qcow2磁盘
$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/testvm.qcow2 10G
Formatting '/var/lib/libvirt/images/testvm.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
基于xml创建虚拟机:
$ sudo virsh define testvm.xml
Domain testvm defined from testvm.xml
$ sudo virsh list --all
Id Name State
----------------------------------------------------
- testvm shut off
$ sudo virsh start testvm
Domain testvm started
$ sudo virsh list --all
Id Name State
----------------------------------------------------
7 testvm running
# 查看虚拟机的vnc端口号
$ sudo virsh vncdisplay 7
:1
使用vnc客户端连接宿主机的IP+5901端口:
2.3 使用命令行创建
# 创建2c2g10G的虚拟机,磁盘为稀疏模式,格式为qcow2,总线类型为virtio。同启动一个串行终端打印输出
$ sudo virt-install --virt-type=kvm --name=ubuntu-test --vcpus=2 --memory=2048 --cdrom=/var/lib/libvirt/images/ubuntu-20.04.6-live-server-amd64.iso --disk path=/var/lib/libvirt/images/ubuntu-test.qcow2,size=10,format=qcow2,bus=virtio,sparse --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --force
后续步骤参考xml方式创建虚拟机,通过vnc连接虚拟机进行系统安装。
更多推荐
所有评论(0)