虚拟机的多种安装方式(安装包安装、虚拟化管理、远程复制、脚本安装以及其管理和快照)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/daidadeguaiguai/article/details/102690860

1.你知道什么是虚拟化管理吗?

  • 将linux真实主机里面的一些东西放到虚拟机上面去管理以及操作
  • 然后对虚拟机进行一系列的操作
  • 其实虚拟机和真机二者功能几乎差不多
  • 只不过真机为操作系统,占用磁盘空间大
  • 虚拟机相当是一款软件,占用空间少,运行起来比较轻松,并且虚拟机恢复起来比较方便

2.进行虚拟化管理的原因是什么呢?

  • 实际企业中的服务器数量非常多,并且服务器运行起来工作的时候散热量非常大,为了使服务器正常工作,就需要大量的制冷装置
  • 制冷的耗电量与服务器的个数相关,为了降低能源消耗,企业不得不尽可能的减少服务器的个数
  • 因此在服务器上装上可逆转的虚拟机,用虚拟机代替其他服务器的部分工作,这样就能减少服务器的个数了,意义重大 

3.实验环境

  • 本次虚拟化管理的所有的实验都在真机的shell里面进行

4.手动安装虚拟机的方法

前提条件:虚拟机的安装镜像已经下载好,并且要明确其存放的路径
说明:此次安装的是图形化的虚拟机

第一步:在真机里面的shell里面输入 virt-manager

弹出来这个界面 可以看到我的真机此时有两个虚拟机,分别是desktop和server


第二步:点击左上角的小电视,会出现如下界面,选择本地安装,并且选择下一步forward


第三步:找到虚拟机镜像的存放路径

第四步:选择分配内存和cpu的大小

第五步:选择分配硬盘大小


第六步:填写虚拟机名字,默认为generic,改名字为client


第七步:将client虚拟机的硬盘和网卡均设置为虚拟化,并且开始安装


可以看到成功添加虚拟机client


第八步:选择安装版本


第九步:选择安装过程的语言–英语


第十步:设置client虚拟机的相关参数

第十一步 :等待安装


总结:

可以看到,如果手动安装虚拟机的话非常麻烦,这样很不方便,那么怎样可以高效率安装呢?

我们可以使用命令安装

4.怎样用命令安装虚拟机?

(1)为什么要使用命令安装虚拟机?

  • 在服务器很多的情况下,如果每台服务器安装虚拟机都手动操作的话非常麻烦
  • 采用在shell脚本中写入实际安装虚拟机的相关参数
  • 用相关命令去调用这个文件即可安装虚拟机
  • 这样就可以省略安装前的一系列手动操作步骤

(2)在真机中使用命令安装虚拟机的具体步骤如下:
注意: 要在超级用户下写脚本 所有的一切都要在超级用户下进行

第一步:在真机root下的shell当中输入 vim vm_install.sh

第二步:编辑shell脚本 注意:换行符号\不能有空格

各个参数说明如下:

  • #!/bin/bash                  ##shell脚本的头部
  • virt-install \                  ##使用命令与换行符
  • --name $1 \                 ##名字、$1环境变量与换行符
  • --cdrom /home/kiosk/Downloads/rhel-server-7.3-x86_64-dvd.iso \                 ##镜像的存放路径与换行符
  • --ram 1024 \                ##占用内存大小与换行符
  • --vcpus 1 \                   ##占用cpu大小与换行符
  • --disk /var/lib/libvirt/images/$1.qcow2,size=6,bus=virtio \                  ##物理硬盘的相关信息与换行符
  • --network bridge=br0,model=virtio &> /dev/null &                       ##网络的信息以及将错误定向输出到垃圾桶不让它占用终端

注意:换行符\后面不能有空格,正常应该为橙色,有空格就会变 黑色,换行则无效。 

第三步:直接在真机的shell当中输入 sh vm_install.sh 虚拟机名字,就可以看到虚拟机

