redhat光盘中收录了KVM 所以我们可以直接使用yum安装KVM相关的包

前提是你已经配好了yum源。

yum -y install qemu-kvm virt-manager libvirt

。。。。。。。。。。。。。。。。。。。

安装完成后启动服务

service libvirtd start

启动 libvirtd 守护进程 :        [确定]

。。。。。。。。。。。。。。。。。。。

输入命令brctl show 显示一下信息表示OK

wKioL1lA8VzDNKRyAAAWfdG2p-Y220.png-wh_50


建议:service NetworkManager stop

chkconfig NetworkManager off


这个时候启动服务

vir-manager 弹出下面界面

wKioL1lA8hyj1ipQAAAwm8wzUJA425.png-wh_50

OK接下来点击“电脑”图标按照提示根据自己的需要安装就OK了。都是图形界面没什么好说的。

如果我们在生产环境中需要安装多台虚拟机怎么办呢?克隆?OK当然克隆的最简单方便的方法啦。但是如果直接克隆真实是很占用资源。小编今天跟大家分享一种更轻便、更简单的方法:

第一步:启动进程后 在目录/var/lib/libvirt/p_w_picpaths/下生成一块80G的空间 具体操作如下

[root@localhost ~]# service libvirtd start

启动 libvirtd 守护进程:                                   [确定]

 

[root@localhost p_w_picpaths]# qemu-img create -f qcow2 rhel6base.img 80G

[root@localhost p_w_picpaths]#virt-manager 启动服务

按照提示一步步安装

注意:下面这一步的时候路径为生成的rhel6base.img的路径

wKiom1lCN2bRezJlAAGfFzhVQ3o431.jpg-wh_50

安装完成后重新引导进入系统后关掉虚拟机

以刚开装的kvm虚拟机为模板 克隆第二太虚拟机 具体操作如下 

[root@localhost p_w_picpaths]# qemu-img create -b rhel6base.img -f qcow2 rhel6base2.img 

Formatting 'rhel6base2.img', fmt=qcow2 size=85899345920 backing_file='rhel6base.img' encryption=off cluster_size=65536 

启动图界面操作基本上没有太大差异,注意下面两步操作

1:使用现有的磁盘镜像文件

wKiom1lCRMmxZBofAAGfpvfXwBY958.jpg-wh_50

2:路径为新生成的rhel6base2

wKiom1lCRMiTdlImAAFE29O0Kh8279.jpg-wh_50


安装完成后查看增大的文件大小 只有8.7M

[root@localhost p_w_picpaths]# ll -lh

总用量 3.8G

-rw-r--r-- 1 root root 8.7M 6月  15 15:06 rhel6base1.img

-rw-r--r-- 1 qemu qemu 3.8G 6月  15 11:24 rhel6base.img

对于技术人员来说还可以通过直接命令行进行新建虚拟机

具体操作:

先创建增量镜像文件

[root@localhost p_w_picpaths]#qemu-img create -b rhel6base,img -f qcow2 rhel6base2.img

[root@localhost p_w_picpaths]# virsh list --all

 Id    名称                         状态

----------------------------------------------------

 -     rhel6base                      关闭

 -     rhel6basenode1                 关闭

[root@localhost p_w_picpaths]# virsh dumpxml rhel6base

