初探oVirt-体验

2023-11-17

日期:2015/9/2 - 2016/11/15 time 16:40

主机:node72, node73, node86, node93

目的:初探oVirt-体验

操作内容:

一、基础环境
1、【官方建议】
1)oVirt Engine 需求:
最低 - 双核,4 GB 内存,最少 25 GB 磁盘空间,1-Gbps 网卡
推荐 - 2个CPU(4核),16 GB 内存, 50 GB 磁盘空间,1-Gbps 网卡

2)系统OS的最低需求:
Fedora 19: 1 GB 内存,最少 10 GB 磁盘空间
CentOS 6.5: 1 GB 内存,最少 5 GB 磁盘空间
oVirt Engine: 3 GB 内存,最少 3 GB 磁盘空间,1-Gbps 网卡
如果需要在 Engine server 上配置 ISO domain ,则还需要 15 GB 磁盘空间。

3)主机/节点 (oVirt Node, Fedora Host, CentOS Host)
最低 - 双核,10 GB 内存,10 GB 磁盘空间,1-Gbps 网卡,支持AMD-V 或 Intel VT
推荐 - 2个CPU,16 GB 内存,50 GB 磁盘空间, 2个1-Gbps 网卡

4)存储和网络
最少使用其中一种存储 (NFS, iSCSI, FCP, Local, POSIX FS, GlusterFS).
每个节点有静态IP
DNS服务可以正反向解析所有的IP地址
DHCP服务给VM分配IP地址

5)VM支持的系统包括
Microsoft Windows XP, Vista, 7, 8, 2003, 2008 or 2012.
Red Hat Enterprise Linux 5.x or 6.x.
CentOS 6.x
Fedora 16-20
Ubuntu 12.04+
openSUSE 12.x+


2、本次测试环境
1)使用4台物理机来测试:node72, node73, node86, node93
CPU:    Intel(R) Xeon(R) CPU E5-2603 v2 @ 1.80GHz
内存:   32G    
硬盘:   系统盘sda + 数据盘sdb

ovirt-engine: 93
ovirt-hosts: 72, 73, 86
ovirt-gluster: 72, 73, 86
nfs: 93


3)配置几台主机的hosts解析
10.0.200.72 node72.test.org
10.0.200.73 node73.test.org
10.0.200.86 node86.test.org
10.0.200.93 engine.test.org


4)配置host的时间同步
5)配置glusterfs服务
数据盘使用lvm分区。
如果分区所在设备已经挂载,要先卸载并删掉现有系统。
yum install lvm2 xfsprogs -y   
pvcreate /dev/sdb
vgcreate vg0 /dev/sdb 
lvcreate -l 100%FREE -n lv01 vg0
mkfs.xfs -f -i size=512 /dev/vg0/lv01 
mkdir /data
cat <<_EOF >>/etc/fstab
UUID=$(blkid /dev/vg0/lv01 |cut -d'"' -f2) /data                   xfs     defaults        0 0
_EOF

mount -a
# df -h |grep data
/dev/mapper/vg0-lv01  16T   33M  16T   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
按照一系列的指引来操作即可。

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

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

【注意】
安装时,提示“Application mode (Virt, Gluster, Both) [Both]:” 这表示后续在ovirt的web界面中,创建集群时,可以指定的模式。
安装完会自动创建一个“internal domain”和admin,但没有增加其他新的用户。
如果要认证用户,需要额外配置连接到“目录服务”,oVirt支持IPA 和 Active Directory等目录服务,且提供了一个工具“engine-manage-domains”来配置。(请参考后文)


2、安装主机(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)
名称:C1
CPU类型:选择SandyBridge,这里没有Xeon可选,因此选择一个相近的CPU家族。
启用 virt 服务:勾选(默认)
启用 Gluster 服务:勾选(默认不勾选),勾选后,则ovirt会自动下载和配置host的gluster服务,注意repo源中配置的gluster服务的版本是官网最新版,不一定是稳定的版本。
创建。


4、配置主机/节点(Hosts)
集群:C1
名称:node72/node73/node86.test.org
地址:对应的IP

选择菜单:“数据中心”-“集群”-“卷”-“新建”,可以在host上创建卷。
注意,在创建时,要保证上级目录是存在的,即,需要手动创建

