在我们运维的相关学习过程中,经常会用到虚拟机来模拟相关的服务器和客户端。

这篇我们主要了解一下虚拟机的不同方式的建立方法(模拟装机过程)以及虚拟机相关的管理方式。例如虚拟机的快照等。




0.虚拟机的组成

首先我们先来认识一下虚拟机
虚拟主要由两部分做成:前端管理文件,后端存储文件(硬盘文件),他们所在真机中的位置分别如下。

[[email protected] mnt]# cd /var/lib/libvirt/images ##后端硬盘位置
[[email protected] images]# ls
generic.qcow2            rh124-desktop-vdb.ovl    rh124-server-vdb.ovl
node3.qcow2              rh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2
node.qcow2               rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl    rh124-server-vda.ovl
rh124-desktop-vda.qcow2  rh124-server-vda.qcow2

 

[[email protected] images]# cd /etc/libvirt/qemu/  ##前端管理文件位置
[[email protected] qemu]# ls
desktop.xml  LULUBAO.xml  networks  server.xml    ##(xml可扩展标记语言 用来封装虚拟机中的硬件信息)


注意:虚拟机的前端文件可以自动生成 只删除前端管理文件并不会彻底的删除虚拟机,虚拟机是可恢复的;但若直接删除硬盘文件保留前端文集 虚拟机无法恢复。



一.虚拟机的创建

1.图形
利用镜像(相当于真机装机是的系统盘)装机
(1)[[email protected] Desktop]$ virt-manager ##开启虚拟化管理
虚拟机的创建及其管理


(2)制作一个新的虚拟机(点击左上角的小电视 并选择第三个选项)

虚拟机的创建及其管理

并进行依次如下选择(虚拟机参数可根据自己需求自由定义)

虚拟机的创建及其管理

虚拟机的创建及其管理

虚拟机的创建及其管理

虚拟机的创建及其管理

虚拟机的创建及其管理


(3)添加光驱(点击小灯泡 再点击add hardware)
虚拟机的创建及其管理

(4)重启虚拟机完成添加光驱
虚拟机的创建及其管理

(5)把系统盘放入光驱
虚拟机的创建及其管理
虚拟机的创建及其管理

(6)调整启动顺序(调整到先在光驱启动)
虚拟机的创建及其管理


(7)重启虚拟机(光标选择在第一行 开始安装)
虚拟机的创建及其管理

(8)进行一系列的配置选择
系统语言
虚拟机的创建及其管理

时区
虚拟机的创建及其管理

安装软件
虚拟机的创建及其管理

设置root永久密码 和新用户
虚拟机的创建及其管理

虚拟机的创建及其管理

等待进度条完成安装
虚拟机的创建及其管理


2.命令

利用shell脚本命令,创建虚拟机

(1)[[email protected] mnt]$ vim Create_Vm.sh  ##建立相关脚本命令

虚拟机的创建及其管理

虚拟机的创建及其管理

#!/bin/bash                           ##命令运行环境的指定
virt-install \                        ##安装虚拟机
--name $1 \                           ##虚拟机名字($1 为命令后跟的第一串字符)
--ram 1024 \                          ##内存为1G
--file /var/lib/libvirt/images/$1.qcow2 \               ##硬盘文件位置 (名字为为命令后的第一串字符.qcow2)
--file-size 8 \                                         ##硬盘为8G
--cdrom /home/kiosk/Desktop/张璐运维/rhel-server-7.2-x86_64-dvd.iso \         ##光盘(镜像)位置
--vcpus 1 &                                                                  ##cpu数为1 (&表示命令在后台运行)


(2)[[email protected] mnt]# chmod +x Create_Vm.sh  ##添加x执行权限

虚拟机的创建及其管理


(3)[[email protected] mnt]# ./Create_Vm.sh node2    ##用绝对路径执行命令

虚拟机的创建及其管理


(4)直接执行命令 不需要加位置

[[email protected] mnt]# mv /mnt/Create_Vm.sh  /usr/sbin/ ##将文件移动到可执行目录下

