目录

  • kvm介绍
  • kvm虚拟化安装
  • kvm虚拟化相关信息
  • kvm配置桥接接口
  • 手动安装虚拟机
  • 虚拟机管理命令
  • 虚拟机快照


kvm介绍

1.kvm(kernel-based virtual machine):基于内核的虚拟机,实际上它是linux内核的一个模块。
inter cpu---->vmx
amd cpu---->svm
2.kvm架构
(1)virt-manager:用来管理vm的GUI/CUI用户接口,它使用libvirt API调用vm的各项功能。
(2)libvirt:工具集及接口
(3)qemu:kvm内核模块交互的模拟器,处理多种客户机系统请求的I/O,一个qemu进程对应一个客户机系统。
(4)kvm模块:用于处理vm exits和vm entry指令
(5)linux内核:处理客户机系统调度

kvm虚拟化安装

yum group install "Virtualization Client" "Virtualization Hypervisor" "Virtualization Tools" -y
Virtualization Client					#虚拟化客户端
Virtualization Hypervisor				#虚拟化核心套件
Virtualization Tools					#虚拟化工具

安装步骤:

在安装kvm之前先新建一台虚拟机,内存8G,硬盘50G,两个处理器,勾选虚拟化功能。

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm


可以发现虚拟机是支持vmx的

linux虚拟化技术和kvm linux虚拟化平台_虚拟化_02


配置yum仓库

linux虚拟化技术和kvm linux虚拟化平台_xml_03


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_04


linux虚拟化技术和kvm linux虚拟化平台_虚拟化_05


开始安装kvm一组软件

linux虚拟化技术和kvm linux虚拟化平台_运维_06


注意,可以使用 yum group info 指令查看组件信息。

linux虚拟化技术和kvm linux虚拟化平台_xml_07

kvm虚拟化相关信息

1.服务名称: libvirtd
2.虚拟化核心: qemu/kvm
3.虚拟化存储目录(虚拟机硬盘):/var/lib/libvirt/images/
test.qcow2
4.虚拟化硬件信息: /etc/libvirt/qemu/test.xml

kvm配置桥接接口

以桥接的方式搭建虚拟机网络,优势在于可以将虚拟机看作是与主机同等地位的服务器。

linux虚拟化技术和kvm linux虚拟化平台_xml_08


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_09


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_10


linux虚拟化技术和kvm linux虚拟化平台_运维_11


配置完成

linux虚拟化技术和kvm linux虚拟化平台_linux_12

手动安装虚拟机

首先要明确在安装完虚拟化组件之后,libvirtd服务就开启了。

linux虚拟化技术和kvm linux虚拟化平台_虚拟化_13


linux虚拟化技术和kvm linux虚拟化平台_虚拟化_14


如果将服务libvirtd关闭,仍可以使用virt-manager虚拟机控制器,但是不能新建虚拟机了。

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_15


linux虚拟化技术和kvm linux虚拟化平台_虚拟化_16


1.以光盘方式新建虚拟机

linux虚拟化技术和kvm linux虚拟化平台_linux_17


linux虚拟化技术和kvm linux虚拟化平台_运维_18


linux虚拟化技术和kvm linux虚拟化平台_运维_19


注意如果要安装图形的话,内存一定要大于768M。

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_20


同样硬盘也不能小于6G,否则图形安装不上。

linux虚拟化技术和kvm linux虚拟化平台_运维_21


设置虚拟机的名字,在安装前进行硬件检测,使用桥接模式。

linux虚拟化技术和kvm linux虚拟化平台_运维_22


将光盘调到第一位,其他选择默认即可,这里注意网卡和硬盘都是虚拟I/O。

linux虚拟化技术和kvm linux虚拟化平台_运维_23


报错,虚拟机不让我们使用光盘安装。

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_24


2.以网络方式进行安装

(1)配置dhcp服务器

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_25


linux虚拟化技术和kvm linux虚拟化平台_xml_26


linux虚拟化技术和kvm linux虚拟化平台_linux_27


linux虚拟化技术和kvm linux虚拟化平台_linux_28


linux虚拟化技术和kvm linux虚拟化平台_xml_29


(2)配置vsftpd服务

linux虚拟化技术和kvm linux虚拟化平台_linux_30


linux虚拟化技术和kvm linux虚拟化平台_linux_31


linux虚拟化技术和kvm linux虚拟化平台_运维_32


(3)安装lftp

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_33


(4)关闭selinux

linux虚拟化技术和kvm linux虚拟化平台_虚拟化_34


(5)关闭防火墙

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_35


(6)测试

linux虚拟化技术和kvm linux虚拟化平台_linux_36


(7)新建虚拟机

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_37


linux虚拟化技术和kvm linux虚拟化平台_运维_38


linux虚拟化技术和kvm linux虚拟化平台_虚拟化_39


linux虚拟化技术和kvm linux虚拟化平台_linux_40


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_41


linux虚拟化技术和kvm linux虚拟化平台_xml_42


linux虚拟化技术和kvm linux虚拟化平台_linux_43


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_44


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_45


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_46


linux虚拟化技术和kvm linux虚拟化平台_linux_47


linux虚拟化技术和kvm linux虚拟化平台_虚拟化_48


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_49


安装成功,使用root密码可以登录系统。

linux虚拟化技术和kvm linux虚拟化平台_运维_50


补充:进入/etc/libvirt/qemu目录,我们可以看到test.xml文件,这个文件保存了虚拟机test的硬件信息,这个文件很小。

linux虚拟化技术和kvm linux虚拟化平台_xml_51


linux虚拟化技术和kvm linux虚拟化平台_linux_52


进入/var/lib/libvirt/images目录,可以看到test.qcow2文件,这是虚拟机test的硬盘,这个文件很大。

linux虚拟化技术和kvm linux虚拟化平台_linux_53

虚拟机管理命令

1.virt-viewer test					   #显示虚拟机test
2.virt-manager						   #打开虚拟机控制器
3.virsh list						   #列出运行的虚拟机
4.virsh list --all					   #列出所有的虚拟机
5.virsh start test					   #开启虚拟机
6.virsh shutdown test				   #正常关闭虚拟机
7.virsh destroy test				   #断电关闭虚拟机
8.virsh define test.xml				   #通过硬件信息文件恢复虚拟机
9.virsh create test.xml				   #通过硬件信息文件打开虚拟机
10.virsh undefine test			       #删除硬件信息文件

命令展示:

(1)virt-viewer test

linux虚拟化技术和kvm linux虚拟化平台_运维_54


(2)virt-manager

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_55


(3)virsh list和virsh list --all

linux虚拟化技术和kvm linux虚拟化平台_运维_56


(4)virsh shutdown test

shutdown表示正常关闭虚拟机,会被阻塞。

linux虚拟化技术和kvm linux虚拟化平台_运维_57


(5)virsh start test

linux虚拟化技术和kvm linux虚拟化平台_xml_58


(6)virsh destroy test

destroy表示断电关闭虚拟机,不会被阻塞,关闭的速度比shutdown快。

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_59


(7)virsh undefine test

发现虚拟机test的硬件信息已被删除

linux虚拟化技术和kvm linux虚拟化平台_运维_60


(8)virsh create test.xml

使用/mnt下的test.xml文件来打开虚拟机,必须要将硬件资源test.qcow2放到目录/var/lib/libvirt/images/下。要注意的是,create只是打开虚拟机,而不是恢复虚拟机,当我们把打开的虚拟机关闭后就找不到了。

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_61


linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_62


linux虚拟化技术和kvm linux虚拟化平台_虚拟化_63


(9)virsh define test.xml

这样就是永久恢复

linux虚拟化技术和kvm linux虚拟化平台_运维_64

虚拟机快照

1.快照的含义: 通过快照,我们可以对这个虚拟机进行一系列操作,而不破坏原来的虚拟机,如果一不小心将虚拟机快照弄坏了,还可以根据原虚拟机创建出新的快照。(更改在快照上,透过快照实际看的是母盘)

linux虚拟化技术和kvm linux虚拟化平台_虚拟化_65


补充: 快照和克隆的对比

克隆相当于复制,得到一个全新的虚拟机,因此占用空间大。而快照相当于软链接,是透过快照看母盘(test.qcow2文件),只有更改在快照上,因此占用空间小,更改多少就占用多少。

2.快照的制作:

(1)命令方式

-f:指定类型 -b:备份

qemu-img create -f qcow2 -b /var/lib/libvirt/images/test.qcow2 /var/lib/libvirt/images/node.qcow2

实验步骤:

可以发现实际看的是test.qcow2文件,并且node.qcow2大小只有196K,远远小于test.qcow2文件大小。

linux虚拟化技术和kvm linux虚拟化平台_虚拟化_66


现在将快照node导入

linux虚拟化技术和kvm linux虚拟化平台_linux_67


linux虚拟化技术和kvm linux虚拟化平台_运维_68


linux虚拟化技术和kvm linux虚拟化平台_linux_69


导入成功之后将node的根和boot目录删掉,关闭node再开启时发现系统启动失败了。

linux虚拟化技术和kvm linux虚拟化平台_运维_70


我们将node.qcow2删掉,再进行快照,关闭node再重新启动,发现node又可以使用了。

linux虚拟化技术和kvm linux虚拟化平台_linux_71


(2)脚本方式

导入快照的时候就不用一步步选了

\:换行继续输出

&:在后台执行,这样就能同时导入多个快照。

$1:使用sh执行脚本时,脚本名称后面跟的字符。

&>:将输出重定向

/dev/null:垃圾箱

vim virt_snapshot.sh
#!/bin/bash								#指定命令运行环境(shell的头部信息)
qemu-img \
create -f qcow2 \
-b /var/lib/libvirt/images/test.qcow2 \
/var/lib/libvirt/images/$1.qcow2 &> /dev/null
virt-install \
--name $1 \
--memory 1024 \
--vcpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2 \
--os-variant rehl8.0 \
--import &> /dev/null &
sh virt_snapshot.sh xxx

实验步骤:

linux虚拟化技术和kvm linux虚拟化平台_xml_72


linux虚拟化技术和kvm linux虚拟化平台_xml_73


导入成功🍓

linux虚拟化技术和kvm linux虚拟化平台_linux虚拟化技术和kvm_74