码迷,mamicode.com
首页 > 其他好文 > 详细

测试虚拟化管理平台-oVirt

时间:2015-09-17 15:23:45      阅读:2571      评论:0      收藏:0      [点我收藏+]

标签:ovirt   cloud-init   vdsm   glusterfs   

日期:2015/9/2 - 2015/9/17 time 14:51

主机:node86, node92, node93, node72, node73, vm172

目的:测试虚拟化管理平台-oVirt

操作内容:

一、基础环境
1、使用5台物理机来测试:node86, node92, node93, node72, node73
CPU:    Intel(R) Xeon(R) CPU E5-2603 v2 @ 1.80GHz
内存:   32G    
硬盘:   48T(4T x12)   

2、另行准备1台VM来安装ovirt-engine: vm172
CPU:2
内存:4G

3、配置几台主机的hosts解析
192.168.20.172 engine.test.org
192.168.20.72 node72.test.org
192.168.20.73 node73.test.org
192.168.20.86 node86.test.org
192.168.20.92 node92.test.org
192.168.20.93 node93.test.org


5、配置host的时间同步
6、配置node72和node73为glusterfs服务
数据盘使用lvm分区。
如果分区所在设备已经挂载,要先卸载并删掉现有系统。
[root@node72 ~]# yum install lvm2 -y   
[root@node72 ~]# pvcreate /dev/sdb
[root@node72 ~]# vgcreate vg_data /dev/sdb 
[root@node72 ~]# lvcreate -L 24T -n lv_data01 vg_data
[root@node72 ~]# mkfs.xfs -f -i size=512 /dev/vg_data/lv_data01 
[root@node72 ~]# blkid /dev/vg_data/lv_data01 
/dev/vg_data/lv_data01: UUID="2146190d-2d83-44ff-a3cd-bb6255021102" TYPE="xfs"
[root@node72 ~]# echo ‘UUID=2146190d-2d83-44ff-a3cd-bb6255021102 /data                   xfs     defaults        0 0‘ >>/etc/fstab
[root@node72 ~]# mount /dev/vg_data/lv_data01 /data
[root@node72 ~]# df -h |grep data
/dev/mapper/vg_data-lv_data01
                       24T   33M   24T   1% /data

二、安装oVirt
1、安装oVirtEngine
[root@engine ~]# yum -y update
[root@engine ~]# yum -y install http://plain.resources.ovirt.org/pub/yum-repo/ovirt-release35.rpm
这个yum源,在每个host上都要统一部署。
【注意】
源站的速度很慢时,可以找一下镜像站点,或同步到本地:
http://resources.ovirt.org/pub/yum-repo/mirrorlist
[root@engine ~]# yum -y install ovirt-engine
[root@engine ~]# engine-setup
按照一系列的指引来操作即可。


2、本地访问:
https://engine.test.org

浏览器会提示https异常,忽略。


3、安装主机/节点(host)
参考:http://www.ovirt.org/Quick_Start_Guide#Install_Hosts
有2种方式:
1)使用ovirt Node镜像(专为 oVirt 定制的 Linux 系统)安装。在定制的情况下,Node 上的许多文件系统都是 ramdisk( 基于内存的 Linux 磁盘设备 ),系统重启后其中的内容消失,从而保证了 Node 的无状态性。
2)在普通的 Linux 上安装 VDSM(Virtual Desktop Server Manager)软件包。
每一个 主机 上都会运行一个 VDSM,实现网络、存储器、虚拟机的创建与修改的功能。


本例使用方式2,在host上安装vdsm
[root@node86 ~]# yum -y install http://plain.resources.ovirt.org/pub/yum-repo/ovirt-release35.rpm
[root@node86 ~]# yum -y install vdsm
使用同样的方式,安装其他主机。

每一个物理机器就是一个host,运行一个 VDSM,host本身只携带少量存储器用以保存配置,然后有一个engine来统一管理,将VM数据保存在共享存储中。



三、配置数据中心、集群、主机/节点
1、登录到“管理门户”
https://engine.test.org/ovirt-engine/webadmin
默认安装了一个名称为“default”的数据中心,我们新建一个。

2、配置数据中心(Data Centers)
名称:DC4Test
创建。

3、配置集群(Clusters)
名称:HostOnly
CPU类型:选择SandyBridge,这里没有Xeon可选,因此选择一个相近的CPU家族。
启用 virt 服务:勾选(默认)
启用 Gluster 服务:不勾选(默认),如果勾选,则ovirt会自动下载和配置host的gluster服务。
创建。

