具体操作记录如下:

一、配置宿主机

1、登录WebVirtMgr管理平台

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器

2、添加宿主机

选择首页的WebVirtMgr -->Addd Connection

选择“TCP链接“,设置Label,IP,用户,密码

注意:Label与IP要相同

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_02

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_03

二、虚机部署

1、创建存储池

点击前面创建的宿主机,进入虚拟机部署界面

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_04

点击“存储池”按钮,创建存储池(即创建磁盘镜像存放的位置)

注意:

创建存储池时,首先要在宿主机上创建一个目录,然后在”路径“设置栏中添加该目录

例:mkdir /home/kvm/kvmstorage -p

[把提前下载好的centos镜像拷贝到上面创建的存储池目录/home/kvm/kvmstorage下;这里可以放不同版本的系统镜像(windows也可以),以便在下面安装过程中选择不同镜像安装系统]

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_05

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_06

 2、添加磁盘镜像

 kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_07

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_08


注意:

下面“Metadata”前的小方框一定不能勾选(默认是勾选的,要去掉!)

这里添加的“镜像”就是所创建虚拟机的硬盘空间(我测试环境给了150G)

虚拟机所占用的空间就是这个“镜像”所在的宿主机下路径所在的分区空间(也就是/home/kvm/kvmstorage/,即宿主机的home分区)

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_09

创建完成后如下:

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_10

3、宿主机网卡的桥接模式设置

 kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_11


注意下面的“设备”一项要填写桥接的物理网卡(即br0对应的那个网卡,这里填的是宿主机之前的内网卡em3)

网关地址也一定要填写正确,不然虚拟机和宿主机同网段机器则会网络不通。(如下这一步其实就是创建桥接的网卡配置,也可以在服务器上手动创建)

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_12

4、创建网络池

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_13

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_14

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_15

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_16

5、创建虚机

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_17

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_18

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_19

6、虚机挂载ISO镜像

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_20

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_21

下面选择系统安装时使用的镜像,这个镜像是上面放到/home/kvm/kvmstorage目录下的,如果下载了各种镜像版本放到里面,那么就可以在这里选择你想安装的版本了!

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_22




[这里选择的镜像在上面提到过,保存到存储池目录/home/kvm/kvmstorage里面的,重启虚拟机后在这里就能看到]

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_23

7、启动虚机

点击“启动”按钮后,打开虚机电源。

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_24

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_25


点击控制台按钮,进入操作系统安装界面

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_26

8、虚机IP地址设置

当虚机安装完成后,登陆虚拟机,给虚机设置静态IP地址

