西部开源学习笔记《unit 15》

######################################

######## unit15.系统虚拟机管理 #######

######################################


########1.安装#########

安装方式:

(1)图形界面安装

(2)命令行安装

[root@foundation19 ~]# virt-install \         ##安装虚拟机

> --name westos \                             ##虚拟机名称指定为westos

> --ram 1000 \                                ##内存

> --file /var/lib/libvirt/images/westos.img \ ##硬盘文件

> --file-size 8 \                             ##硬盘文件大小

                                             (当用已有的磁盘文件创建虚拟机时不用写这一行)

> --cdrom /home/kiosk/Downloads/rhel-server-7.1-x86_64-dvd.iso

                                              ##指定安装源(表示通过镜像文件来安装虚拟机的方式)

(3)shell脚本安装

vim /bin/vmcreate                             ##创建名为vmcreate的文件在/bin/下(当shell脚本编译完之后,vmcreate将成为命令)

#!/bin/bash                                 ##命令运行环境的指定

--name $1 \                                  ##虚拟机名称指定,$1表示脚本命令后的第一串字符

--ram 1000 \                                 ##内存

--file /var/lib/libvirt/images/$1.img \      ##硬盘大小

--file-size 8 \                              ##硬盘文件大小

--cdrom /home/kiosk/Downloads/rhel-server-7.1-x86_64-dvd.iso & 

                                             ##指定安装源,&表示将命令打入后台运行


测试:

sh vmcreate test                             ##创建名为test的虚拟机(sh表示执行脚本)

chmod +x vmcreate                            ##先赋予执行权限(因为系统默认创建的文件的权限为644)

vmcreate test                                ##创建名为test的虚拟机



########2.管理#########

virt-manager                                 ##开启图形管理工具

virt-viewer vmname                           ##显示虚拟机(vmname为虚拟机名称)

virsh list                                   ##列出正在运行的vm

virsh list --all                             ##列出所有vm

virsh start vmname                           ##运行指定vm

virsh shutdown vmname                        ##正常关闭指定vm

virsh destroy vmname                         ##强行关闭指定vm

virsh create vmname.xml                      ##临时恢复指定vm,vmname表示前端管理文件(当.xml文件不在默认目录下,可以使用该方法启动虚拟机)(此种方法启动之后不会在默认目录再生成.xml文件了)

virsh define vmname.xml                      ##永久恢复指定vm(当.xml文件不在默认目录下,可以使用该方法启动虚拟机)(此种方法启动之后会在默认目录再生成.xml文件)

virsh undefine vmname                        ##删除vm的前端管理文件,不会删除存储

(只会删除默认路径/etc/libvirt/qume/下的.img文件,非默认路径的不会删除)



#######3.创建虚拟机的快照######

注意:创建快照最好先将被创建的虚拟机关闭,并将.xml文件删除。(以防止误操作母盘,导致快照无法使用)

(1)命令行创建

qemu-img create -f qcow2 -b test.qcow2 node1.qcow2    ##此处的.qcow2为相对路径,需要在/var/liblibvirt/images/下执行,或者写为绝对路径也可以

du -sh node1.qcow2                                    ##显示快照的文件大小(快照的大小会随着用户的使用而增加)

(2)shell脚本创建

vim /bin/nodecreate                     ##如果自己写的vmctl脚本存在/var/lib/libvirt/images/下,只能在该目录下才能执行。

                                          所以建议将脚本放在/bin/下。

                                          通过echo $PATH可以查看该目录下的环境变量。


#!/bin/bash

echo poweroff $1 ...

virsh destroyc $1 &>/dev/null

echo delete $1.xml ...

virsh undefine $1 &>/dev/null

qemu-img create -f qcow2 -b /var/lib/libvirt/images/$1.qcow2/var/lib/libvirt/images/$2.qcow2 &>/dev/null

======以上部分只是创建了快照的磁盘管理文件,还要把前端管理文件创建才算完成快照的创建======

echo create $1 vm ...

virt-install \

--name $2 \

--ram 1000 \

--disk /var/lib/libvirt/images/$2.qcow2 \

--import &>/dev/null &         ##表示用已有的磁盘文件来创建虚拟机,注意:此行最后的&表示打入后台运行


测试:

sh nodecreate test node1       ##以test为基础创建快照(sh表示执行脚本)

chmod +x nodecreate            ##先赋予执行权限(因为系统默认创建的文件的权限为644)

nodecreate test node1          ##以test为基础创建快照


##注意:不能给快照创建快照


补充:

1..img或者.qcow2文件为磁盘管理文件,.xml为前端管理文件。两个文件都在才可以恢复虚拟机。

2..img与.qcow2文件格式不同,但区别是?

3.磁盘管理文件必须在系统默认的/var/lib/libvirt/images/下,否则虚拟机则无法正常启动。而前端管理文件则不要求,但默认会在/etc/libvirt/qemu/下。

4.在图形化界面删除虚拟机时,如果不勾选删除磁盘文件则可以恢复,恢复方法如下:

当前端管理文件被删除时,可以在安装虚拟机时选择用已有的硬盘管理文件(improt exiting disk image)来安装,系统会自动生成前端管理文件




shell脚本:(经典案例)

创建脚本westos.sh。命令后跟apple,输出banana;命令后跟banana,输出apple;命令后跟其他,输出"ERRO:please input apple|banana after westos.sh"。

脚本创建如下:

vim /bin/westos.sh

#!/bin/bash

case "$1" in

            apple)

            echo banana

            ;;

            banana)

            echo apple

            ;;

            *)

            echo "ERROR:please input apple|banana after westos.sh"

esac


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章