模板的两种方式:

瘦模式:一个虚拟机的部署是把原来的镜像设置为只读模式,然后链接在它的基础上读写产生新的数据。它的优点使用更少的空间,但是如果没有了基础模板就不能使用了。
刻隆:它是对原先主机的完全复制,当然大小也一样啦。

创建模板包括三个步骤:

  1. 安装系统,在系统里安装所需的软件 。
  2. 移除系统指定的属性确保主机指定的配置没有重复,比如SSH 的HOST key,持续的网络配置,MAC地址和用户帐户等。
  3. 通过改这个主机的名字,使用template前辍。容易分辨。

案例1:

  1. 安装一个centos7.0的系统。
  2. 安装一个LAMP的架构,并且配置好
  3. 在我们的LAMP的环境都搭建好后,关才虚拟机,接着运行virt-sysprep命令。
    KVMHOST# virsh shutdown CentOS ; sleep 10 ; virsh list --all
     Domain CentOS is being shutdown
        Id  Name                         State
        -----------------------------------------
         -  CentOS                       shut off
KVMHOST#  virt-sysprep -d CentOS
         [   0.0] Examining the guest ...
         [  19.4] Performing "abrt-data" ...
         [  19.4] Performing "bash-history" …
         [  20.0] Performing "udev-persistent-net" ...
         [  20.0] Performing "utmp" ...
         [  20.0] Performing "yum-uuid" ...
         [  20.1] Performing "customize" ...
         [  20.1] Setting a random seed
         [  20.5] Performing "lvm-uuids" ...

当然,我们也可以指定sysprep的操作,要想看可以运行哪些操作。使用virt-sysprep --list-operation命令。这个默认的操作被 *号标记,我们可以更改。

例子: virt-sysprep --operations ssh-hostkeys, udev-persistent -net -d Centos
[   0.0] Examining the guest ...
[  19.6] Performing "ssh-hostkeys" ...
  19.6] Performing "udev-persistent-net" ...

为了方便记忆,我们可以在我们的的模板中加入template的前辍。

案例2: 准备一个windows7 的系统,并且安装了mysql的数据库在系统 上面。

windows系统有个工作和virt-sysprep的作用类似,名字叫做sysprep.

  1. 登陆windows7的操作系统,运行regedit命令,进入注册表。
  2. 依次打开HEKY_LOCAL_MACHINE ---------SYSTEM------SETUP
  3. 添加新的字符串值 ,New|String Value 并命名UnattendFile.
    4.右击这个新键的UnattenFile然后选择Modify,然后键入a:\sysprep.inf并且点击OK。它应该像下面的显示的一样。
    Value name: UnattendFile Value data: a:\sysprep.inf
  4. 在以下路径找到sysprep.exe文件,并双击。C:\Windows\System32\sysprep\
  5. 按上面的都显示选择恢复出厂设置。
    7.然后点击关闭按钮,关闭计算机。
  6. 然后我们备份我们虚拟机的设置,进行重新命名。
    #virsh dumpxml Win7_01 > /root/Win7.xml

部署模板:

(1)打开Virtual Machine Manager(virt-manager),选择Template_centos虚拟机,点击刻隆就可以了。

(2)部署完后,我们可以使用virsh list --all来进行查看。

KVMHOST# virsh list  --all
 Id  Name                         State
-------------------------------------------
 24  Fed21                        running
 -   CentOS_LAMP1                 shut off
 -   CentOS_LAMP2                 shut off
 -   Template_CentOS              shut off

CentOS_LAMP1和Centos_LAMP2就是我们刚才新刻隆的虚拟机。

2. 使用瘦模式的方法去部署虚拟机

  1. 在以前win7.raw的镜像基础上创建两个新的镜像。
    $ sudo  qemu-img create -b /vms/win7.img -f qcow2 /vms/vm1.qcow2
    $ sudo  qemu-img create -b /vms/win7.img -f qcow2 /vms/vm2.qcow2

(2)校验刚才我们创建的镜像

$ sudo  qemu-img info /vms/vm2.qcow2
image: /vms/vm2.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: /vms/win7.img
Format specific information:
  compat: 1.1
  lazy refcounts: false
  refcount bits: 16
  corrupt: false

(3)现在我们基于我们刚才创建的镜像,来生成一个windows1和windows2的虚拟机。
$ sudo virt-clone --original-xml=/root/small.xml -f /vms/vm1.qcow2-n windows7-01 --preserve--data
$ sudo virt-clone --original-xml=/root/large.xml -f /vms/vm2.qcow2 -n windows7-02 --preserve-data

(4)使用virsh命令校验我们创建的虚拟机。
$ sudo virsh list --all

(5)查看我们的硬盘 是否为瘦模式
du -sh /vms/vm1.qcow2