第四步:可以看到lucky虚拟机可以安装了


总结:

  • 通过对比手动方式和命令方式,可知命令方式安装很方便,在服务器数量很多的时候就可以采用命令方式安装虚拟机
  • 前提是要知道所安装虚拟机的一些重要参数,并且在shell脚本里面写正确
  • 安装好之后第一次登陆的图形界面还是要手动选择
  • 因此我们发现此种命令方式只是半自动化

5.安装好虚拟机hahaha之后首次登陆的相关设置

6.虚拟机的管理

命令为:virsh

  • virsh list                            ##列出所有正在开启的虚拟机
  • virsh destroy client           ##关闭client虚拟机
  • virsh list --all                     ##列出所有的虚拟机,包括开启的和关闭的
  • virsh start hahaha            ##开启hahaha虚拟机

说明:在真机root下的shell里面实验
(1)virsh list 列出所有正在开启的虚拟机

(2)virsh destroy desktop 关闭desktop虚拟机


(3)virsh list --all 列出所有存在的虚拟机


(4)virsh start server 开启server虚拟机


7.虚拟机的复制

声明:只有真机cpu匹配的才可以互相复制虚拟机

两个问题:
(1)怎样复制
(2)复制好了怎样使用

    前提条件:需要知道对方的ip,用户与用户密码,虚拟机的名字

(1)为什么要复制虚拟机?

因为虚拟机安装需要一千多个文件,比较慢
为了方便起见,我们可以直接将其他主机上安装好的虚拟机直接复制过来使用
复制需要虚拟机的硬盘和硬件信息 ,有可能会出现cpu不一致的问题
将其他人的虚拟机复制到我的真机上,相当于从别人的主机上下载到我的主机上

说明:虚拟机复制实验由于没有充足的实验条件,以下只写详细的实验步骤。 
(2)复制虚拟机的具体步骤:
说明:在真机root下的shell里面
第一步:先用命令ssh远程连接对方主机,如ssh [email protected],成功后再进行下一步 

第二步:复制对方的虚拟机的硬盘信息到/mnt/下: scp /var/lib/libvirt/images/xuniji.qcow2 [email protected]:/mn/

 第三步:复制对方的虚拟机的硬件信息 到/mnt/下:scp /etc/libvirt/qemu/xuniji.xml [email protected]:/mnt/
第四步:切换到/mnt/盘下,用ls命令查看一下xuniji.qcow2和xuniji.xml文件是否存在,确保存在后再进行下一步
第五步:virsh create /mnt/westos.xml 一次性使用复制的虚拟机 ,关掉就没有了
第六步:virsh define /mnt/westos.xml 永久性使用虚拟机 ,关掉依然在
第七步:virsh undefine /mnt/westos(名字) 永久关掉虚拟机

8.虚拟机的快照

(1)什么是虚拟机的快照?

  • 磁盘“快照”是虚拟机磁盘文件(VMDK)在某个点及时的副本。
  • 系统崩溃或系统异常,你可以通过使用恢复到快照来保持磁盘文件系统和系统存储。
  • 当升级应用和服务器及给它们打补丁的时候,快照是救世主。
  • 相当于 拍照片一样,拍坏了大不了一直重新拍,快捷不损坏系统,
  • VMware快照是VMware Workstation里的一个特色功能

(2)虚拟机快照的原理:

  • 当创建VMware快照时,实际上我们并没有复制原始磁盘当中的任何数据。
  • 而是将原始磁盘设置为VMware快照读状态,并且创建一个VMware快照回滚日志——有时也称之为增量磁盘,
  • 这种增量磁盘其实就是在VMware快照创建之后,针对任何虚拟机写入操作所产生的占位符。
  • 用一个文件放到真实的文件面前 ,看到的是真实的文件, 使用的是快照,就像照镜子一样
  • 不对的时候舍弃快照,再拿来一个新的,但应避免多个快照
  • 一个成功的快照相当于一台主机,有和原虚拟机一样的功能,可以进行任意操作

