Linux之虚拟机管理

#####  1.虚拟机管理 #####

    1.管理命令:

        virt-manager        ##虚拟机管理器


        virsh list        ##显示正在运行的虚拟机    


        virsh list --all    ##显示所有虚拟机


        virsh start xxx        ##开启虚拟机


        virsh shutdown xxx    ##正常关闭虚拟机


        virsh destroy xxx    ##强行关闭虚拟机


        virt-viewer xxx        ##显示虚拟机(已开启)


    2.管理文件:
        
        硬件信息文件:/etc/libvirt/qemu/xxx.xml


        硬盘:/var/lib/libvirt/images/xxx.qcow2

    3.虚拟机恢复
    
        拷贝必要文件:
        /etc/libvirt/qemu/xxx.xml
        /var/lib/libvirt/images/xxx.qcow2


        virsh create xxx.xml    ##临时调用虚拟机

^ 将拷贝下来的硬盘信息文件和硬盘文件移动到以上两个目录下(或者更改信息文件中指向的硬盘路径),创建虚拟机

^ 关闭虚拟机后虚拟机删除,virsh create 命令是暂时创建虚拟机


        virsh define xxx.xml    ##永久恢复虚拟机

^ 关闭虚拟机后虚拟机依然存在,virsh define 命令可以永远恢复虚拟机

##### 2.虚拟机安装 #####

        1.图形模式

   ^  virt-manager打开虚拟机管理器,点击菜单栏第一项create a new virtul machine

^ 使用本地iso文件安装

^ 输入本地iso文件所在路径

^ 设定ram大小及核数

^ 配置虚拟硬盘

^ 设置虚拟机名称及网络,Finish完成。

^ 选择第一项开始安装

        2.自动安装脚本

 yum instal system-config-kickstart httpd -y                      ##安装所需服务

                                                                                             (system-config-kickstart服务可以生成自定义设置的自动装机脚本)

system-config-kickstart                    ##运行服务

^ 开启后可以在图形界面下进行虚拟机的设置最终生成自动安装脚本。

^ 设置时区和超级用户密码,选中安装后重启和文本模式安装

^ 设置安装模式和安装源

^ Add添加swap分区500MB

^ Add添加/boot分区200MB

^ Add添加根分区选中铺满硬盘剩余空间

^ 完成此页所有分区设置

^ 添加网卡。因为使用共享yum源安装需要IP地址与服务端通讯,所以设置dhcp网络类型。

^ 停用防火墙

^ 安装前动作

^ 安装后动作

^ 右上角file--->save,生成自动安装脚本文件,保存到/var/www/html目录共享

 vim /var/www/html/ks.cfg               ##写入装机所用的安装包

^ 图片中之安装了base软件组和lftp服务,可以根据需要写入其他包。

完成ks.cfg文件的编辑后用ksvalidator /var/www/html/ks.cfg命令检测是否有语法错误。

^ 如果有输出根据提示修改ia语法错误。确认没有语法错误后可以编辑如下虚拟机自动安装bash脚本。

        #!/bin/bash
        virt-install \                ##虚拟机安装命令
        --name $1 \                   ##接收虚拟机名称
        --ram 1024 \                  ##ram大小1024MB
        --cpus 1 \                    ##cpu核数1
        --disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=8 \    ##虚拟硬盘配置
        --network bridge=br0,model=virtio \                            ##虚拟网络配置
        --location http://172.25.254.36/rhel7.2 \                      ##yum源地址及目录
        --extra-args ks=http://172.25.254.36/ks.cfg &                  ##执行自动安装脚本

测试:

将脚本chmod设置可执行文件,运行脚本。

^ 虚拟机开始自动安装。

自动安装脚本可以实现虚拟机批量安装。

##### 3.虚拟机快照 #####

每个虚拟机都会有自己的硬盘文件xxx.qcow2。虚拟机快照是以一个指向其他虚拟硬盘作为母盘,只储存母盘配置之外所作的修改的新的.qcow2文件。这样做的目的是不破坏母盘配置,当快照受到损坏时可以以母盘为基础生成新的快照,并以快照为虚拟硬盘创建虚拟机,就是我们所说的重置。

^ ysl.qcow2是以lsy.qcow2为母盘的快照。根据文件大小可以看出快照文件并不是真正的虚拟硬盘但可以指向母盘完成虚拟机功能。

1.快照虚拟机的安装

qemu-img create -f qcow2 -b lsy.qcow2 ysl.qcow2                 ##以lsy.qcow2为母盘生成ysl.qcow2快照

^ 生成快照后可以virt-manager 打开虚拟机管理器创建新的虚拟机

^ 选择硬盘文件位置。

^ 设置ram大小及核数。

^ 设置虚拟机名称Finish完成虚拟机创建。

我们也可以将以上图形化操作写成以下快照虚拟机装机脚本。

#!/bin/bash
qemu-img create -f qcow2 -b \                        
/var/lib/libvirt/images/$1.qcow2 \
/var/lib/libvirt/images/$2.qcow2                        ##快照生成命令

virt-install \                                          ##创建虚拟机
--name $2 \                                             ##虚拟机名称 
--ram 1024 \                                            ##ram大小
--cpus 1 \                                              ##cpu核数
--disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \    ##快照硬盘文件位置
--network bridge=br0,model=virtio \                     ##网络配置
--import &                                              ##导入

2.虚拟机重置脚本

虚拟机重置的原理就是删除已破损的快照,以同一块母盘为基础重新生成新的快照。

由此我们可以将以上操作写成虚拟机重置脚本。

#!/bin/bash
virsh destroy $1                                                   ##强制关闭虚拟机
rm -fr /var/lib/libvirt/images/$1.qcow2                            ##删除原快照
qemu-img create -f qcow2 -b \
/var/lib/libvirt/images/$2.qcow2 \
/var/lib/libvirt/images/$1.qcow2                                   ##生成新的快照
virsh start $1                                                     ##启动虚拟机
virt-viewer $1 &                                                   ##显示虚拟机

猜你喜欢

转载自blog.csdn.net/Sangyumo/article/details/81326158