名称:GlusterOnly
启用 virt 服务:不勾选
启用 Gluster 服务:不勾选
创建。



4、配置主机/节点(Hosts)
集群:HostOnly
名称:node86/node92/node93
地址:对应的IP

集群:GlusterOnly
名称:node72/node73
地址:对应的IP
选择菜单:“数据中心”-“集群”-“卷”-“新建”,可以在host上创建卷。
注意,在创建时,要保证上级目录是存在的,即,需要手动创建

举例:选择2个主机做Replicate
# mkdir -p /data/brick1
名称:gv_data_domain
类型:Replicate
Bricks:添加brick
--主机:主机1的IP/主机2的IP
--Brick 目录:/data/brick1/gv_data_domain
--Brick 目录:/data/brick1/gv_data_domain
允许访问:*(默认)
为 Virt 库进行优化:不勾选(默认),后续也可以选定卷后执行菜单来操作,主要是针对卷做一些配置,例如目录的属主等。
优化后,配置将做如下调整:
Options Reconfigured:
diagnostics.count-fop-hits: on
diagnostics.latency-measurement: on
storage.owner-gid: 36
storage.owner-uid: 36
cluster.server-quorum-type: server
cluster.quorum-type: auto
network.remote-dio: enable
cluster.eager-lock: enable
performance.stat-prefetch: off
performance.io-cache: off
performance.read-ahead: off
performance.quick-read: off
auth.allow: *
user.cifs: enable
nfs.disable: off
performance.readdir-ahead: on

启动服务并启动Profiling:
菜单:“启动”
菜单:“启动”-“Profiling”-“启动”


【注意1】
centos系统自带旧版本(3.4)和host启用gluster服务后安装的新版本(3.7)的使用有区别,在挂载卷时可能出现异常(http://serverfault.com/questions/664970/glusterfs-failed-to-get-the-volume-file-from-server),此时请升级到同一个版本。
默认ovirt在安装时,使用的是:ovirt-3.5-dependencies.repo,,当前会下载glusterfs/3.7

客户端手动安装官网的新版本:
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-3.7.4-2.el6.x86_64.rpm
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-libs-3.7.4-2.el6.x86_64.rpm
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-client-xlators-3.7.4-2.el6.x86_64.rpm
# wget http://download.gluster.org/pub/gluster/glusterfs/3.7/LATEST/CentOS/epel-6/x86_64/glusterfs-fuse-3.7.4-2.el6.x86_64.rpm
# rpm -ivh *.rpm



【注意2】
host的角色:
SPM:Storage Pool Manager

【注意3】
关于电源管理的配置,需要集群中最少存在2台host才可以使用。以dell为例,
启用电源管理:勾选
地址:idrac的IP
用户名:root
密码:对应的密码
类型:drac7(如果在idrac中启用了ipmi over lan,则此处选择ipmilan)

点击“测试”,通过后,确认即可。


四、配置逻辑网络(Logical Networks)
1、所有数据中心(DC)默认创建了一个管理网络:ovirtmgmt,这个是无能删除的。
这个网络将承载所有的网络流量,除非,你又新建了一个逻辑网络。
管理网络,顾名思义,主要用途应该是专门用于oVirt 和 hosts之前通信。
考虑到性能问题,存储网络和管理网络最好是分离的,以免网络利用率过高,要避免在hosts之间传输大量数据。

逻辑网络是DC级别的资源。

重要提示: 如果计划在oVirt hosts上提供一些服务,要记住,当oVirt环境停止工作时,服务将会停止,要特别注意这些服务:
Directory Services
DNS
Storage

2、端口镜像(Port Mirroring)
拷贝某个逻辑网络的3层流量到一个vm的虚拟网络接口上,这个vm可以用于网络排错和调优,入侵检测,监控同一个逻辑网络和host上的vm


3、网络分类(Required Networks, Optional Networks, and Virtual Machine Networks)
必需的(Required):用于集群中的所有host,默认加入集群的逻辑网络都是Required类型的。当Required类型的逻辑网络不可用时,vm将被隔离并迁移到其他host上
可选的(Optional):用于指定的host,没有显示的声明为Required的逻辑网络,是否可用都不影响所在host当前的可用状态
vm Networks:用于vm之间流量的逻辑网络。


4、创建逻辑网络(Logical Network Tasks)
1)创建
菜单:“网络”-“新建”
名称:ovirtem2
点击“确定”,即可增加一个虚拟网络“ovirtem2”,同时会创建一个vNic配置“ovirtem2”。