[[email protected] mnt]# Create_Vm.sh node  ##文件移动后可用相对路径执行

虚拟机的创建及其管理




二.删除,拷贝虚拟机相关配置文件并恢复虚拟机

0.实验前的准备

(1)将前端复制文件备份

[[email protected] images]# cd /etc/libvirt/qemu/   ##位置移动到前端配置文件位置 
[[email protected] qemu]# ls
desktop.xml  LULUBAO.xml  networks  server.xml
[[email protected] qemu]# cp LULUBAO.xml  /mnt/  ##并复制

虚拟机的创建及其管理

(2)将后端存储文件删除或移动查看确认前后端文件均以保存

[[email protected] qemu]# cd /var/lib/libvirt/images  ##位置移动到后端存储文件位置(硬盘)
[[email protected] images]# ls
generic.qcow2            rh124-desktop-vdb.ovl    rh124-server-vdb.ovl
node3.qcow2              rh124-desktop-vdb.qcow2  rh124-server-vdb.qcow2
node.qcow2               rh124-desktop.xml        rh124-server.xml
rh124-desktop-vda.ovl    rh124-server-vda.ovl
rh124-desktop-vda.qcow2  rh124-server-vda.qcow2
[[email protected] images]# mv generic.qcow2 /mnt/  ##移动或删除
rh124-desktop-vda.qcow2  rh124-server-vda.qcow2

[[email protected] images]# cd /mnt/   ##查看复制前端和后端文件
[[email protected] mnt]# ls
generic.qcow2  LULUBAO.xml

虚拟机的创建及其管理



1.删除虚拟机

[[email protected] mnt]# virsh undefine LULUBAO  ##删除虚拟机 (删除虚拟机前端管理,不会删除存储文件。因为我们在实验准备阶段已经移除了硬盘文件,所以此时虚拟机已经彻底删除。)
Domain LULUBAO has been undefined

虚拟机的创建及其管理



2.恢复虚拟机

0)将硬盘恢复到系统保存虚拟机硬盘文件的位置

[[email protected] mnt]# mv /mnt/generic.qcow2 /var/lib/libvirt/images/  ##将硬盘文件移动到硬盘文件位置

虚拟机的创建及其管理


(1)用前端管理文件暂时性恢复虚拟机(关闭后会消失),恢复后虚拟机是运行状态

[[email protected] mnt]# virsh create LULUBAO.xml  ##用前端文件暂时性恢复虚拟机 
Domain LULUBAO created from LULUBAO.xml

虚拟机的创建及其管理

虚拟机的创建及其管理


Force off 虚拟机后 虚拟机就不见了

虚拟机的创建及其管理


(2)用前端管理文件永久性恢复虚拟机(关闭后不会消失)

[[email protected] mnt]# virsh define LULUBAO.xml  ##用前端文件永久性恢复虚拟机
Domain LULUBAO defined from LULUBAO.xml

虚拟机的创建及其管理

虚拟机的创建及其管理




三.虚拟机的基础管理命令

1.

[[email protected] images]# virsh list            ##列出正在运行的虚拟机
 Id    Name                           State
---------------------------------------------

虚拟机的创建及其管理


2.

[[email protected] images]# virsh list --all    ##列出所有虚拟机
 Id    Name                           State
----------------------------------------------------
 -     desktop                        shut off
 -     LULUBAO                        shut off
 -     server                         shut off

虚拟机的创建及其管理


3.

[[email protected] images]# virt-viewer 虚拟机名字  ##显示虚拟机

虚拟机的创建及其管理


4.

[[email protected] images]# virsh shutdown 虚拟机名  ##正常关闭指定虚拟机
Domain LULUBAO is being shutdown

虚拟机的创建及其管理

虚拟机的创建及其管理


5.

[[email protected] images]# virsh destroy 虚拟机名 ##强行关闭指定虚拟机
Domain LULUBAO destroyed

虚拟机的创建及其管理

虚拟机的创建及其管理