<domain type='kvm'>

  <name>rhel6base</name>

  <uuid>377ef988-42cf-5aad-771c-6e95979ea6a9</uuid>

  <memory unit='KiB'>1003520</memory>

  <currentMemory unit='KiB'>1003520</currentMemory>

  <vcpu placement='static'>1</vcpu>

  <os>

    <type arch='x86_64' machine='rhel6.5.0'>hvm</type>

    <boot dev='hd'/>

  </os>

  <features>

    <acpi/>

    <apic/>

    <pae/>

  </features>

  <clock offset='utc'/>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>restart</on_crash>

  <devices>

    <emulator>/usr/libexec/qemu-kvm</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='qcow2' cache='none'/>

      <source file='/var/lib/libvirt/p_w_picpaths/rhel6base.img'/>

      <target dev='vda' bus='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

    </disk>

    <disk type='block' device='cdrom'>

      <driver name='qemu' type='raw'/>

      <target dev='hdc' bus='ide'/>

      <readonly/>

      <address type='drive' controller='0' bus='1' target='0' unit='0'/>

    </disk>

    <controller type='usb' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>

    </controller>

    <controller type='ide' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

    </controller>

    <interface type='network'>

      <mac address='52:54:00:c3:8c:d4'/>

      <source network='default'/>

      <model type='virtio'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

    </interface>

    <serial type='pty'>

      <target port='0'/>

    </serial>

    <console type='pty'>

      <target type='serial' port='0'/>

    </console>

    <input type='tablet' bus='usb'/>

    <input type='mouse' bus='ps2'/>

    <graphics type='vnc' port='-1' autoport='yes'/>

    <sound model='ich6'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

    </sound>

    <video>

      <model type='cirrus' vram='9216' heads='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </video>

    <memballoon model='virtio'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

    </memballoon>

  </devices>

</domain>

输出的内容就是虚拟机的配置文件

我们可以把输出文件重定向输出到/tmp下面重命名为mymv.xml

[root@localhost p_w_picpaths]# virsh dumpxml rhel6base > /tmp/myvm.xml

然后对配置文件进行修改

[root@localhost p_w_picpaths]# vim /tmp/myvm.xml

克隆出来的虚拟机需要更改 rhel的名字 mac地址  uuid号 文件名四个地方

修改名称:

<name>rhel6base</name> --》 <name>rhel6base2</name>

修改UUID:

[root@localhost p_w_picpaths]# uuidgen  【生成新的uuid】

   7bb06bc1-d610-4f51-a641-d1566b0a0c8b

   <uuid>377ef988-42cf-5aad-771c-6e95979ea6a9</uuid>  --》 <uuid>7bb06bc1-d610-4f51-a641-d1566b0a0c8b</uuid>

修改mac地址: <mac address='52:54:00:c3:8c:00'/>   --》 <mac          address='52:54:00:c3:8c:01'/>

修改磁盘文件名:

 <source file='/var/lib/libvirt/p_w_picpaths/rhel6base.img'/    ---》

 <source file='/var/lib/libvirt/p_w_picpaths/rhel6base2.img'/ 

最后:

[root@localhost p_w_picpaths]# virsh define /tmp/myvm.xml 

定义域 rhel6base2(从 /tmp/myvm.xml)

[root@localhost p_w_picpaths]#virt-manager  可以看到多了一台rhel6base2的虚拟机

wKioL1lCbh3Cv66iAABnd0zbP0A017.png-wh_50


感觉这种方法操作方便,节省资源。供大家参考。

想要更快速的安装克隆虚拟机可以把步骤写成脚本。

#!/bin/bash


BASEVM=rhel6base

IMG_DIR=/var/lib/libvirt/p_w_picpaths

read -p "Input a number: " VM_NUM

NEWVM=rhel6basenode$VM_NUM

qemu-img create -b $IMG_DIR/${BASEVM}.img -f qcow2 $IMG_DIR/${NEWVM}.img

virsh dumpxml ${BASEVM} > /tmp/myvm.xml

sed -i "/name>r/s/${BASEVM}/${NEWVM}/" /tmp/myvm.xml

sed -i "/uuid/s/uuid>.\{36\}/uuid>$(uuidgen)/" /tmp/myvm.xml

sed -i "/${BASEVM}.img/s/${BASEVM}.img/${NEWVM}.img"  /tmp/myvm.xml

sed -i "/mac add/s/00'\/>/$VM_NUM'\/>/" /tmp/myvm.xml 【母机mac地址后两位00】

virsh define /tmp/myvm.xml


执行以上脚本就可以快速克隆出来一台kvm虚拟机