当然,还可以创建tagVLAN类型的:
菜单:“网络”-“新建”
名称:ovirtVlan101
VLAN标签: 101
点击“确定”
重复操作创建:ovirtVlan102

后续可以在一个网络接口上配置多个VLAN类型的逻辑网络:
菜单:“主机”,选择其中一个主机(例如node86),点击下方的菜单:“网络接口”-“设定主机网络”
弹出界面“设定主机网络”,
可以用鼠标拖拽右边的ovirtVlan101,ovirtVlan102这2个逻辑网络到node86的物理网卡em3上
可以配置每个Vlan的IP
可以通过拖拽的方式配置物理网卡绑定(bonds)

后续可以在创建vm后,附加VLAN类型的vNic,配置好2端的网络,ping测试一下连通性。


2)指定角色
菜单:“集群”-“逻辑网络”-“管理网络”
默认新增的逻辑网络ovirtem2,属于:
“分配给集群中所有的hosts”,“必需的”,“虚拟机网络”
对应的英文是:
"Assign", "Required", "VM Network", "Display Network", "Migration Network"

“显示网络”和“迁移网络”则属于:ovirtmgmt

我们可以调整一下,将ovirtem2设置为可选的:
必需的:不勾选

3)网络标签
之前我们创建tagVLAN类型的虚拟网络时,忽略了标签的配置,现在我们加上:
菜单:“主机”,选择其中一个主机(例如node86),点击下方的菜单:“网络接口”-“设定主机网络”
弹出的界面,我们选择网卡em3,有个铅笔一样的突变,点击编辑,填写:
网络标签:ifcfg-em3

然后编辑ovirtVlan101和ovirtVlan102的网络标签,更新为:
网络标签:ifcfg-em3

接着,我们新增一个ovirtVlan103,同样的:
网络标签:ifcfg-em3

回到网络接口,我们可以发现,ovirtVlan103自动被管理到物理网络em3上,现在的图示是这样的:
名称          VLAN            网络名称
     -----   em3.101 (101)   ovirtVlan101
	 |
em3 ------   em3.102 (102)   ovirtVlan102
	 |
     -----   em3.103 (103)   ovirtVlan103
     
由此可见,同样的网络标签可以自动关联。


【问题】
在创建了几个tagVLAN的逻辑网络,设定了网络标签,并自动关联到host的物理网卡后,我做了如下操作:
试图先删掉逻辑网络,,,OK,删掉了,是的,在解除和host的物理网卡的关联前,删掉了!
最终,host网络配置出现异常,最终导致ovirt和host的通信异常。
好消息是:重写激活host后,恢复正常。



5、虚拟机接口配置集和QoS(vNIC Profiles and QoS)
1)配置Qos
菜单:“数据中心”-“QoS”-“网络QoS”
名称:test-vNic-QoS
点击“确定”

2)配置vNic
菜单:“网络”-“新建”
名称:ovirtTest1
vNic配置集:QoS,选择刚创建的“test-vNic-QoS”
点击“确定”
编辑网络角色,设置为非必需的。


当然,我们可以再创建一个vNic:
菜单:“vNic配置集”-“新建”
名称:test-vNic1
端口镜像:勾选
点击“确定”






五、配置存储(Storage)
1、包括三类存储域:
1)数据域(Data Domain):数据域包括了数据中心中的所有虚拟机的虚拟硬盘和 OVF 文件。另外,虚拟机的快照也被保存在数据域中。
数据域不能被不同的数据中心共享。不同类型(iSCSI、NFS、FC、POSIX 和 Gluster)的存储域可以被添加到同一个数据中心中,并在这个数据中心中共享。
您必须首先为数据中心添加一个数据域,然后才能为它添加其它类型的域。

2)ISO 域(ISO Domain):ISO 域包括了用来为虚拟机安装、启动操作系统和应用程序的 ISO 文件(或逻辑 CD)。使用 ISO 域将使这个数据中心不再需要物理的安装介质。一个 ISO 域可以被不同的数据中心共享。

3)导出域(Export Domain): 导出域是一个临时的存储软件仓库,它被用来在数据中心和 Red Hat Enterprise Virtualization 环境间复制和迁移数据镜像。导出域可以被用来备份虚拟机。一个导出域可以在不同的数据中心间迁移,但它只能同时在一个数据中心中有效。

2、配置数据域(Data Domain)
1)首先,可以使用NFS,也可以使用GlusterFS,我们在前面的操作中,已经创建了Gluster服务
在web上操作,增加1个数据域(注意:新建了一个数据域后,才可以新建其他的域):
名称:data_gluster_gv0
类型:DATA/GlusterFS
导出路径:192.168.20.72:/gv0

2)如果要使用NFS,请选择:DATA/NFS
执行如下操作,配置NFS服务:
yum install nfs-utils -y && chkconfig rpcbind on \
&& chkconfig nfs on && service rpcbind start && service nfs start && mkdir -p /data/storage/datapool && chown -R 36:36 /data/storage/datapool && chmod -R 0755 /data/storage/datapool && cat <<‘_EOF‘ >>/etc/exports
/data/storage/datapool *(rw,sync,no_subtree_check,all_squash,anonuid=36,anongid=36)
_EOF && exportfs -arv

其他操作类似。



3、配置ISO域(ISO Domain)
ISO 域必须和数据中心有相同的存储类型,数据中心中的每个主机(特别是作为 SPM 的主机)都需要有对 ISO 域的读写访问权限。
使用oVirtEngine创建时自动配置的iso域,或另建一个,同上,略过。

【在oVirtEngine上操作】
列出iso域:
[root@engine ~]# engine-iso-uploader list
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort): (输入oVirt的web登录密码。)
ISO Storage Domain Name   | Datacenter                | ISO Domain Status
ISO                | DC1                       | active

上传一个ISO镜像:
[root@engine ~]# engine-iso-uploader upload -i iso1 /mnt/CentOS-6.5-x86_64-bin-DVD1.iso
Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort): 
Uploading, please wait...
INFO: Start uploading /mnt/CentOS-6.5-x86_64-bin-DVD1.iso
INFO: /mnt/CentOS-6.5-x86_64-bin-DVD1.iso uploaded successfully


4、配置导出域(Export Domain)
同上,略过




六、创建VM
1、创建一个linux vm
【常规】
操作系统:Red Hat Enterprise Linux 6.x x84
名称:vm-tpl-01
网络:选择指定的网卡。

---高级选项---
【系统】
时区:GMT+8
---采用默认
【初始运行】使用 Cloud-Init/Sysprep:暂不勾选。后续有讨论。
【控制台】
【主机】指定VM启动时,是在集群里的任何host中运行,或是指定在其中某一台host中运行
【高可用性】
【资源分配】
【引导选项】
【随机数生成器】
【自定义属性】

点击创建,进入下一步,配置虚拟磁盘。
新增一个磁盘,10G,作为系统盘,点击创建。

选择VM的右键菜单“只运行一次”,可以配置启动时的引导选项等。
安装正常安装linux系统的方式来操作,例如:选择最小化安装一个CentOS-6.5-x64


2、创建一个windows vm
(略)

3、控制台
默认使用SPICE协议(可选VNC)来启动控制台。选择VM的右键菜单-控制台选项,可以设置控制台类型。
左下角有个链接:http://www.ovirt.org/Console_Client_Resources
可以下载virt-viewer: 
http://virt-manager.org/download/sources/virt-viewer/virt-viewer-x64-2.0.msi
安装完成后,会看到一个Remote Viewer程序。

1)SPICE
Simple Protocol for Independent Computing Environments (SPICE)
这个是推荐的控制linux和window的协议
在打开控制台时,如果Remote Viewer没有安装,则会自行下载一个文件,名称为:console.vv,使用Remote Viewer程序打开即可。
https://[your manager‘s address]/ovirt-engine/services/files/spice/virt-viewer-x64.msi

2)VNC
Virtual Network Computing (VNC) ,使用Remote Viewer or a VNC client来连接服务器。

3)RDP
windows专用的远程桌面协议。



4、快照
选择VM,选择菜单“创建快照”
描述:snap01
确定即可。

关闭VM后可以在下方的菜单操作快照,例如
1)预览:选择一个快照后,确定,启动VM,查看符合预期
2)提交:预览快照,符合自己想要的状态,停止VM,提交恢复到指定的快照状态
3)撤销:和提交相反,撤销这个预览的快照,回到之前的状态
4)删除:删掉选中的快照
5)克隆:根据选中的快照来创建VM,tvm-test-clone-from-snapshot



5、克隆
选择VM,关闭,选择菜单“克隆VM”
克隆名称:tvm-test-clone
确定即可。
注意,,克隆出来的vm的网卡,因为udev,启动时会出现异常。



