文章目录
1. KVM
目前常用的虚拟机技术主要有KVM、xen、vmware。
KVM是指基于Linux内核(Kernel-based)的虚拟机(Virtual Machine)。KVM最大的好处就在于它是与Linux内核集成的,所以速度很快。KVM的宿主操作系统必须是Linux,支持的客户机操作系统包括Linux、Windows、Solaris和BSD,运行在支持虚拟化扩展的x86和x86_64硬件架构上,cpu支持VT技术。
Xen是一个开放源代码虚拟机监视器,Xen的缺点是操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性),所以比较麻烦。使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。Linux的官方内核在较早之前已经去掉了对Xen的支持。
VMWare (Virtual Machine ware)是一个“虚拟PC”虚拟机管理管理软件。它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。
KVM、Xen、VMWare的对比如下表所示
是否开源 | 是否免费 | 性能 | 优缺点 | |
---|---|---|---|---|
KVM | 是 | 是 | 高 | 1.KVM是内核本身的一部分,因此可以利用内核的优化和改进。2.高性能, 稳定, 无需修改客户机系统。3.开源、免费 |
XEN | 是 | 是 | 高 | 1.性能较好。2.开源、免费 1.操作复杂,维护成本较高,目前已被RedHat抛弃 |
VMWare | 否 | 否 | 一般 | 1.相对比较成熟的商业软件,市场占有率较大 2.不开源,需要付费 |
1.1. 安装
1.1.1. 查看CPU是否支持KVM
输入:
egrep ‘vmx|svm’ /proc/cpuinfo --color=auto
可以看到grep出来的内容,就说明支持kvm
1.1.2. 通过yum进行安装
输入:
yum install -y qemu-kvm libvirt virt-install virt-manager virt-viewer
qemu-kvm: 为kvm提供底层仿真支持
libvirt: 使用最多的KVM虚拟化管理工具和应用程序接口,即通过libvirt调用KVM创建虚拟机, libvirt是KVM通用的访问API,其不但能管理KVM,还能管理VMware、Xen、Hyper-V、 virtualBox等虚拟化方案
virt-manager: 图形界面管理工具,其底层也是调用libvirt API来完成对虚拟机的操作,包括虚拟机的 创建、删除、启动、停止以及一些简单的监控功能等
virt-install: 虚拟机命令行安装工具
virt-viewer: 通过 VNC 和 SPICE 协议显示虚拟机器图形控制台的最小工具。该工具在其同名软件包 中:virtviewer
1.1.3. 启动并设置开机启动
systemctl start libvirtd
systemctl enable libvirtd
1.1.4. 创建ISO系统镜像存放目录
mkdir /iso
通过各种方法上传此目录安装镜像
1.2. 使用虚拟机
虚拟机是由两部分组成:硬件信息文件和硬盘文件
/etc/libvirt/qemu/虚拟机.xml ##虚拟机硬件信息文件
/var/lib/libvirt/images/虚拟机.qcow2 ##虚拟机硬盘文件
1.2.1. 图形化界面
1.2.1.1. virt-manager打开虚拟机管理器(宿主机桌面级别)
1.2.1.2. 安装web管理工具
1.2.2. 命令行
1.2.2.1. 新建虚拟机范本
virt-install \
-n kvm4 \
-r 4000 \
--vcpus 4 \
--disk /kvm3-xx/kvm4.qcow2,size=100,cache=none \
--location /iso/centos7.iso \
--nographics \
--network bridge=br0 \
--os-type linux \
--os-variant rhel7 \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial'
采用命令行安装方式,–nographics改为–graphics vnc,listen=0.0.0.0,port=5905可使用vnc工具图形安装
1.2.2.2. 安装命令解释
virt-install \ #创建命令
-n vm2 \ #虚拟机显示名(非虚拟机主机名)
-r 2048 \ #虚拟机内存大小
--vcpus 1 \ #虚拟机cpu个数
--disk /kvm/img/vm2.qcow2 \ #系统磁盘卷路径
--location /kvm/iso/centos7.iso \ #系统安装iso路径
--nographics \ #不调用图形化界面
--network bridge=br0 \ #网卡1指定网桥
--network bridge=br0 \ #网卡2指定网桥
--os-type linux \ #操作系统类型
--os-variant rhel7 \ #操作系统版本
--console pty,target_type=serial \ #console控制通道
--extra-args 'console=ttyS0,115200n8 serial' #文本输出
1.3. 常用命令
virsh list --all 列出kvm虚拟机列表,查看是否开机状态
virsh console *** 进入虚拟机
virsh shutdown *** 虚拟机关机
virsh reboot *** 虚拟机重启
virsh destroy xxx 强制停止虚拟机
virsh undefine xxx 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
virsh autostart xxx 设置宿主机开机时该虚拟机也开机
virsh autostart --disable xxx 解除开机启动
退出虚拟终端,按Ctrl + ]
1.3.1.快照管理
创建快照:
virsh snapshot-create-as kvm1 k1 #创建一个名为 k1 的快照,其中 kvm1 是虚拟机的名称。
列出快照:
virsh snapshot-list kvm1 #列出指定虚拟机的所有快照。
查看快照信息:
virsh snapshot-info kvm1 k1 #查看指定虚拟机的特定快照的详细信息。
恢复快照:
virsh snapshot-revert kvm1 k1 #将虚拟机恢复到指定的快照状态。
删除快照:
virsh snapshot-delete kvm1 k1 #删除指定虚拟机的特定快照。
删除所有快照:
virsh snapshot-delete-all #kvm1删除指定虚拟机的所有快照。