[root@vmserver001~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# cat ifcfg-eth0

DEVICE=eth0

HWADDR=52:54:00:8C:6A:E1

TYPE=Ethernet

UUID=4f57c69c-a0f3-44e2-b75e-c37eb130f5b1

ONBOOT=yes

NM_CONTROLLED=no                                    #让eth0不受networkmanager的控制

BOOTPROTO=static

IPADDR=192.168.1.99

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

---------------------------------------------------温馨提示-----------------------------------------

以上的做法里虚拟机配置的都是私网ip地址(宿主机要有私网网关地址),通过桥接模式上网。

如果宿主机上有公网网关地址的话,完全可以将虚拟机配置成公网ip,这样虚拟机就可以正常联网。
比如宿主机的ip地址是110.117.18.19,公网网关地址是110.117.18.1
那么需要将上面操作中所有192.168.1.17的配置改成110.117.18.19。
并且需要将110.117.18.19所在的公网网卡做成br0.

这样虚拟机的配置如下:
[root@vmserver001~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=52:54:00:AF:F3:84
TYPE=Ethernet
UUID=cd66dc1e-60ae-43a0-b252-1244ad92dce7
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=110.117.18.30
NETMASK=255.255.255.192 //跟宿主机的NETMASK配置一样
GATEWAY=110.117.18.1 //跟宿主机的GATEWAY配置一样

[root@vmserver001~]# /etc/init.d/network restart

[root@vmserver001~]# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

[root@vmserver001~]# ping www.baidu.com
PING www.a.shifen.com (220.181.111.188) 56(84) bytes of data.
64 bytes from 220.181.111.188: icmp_seq=1 ttl=55 time=1.65 ms
64 bytes from 220.181.111.188: icmp_seq=2 ttl=55 time=1.40 ms
64 bytes from 220.181.111.188: icmp_seq=3 ttl=55 time=1.53 ms


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

如何删除之前创建的存储池kvm01?

操作记录如下:

[root@openstack qemu]# virsh pool-list --all

Name State Autostart

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

kvm01 active yes

vm1 active yes

首先取消存储池kvm01的激活

[root@openstack qemu]# virsh pool-destroy kvm01

Pool kvm01 destroyed

然后登陆webvirtmgr界面,在“存储池”里找到“kvm01”,先停止,再删除。

再次查看,就删除了存储池kvm01了

[root@openstack qemu]# virsh pool-list --all

Name State Autostart

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

vm1 active yes

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

三、webvirtmgr克隆虚机操作

1、关闭正在运行的虚机

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_27

2、进入虚机配置界面,在克隆配置项,为新的虚机的“名字”,“MAC地址”,“磁盘镜像”进行设置

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_28

==================================================================================

或者:(和上面的克隆效果是一样的)

直接克隆之前所创建虚拟机镜像(这个虚拟机必须是已经创建了的),然后用这个新克隆的镜像去创建新的虚拟机,这也是克隆虚拟机做法。

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_29

然后创建虚拟机,创建中选用上面新克隆的硬盘镜像

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

3、webvirtmgr界面里启动克隆的新虚拟机,vnc进入系统,对/etc/udev/rules.d/70-persistent-net.rules 文件做如下修改

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_30

修改后

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_ubuntu_31

4、编辑/etc/sysconfig/network-scripts/ifcfg-eth0 修改虚机的网卡配置,为虚机分配新的IP地址

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_32

5、重启系统 使网卡重新注册,让配置生效

#reboot

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

以上是centos系统的虚拟机克隆后的做法,如果克隆的虚拟机是ubuntu系统,

那么会发现没有这个/etc/udev/rules.d/70-persistent-net.rules文件

这时只需要修改克隆后的ubuntu虚拟机的ip,然后重启网卡,最后reboot机器即可。

四、webvirtmgr虚机磁盘扩容(新增磁盘)

1 关闭虚机

2 对虚机的xml文件的disk域添加如下代码:

场景一:新增一块磁盘

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

    <driver name='qemu' type='qcow2' cache='none'/>   ---添加改行代码找到新增磁盘格式

    <source file='/home/kvm/teststorage/entd01.img'/>  --指定新增磁盘路径

    <target dev='vda' bus='virtio'/>                              --指定磁盘设备名称,和传输总线类型

</disk>

场景二:新增多块磁盘

已新增两块盘为例:

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

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

   <source file='/home/kvm/teststorage/entd01.img'/>

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

</disk>

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

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

   <source file='/home/kvm/vm/waq02-clone.qcow2'/>

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

</disk>

3 启动虚机,然后在虚机系统内部对磁盘进行格式化,分区等操作。

五、Webvirtmgr虚拟机快照

1.首先需要将做快照的vm关机

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_33

2.到快照池里创建快照

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_34

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_35

如果此虚拟机遇到故障,那么就可以根据它的快照进行恢复了,快照恢复后,再次开机就ok了,就能恢复到快照制作时的机器状态。

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_36

虚拟机内存和CPU扩容

要想对虚拟机的内存和CPU进行扩容,需要先关闭此虚拟机,然后在“设置”里面重置,最后重启服务器即可。

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_服务器_37

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

关闭和删除br0

[root@openstack ~]# virsh net-list

Name State Autostart Persistent

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

br0 active yes yes

[root@openstack ~]# virsh net-undefine br0

error: Failed to undefine network br0

error: Requested operation is not valid: network is still active

[root@openstack ~]# virsh net-destroy br0

Network br0 destroyed

[root@openstack ~]# virsh net-list

Name State Autostart Persistent

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

记一次webvirtmgr中出现"Oops!500服务器内部报错“的处理过程,如下:

kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)_centos_38

出现上面的报错,是由于webvirtmgr服务器上的不当操作或配置错误引起的(要从报错出现后最近的操作着手排查),比如:
1)在利用克隆的磁盘镜像创建新的虚拟机后,没有来得及修改克隆后的虚拟机信息就去访问webvirtmgr界面,于是就有这个报错。
需要修改克隆后新虚拟机的配置信息(上面已提到)后,再次访问就ok了。
2)在webvirtmgr访问页面里添加一个虚拟机后,再次访问也出现了这个报错。原因是这个虚拟机没有被正确创建。
解决办法:登陆到服务器发现这个创建失败的虚拟机,然后强制删除即可!
[root@kvm-server ~]# virsh list
Id Name State
----------------------------------------------------
5 centos7-test5 running
6 centos7-test6 running
7 ubutun-test1 running
8 ubuntu-test2 running
9 ubuntu-test3 running
10 centos6-node1 running
11 centos6-node2 running
12 centos6-node3 running
13 centos7-test4 running

[root@kvm-server ~]# virsh list --all
Id Name State
----------------------------------------------------
5 centos7-test5 running
6 centos7-test6 running
7 ubutun-test1 running
8 ubuntu-test2 running
9 ubuntu-test3 running
10 centos6-node1 running
11 centos6-node2 running
12 centos6-node3 running
13 centos7-test4 running
- centos7-test1 shut off #就是这个虚拟机创建失败,将其删除即可

解决办法:
[root@kvm-server ~]# virsh undefine centos7-test1 #强制删除
Domain centos7-test1 has been undefined

[root@kvm-server ~]# virsh list --all
Id Name State
----------------------------------------------------
5 centos7-test5 running
6 centos7-test6 running
7 ubutun-test1 running
8 ubuntu-test2 running
9 ubuntu-test3 running
10 centos6-node1 running
11 centos6-node2 running
12 centos6-node3 running
13 centos7-test4 running


*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************