(3)使用快照的原因:

  • 虚拟机坏了不可恢复,要重新装,比较麻烦,不可逆
  • 照片处理,我们所使用的虚拟机是一张照片 ,不是一个真正的虚拟机
  • 使用的时候给真正的虚拟机照相处理即可
  • 快照是可逆的,并且可以随意处理

(4)怎样做一个虚拟机的快照以及开启使用这个快照?

实验环境:使用自己下载过的一个实实在在的虚拟机happy

在真机的root下面进行 其实所有改的都是原来的虚拟机信息

第一步:在真机的root下 cd /var/lib/libvirt/images/, 为了后期使用相对路径

ls 查看该路径下的文件  ,查看虚拟机的硬盘信息 ,看是否有happy.qcow2

第二步:接下来建立happy这个虚拟机的快照 ,使用命令 qemu-img

-f

我们要建虚拟机快照的硬盘格式

-b

备份虚拟机的硬盘信息

/var/lib/libvirt/images/xuniji.qcow2

真实虚拟机的硬盘路径

/var/lib/libvirt/imag /node1.qcow2

虚拟机的快照路径


第三步:ls查看node1.qcow2是否生成(虚拟机快照硬盘格式)


第四步:du -sh node1.qcow2 查看快照文件的大小, 一般比真正虚拟机文件要小


第五步:file node1.qcow2 回到查看真正文件的大小


第六步:回去点击电视 ,然后给快照导入路径 ,改名字为node1

然后就可以看到一个虚拟机生成了 ,可以登陆了 ,密码和帐号与原来虚拟机一样

第七步:登陆快照虚拟机node1(帐号和密码与xuniji的一模一样)

进去快照虚拟机之后,删根,rm -rf /*破坏掉这个快照虚拟机,然后就坏了
可以看到有些文件不能删除,因为这些文件是这个快照虚拟机正在运行的,在内存当中
扔掉快照 重新照 ,rm -rf node1.qcow2,重新建立快照即可
以上就是手动建立虚拟机快照的方法

(5)使用脚本安装虚拟机的快照 

 第一步:在真机root下cd /mnt/ 在该目录下建立脚本设置快照;ls

第二步:vim vm_snap.sh 建立生成快照虚拟机的脚本


第三步:编写脚本

  • #!/bin/bash     ##该脚本为二进制文件
  • cd /var/lib/libvirt/images     ##为了下面使用相对路径方便
  • qemu-img create -f qcow2 -b $1.qcow2 $2.qcow2 &> /dev/dull     ##创建虚拟机的快照,并且将输出重定向输出到垃圾桶
  • virt-install \     ##使用命令
  • –name $2 \     ##虚拟机快照的名字
  • –ram 1024 \     ##快照的内存大小
  • –vcpus 1 \     ##快照的cpu大小
  • –disk /var/lib/libvirt/images/$2.qcow2,bus=virtio \     ##快照的硬盘信息
  • –network bridge=br0,model=virtio \     ##快照的网络信息
  • –import &> /dev/null &     ##导入快照的路径,并且将输出重定向输出到垃圾桶,将该进程在后台运行

第四步 :然后退保存即可,点击电视,点击import

第五步:ll /var/lib/libvirt/images/ -d
sh vm_snap.sh $1(原来虚拟机的名字) $2(快照虚拟机的名字)
sh vm_snap.sh xuniji node1 就可以看到快照虚拟机了(还是有东西输出,原始虚拟机的信息,这个也可以屏蔽)
一条命令可以建立一个快照虚拟机 这个很有用

发现node2 node3 node4都建立成功了
但是如果执行命令虚拟机没有出来,也没有报错,那么我们应该判断脚本写入是否有错。

猜你喜欢

转载自blog.csdn.net/daidadeguaiguai/article/details/102690860
今日推荐