四.虚拟机快照

相当于复制虚拟机硬盘但大小很小,不占用空间,对快照进行修改不影响被照的对象。操作成本低,不会对重要服务器造成不可挽回的影响。
在使用快照时,不能使用制作快照原型虚拟机硬盘(且不能对快照使用快照)。
在使用快照时,读取的时母盘信息,所以离开母盘信息的快照是没有意义的。


0.实验前的准备

(1)为防止改变母盘影响快照,可以删除母盘对应的前端管理文件

虚拟机的创建及其管理


(2)重命名母盘方便管理

[[email protected] images]# mv generic.qcow2  vm_strorage.qcow2  ##将母盘重命名

虚拟机的创建及其管理



1.快照并用新建快照新建虚拟机

(1)图形中

1>快照

[[email protected] images]# qemu-img create -f  qcow2 -b vm_strorage.qcow2 node1_snap.qcow2      ##将一个硬盘快照并命名
Formatting 'node1_snap.qcow2', fmt=qcow2 size=8589934592 backing_file='vm_strorage.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 

虚拟机的创建及其管理

虚拟机的创建及其管理

2>查看快照大小(证明快照真的很小 不占用很多存储空间)

[[email protected] images]# du  -sh node1_snap.qcow2   ##查看快照大小 很小
196K    node1_snap.qcow2

虚拟机的创建及其管理

3>在虚拟机管理器中用快照新建虚拟机

虚拟机的创建及其管理

虚拟机的创建及其管理

虚拟机的创建及其管理

虚拟机的创建及其管理


(2)shell脚本命令

[[email protected] images]# vim Createvm.sh  ##编写脚步文件

虚拟机的创建及其管理

#!/bin/bash   ##命令运行环境的指定
#qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_strorage.qcow2 \ 
#/var/lib/libvirt/images/$1.qcow2  &> /dev/null   ##快照并把所有内容删除
#echo success  ##打印'success'
#
#virt-install \   ##安装虚拟机
#--name $1 \
#--ram 1024 \
#--file /var/lib/libvirt/images/$1.qcow2 \
#--file-size 8 \
#--import &> /dev/null &   ##导入

虚拟机的创建及其管理

[[email protected] images]# chmod +x Createvm.sh ##加执行权限
[[email protected] images]# ./Createvm.sh work1  ##执行

虚拟机的创建及其管理


2.reset虚拟机(shell脚本命令)

[[email protected] images]# vim Rester.sh  ##编写脚本文件

虚拟机的创建及其管理

#!/bin/bash
#virsh destory $1 &> /dev/null      ##关闭虚拟机
#rm -fr /var/lib/libvirt/images/$1.qcow2  ##删除建立虚拟机的快照
#
#qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_strorage.qcow2 \  
#/var/lib/libvirt/images/$1.qcow2 &> /dev/null   ##快照
#
#echo success
#
#virsh start $1 &> /dev/null  ##打开虚拟机
#
#virt-viewer $1 &> /dev/null & ##显示虚拟机(并在后台运行)

虚拟机的创建及其管理

[[email protected] images]# chmod +x Rester.sh 
[[email protected] images]# ./Rester.sh work1

虚拟机的创建及其管理



四.排错方法

1.

[[email protected] images]# file work1.qcow2  ##查看文件类型 可以看出他是一个快照 
work1.qcow2: QEMU QCOW Image (v3), has backing file (path /var/lib/libvirt/images/vm_strorage.qcow2), 8589934592 bytes

虚拟机的创建及其管理

2.

[[email protected] images]# sh -x ./Createvm.sh work1  ##查看脚本运行进程(同时运行程序)
+ qemu-img create -f qcow2 -b /var/lib/libvirt/images/vm_strorage.qcow2 /var/lib/libvirt/images/work1.qcow2
+ echo success
success
+ virt-install --name work1 --ram 1024 --file /var/lib/libvirt/images/work1.qcow2 --file-size 8 --import

虚拟机的创建及其管理






相关文章: