标签: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 cloud-init vdsm glusterfs
原文地址:http://nosmoking.blog.51cto.com/3263888/1695644