6、亲和组(affinity group)
可以设定一组vm都在一个host上(positive),或者分布在不同的host上(negative)。
1)negative
假设我们有3个VM,之前都指定在一个host上,我们可以配置一个“ Affinity 组”,选择菜单“新建”
名称:test-affinity-negative
positive:不勾选(勾选是 positive ,不勾选是 negative )
选择指定的vm
确定。
将这3个VM关机,调整配置:
选择VM,选择菜单“编辑”
【主机】指定VM启动时,是在集群里的任何host中运行
再次启动主机,可以观察到,这3个VM将分布在3个不同的host上。

2)positive
我们调整一下策略,
positive:勾选

将上述3个VM关机后再次启动,可以观察到,这3个VM将分布在同一个host上。


7、导入导出
VM和模版可以在数据中心(DC,可以是不同的ovirt环境)之间导入导出,保存为这种格式:Open Virtual Machine Format (OVF)。

导出要满足3个条件:
1)导出域(export domain)存在,且被挂载到源DC上
2)vm是关闭的
3)如果vm是基于模版创建的,则模版也要在目标DC上

选择VM,选择菜单“导出”
强制覆盖(Force Override):勾选(勾选将覆盖导出域已经存在的image)
整合快照(Collapse Snapshots): 勾选(勾选将创建一个独立的磁盘卷,移除快照,包含模版,也就是说移除了vm对模版的依赖)

导入时,在目标DC上挂载导出域,然后在界面选择vm导入。


8、在线迁移
源和目标host要满足如下要求:
同一个cluster,保证CPU兼容性。
在线。
网络互通。(网络要一致,例如host1有2个网卡,host2有1个网卡,这样是异常的状态)
存储域可访问。
目标host上要能提供足够的CPU和MEM资源给vm使用。
自定义属性不包括:cache!=none

1)自动迁移
如果集群中某个host进入维护状态,oVirt将自动初始化在线迁移这个host上的VMs,同时会评估目标host的性能,以平均整个集群的负载。
2)阻止自动迁移
选择VM,选择菜单“编辑”
【主机】指定VM启动时,是在指定的其中某一台host上运行。

3)手动迁移
我们尝试将上面设置过亲和组的3个VM迁移到另一个host上。
操作失败,因为亲和组的策略设置是3个VM要在同一个host上。
删除策略后,操作成功。

4)设定迁移优先级
oVirt允许通过设定个别重要的VM的优先级,在迁移队列中提前迁移。
选择VM,选择菜单“编辑”
高可用:勾选
优先级:选择其中一个

9、agent
安装ovirt-guest-agent
在vm上先安装ovirt-release35.rpm这个yum源。
# yum -y install http://plain.resources.ovirt.org/pub/yum-repo/ovirt-release35.rpm
# yum -y install ovirt-guest-agent
启动服务
# service ovirt-guest-agent start
# chkconfig ovirt-guest-agent on


七、创建模版
1、利用刚才创建的linux vm来制作模版

1)配置常用的服务
# yum -y install bind-utils lrzsz man ntp openssh-clients rsync traceroute vim wget tree 
使用ntpd服务来控制vm的时间同步。
# service ntpd start
# chkconfig ntpd on

到这个时候,我们的vm-tpl-01已经安装了如下工具:
installed: ovirt-guest-agent bind-utils lrzsz man ntp openssh-clients rsync traceroute vim wget tree

2)手动清理在创建虚拟机时可能导致冲突的配置
清理hostname
# cat <<‘_EOF‘ >/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
_EOF

清理ssh相关
# rm -f /etc/ssh/ssh_host_* && rm -fr /root/.ssh

清理网卡相关
# sed -i -e ‘/UUID/d‘ -e ‘/HWADDR/d‘ -e ‘/ONBOOT/d‘ -e ‘/BOOTPROTO/d‘ -e ‘/IPADDR/d‘ -e ‘/NETMASK/d‘ -e ‘/GATEWAY/d‘ -e ‘/TYPE=Ethernet/a\ONBOOT=no\nBOOTPROTO=dhcp‘ /etc/sysconfig/network-scripts/ifcfg-eth*


(可选)清理log相关文件
# find /var/log -type f -delete && find /root -type f ! -name ".*" -delete && echo> /root/.bash_history

最后一步,操作后会自动关闭vm
# sys-unconfig
【注意】
其实sys-unconfig这个工具里面只是清理了udev,其他的私人文件还是要自己手动处理。



