CentOS KVM 虚拟机部署与管理指南
KVM(Kernelbased Virtual Machine)是一套开源的系统虚拟化模块,自Linux 2.6.20起集成在主线内核中,它使用Linux自身的调度器进行管理,因此相对于Xen等其他虚拟化解决方案,其核心源码更少,KVM需要硬件支持,如Intel VT技术或AMDV技术,本文将详细介绍如何在CentOS环境下部署KVM并创建虚拟机,包括安装必要的软件包、配置网络以及管理虚拟机的基本操作。
实验环境
1、操作系统:CentOS 7.9
2、CPU:支持虚拟化技术(Intel VTx 或 AMDSVM)
3、内存:至少2GB(建议更多以提升性能)
4、硬盘空间:足够的空间存放虚拟机镜像文件及系统文件
5、网络:桥接模式(Bridge)或NAT模式
部署KVM
1、检查CPU是否支持虚拟化
命令:grep E '(vmx|svm)' /proc/cpuinfo
结果:如果输出包含vmx
或svm
字样,说明CPU支持虚拟化。
2、关闭防火墙和SELinux
停止并禁用防火墙:
systemctl stop firewalld systemctl disable firewalld
临时关闭SELinux:
setenforce 0 vim /etc/sysconfig/selinux # 修改为 SELINUX=disabled
3、查看是否加载KVM模块
命令:lsmod | grep kvm
加载KVM模块(如未加载):
modprobe kvm modprobe kvmintel # 对于Intel CPU
4、清理环境
如果之前安装过kvm,先卸载旧版本:
yum removerpm qa | egrep 'qemu|virt|kvm'
y
rm rf /var/lib/libvirt /etc/libvirt/
5、安装KVM相关软件包
命令:yum install y qemukvm qeMUImg virtmanager libvirt libvirtpython virtinstall bridgeutils
解释:
qemukvm
:主要的KVM程序包
qemuimg
:用于创建和管理磁盘镜像
virtmanager
:GUI虚拟机管理工具
libvirt
:C语言工具包,提供libvirt服务
virtinstall
:基于libvirt服务的虚拟机创建命令
bridgeutils
:创建和管理桥接设备的工具
6、启动并设置libvirtd开机自启动
命令:
systemctl start libvirtd systemctl enable libvirtd
创建虚拟机
1、准备ISO镜像文件
下载CentOS镜像文件到宿主机的目录,例如/home/iso
,可以使用wget命令下载:
wget http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS7x86_64Minimal1804.iso P /home/iso/
2、创建虚拟机存储目录
创建目录存放虚拟机镜像文件:
mkdir p /data/kvmimages
3、使用virtinstall创建虚拟机
命令:
virtinstall \ name centos7 \ vcpus 2 \ memory 2048 \ location /home/iso/CentOS7x86_64Minimal1804.iso \ disk path=/data/kvmimages/centos7.qcow2,size=20 \ network bridge=virbr0 \ graphics none \ extraargs 'console=ttyS0' \ force
参数解析:
name
:虚拟机名称
vcpus
:分配的虚拟CPU数量
memory
:内存大小(单位MB)
location
:CentOS ISO文件路径
disk
:虚拟机硬盘文件路径及大小(格式qcow2)
network
:网络类型(桥接模式virbr0)
graphics none
:不启用图形界面
extraargs
:控制台参数
4、连接到虚拟机控制台开始安装操作系统
启动虚拟机并连接控制台:
virsh start centos7 virsh console centos7
按屏幕提示完成CentOS的安装过程。
管理虚拟机
1、常用virsh命令
列出所有虚拟机:virsh list all
显示虚拟机信息:virsh dominfo <vm_name>
显示虚拟机内存和CPU使用情况:virsh top <vm_name>
关闭虚拟机:virsh shutdown <vm_name>
启动虚拟机:virsh start <vm_name>
设置虚拟机跟随系统自启:virsh autostart <vm_name>
删除虚拟机:virsh undefine <vm_name>
2、远程管理KVM虚拟机
通过virtmanager可以远程管理其他宿主机上的KVM虚拟机,只需添加其他Host连接信息并连接即可,可能需要安装额外的插件,如opensshaskpass或similar。
FAQs(常见问题解答)
1、Q: 为什么虚拟机无法启动,提示不支持嵌套虚拟化?
A: 这个问题通常是由于Windows主机开启了虚拟化驱动支持,解决方法是在“启用或关闭Windows功能”中取消勾选HyperV选项。
2、Q: 如何增加虚拟机的磁盘空间?
A: 可以通过以下步骤增加虚拟机磁盘空间:
1. 关闭虚拟机电源。
2. 使用qemuimg命令增加磁盘文件大小:
qemuimg resize /data/kvmimages/centos7.qcow2 +10G
3. 重启虚拟机并扩展操作系统内的逻辑卷。