举例:选择3个主机做Replicate
先在主机执行:
# mkdir /data/gv0/brick1 -p
然后回到web界面操作:
名称:gv0
类型:Replicate
Bricks:重复操作添加brick
--主机:10.0.200.72
--Brick 目录:/data/gv0/brick1

允许访问:*(默认)
为 Virt 库进行优化:不勾选(默认),后续也可以选定卷后执行菜单来操作,主要是针对卷做一些配置,例如目录的属主等。
启动服务并启动Profiling:
菜单:“启动”
菜单:“启动”-“Profiling”-“启动”

【注意1】
host的角色:SPM:Storage Pool Manager,数据域可用时生效。

【注意2】
关于电源管理的配置,需要集群中最少存在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
端口镜像:勾选
点击“确定”



6、配置 node93 这主机的网络。
1)设置
菜单:“集群”-“逻辑网络”-“管理网络”,选择之前在同一个数据中心不同集群(DC4Test/HostOnly)创建过的数据网络ovirtem2
分配:勾选
必需的:不勾选
显示网络:不选
移植网络:不选

【管理网络】em1桥接到ovirtmgmt
【数据网络】em2和em3做绑定bond0桥接到ovirtem2,并配置另一个网段的IP地址

2)查看现状
【管理网络】
[root@node93 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ovirtmgmt 
# Generated by VDSM version 4.16.26-0.el6
DEVICE=ovirtmgmt
TYPE=Bridge
DELAY=0
STP=off
ONBOOT=yes
IPADDR=10.0.200.93
NETMASK=255.255.255.0
GATEWAY=10.0.200.1
BOOTPROTO=none
MTU=1500
DEFROUTE=yes
NM_CONTROLLED=no
HOTPLUG=no
[root@node93 ~]# cat /etc/sysconfig/network-scripts/ifcfg-em1
# Generated by VDSM version 4.16.26-0.el6
DEVICE=em1
HWADDR=f8:bc:12:4e:45:50
BRIDGE=ovirtmgmt
ONBOOT=yes
MTU=1500
NM_CONTROLLED=no

【数据网络】
[root@node93 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ovirtem2 
# Generated by VDSM version 4.16.26-0.el6
DEVICE=ovirtem2
TYPE=Bridge
DELAY=0
STP=off
ONBOOT=yes
IPADDR=192.168.25.93
NETMASK=255.255.255.0
BOOTPROTO=none
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
HOTPLUG=no
[root@node93 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0 
# Generated by VDSM version 4.16.26-0.el6
DEVICE=bond0
BONDING_OPTS='mode=5 miimon=100'
BRIDGE=ovirtem2
ONBOOT=yes
MTU=1500
NM_CONTROLLED=no
HOTPLUG=no
[root@node93 ~]# cat /etc/sysconfig/network-scripts/ifcfg-em2
# Generated by VDSM version 4.16.26-0.el6
DEVICE=em2
HWADDR=f8:bc:12:4e:45:51
MASTER=bond0
SLAVE=yes
ONBOOT=yes
MTU=1500
NM_CONTROLLED=no
[root@node93 ~]# cat /etc/sysconfig/network-scripts/ifcfg-em3
# Generated by VDSM version 4.16.26-0.el6
DEVICE=em3
HWADDR=f8:bc:12:4e:45:52
MASTER=bond0
SLAVE=yes
ONBOOT=yes
MTU=1500
NM_CONTROLLED=no




五、配置存储(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-gv0
类型:DATA/GlusterFS
导出路径:10.0.200.72:/gv0
挂载选项:backupvolfile-server=10.0.200.73,backupvolfile-server=10.0.200.86

2)如果要使用NFS,请选择:DATA/NFS

其他操作类似。

【注意】
数据域只有1个时(master状态)非常威胁,因为可能会失效(例如挂载的卷内数据被意外删掉),且此处并无其他的数据域可用(顶上来成为master),整个数据中心将失去了主数据域而失效。
此时,
新加入一个数据域,提示“主数据域不可用”;
删除主数据域时,提示“请启用其他的数据域”或者删除这个数据中心;
销毁失效的主数据域时,提示“请找官网的主数据域故障恢复文档或联系管理员”,,我是管理员,,没找到文档,,怎么办?
有点儿自相矛盾!!
目前测试时的做法是:把数据中心的主机设置为维护状态,迁移到其他数据中心,删除异常的数据中心。
大家要考虑的是:如何更换的处理这个问题?(例如,增加了主数据域后,新增其他的数据域备用)


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):勾选(勾选将覆盖导出域已经存在的p_w_picpath)
整合快照(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、安装 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)手动清理在创建虚拟机时可能导致冲突的配置
--- 清理cloud-init ---
rm /var/lib/cloud -fr

--- 清理hostname ---
cat <<'_EOF' >/etc/hostname 
localhost.localdomain
_EOF

--- 清理网卡相关 ---
sed -i -e '/UUID/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*

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

--- 清理log ---
rm -f /root/anaconda-ks.cfg
find /var/log -type f -delete


--- 最后一步 ---
(注:此处可以直接执行 sys-unconfig,这个工具除了清理udev,还将在下次启动时,启动几个服务,例如密码,网络,时间等配置,具体可以参考man的解释。由于本人不想重置root密码和其他服务,将采取下述操作来收尾)
--- 清理 udev 和history ---
rm /etc/udev/rules.d/*-persistent-*.rules -f
echo >~/.bash_history
history -c

--- 关机 ---
# poweroff

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


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

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




八、创建VM池(VM pool)
VM池是VM的集合,来自同一个模版,管理员可以根据需求快速生成一堆vm供用户使用。
要注意的是:用户使用来自池子中的vm是无状态的(stateless),而管理员登录到管理入口后使用来自池子中的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、手动备份和恢复
(略)


十一、用户
1、接入目录服务
ovirt通过接入目录服务(directory server)来管理用户,当然了,安装ovirt时,会生成一个内置的管理员帐号(admin@internal)。
这个帐号存储在本地ovirt的数据库PostgreSQL中,和外边的目录服务(AD,LDAP等)是分隔开的。
内部域(internal domain)不能增加或删除用户。
internal domain是ovirt中的 SuperUser 角色,用于管理入口的管理权限。
这个用户的密码是在安装时配置的,如果需要重置密码,可以使用工具“engine-config”

# engine-config -s AdminPassword=interactive
如果密码用到特殊字符,需要转义。完成后,记得要重启服务。
# service ovirt-engine restart

1)角色
管理员(Administrator Role):  允许登录管理入口控制所有资源。管理员并未赋予用户入口的权限。
用户(User Role):  允许用户管理和访问vm和模版。用户并未赋予管理入口的权限。
例如,你拥有某个集群上的管理员角色,则可以通过管理入口来管理这个集群所有的vm,但,你不能通过用户入口来访问这些vm,这需要“UserRole”

角色	        权限                            备注                  
UserRole	    登录使用vm和vm池                可以登录web端用户入口,使用已分配好的vm和vm池,查看vm状态和细节。
PowerUserRole	创建和管理vm和模版              在“配置”可以给某用户在全局环境(或指定的数据中心、集群)下分配这个角色。
                                                例如,是在数据中心这个级别上分配的这个角色,则该用户可以在这个数据中心上创建vm和模版。
UserVmManager	vm的系统管理员                  管理vm,创建和使用快照,迁移vm。用户在用户入口创建的vm将自动赋予这个角色。

PowerUserRole = VmCreator + DiskCreator + TemplateCreator

【警告】
建议在目录服务(directory server)创建一个新用户(例如:ovirtmgr)作为ovirt的管理员来接入使用。不建议使用目录服务(directory server)的管理员帐号。


2)使用工具 engine-manage-domains 来附加目录服务(directory server)服务器。
支持的目录服务(directory server)列表:
Active Directory
Identity Management (IdM)
Red Hat Directory Server 9 (RHDS 9)
OpenLDAP

【注意】
DNS服务需要存在以下记录: 
A valid pointer record (PTR) for the directory server's reverse look-up address.
A valid service record (SRV) for LDAP over TCP port 389.
A valid service record (SRV) for Kerberos over TCP port 88.
A valid service record (SRV) for Kerberos over UDP port 88.
在engine上操作,工具 engine-manage-domains 的使用参考:
http://www.ovirt.org/OVirt_Administration_Guide#The_Domain_Management_Tool
https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Virtualization/3.5/html/Administration_Guide/sect-The_Domain_Management_Tool.html
http://crunchtools.com/rhev-ipa/


3)测试
【测试接入现有办公网的AD】
[root@engine ~]# engine-manage-domains add --provider=ad --domain=test.org --user=ovirtmgr
Enter password:
The domain test.org has been added to the engine as an authentication source but no users from that domain have been granted permissions within the oVirt Manager.
Users from this domain can be granted permissions by editing the domain using action edit and specifying --add-permissions or from the Web administration interface logging in as admin@internal user.
oVirt Engine restart is required in order for the changes to take place (service ovirt-engine restart).
Manage Domains completed successfully

提示,增加域用户后要重启engine,增加时,也可以用参数“--add-permissions”来继承系统权限,当然,后面也可以编辑
[root@engine ~]# service ovirt-engine restart
列出域:
[root@engine ~]# engine-manage-domains list  
Domain: test.org
        User name: ovirtmgr@test.org
Manage Domains completed successfully
编辑权限:
[root@engine ~]# engine-manage-domains edit --provider=ad --domain=test.org --user=ovirtmgr --add-permissions
Enter password:
Successfully added domain test.org. oVirt Engine restart is required in order for the changes to take place (service ovirt-engine restart).
Manage Domains completed successfully
[root@engine ~]# service ovirt-engine restart

登录到ovirt查看这个用户,是 SuperUser 角色,和admin@internal一样。



十二、其他事项请参考官网文档
配额和SLA
事件通知
实用工具
日志


十三、思考
怎么做engine的HA?
怎么规划网络和存储?


ZYXW、参考
1、ovirt 官网doc
http://www.ovirt.org/OVirt_Administration_Guide
http://www.ovirt.org/OVirt_Administration_Guide#Guest_Drivers_and_Agents
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


转载于:https://blog.51cto.com/nosmoking/1695644

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初探oVirt-体验 的相关文章

  • 如何在python3中使用ldap3绑定(验证)用户

    我正在尝试将一些代码更新为 python3 使用ldap3 http ldap3 readthedocs org en latest quicktour html版本 0 9 7 4 https pypi python org pypi l
  • 有没有办法将 SQL 数据库链接到 LDAP 服务器

    我们有一个 SQL 联系人数据库 它链接到我们所有的项目信息 其中包含很多附加功能 最近有人建议我们在最终用户的电子邮件客户端中提供此信息的联系人部分 因此我们正在考虑设置 LDAP 服务器 是否有任何工具可以让我们将数据库中的信息 可能是
  • LDAPSEARCH 转换为表格格式

    有没有办法执行 LDAP 搜索并将结果保存为表格格式 例如 csv 干杯 乔治 您可以使用优秀的铣床工具 mlr https miller readthedocs io en latest 最后一点 echo output sed s g
  • Active Directory 中在线的计算机列表

    我使用这段代码输出网络上所有计算机的列表 语言是 jscript net 但这只是 C 的一个小操作 var parentEntry new DirectoryEntry parentEntry Path WinNT for var chi
  • 在 iOS 中使用 LDAP 进行身份验证

    我一直在寻找有关在 iOS 设备上使用 LDAP 的教程 这可能吗 我还没有看到任何关于它的文章或教程 是否还有其他方法可以针对我的 Active Directory 进行身份验证 有人能指出我正确的方向吗 我的 iOS Ports 项目中
  • 从 1000 增加限制?

    当我像这样进行搜索时 my mesg ldap gt search base gt OU test DC example DC com scope gt one filter gt objectClass organizationalPer
  • Sitecore 与 LDAP - 以编程方式进行身份验证

    我正在 Sitecore 中创建一个应用程序 我只希望用户可以通过直接 URL 来使用它 我希望针对 LDAP 进行身份验证 我尝试直接进入应用程序并让它重定向到自动登录页面并将我重定向到应用程序 但它没有这样做 相反 它带我进入了 Sit
  • LDAP:过滤多个UID

    我正在尝试为一个团队设置 mediawiki 并且希望仅对一组用户进行 LDAP 身份验证 我知道我可以提出组 LDAP 身份验证 但是有没有一种快捷方式可以仅过滤一组 uid 进行身份验证 您可以使用的 LDAP 搜索过滤器是 uid a
  • 使用 PHP、活动目录以及 IE/Firefox 对 ldap 进行身份验证

    下面的代码根据 ldap 检查用户的凭据
  • DirectoryEntries.Find:“指定了无效的 dn 语法”

    我正在尝试在当前域中查找用户 代码是这样的 DirectoryEntry domain new DirectoryEntry LDAP CN Users DC Environment UserDomainName DirectoryEntr
  • 如何在 Razor 中进行 Active Directory 身份验证 (cshtml)

    我正在用 Razor 做一个简单的网站 目前 我可以使用基于数据库的身份验证 如下所示 在 App Start html中 WebSecurity InitializeDatabaseConnection db connection use
  • 在 C# 中将 LDAP AccountExpires 转换为 DateTime

    我想将 LDAP AccountExpires 中的 18 位数字字符串转换为正常日期时间格式 129508380000000000 gt gt 2011年5月26日 我通过使用以下链接获得了上述转换 http www chrisnowel
  • Apache 目录 LDAP - 分页搜索

    我一直在寻找使用 Apache Directory API 执行分页搜索的信息 但我没有找到任何示例或任何有关如何使用正确的 PagedResults 控件构建 SearchRequest 然后执行搜索的信息 你们有什么建议吗 或者知道哪里
  • 保持 LDAP 会话

    在 PHP 中 假设我在第 1 页有一个 LDAP 连接 ldapconn ldap connect ldapserver if ldapconn binding to ldap server ldapbind ldap bind ldap
  • php ldap-bind 密码过期

    我正在使用 adldap 插件连接到 Windows Server AD 但据我所知 我的问题是 php ldap bind 当用户输入不正确的密码时 ldap error 由 adldap 使用 返回的错误是 Invalid Creden
  • 如何在非交互模式下配置 pam-auth-update?

    I wanted to enable PAM module packages in non interactive mode Running pam auth update will prompt a wizard to enable th
  • python - Flask_simpleldap 不会绑定

    我在用着烧瓶 simpledap https github com admiralobvious flask simpleldap并且正在努力获得绑定连接来执行任何有用的操作 我的 LDAP 服务器是活动目录 精简后的代码如下所示 几乎与这
  • Ruby on Rails 3:Devise::LdapAdapter.get_ldap_param 未定义方法错误

    我在跑步 红宝石 1 9 3p0 轨道 3 1 1 设计1 4 9 Devise ldap authenticatable 0 4 10 我正在使用 Devise 通过 LDAP 服务器验证我的 Rails 应用程序 我使用用户名而不是电子
  • 从活动目录读取objectGUID

    我正在尝试使用 node js 从 AD 获取信息 我试过了activedirectory and ldapauth fork一般来说 代码可以工作 但如果我需要一些octetstring数据如objectGUID 我在对象中看到了垃圾字符
  • 使用通配符的 Active Directory 查询性能较差

    我正在用 C 编写一个方法 该方法应该查询 Active Directory 并查找具有以下格式的显示名称的所有用户和组 显示名称 带有前导和尾随通配符的通配符搜索 该方法将用于自动完成字段 问题是我编写的方法的性能非常差 尝试查询 AD

随机推荐

  • vue项目打包部署到服务器

    目录 一 打包项目 二 修改Nginx的配置 三 部署 四 开放端口号 一 打包项目 1 在 vue config js 文件中找到并修改 主要是publicPath 与outputDir 两项配置 若项目中有baseUrl 替换为publ
  • 【嵌入式学习-C语言篇】 char & short & int 的使用

    嵌入式学习 C语言篇 char short int 的使用 三种数据类型常用场景 智能家居 网关协议中mac地址上报 网关 网关 Gateway 又称网间连接器 协议转换器 网关在传输层以上实现网络互连 是最复杂的网络互连设备 仅用于两个高
  • STM32 进阶教程 7 -  C与C++混合编程

    前言 在嵌入式开发过程中经常会用到第三个芯片 设备 这些第三方的芯片提供的DEMO程序或驱动程序有时候是C 如果先前的系统用C语言写的就会出现点问题 往往需先将C 的驱动程序自已手动改成C语言再用 本节给大家介给一下如何在KEL MDK环境
  • html cgi改变字体颜色,在CGI文件中导致错误的HTML变量

    我在从我的cgi文件中打印特定变量时出现问题 我收到这个变量 从我的网页中调用totalCost 然后尝试打印它 但没有任何反应 所有其他变量可以从网页成功接收 并通过我的cgi文件打印到另一个网页上 除了这一个 我检查过大小写敏感但是没有
  • jQuery 入门教程(14): 添加HTML元素

    使用jQuery可以方便的添加新的HTML元素 下面的方法用于添加HTML元素 append 在指定的元素的尾部添加一个新内容 prepend 在指定的元素里前部添加新内容 after 在指定元素后添加新内容 before 在指定元素的前面
  • Vue3 -- teleport传送门

    目录 teleport传送门 例 蒙层特效 目标效果 代码演示 页面效果 未使用teleport存在的问题 使用teleport实现目标效果 完整代码 总结 teleport传送门 Teleport 是一种能够移动 DOM到Vue根节点之外
  • 自学区块链:原理、技术及应用——什么是区块链(笔记)

    Bitcoin和区块链有很深的渊源 但Bitcoin与区块链两者不能等同 区块链是Bitcoin的底层技术 除了Bitcoin 还有很多其他的区块链技术应用 什么是 区块链 时间戳服务器对以区块 Block 形式存在的一组数据实施随机散列
  • 华为云计算HCIE之oceanstor仿真器的使用操作

    华为云计算HCIE之oceanstor仿真器的使用操作 一 登录检查oceanstor的状态 二 配置存储资源 1 创建硬盘域 2 创建存储池 3 创建LUN 4 创建LUN组 5 创建主机 6 创建主机组 7 创建映射关系 三 配置存储H
  • idea 连接云mysql_IntelliJ IDEA 连接数据库 详细过程

    连接到MySQL数据库 调出Database面板 IDEA配置Database数据源需要我们在IDEA的主界面中找到View gt ToolWindows gt Database 如下图所示 1 选择数据源 在IDEA中新建一个Java工程
  • T系接口源数据格式

    item apiStack name esi value endpoint mode android osVersion 9 26 0 protocolVersion 3 0 ultronage true data dinamic TB d
  • Unity + Jenkins自动打包 (二)构建Jenkins项目以及编写Python、Unity脚本

    1 新建Jenkens项目 在上一篇中 完成了Jenkins的安装和初始化 以及权限设置 查看上一篇 Jenkins安装 点此 现在打开浏览器 输入http localhost 8081 当然 需要改成你自己设置的Jenkins端口号 然后
  • lua c++中的一种回调解决方法

    见很多人发问cocos2dx 3 版本 lua 函数回调问题 我在项目中是这样解决的 因为我是使用了cocos 带有的 lua 绑定脚本 python写的 cocos2d x tools tolua genbindings py 在生成绑定
  • mac .ssh文件位置

    1 Finder gt 前往文件夹 gt 输入 ssh 2 打开终端 输入cd ssh cd ssh
  • vue组件库的开发流程

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 开发流程 1 创建项目 vue cli 公司现有架构 2 调整项目静态目录结构 3 使用webpack相关库模式打包编译 4 使用npm或者公司源地址发布到你需要的
  • 向List Control中添加ACCESS数据内容

    转 给List Control 添加变量tt 加入引入ADO使用智能指针 import c program files common files system ado msado15 dll no namespace rename EOF
  • MySQL - 索引的隐藏和删除

    隐藏索引 MySQL 8开始支持隐藏索引 隐藏索引提供了更人性化的数据库操作 隐藏索引 顾名思义 让索引暂时不可见 不会被优化器使用 默认情况下索引是可见的 隐藏索引可以用来测试索引的性能 验证索引的必要性时不需要删除索引 可以先将索引隐藏
  • 【qt应用软件Focus Note++】

    本专栏介绍了使用Qt开发的一些小型桌面软件 其中包括软件功能介绍 软件截图 主要代码等内容 此外 本专栏还提供完整的软件源码和安装包供有需要的同学下载 我的目标是开发一些简洁美观且实用的客户端小软件 如果能够为大家提供有用的软件或对学习有益
  • 赶紧来修炼内功~字符串函数详解大全(一)

    目录 1 strlen 重点 模拟实现 法一 法二 法三 2 strcpy 重点 模拟实现 3 strcat 重点 模拟实现 4 strcmp 重点 模拟实现 1 strlen strlen函数是用来计算字符串长度的 重点 字符串以 0 作
  • Ipsec phase1 and phase2

    终于明白是怎么回事了 困扰我好多天了 网上的资料鱼龙混杂 直到这位大虾的出现 第一阶段 有主模式和积极模式2种 只有remote vpn和Easy vpn是积极模式的 其他都是用主模式来协商的 让IKE对等体彼此验证对方并确定会话密钥 这个
  • 初探oVirt-体验

    日期 2015 9 2 2016 11 15 time 16 40 主机 node72 node73 node86 node93 目的 初探oVirt 体验 操作内容 一 基础环境 1 官方建议 1 oVirt Engine 需求 最低 双