2、选中vm,选择菜单“创建模版”
名称:centos6u5_x64-01
描述:CPUx2-RAM2G-DISKx10G-NETIFx2
注释:vm模版01

【问题】
模版为何创建的这么迅速?


3、使用模版
新建VM,选择上面创建的模版
名称:tvm-test-template
调整时区
创建即可。

4、导出模版
和导出VM类似。




八、创建VM池(VM pool)
VM池是VM的集合,来自同一个模版,可以根据需求快速生成一堆vm
1、创建
基于模版:
名称:testpool???
虚拟机的数量:7(当pool创建后将要创建为可用的,处于关闭状态的vm的数量)
预启动的:不可写(当pool创建后将生成vm,但这个时候的vm是处于关闭未使用的状态,此时再编辑这个pool,即可配置这里预启动的vm数量,例如配置为3,则观察发现,有3个主机开始上线,随时准备指派给用户使用)
每个用户的最大虚拟机数目:2(单个用户单次可以从pool中申请的vm数量)

【关于名称】
使用testpool???,则生成的VM的名字如下:
testpool001
testpool002
testpool003

如果不用3个问号(???)来匹配数字,例如名称为:“pool1”,则生成的VM的名字如下:
pool1-1
pool1-2
pool1-3

其他选项类似创建VM时配置即可。


2、删除pool
1)分离已经处于关闭状态vm
2)关闭在线的vm
菜单:“虚拟机”
选择这个pool中的vm,右键选择菜单“关闭”,等待一会儿,vm会进入“power down”的状态,再次选择“关闭”,vm会进入“关闭”状态
接着回到pool页面,再从pool分离vm,将提示分离所有的VM时,将会删除这个pool,确认后,点击“确定”




九、VM磁盘(Virtual Machine Disks)
1、oVirt支持3种存储方式: NFS, iSCSI and FCP,主机(host)通过SPM角色来管理存储,SPM唯一拥有针对存储池的所有权限,可以更新存储域(storage domain)和池(pool)的metadata,其他的hosts对vm的硬盘镜像是只读的。
精简资源分配(thin provisioned):SPM在使用NFS, local, or POSIX compliant这类方式的数据中心中创建的vm磁盘的格式。默认初识创建1GB的逻辑卷,后续随着使用量的增加,hosts会和SPM沟通,在达到阀值时,每次增加1GB的空间,如果vm是处于暂停的状态,则意味着SPM可能负载较高,一时之间无法执行扩大磁盘的操作。
预分配(preallocated):SPM在使用iSCSI 这类块存储的数据中心中创建的vm磁盘的格式。例如指定了10GB的磁盘大小,则将创建10GB的逻辑卷。

vm磁盘使用preallocated (RAW) 格式明显的写速度要快于thin provisioning (Qcow2) 格式,后者还有个好处是:创建非常迅速。通常而言,thin provisioning (Qcow2) 不适用于高IO的vm类型。

高于 oVirt 3.3 的版本支持在线扩容

2、创建磁盘
选择一个vm来创建磁盘时,可以根据需要来设置:
删除后清理:vm磁盘被删除后,清理数据,这个是为安全考虑。 
可引导的:可引导的,系统盘选择这个。
可共享的:这种类型的磁盘,可以添加到多个vm上作为共享存储来使用。
只读的:在添加时,还可以设置磁盘为只读的(R/O, readonly),这样一来,可以只允许个别vm有读写的权限,其他的vm只读。
接口:默认是VirtIO,速度比IDE更快,需要驱动支持,CentOS6已经包含了驱动,windows要在安装时手动配置驱动。



十、ovirt备份
1、备份ovirt的工具
# engine-backup 
基本参数:
--mode=     : backup, restore
--file=     : path/filename
--log=      : path/filename
--scope=    : all, db

2、示例备份
全备份:
# engine-backup --scope=all --mode=backup --log=[file name] --file=[file name]
db备份:
# engine-backup --scope=db --mode=backup --log=[file name] --file=[file name]

输出一个tar文件。

3、示例全新安装ovirt-engine环境的恢复过程
注意,恢复时,是在ovirt-engine环境安装好,但engine-setup执行前。
1)配置db
postgresql初始化,启动服务,添加到开机启动:
# service postgresql initdb
# service postgresql start
# chkconfig postgresql on

登录,创建用户和数据库
# su postgres
$ psql
postgres=# create role [user name] with login encrypted password ‘[password]‘;
postgres=# create database [database name] owner [user name] template template0 encoding ‘UTF8‘ lc_collate ‘en_US.UTF-8‘ lc_ctype ‘en_US.UTF-8‘;

编辑配置文件:
/var/lib/pgsql/data/pg_hba.conf
本地数据库:找到Local开头的那段(在文件末尾),替换为:
host    [database name]    [user name]    0.0.0.0/0  md5
host    [database name]    [user name]    ::0/0      md5
远程数据库:找到Local开头的那段,在下面增加一行,替换 X.X.X.X 为oVirt的IP地址:
host    [database name]    [user name]    X.X.X.X/32   md5

# service postgresql restart

2)恢复数据
# engine-backup --mode=restore --file=[file name] --log=[file name] --change-db-credentials --db-host=[database location] --db-name=[database name] --db-user=[user name] --db-password=[password]

3)恢复成功时,会看到这样的提示:
You should now run engine-setup.
Done.

根据提示来:
# engine-setup


4、示例覆盖已有ovirt-engine环境的恢复过程
engine-backup并没有删掉数据库和用户,因此不需要再自己建立一个数据库和用户,使用现有的即可。
1)清理配置文件
# engine-cleanup

2)恢复数据
# engine-backup --mode=restore --file=[file name] --log=[file name]

3)继续配置
# engine-setup


5、恢复数据库,但使用一个新的帐号密码
如果你忘了数据库的密码,来吧,这样操作:
1)清理配置文件
# engine-cleanup
2)配置db
# su postgres
$ psql
更改db用户的密码:
postgres=# alter role [user name] encrypted password ‘[new password]‘;

3)恢复数据
# engine-backup --mode=restore --file=[file name] --log=[file name] --change-db-credentials --db-host=[database location] --db-name=[database name] --db-user=[user name] --db-password=[password]

4)继续配置
# engine-setup


6、手动备份和恢复
(略)


十一、其他事项请参考官网文档
用户
【问题3】如何更改管理员密码,如何创建和管理用户?
配额和SLA
事件通知
实用工具
日志

十二、FAQ
【Q1】:执行virsh命令时,会提示需要用户验证(Please enter your authentication name),看错误提示似乎和配置vdsm服务后,使用了SASL有关系,怎么解决?
A:使用工具“saslpasswd2 - set a user’s sasl password”来创建用户。
问题发生时是这样的:
# virsh list
Please enter your authentication name: 
Please enter your password: 
error: Failed to reconnect to the hypervisor
error: no valid connection
error: authentication failed: Failed to step SASL negotiation: -1 (SASL(-1): generic failure: All-whitespace username.)

我们来创建一个用户:
# saslpasswd2 -a libvirt mYusernAme    
Password: mYpasswOrd
Again (for verification): mYpasswOrd

其中,-a 参数跟着 appname,这里我们需要指定的是libvirt服务
原因是:vdsm在加入ovirt时会使用sasl再次加密libvirt

再次测试:
# virsh list
Please enter your authentication name: mYusernAme
Please enter your password: 
 Id    Name                           State
----------------------------------------------------
 1     tvm-test-template              running
 2     tvm-test-clone                 running
 3     tvm-test-clone-from-snapshot   running
 4     testpool001                    running
 5     testpool007                    running
 6     testpool006                    running
 
符合预期。 


【Q2】:执行ovirt界面上的针对vm的重启操作,ovirt的web界面有提示状态的变更,,但vm的console看并未重启,这是怎么回事?
A:vm里面没有安装agent,在linux下面是:ovirt-guest-agent
参考前面创建vm的章节或官网doc:http://www.ovirt.org/OVirt_Administration_Guide#Guest_Drivers_and_Agents

【Q3】:克隆VM时,磁盘等待很久还没准备就绪
A:状态:被克隆对象,附加了一个大容量磁盘(2T)。
检查所在host上运行的进程,找到qemu-img,检查是否卡死,手动结束。
 
【Q4】:cloud-init是怎么使用的?
A:cloud-init用来设置vm启动后的主机名,时区,验证,网络和自定义脚本。
1)在vm上安装cloud-init
# yum -y install cloud-init
检查开机启动
# chkconfig --list |grep cloud

2)测试
关闭vm,选择菜单“只运行一次”-“初始运行”-“使用 cloud-init”,设置hostname等信息。
单击“确定”,vm开始启动,引导过程中将使用cloud-init这个服务来自动设置vm的基础信息。


看日志(/var/log/cloud-init-output.log )显示:
Cloud-init v. 0.7.5 running ‘init-local‘

