日期: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: [email protected] 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