CentOS下配置虚拟机(基于KVM)的详细步骤
在开始配置前,需确认CPU是否支持硬件辅助虚拟化(Intel VT-x/AMD-V)。执行以下命令检查:
grep -E --color 'vmx|svm' /proc/cpuinfo
若输出中包含vmx(Intel)或svm(AMD),则支持虚拟化;若无输出,需进入BIOS开启虚拟化功能(通常位于“Advanced”→“Virtualization Technology”)。
通过YUM包管理器安装KVM核心组件、虚拟化管理工具及网络桥接工具:
sudo yum install -y qemu-kvm libvirt libvirt-python virt-install bridge-utils virt-manager
安装完成后,加载KVM内核模块并验证是否加载成功:
sudo modprobe kvm
lsmod | grep kvm # 应输出kvm_intel(Intel CPU)或kvm_amd(AMD CPU)
libvirtd是KVM虚拟化管理守护进程,需启动并设置开机自启:
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
验证服务状态:
sudo systemctl status libvirtd # 应显示“active (running)”
为使虚拟机直接接入物理网络(与宿主机同网段),需配置桥接网络。编辑物理网卡配置文件(如eth0,需替换为实际网卡名):
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加以下内容(保留原有IP、网关等配置,添加BRIDGE=br0):
BRIDGE=br0
创建桥接接口配置文件ifcfg-br0:
sudo vi /etc/sysconfig/network-scripts/ifcfg-br0
填入以下内容(以DHCP为例,静态IP需调整IPADDR、NETMASK等参数):
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
重启网络服务使配置生效:
sudo systemctl restart network
验证桥接是否成功:
brctl show # 应显示br0桥接接口及绑定的物理网卡(如eth0)
使用virt-install命令创建虚拟机(以CentOS 7为例),关键参数说明:
--name:虚拟机名称(如my_vm);--ram:内存大小(单位:MB,如2048表示2GB);--disk:虚拟磁盘路径及大小(如path=/var/lib/libvirt/images/my_vm.qcow2,size=10表示10GB的qcow2格式磁盘);--vcpus:CPU核心数(如2);--os-type:操作系统类型(linux);--os-variant:操作系统变体(如centos7.0,需匹配ISO版本);--network:网络模式(bridge=br0表示桥接,network=default表示NAT);--graphics:图形界面(none表示无图形,需通过串口控制台;spice表示图形化安装);--location:ISO镜像路径(如/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2207.iso);--extra-args:安装参数(console=ttyS0,115200n8 serial表示启用串口控制台)。完整命令示例:
sudo virt-install \
--name my_vm \
--ram 2048 \
--disk path=/var/lib/libvirt/images/my_vm.qcow2,size=10 \
--vcpus 2 \
--os-type linux \
--os-variant centos7.0 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2207.iso \
--extra-args "console=ttyS0,115200n8 serial"
执行后会启动虚拟机安装界面,通过串口控制台完成CentOS安装(按提示设置语言、时区、root密码等)。
安装完成后,使用virsh命令管理虚拟机:
sudo virsh list --all
sudo virsh start my_vm
sudo virsh shutdown my_vm
sudo virsh destroy my_vm
sudo virsh undefine my_vm # 删除虚拟机定义(保留磁盘文件)
rm -f /var/lib/libvirt/images/my_vm.qcow2 # 删除磁盘文件(可选)
sudo virsh console my_vm
输入后按Ctrl+]退出控制台。若需创建多个相同配置的虚拟机,可通过克隆现有虚拟机的磁盘和配置文件实现:
cp /var/lib/libvirt/images/my_vm.qcow2 /var/lib/libvirt/images/my_vm_clone.qcow2
cp /etc/libvirt/qemu/my_vm.xml /etc/libvirt/qemu/my_vm_clone.xml
sed -i 's/my_vm/my_vm_clone/g' /etc/libvirt/qemu/my_vm_clone.xml # 替换名称
sed -i '/uuid/d' /etc/libvirt/qemu/my_vm_clone.xml # 删除UUID(自动生成)
sed -i '/mac address/d' /etc/libvirt/qemu/my_vm_clone.xml # 删除MAC地址(自动生成)
sudo virsh define /etc/libvirt/qemu/my_vm_clone.xml
sudo virsh start my_vm_clone
sudo virsh edit my_vm
找到<disk type='file' device='disk'>节点,添加cache='writeback'属性:<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
...
</disk>
virsh edit my_vm中添加:<cpu mode='host-passthrough' check='none'/>
通过以上步骤,即可在CentOS上完成KVM虚拟机的配置与管理。根据实际需求,可进一步调整网络(如配置NAT、端口转发)、存储(如使用LVM逻辑卷)或安全(如SELinux、防火墙)设置。