结合之前在网络中找的文章中提及:
cloud-init on RHEV searches for a floppy drive
containing a user-data.txt file
参考:
http://people.redhat.com/mskinner/rhug/q3.2014/cloud-init.pdf


我的理解是:
1)通常我们创建vm时,会使用“只运行一次”,来启用引导选项,类似的,个人猜测也cloud-init功能也是在这个时候以类似软驱的形式注入到vm中(vm中的ovirt-guest-agent在启动时临时挂载的?),然后vm在启动过程中读取了user-data这类数据。
2)观察目录 /var/lib/cloud/instance
3)查看文件 datasource
# cat datasource 
DataSourceConfigDrive: DataSourceConfigDrive [local,ver=2][source=/dev/sr1]
# ll /dev/cd*
lrwxrwxrwx. 1 root root 3 Sep 16  2015 /dev/cdrom -> sr0
lrwxrwxrwx. 1 root root 3 Sep 16  2015 /dev/cdrom1 -> sr1
由此可以判断,出现了一个新设备:cdrom1,我们挂载看一下里面的内容:
# mount /dev/sr1 /mnt
mount: block device /dev/sr1 is write-protected, mounting read-only
# tree /mnt/
/mnt/
└── openstack
    ├── content
    │   └── 0000
    └── latest
        ├── meta_data.json
        └── user_data

3 directories, 3 files

# cat /mnt/openstack/latest/user_data 
#cloud-config
ssh_pwauth: true
timezone: Asia/Shanghai
disable_root: 0
output:
  all: ‘>> /var/log/cloud-init-output.log‘
user: root
password: yourpasswd
chpasswd:
  expire: false
runcmd:
- ‘sed -i ‘‘/^datasource_list: /d‘‘ /etc/cloud/cloud.cfg; echo ‘‘datasource_list:
  ["NoCloud", "ConfigDrive"]‘‘ >> /etc/cloud/cloud.cfg‘

# cat /mnt/openstack/latest/meta_data.json 
{
  "launch_index" : "0",
  "availability_zone" : "nova",
  "network-interfaces" : "auto eth0\niface eth0 inet static\n  address 10.0.200.101\n  netmask 255.255.255.0\n  gateway 10.0.200.254\n  dns-nameservers 10.0.200.253\nauto eth1\niface eth1 inet static\n  address 10.0.201.101\n  netmask 255.255.255.0\n  dns-nameservers 10.0.200.253\n",
  "name" : "cloud-init",
  "network_config" : {
    "content_path" : "/content/0000",
    "path" : "/etc/network/interfaces"
  },
  "hostname" : "cloud-init",
  "uuid" : "72be0e3f-10a7-433e-b6b3-a9daded7948f",
  "meta" : {
    "essential" : "false",
    "role" : "server",
    "dsmode" : "local"
  }  

上述2个文件中,实例名,主机名,网络等信息,都是我们在ovirt的web界面中配置的内容。

结合 cloud-init 的 doc来看【No cloud】这一段:
http://cloudinit.readthedocs.org/en/latest/topics/datasources.html#no-cloud
简单翻译下:
NoCloud 和 NoCloudNet 这类数据源,允许用户不需要运行网络服务(甚至不用激活网络)即可提供文件: user-data 和 meta-data 给 实例(instance)
你可以通过vfat or iso9660文件系统提供文件: meta-data 和 user-data 给一个本地 vm 在启动是使用。




ZYXW、参考
1、ovirt 官网doc
http://www.ovirt.org/OVirt_Administration_Guide
2、RHEV 官网doc
https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Virtualization/3.5/html/Installation_Guide/Storage_Setup.html
https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Virtualization/3.5/html/Installation_Guide/Changing_the_Permissions_for_the_Local_ISO_Domain.html
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/appe-Troubleshooting.html#sect-Troubleshooting-Debugging_and_troubleshooting_tools
3、在kvm中遇到过的一些问题(包含ovirt节点)
http://blog.sina.com.cn/s/blog_6a7e7b2f01018agv.html
4、oVirt 中的存储管理
http://www.ibm.com/developerworks/cn/cloud/library/1209_xiawc_ovirt/index.html
5、cloud-init 文档
http://cloudinit.readthedocs.org/en/latest/topics/datasources.html#no-cloud
http://people.redhat.com/mskinner/rhug/q3.2014/cloud-init.pdf


测试虚拟化管理平台-oVirt

标签:ovirt   cloud-init   vdsm   glusterfs   

原文地址:http://nosmoking.blog.51cto.com/3263888/1695644

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!