提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 1. 虚拟化技术概述
- 2. 企业常用虚拟化解决方案
- vSphere
- KVM
- 3. KVM组件与安装
- 4. 创建Ubuntu虚拟机
- 5. 使用virsh命令
前言
1. 虚拟化技术概述
- VMX支持:说明VMX是CPU虚拟化的功能,只有物理机支持,虚拟机无法使用。
- 软件虚拟化:介绍QEMU作为软件虚拟化选项,强调其性能不足,适合测试环境。
2. 企业常用虚拟化解决方案
vSphere
- 每台物理机安装ESXi(基于Linux),过程简单,只需设置管理密码。
- vCenter是管理平台,安装较复杂,需要配置数据库和网络设置,提供集中管理、监控和自动化功能。
- 依赖安装:Windows环境下需安装vCenter Server,通常需要配置外部数据库(如PostgreSQL、Oracle)。
KVM
- KVM集成在Linux内核中,需支持硬件虚拟化的CPU。
- QEMU负责磁盘、声卡等设备的虚拟化,Libvirt提供命令行和API接口,简化管理。
3. KVM组件与安装
- 关键软件包:
qemu-kvm
:主虚拟化组件。libvirt-daemon
:管理守护进程。libvirt-client
:命令行工具。libvirt-daemon-driver-qemu
:QEMU驱动。
4. 创建Ubuntu虚拟机
ubuntu 镜像官方下载
- 创建虚拟硬盘:
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-vm.qcow2 20G
- 准备XML配置文件(
ubuntu-vm.xml
):<domain type='kvm'> <name>ubuntu-vm</name> <memory unit='KiB'>2048000</memory> <vcpu placement='static'>2</vcpu> <os> <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type> <boot dev='cdrom'/> </os> <devices> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/ubuntu-vm.qcow2'/> <target dev='vda' bus='virtio'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/path/to/ubuntu.iso'/> <target dev='hdc' bus='ide'/> </disk> <interface type='network'> <source network='default'/> <model type='virtio'/> </interface> </devices> </domain>
- 定义并启动虚拟机:
virsh define ubuntu-vm.xml virsh start ubuntu-vm
5. 使用virsh命令
- 基本命令:
- 查看虚拟机列表:
virsh list
- 查看所有虚拟机:
virsh list --all
- 启动虚拟机:
virsh start <虚拟机名称>
- 关闭虚拟机:
virsh shutdown <虚拟机名称>
- 强制关闭虚拟机(非必要不要这么做):
virsh destroy <虚拟机名称>
- 重新启动虚拟机:
virsh reboot <虚拟机名称>
- 查看虚拟机列表:
- 虚拟机管理:
- 定义虚拟机(基于XML文件):
virsh define <xml文件路径>
- 删除虚拟机:
virsh undefine <虚拟机名称>
- 克隆虚拟机:
virsh clone --original <原虚拟机名称> --name <新虚拟机名称>
- 定义虚拟机(基于XML文件):
- 查看和监控:
- 查看虚拟机状态:
virsh dominfo <虚拟机名称>
- 查看虚拟机的 CPU 使用情况:
virsh cpu-stats <虚拟机名称>
- 查看虚拟机的内存使用情况:
virsh dommemstat <虚拟机名称>
- 查看虚拟机状态:
- 网络和存储:
- 列出网络接口:
virsh net-list --all
- 列出存储池:
virsh pool-list --all
- 列出网络接口:
- 控制台访问:
- 连接到虚拟机控制台:
virsh console <虚拟机名称>
- 连接到虚拟机控制台:
- 导入和导出:
- 导出虚拟机:
virsh dumpxml <虚拟机名称> > <文件名>.xml
- 从XML文件导入虚拟机:
virsh define <文件名>.xml
- 导出虚拟机: