Linux运维学习--KVM虚拟化自动部署

一、虚拟机安装rhel7

前提

首先cpu需要支持vmx(intel)或者svm(amd)

 cat /proc/cpuinfo			#查看cpu信息

Linux运维学习--KVM虚拟化自动部署_第1张图片
发现支持vmx
其次,系统中需安装 qemu-kvm qemu-img两个核心组件,以及管理工具:virt-manager libvirt libvirt-python python-virtinst libvirt-client

镜像

 rhel-server-7.3-x86_64-dvd.iso

安装Linux系统

1.打开虚拟机管理界面

 virt-manager 			#打开虚拟机管理界面

2.点击左上角图表
Linux运维学习--KVM虚拟化自动部署_第2张图片
3.选择iso安装之后下一步:
Linux运维学习--KVM虚拟化自动部署_第3张图片
4.点击Browse选择镜像
在这里插入图片描述
点击 Browse Local选择镜像路径:
Linux运维学习--KVM虚拟化自动部署_第4张图片
点击open后下一步
5.选择内存大小与cpu核数
Linux运维学习--KVM虚拟化自动部署_第5张图片
注意:若需要开启图形,内存最小768M

6.选择硬盘大小(动态)
Linux运维学习--KVM虚拟化自动部署_第6张图片
则该虚拟机最多使用10G硬盘空间,点击下一步

7.虚拟机命名
勾选Customize configuration before installLinux运维学习--KVM虚拟化自动部署_第7张图片
8.选择硬盘类型
Linux运维学习--KVM虚拟化自动部署_第8张图片
9.选择网卡类型
Linux运维学习--KVM虚拟化自动部署_第9张图片
之后选择begin installtion
10.安装系统
选择第一个
Linux运维学习--KVM虚拟化自动部署_第10张图片
11.选择安装界面语言
Linux运维学习--KVM虚拟化自动部署_第11张图片
点击finish会出现如下界面:
Linux运维学习--KVM虚拟化自动部署_第12张图片
12.选择时区为上海
Linux运维学习--KVM虚拟化自动部署_第13张图片
13.键盘选择默认键盘

14.语言支持添加中文
Linux运维学习--KVM虚拟化自动部署_第14张图片
15.安装源使用默认不用更改

16.软件选择Server with GUI,右边不用选择
Linux运维学习--KVM虚拟化自动部署_第15张图片
注意:如果是安装真机,则要进行以下选择
Linux运维学习--KVM虚拟化自动部署_第16张图片
17.选择安装目的地
在这里插入图片描述
选择自定义安装
在这里插入图片描述
之后选择标准模式
Linux运维学习--KVM虚拟化自动部署_第17张图片
点击加号添加分区,其中根目录为/boot和/swap剩下的空间
Linux运维学习--KVM虚拟化自动部署_第18张图片
Linux运维学习--KVM虚拟化自动部署_第19张图片
Linux运维学习--KVM虚拟化自动部署_第20张图片
Linux运维学习--KVM虚拟化自动部署_第21张图片
18.开始安装
Linux运维学习--KVM虚拟化自动部署_第22张图片
19.设置root用户密码
Linux运维学习--KVM虚拟化自动部署_第23张图片
Linux运维学习--KVM虚拟化自动部署_第24张图片
20.安装完成
Linux运维学习--KVM虚拟化自动部署_第25张图片

二、虚拟机管理命令

 virsh	list					#列出正在运行的虚拟机
 virsh	list	--all			#列出所有虚拟机
 virsh	start	vmname			#开启
 virt-viewer	vmname			#显示
 virsh	shutdown	vmname		#正常关机
 virsh	destroy		vmname		#强制断电
 virsh	undefine	vmname		#删除虚拟机硬件信息
 rm -fr /var/lib/libvirt/images/vmname.qcow2	#删除虚拟机硬盘

示例:
在这里插入图片描述
在这里插入图片描述

三、复制虚拟机

安装好的虚拟机包含两部分信息硬盘信息(/var/lib/libvirt/images/vmname.qcow2)和硬件信息(/etc/libvirt/qemu/vmname.xml

1.复制硬盘信息

 scp [email protected]:/var/lib/libvirt/images/westos.qcow2 /mnt/

2.复制硬件信息

 scp [email protected]:/etc/libvirt/qemu/westos.xml /mnt/

3.移动硬盘信息到指定目录

 mv /mnt/westos.qcow2 /var/lib/libvirt/images/

4.仅用硬盘信息恢复虚拟机

可以仅用/var/lib/libvirt/images/vmname.qcow2恢复虚拟机
在virt-manager界面选择硬盘安装虚拟机
Linux运维学习--KVM虚拟化自动部署_第26张图片
之后选择硬件信息路径,之后的步骤与上文安装虚拟机相同

5.使用所有信息恢复虚拟机

使用以下命令可以一次性(关闭后就没了)的恢复虚拟机

 virsh create	vmname.xml			#一次打开虚拟机

使用以下命令可以永久(关闭后还有)的恢复虚拟机

 virsh	define	vmname.xml			#永久恢复

四、虚拟机快照

1.什么是快照?

快照可保存虚拟机在特定时刻的状态和数据。
• 状态包括虚拟机的电源状态(例如,打开电源、关闭电源、挂起)。
• 数据包括组成虚拟机的所有文件。这包括磁盘、内存和其他设备(例如虚拟网络接口卡)。
虚拟机提供了多个用于创建和管理快照及快照链的操作。通过这些操作,我们可以创建快照、还原到链中的任意快照以及移除快照。

2.虚拟机快照原理

用一个文件放到真实的文件面前 ,看到的是真实的文件, 使用的是快照
不对的时候舍弃快照,再拿来一个新的
一个节点相当于一台主机,有自己的功能

3.建立虚拟机快照
使用以下命令可以建立一个名为test的快照:

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

示例:
Linux运维学习--KVM虚拟化自动部署_第27张图片
实验完成后发现/var/lib/libvirt/images/目录下多了一个test.qcow2的硬盘信息,利用该信息可以使用上一节中的方法安装虚拟机

五、自动化管理虚拟机脚本

1.编写脚本

/usr/bin 目录下创建并编辑文件 :

 vim /usr/bin/vm_create.sh

在文件中写入以下内容:

#!/bin/bash
 virt-install \			#安装虚拟机
 --name $1 \			#虚拟机名字为该脚本后接的第一串字符			
 --cdrom /home/kiosk/Desktop/rhel-server-7.3-x86_64-dvd.iso \	##镜像位置
 --vcpus 1 \			#cpu核心数为1
 --memory 1024 \		#内存大小为1024M
 --disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \	#创建硬盘信息,硬盘为8G,类型为virtio
 --network bridge=br0,model=virtio &> /dev/null &				#网络信息 之后使用&将该脚本打入后台 并将返回信息关闭

2.给脚本增加可执行权限

  chmod +x vm_create.sh

3.测试
Linux运维学习--KVM虚拟化自动部署_第28张图片
使用脚本后创建了一个名为test的虚拟机

六、脚本创建虚拟机快照

1.编写脚本

/usr/bin 目录下创建并编辑文件 :

 vim /usr/bin/vm_snapshoot.sh

在文件中写入以下内容:

 #!/bin/bash
	#######create snapshoot file##########
        qemu-img create -f qcow2 -b /var/lib/libvirt/images/$1.qcow2 \
        /var/lib/libvirt/images/$2.qcow2 &> /dev/null &

        ##########import snapshoot to vm ######
        virt-install \
        --name $2 \
        --vcpus 1 \
        --memory 1024 \
        --disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \
        --network bridge=br0,model=virtio \
        --import &> /dev/null &

2.给脚本增加可执行权限

  chmod +x vm_snapshoot.sh

3.测试
Linux运维学习--KVM虚拟化自动部署_第29张图片
使用脚本后发现创建了一个名为test1的虚拟机快照

你可能感兴趣的:(运维)