一、引言
随着数字化转型的加速,云计算与虚拟化技术已成为企业 IT 架构的核心支撑。本文基于实战课程内容,详细讲解虚拟化技术原理、Linux 虚拟化平台搭建、虚拟机管理实践及云计算核心概念,适合云计算初学者快速入门并掌握实操技能。
二、虚拟化技术基础
2.1 虚拟化技术定义
虚拟化技术是将物理硬件资源抽象为逻辑资源的技术,通过资源的隔离、整合与动态分配,实现硬件利用率最大化。其核心价值在于:
- 打破物理资源的不可拆分性
- 实现资源的按需分配与动态调整
- 提高 IT 基础设施的灵活性与扩展性
2.2 主流虚拟化技术产品
厂商 | PC / 服务器版代表产品 | 特点 |
---|---|---|
VMware | Workstation、vSphere | 功能全面,企业级解决方案成熟 |
Microsoft | VirtualPC、Hyper-V | 与 Windows 系统兼容性佳 |
RedHat | KVM、RHEV | 开源免费,Linux 系统原生支持 |
Citrix | Xen | 性能优异,支持多种虚拟化场景 |
Oracle | VM VirtualBox | 轻量易用,跨平台支持好 |
三、云计算核心概念
3.1 虚拟化与云计算的关系
- 虚拟化是技术手段:实现物理资源到逻辑资源的转化
- 云计算是服务模式:基于虚拟化技术提供资源租赁服务
- 核心逻辑:通过虚拟化技术将 CPU、内存、存储等资源池化,再以服务形式按需分配给用户
3.2 云计算服务模式
-
IaaS(基础设施即服务)
- 提供底层计算、存储、网络等基础资源
- 典型应用:弹性云服务器、对象存储服务
-
PaaS(平台即服务)
- 包含基础设施 + 开发运行环境
- 典型应用:数据库服务、容器平台
-
SaaS(软件即服务)
- 直接提供应用软件服务
- 典型应用:在线办公软件、CRM 系统
四、Linux 虚拟化平台搭建实战
实验主机:
主机名称 | IP地址 | 配置 |
---|---|---|
ecs | 192.168.88.125 | 2 CPU, 4G mem |
实验图例:
4.1 虚拟化支持验证
Windows 系统验证
使用 SecurAble 工具检测 CPU 是否支持虚拟化:
- 需同时满足 "Hardware Virtualization" 为 "Yes"
Linux 系统验证
通过命令检测 CPU 虚拟化指令集:
[root@ecs ~]#
grep -Po "vmx|svm" /proc/cpuinfo
# 输出vmx(Intel)或svm(AMD)表示支持
4.2 安装 KVM 虚拟化平台
内核模块管理命令
命令 | 命令描述 |
---|---|
lsmod | 查看已经加载的内核模块 |
modprobe | 加载一个内核模块 |
sysctl | 设置内核参数 |
rmmod | 卸载内核模块 |
安装核心组件
[root@ecs ~]# dnf install -y \
qemu-kvm \ # 虚拟化仿真程序
libvirt-daemon \ # 核心守护进程
libvirt-client \ # 客户端工具
libvirt-daemon-driver-qemu \ # QEMU管理模块
libvirt-daemon-driver-network \ # 网络管理模块
dnsmasq # DHCP/DNS服务
启动并验证服务
# 启动服务并设置开机自启
[root@ecs ~]# systemctl enable --now libvirtd
# 验证KVM模块加载
[root@ecs ~]# lsmod | grep kvm
# 输出包含kvm_intel/kvm_amd表示加载成功
# 验证libvirt版本
[root@ecs ~]# virsh version
五、虚拟机管理实践
5.1 虚拟网络配置(网桥创建)
1. 创建网桥配置文件
# 官网手册: https://libvirt.org/docs.html
[root@ecs ~]# vim /etc/libvirt/qemu/networks/vbr.xml
<!-- /etc/libvirt/qemu/networks/vbr.xml -->
<network>
<name>vbr</name>
<forward mode='nat'/>
<bridge name='vbr' stp='on' delay='0'/>
<ip address='192.168.10.254' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.100' end='192.168.100.200'/>
</dhcp>
</ip>
</network>
2. 网桥管理命令
命令 | 命令描述 |
---|---|
virsh net-list [--all] | 列出虚拟网络 |
virsh net-start | 启动虚拟网络设备 |
virsh net-destroy | 停止虚拟网络设备 |
virsh net-define | 根据 xml 文件创建虚拟网络 |
virsh net-undefine | 删除一个虚拟网络设备 |
virsh net-edit | 修改虚拟网络设备的配置 |
virsh net-autostart | 设置开机自启动 |
# 定义网桥
[root@ecs ~]# virsh net-define /etc/libvirt/qemu/networks/vbr.xml
# 启动网桥
[root@ecs ~]# virsh net-start vbr
# 设置开机自启
[root@ecs ~]# virsh net-autostart vbr
# 查看状态
[root@ecs ~]# virsh net-list --all
5.2 虚拟磁盘管理
cow图例
将原始盘数据拷贝到前端盘,用户的写操作通过数据指针对前端盘中的数据进行修改。
qemu-img是虚拟机的磁盘管理命令,支持raw,qcow2,vdi,vmdk等格式。
格式:qemu-img 子命令 (create、info) 子命令参数 块文件名称 大小
1. 创建 COW (写时复制技术)格式磁盘(qcow2)
# 创建20G大小的qcow2格式磁盘
[root@ecs ~]# qemu-img create -f qcow2 disk.img 20G
# 查看磁盘信息
[root@ecs ~]# qemu-img info disk.img
2. 创建链接克隆(基于已有镜像)
# 基于cirros.qcow2创建链接克隆
[root@ecs ~]#qemu-img create -F qcow2 -b cirros.qcow2 -f qcow2 vmhost.img 20G
提示:COW(写时拷贝)技术通过指针指向原始盘,仅在数据修改时复制,节省存储空间并支持快照功能。
5.3 虚拟机创建完整流程
1. 编写虚拟机配置文件
[root@ecs ~]# vim vmbase.xml
<!-- /etc/libvirt/qemu/vmhost.xml -->
<domain type='kvm'>
<name>vmhost</name>
<memory unit='KB'>1048576</memory>
<currentMemory unit='KB'>1048576</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc'>hvm</type>
<boot dev='hd'/>
</os>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/vmhost.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='bridge'>
<source bridge='vbr'/>
<model type='virtio'/>
</interface>
</devices>
</domain>
2. 虚拟机管理命令
# 定义虚拟机
[root@ecs ~] virsh define /etc/libvirt/qemu/vmhost.xml
# 启动虚拟机
[root@ecs ~] virsh start vmhost
# 查看虚拟机列表
[root@ecs ~] virsh list --all
# 连接虚拟机控制台
[root@ecs ~] virsh console vmhost # 退出按Ctrl+]
命令 | 命令描述 |
---|---|
virsh edit | 修改虚拟机的配置 |
virsh autostart | 设置虚拟机自启动 |
virsh dominfo | 查看虚拟机摘要信息 |
virsh domiflist | 查看虚拟机网卡信息 |
virsh domblklist | 查看虚拟机硬盘信息 |
命令 | 命令描述 |
---|---|
virsh list [--all] | 列出虚拟机 |
virsh start/shutdown | 启动/关闭虚拟机 |
virsh destroy | 强制停止虚拟机 |
virsh define/undefine | 创建/删除虚拟机 |
virsh console | 连接虚拟机的 console |
六、云服务模式与部署架构
6.1 云部署模型对比
部署模型 | 特点 | 适用场景 |
---|---|---|
公有云 | 第三方提供,按需付费,共享资源 | 初创企业、临时项目、互联网应用 |
私有云 | 企业专属,部署在内部网络 | 金融、政务、对数据安全要求高的场景 |
混合云 | 结合公有云与私有云优势 | 业务弹性伸缩、灾备方案、多云协同 |
6.2 远程管理工具
- Windows 远程:RDP(端口 3389)
- Linux 远程:SSH(端口 22),推荐工具:Xshell、MobaXterm、PuTTY
七、总结与实践建议
- 核心收获:掌握虚拟化技术原理、Linux 虚拟化平台搭建、虚拟机全生命周期管理
- 实践技巧:
- 多动手操作命令,熟悉 virsh 与 qemu-img 工具
- 理解 XML 配置文件结构,学会自定义虚拟机资源
- 尝试不同磁盘格式(raw/qcow2)的性能对比
- 进阶方向:学习容器技术(Docker/K8s)与虚拟化的协同应用,深入理解云原生架构