Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

自承载引擎指南

Red Hat Virtualization 4.0

安装和迁移 Red Hat Virtualization 自承载(Self-Hosted)引擎

Red Hat Virtualization Documentation Team

Red Hat Customer Content Services

摘要

关于自承载引擎的详细指南

第 1 章 介绍

自承载(self-hosted)引擎就是一个虚拟化环境,它的引擎(Manager)运行在由这个引擎管理的一台主机的虚拟机上。虚拟机会作为主机配置的一部分被创建,在主机配置的过程中会并行安装并配置引擎。使用自承载引擎的主要好处是,部署 Red Hat Virtualization 时对硬件的要求更少,这是因为引擎本身在一个虚拟机上运行,而不再需要在一个物理硬件上运行。另外,引擎会被配置为高可用性。当运行 Manager 的虚拟机处于维护模式,或出现故障时,虚拟机会被自动迁移到环境中的另外一个主机上运行。为了实现高可用性功能,最少需要两个自承载引擎主机。
手工安装 Manager 虚拟机不被支持,用户需要使用一个 RHV-M Virtual Appliance 安装 Manager 虚拟机,并可以在这个 appliance 中使用定制的 cloud-init 脚本对 Manager 虚拟机进行定制。在进行部署时,会产生一个默认的 cloud-init 脚本,而创建定制的 cloud-init 脚本超出了本文档覆盖的范围。

表 1.1. 支持部署自承载引擎的操作系统版本

系统类型
支持的版本
Red Hat Enterprise Linux 主机
7.2
Red Hat Virtualization Host
7.2
HostedEngine-VM (Manager)
7
关于对硬件要求的信息,请参阅安装指南中的 Hypervisor Requirements 部分。

重要

为了避免出现与时间或用户身份验证相关的问题,需要对主机、Manager 以及环境中的其它服务器的时钟进行同步。在每个系统上配置网络时间协议(Network Time Protocol,简称 NTP)来与相同的 NTP 服务器进行同步。
下图显示了自承载引擎的部署流程:

第 2 章 部署自承载引擎

2.1. 在 Red Hat Enterprise Linux 主机上部署自承载引擎

2.1.1. 安装自承载引擎软件包

确认主机已注册并订阅了所需的权力。相关信息,请参阅安装指南中的 Subscribing to the Required Entitlements

过程 2.1. 安装自承载引擎

  1. 安装自承载引擎软件包
    # yum install ovirt-hosted-engine-setup
  2. 如果选择使用 appliance 来安装 Manager 虚拟机,则需要安装 RHV-M Virtual Appliance 软件包:
    # yum install rhevm-appliance
    您也可以使用 CD-ROM、磁盘或 PXE 安装 Manager 的操作系统。物理的 CD-ROM 驱动设备不被支持。
根据以下介绍的方法在 Red Hat Enterprise Linux 主机上部署和配置自承载引擎。

2.1.2. 配置基于 RHEL 的自承载引擎

hosted-engine 脚本可以帮助进行主机和 Manager 虚拟机的配置。这个脚本会要求您回答一系列问题,然后根据提供的信息对系统进行配置。
请确认已经满足了以下先决条件:

先决条件

  • 已经安装了一个全新的 Red Hat Enterprise Linux 7 系统,并在其中安装了 ovirt-hosted-engine-setup 软件包。
  • 为自承载引擎环境设置了存储系统。如需了解更多与存储相关的信息,请参阅 Red Hat Enterprise Virtualization 管理指南中的存储一章。
  • 设置了 Manager 和主机的完全限定域名(FQDN)。DNS 中需要有它的正向和反向查询记录。
  • 需要具有为 Manger 安装操作系统所需的安装介质(CD-ROM、磁盘或 PXE)。推荐的方法是选择磁盘选项,并使用RHV-M Virtual Appliance 安装 Manager。在安装 rhevm-appliance 软件包后,就可以使用 RHV-M Virtual Appliance。如果选择使用 CD-ROM 选项,则需要使用一个 ISO 文件。物理的 CD-ROM 驱动设备不被支持。
  • 如果使用 RHV-M Virtual Appliance 安装 Manager,需要保证一个目录有最少 60 GB 空间。hosted-engine 脚本会首先检查 /var/tmp 是否有足够的空间来展开 appliance 文件。如果空间不够,则需要指定一个不同的目录。

过程 2.2. 配置基于 RHEL 的自承载引擎

  1. 初始化引擎

    运行 hosted-engine 脚本。使用 CTRL+D 可以随时中断部署。我们推荐在运行脚本时使用 screen 程序,这样可以避免因为网络中断或其它原因造成脚本运行被中断。screen 软件包包括在标准的 Red Hat Enterprise Linux 软件仓库中。
    # yum install screen
    # screen
    # hosted-engine --deploy

    注意

    当网络中断或超时时,可以运行 screen -d -r 来恢复当前运行的 hosted-engine
  2. 配置存储

    选择使用的存储类型。
    During customization use CTRL-D to abort.
    Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs3, nfs4)[nfs3]:
    • 对于 NFS 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/nfs
    • 对于 iSCSI,指定 iSCSI 门户 IP 地址、端口、用户名和密码,并从检测到的列表中选择一个目标名。在部署的过程中只能选择一个 iSCSI 目标:
      Please specify the iSCSI portal IP address:           
      Please specify the iSCSI portal port [3260]:           
      Please specify the iSCSI portal user:           
      Please specify the iSCSI portal password:
      Please specify the target name (auto-detected values) [default]:
    • 对于 Gluster 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。

      重要

      当前只支持 replica 3 Gluster 存储。请确认已进行了以下配置:
      • 在所有 3 个 Gluster 服务器的 /etc/glusterfs/glusterd.vol 文件中,把 rpc-auth-allow-insecure 设置为 on
        option rpc-auth-allow-insecure on
      • 对卷进行以下配置:
        gluster volume set volume cluster.quorum-type auto
        gluster volume set volume network.ping-timeout 10
        gluster volume set volume auth.allow \*
        gluster volume set volume group virt
        gluster volume set volume storage.owner-uid 36
        gluster volume set volume storage.owner-gid 36
        gluster volume set volume server.allow-insecure on
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/gluster_volume
    • 对于光纤通道设备,主机的总线适配器需要被配置和连接,hosted-engine 脚本会自动检测到有效的 LUN。LUN 不能包括任何额外的数据。
      The following luns have been found on the requested target:
      [1]     3514f0c5447600351       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
                
      [2]     3514f0c5447600352       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
      
      Please select the destination LUN (1, 2) [1]:
  3. 配置网络

    这个脚本会检测可以被用来作为环境的管理网桥的网卡(NIC),然后会检查防火墙的配置,并为控制台(SPICE 或 VNC)访问修改防火墙的配置。
    Please indicate a nic to set rhvm bridge on: (eth1, eth0) [eth1]:
    iptables was detected on your computer, do you wish setup to configure it? (Yes, No)[Yes]: Yes
    Please indicate a pingable gateway IP address [X.X.X.X]:
  4. 配置虚拟机

    选择 disk 作为引导设备类型,脚本会自动检测到可用的 RHV-M Appliances。指定内存的大小。
             Please specify the device to boot the VM from (choose disk for the oVirt engine appliance) 
             (cdrom, disk, pxe) [disk]: 
             Please specify the console type you would like to use to connect to the VM (vnc, spice) [vnc]: vnc
    [ INFO ] Detecting available oVirt engine appliances
             The following appliance have been found on your system:
                   [1] - The oVirt Engine Appliance image (OVA)
                   [2] - Directly select an OVA file
             Please select an appliance (1, 2) [1]:
    [ INFO ] Checking OVF archive content (could take a few minutes depending on archive size)
    如果使用 cloud-init 对 Manager 虚拟机进行初始设置,则选 Yes。选择 Generate 来使用 cloud-init 进行配置,如设置 root 密码、配置网络、配置主机名、为 engine-setup 提供使用的应答文件、在引导时运行 engine-setup。另外,如果已有存在的 cloud-init 脚本,则可以选择 Existing 来使用这个脚本。指定 Manager 虚拟机的 FQDN。为 HostedEngine-VM 指定一个 MAC 地址,或使用随机推荐的地址。您可以在虚拟机安装操作系统前,使用这个 MAC 地址更新您的 DHCP 和 DNS 服务器。

    注意

    如需了解更多与 cloud-init 相关的信息,请参阅 https://cloudinit.readthedocs.org/en/latest/
    Would you like to use cloud-init to customize the appliance on the first boot (Yes, No)[Yes]? Yes
    Would you like to generate on-fly a cloud-init ISO image (of no-cloud type)
    or do you have an existing one (Generate, Existing)[Generate]? Generate
    Please provide the FQDN you would like to use for the engine appliance.
    Note: This will be the FQDN of the engine VM you are now going to launch.
    It should not point to the base host or to any other existing machine.
    Engine VM FQDN: (leave it empty to skip): manager.example.com
    Automatically execute engine-setup on the engine appliance on first boot (Yes, No)[Yes]? Yes
    Automatically restart the engine VM as a monitored service after engine-setup (Yes, No)[Yes]? Yes
    Enter root password that will be used for the engine appliance (leave it empty to skip): p@ssw0rd
    Confirm appliance root password: p@ssw0rd
    The following CPU types are supported by this host:
        - model_Penryn: Intel Penryn Family
        - model_Conroe: Intel Conroe Family
    Please specify the CPU type to be used by the VM [model_Penryn]: 
    Please specify the number of virtual CPUs for the VM [Defaults to appliance OVF value: 4]: 
    You may specify a MAC address for the VM or accept a randomly generated default [00:16:3e:77:b2:a4]: 
    How should the engine VM network be configured (DHCP, Static)[DHCP]? Static
    Please enter the IP address to be used for the engine VM: 192.168.x.x
    Please provide a comma-separated list (max3) of IP addresses of domain name servers for the engine VM
    Engine VM DNS (leave it empty to skip):
    Add lines for the appliance itself and for this host to /etc/hosts on the engine VM?
    Note: ensuring that this host could resolve the engine VM hostname is still up to you (Yes, No)[No] Yes
  5. 配置引擎

    指定在管理门户中代表主机的名称,以及访问管理门户所使用的 admin@internal 用户的密码。提供 HostedEngine-VM 的 FQDN(在这里我们使用 Manager.example.com 作为 FQDN)。为 SMTP 服务器提供名称和 TCP 端口号、发送事件通知的电子邮件地址、以及需要接收事件通知的用户的电子邮件地址列表(以逗号分隔)。
    Enter engine admin password: p@ssw0rd
    Confirm engine admin password: p@ssw0rd
    Enter the name which will be used to identify this host inside the Administrator Portal [hosted_engine_1]:
    Please provide the FQDN for the engine you would like to use.
              This needs to match the FQDN that you will use for the engine installation within the VM.
              Note: This will be the FQDN of the VM you are now going to create,
              it should not point to the base host or to any other existing machine.
              Engine FQDN:  []: manager.example.com
    Please provide the name of the SMTP server through which we will send notifications [localhost]: 
    Please provide the TCP port number of the SMTP server [25]: 
    Please provide the email address from which notifications will be sent [root@localhost]: 
    Please provide a comma-separated list of email addresses which will get notifications [root@localhost]:
  6. 配置预览

    在实际进行配置前,hosted-engine 脚本会显示已输入的信息,并提示您确认这些信息。
  7. 配置 Manager 虚拟机

    这个脚本将创建 Manager 虚拟机,启动 ovirt-engine 和高可用性服务,并把主机和共享存储域连接到 Manager 虚拟机。
    You can now connect to the VM with the following command:
    	/usr/bin/remote-viewer vnc://localhost:5900
    Use temporary password "3042QHpX" to connect to vnc console.
    Please note that in order to use remote-viewer you need to be able to run graphical applications.
    This means that if you are using ssh you have to supply the -Y flag (enables trusted X11 forwarding).
    Otherwise you can run the command from a terminal in your preferred desktop environment.
    If you cannot run graphical applications you can connect to the graphic console from another host or connect to the serial console using the following command:
    socat UNIX-CONNECT:/var/run/ovirt-vmconsole-console/fabbea5a-1989-411f-8ed7-7abe0917fc66.sock,user=ovirt-vmconsole STDIO,raw,echo=0,escape=1
    
    If you need to reboot the VM you will need to start it manually using the command:
    hosted-engine --vm-start
    You can then set a temporary password using the command:
    hosted-engine --add-console-password
    [ INFO ] Running engine-setup on the appliance
    ...
    [ INFO ] Engine-setup successfully completed
    [ INFO ] Engine is still unreachable
    [ INFO ] Engine is still unreachable, waiting...
    [ INFO ] Engine replied: DB Up!Welcome to Health Status!
    [ INFO ] Connecting to the Engine
             Enter the name of the cluster to which you want to add the host (Default) [Default]:
    [ INFO  ] Waiting for the host to become operational in the engine. This may take several minutes... [ INFO  ] Still waiting for VDSM host to become operational...
    [ INFO  ] The VDSM Host is now operational      
    [ INFO  ] Shutting down the engine VM
    [ INFO  ] Enabling and starting HA services
    [ INFO  ] Saving hosted-engine configuration on the shared storage domain
              Hosted Engine successfully set up
    [ INFO  ] Stage: Clean up
    [ INFO  ] Generating answer file '/var/lib/ovirt-hosted-engine-setup/answers/answers-2015xx.conf'
    [ INFO  ] Generating answer file '/etc/ovirt-hosted-engine/answers.conf'
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
hosted-engine 部署脚本成功完成后,Red Hat Virtualization Manager 就已经被配置完成,并在您的主机上运行。Manager 已经配置好了数据中心、集群、主机、Manager 虚拟机,以及 Manager 虚拟机专用的共享存储域。

重要

admin@internal 用户身份进行登录来继续配置 Manager 并添加其它资源。您需要为数据中心创建另外一个数据域,对它进行初始化来支持一般的虚拟机数据,并使它对 Manager 虚拟机可见。如需了解与添加数据存储域相关的信息,请参阅管理指南中的 Storage
把您的 Red Hat Virtualization Manager 和一个目录服务器相关联,从而可以向环境添加额外的用户。Red Hat Virtualization 支持的目录服务器类型包括 Red Hat Directory Server (RHDS)、Red Hat Identity Management(IdM)、 Active Directory,以及其它一些类型。您需要使用 ovirt-engine-extension-aaa-ldap-setup 设置脚本在您的环境中添加目录服务器。如需了解更多相关信息,请参阅管理指南中的 Configuring an External LDAP Provider
ovirt-hosted-engine-setup 脚本同时也会把您在配置过程中提供的信息保存为一个应答文件,您可以使用它来进行系统恢复。如果没有使用 --generate-answer=<file> 参数指定应答文件,它会被默认存为 /etc/ovirt-hosted-engine/answers.conf

注意

默认情况下,SSH 密码验证不会在 RHV-M Virtual Appliance 中启动,您可以通过 SPICE 或 VNC 控制台访问 Red Hat Virtualization Manager 虚拟机来启用 SSH 密码。确认 sshd 服务正在运行。编辑 /etc/ssh/sshd_config,把以下两个选项设置为 yes
  • PasswordAuthentication
  • PermitRootLogin
重启 sshd 服务来使所做的修改生效。

2.2. 在 Red Hat Virtualization Host上部署自承载引擎

在 Red Hat Virtualization Host (RHVH)中,自承载引擎的部署是通过 Cockpit 接口进行的。它是 hosted-engine 脚本的一个 UI 版本,可以帮助进行主机和 Manager 虚拟机的配置。这个脚本会要求您回答一系列问题,然后根据提供的信息对系统进行配置。

先决条件

  • 一个全新安装的 Red Hat Virtualization Host 系统。Cockpit 用户接口中的 System 子标签页中的 Performance Profile 需要被设置为 virtual-host
  • 为自承载引擎环境设置了存储系统。如需了解更多与存储相关的信息,请参阅 Red Hat Enterprise Virtualization 管理指南中的存储一章。
  • 设置了 Manager 和主机的完全限定域名(FQDN)。DNS 中需要有它的正向和反向查询记录。
  • 如果使用 RHV-M Virtual Appliance 安装 Manager,需要保证一个目录有最少 60 GB 空间。hosted-engine 脚本会首先检查 /var/tmp 是否有足够的空间来展开 appliance 文件。如果空间不够,则需要指定一个不同的目录。

过程 2.3. 配置基于 RHVH 的自承载引擎

  1. 获得 RHV-M Virtual Appliance

    从客户门户网站下载 RHV-M Virtual Appliance:
    1. 登录到客户门户网站 https://access.redhat.com
    2. 点菜单条中的下载
    3. Red Hat Enterprise Virtualization > Download Latest 来访问产品的下载页。
    4. 从所需版本的 Red Hat Virtualization 中选择 appliance,点 Download Now
    把 OVA 文件复制到 Red Hat Virtualization Host:
    scp rhvm-appliance.ova root@host.example.com:/usr/share
  2. 开始自承载引擎部署

    登录到 Cockpit 用户界面(https://HostIPorFQDN:9090)。进入 Virtualization > Hosted Engine,点 Start
    如果存在,默认的回答信息会自动在部署脚本的文本项中生成。您可以根据需要对它进行相应的修改。

    注意

    在这个过程中,部署的问题会以文本的形式出现。在 UI 中点 Next
    During customization use CTRL-D to abort.
    Continuing will configure this host for serving as hypervisor and create a VM where you have to install the engine afterwards.
    Are you sure you want to continue? (Yes, No)[Yes]:
  3. 配置存储

    选择使用的存储类型。
    Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs3, nfs4)[nfs3]:
    • 对于 NFS 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/nfs
    • 对于 iSCSI,指定 iSCSI 门户 IP 地址、端口、用户名和密码,并从检测到的列表中选择一个目标名。在部署的过程中只能选择一个 iSCSI 目标:
      Please specify the iSCSI portal IP address:
      Please specify the iSCSI portal port [3260]:
      Please specify the iSCSI portal user:
      Please specify the iSCSI portal password:
      Please specify the target name (auto-detected values) [default]:
    • 对于 Gluster 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。

      重要

      当前只支持 replica 3 Gluster 存储。请确认已进行了以下配置:
      • 在所有 3 个 Gluster 服务器的 /etc/glusterfs/glusterd.vol 文件中,把 rpc-auth-allow-insecure 设置为 on
        option rpc-auth-allow-insecure on
      • 对卷进行以下配置:
        gluster volume set volume cluster.quorum-type auto
        gluster volume set volume network.ping-timeout 10
        gluster volume set volume auth.allow \*
        gluster volume set volume group virt
        gluster volume set volume storage.owner-uid 36
        gluster volume set volume storage.owner-gid 36
        gluster volume set volume server.allow-insecure on
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/gluster_volume
    • 对于光纤通道设备,主机的总线适配器需要被配置和连接,hosted-engine 脚本会自动检测到有效的 LUN。LUN 不能包括任何额外的数据。
      The following luns have been found on the requested target:
      [1]     3514f0c5447600351       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
                
      [2]     3514f0c5447600352       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
      
      Please select the destination LUN (1, 2) [1]:
  4. 配置网络

    脚本会检查防火墙配置,并为控制台(SPICE 或 VNC)进行相应的修改。然后,它会检测可以作为环境的管理网桥的网络接口控制器(NIC)。
    iptables was detected on your computer, do you wish setup to configure it? (Yes, No)[Yes]: Yes
    Please indicate a pingable gateway IP address [X.X.X.X]:
    Please indicate a nic to set ovirtmgmt bridge on: (eth1, eth0) [eth1]:
  5. 配置虚拟机

    从引导设备类型中选 disk,然后指定到 RHV-M Virtual Appliance 的路径。如果 /var/tmp 目录没有足够的空间,则指定另外一个目录。
    Please specify the device to boot the VM from (choose disk for the oVirt engine appliance) (cdrom, disk, pxe) [disk]: disk
    Please specify the console type you would like to use to connect to the VM (vnc, spice) [vnc]: vnc
    Using an oVirt engine appliance could greatly speed-up ovirt hosted-engine deploy.
    You could get oVirt engine appliance installing ovirt-engine-appliance rpm.
    Please specify path to OVF archive you would like to use [None]: /path/to/rhvm-appliance.ova
    Please specify path to a temporary directory with at least 50 GB [/var/tmp]:
    如果使用 cloud-init 对 Manager 虚拟机进行初始设置,则选 Yes。选择 Generate 来使用 cloud-init 进行配置,如设置 root 密码、配置网络、配置主机名、为 engine-setup 提供使用的应答文件、在引导时运行 engine-setup。另外,如果已有存在的 cloud-init 脚本,则可以选择 Existing 来使用这个脚本实现 cloud-init 更复杂的功能。

    注意

    如需了解更多与 cloud-init 相关的信息,请参阅 https://cloudinit.readthedocs.org/en/latest/
    Would you like to use cloud-init to customize the appliance on the first boot (Yes, No)[Yes]? Yes
    Would you like to generate on-fly a cloud-init ISO image (of no-cloud type) or do you have an existing one (Generate, Existing)[Generate]? Generate
    Please provide the FQDN you would like to use for the engine appliance.
    Note: This will be the FQDN of the engine VM you are now going to launch.
    It should not point to the base host or to any other existing machine.
    Engine VM FQDN: (leave it empty to skip): manager.example.com
    Automatically execute engine-setup on the engine appliance on first boot (Yes, No)[Yes]? Yes
    Automatically restart the engine VM as a monitored service after engine-setup (Yes, No)[Yes]? Yes
    Please provide the domain name you would like to use for the engine appliance.
    Engine VM domain: [localdomain] example.com
    Enter root password that will be used for the engine appliance (leave it empty to skip): p@ssw0rd
    Confirm appliance root password: p@ssw0rd
    The following CPU types are supported by this host:
        - model_SandyBridge: Intel SandyBridge Family
        - model_Westmere: Intel Westmere Family
        - model_Nehalem: Intel Nehalem Family
        - model_Penryn: Intel Penryn Family
        - model_Conroe: Intel Conroe Family
    Please specify the CPU type to be used by the VM [model_SandyBridge]:
    Please specify the number of virtual CPUs for the VM [Defaults to appliance OVF value: [2]:
    You may specify a unicast MAC address for the VM or accept a randomly generated default [00:16:3e:77:b2:a4]:
    Please specify the memory size of the VM in MB (Defaults to maximum available): [12722]:
    How should the engine VM network be configured (DHCP, Static)[DHCP]? Static
    Please enter the IP address to be used for the engine VM: 192.168.x.x
    Please provide a comma-separated list (max 3) of IP addresses of domain name servers for the engine VM
    Engine VM DNS (leave it empty to skip):
    如果需要把 /etc/hosts 文件从主机复制到 Manager 虚拟机以实现主机域名解析的功能,输入 Yes
    Add lines for the appliance itself and for this host to /etc/hosts on the engine VM?
    Note: ensuring that this host could resolve the engine VM hostname is still up to you (Yes, No)[No] Yes
  6. 配置自承载引擎

    指定在管理门户中代表主机的名称,以及访问管理门户所使用的 admin@internal 用户的密码。提供 HostedEngine-VM 的 FQDN(在这里我们使用 Manager.example.com 作为 FQDN)。为 SMTP 服务器提供名称和 TCP 端口号、发送事件通知的电子邮件地址、以及需要接收事件通知的用户的电子邮件地址列表(以逗号分隔)。
    Enter engine admin password: p@ssw0rd
    Confirm engine admin password: p@ssw0rd
    Enter the name which will be used to identify this host inside the Administrator Portal [hosted_engine_1]:
    Please provide the name of the SMTP server through which we will send notifications [localhost]:
    Please provide the TCP port number of the SMTP server [25]:
    Please provide the email address from which notifications will be sent [root@localhost]:
    Please provide a comma-separated list of email addresses which will get notifications [root@localhost]:
  7. 配置预览

    在实际进行配置前,hosted-engine 脚本会显示已输入的信息,并提示您确认这些信息。
    Please confirm installation settings (Yes, No)[Yes]: Yes
这个脚本将创建 Manager 虚拟机,启动 ovirt-engine 和高可用性服务,并把主机和共享存储域连接到 Manager 虚拟机。
hosted-engine 部署脚本成功完成后,Red Hat Virtualization Manager 就已经被配置完成,并在您的主机上运行。Manager 已经配置好了数据中心、集群、主机、Manager 虚拟机,以及 Manager 虚拟机专用的共享存储域。

重要

admin@internal 用户身份登录到管理门户来继续配置 Manager 并添加其它资源。您需要为数据中心创建另外一个数据域,对它进行初始化来支持一般的虚拟机数据,并使它对 Manager 虚拟机可见。如需了解与添加数据存储域相关的信息,请参阅管理指南中的 Storage
把您的 Red Hat Virtualization Manager 和一个目录服务器相关联,从而可以向环境添加额外的用户。Red Hat Virtualization 支持的目录服务器类型包括 Red Hat Directory Server (RHDS)、Red Hat Identity Management(IdM)、 Active Directory,以及其它一些类型。您需要使用 ovirt-engine-extension-aaa-ldap-setup 设置脚本在您的环境中添加目录服务器。如需了解更多相关信息,请参阅管理指南中的 Configuring an External LDAP Provider
脚本同时也会把您在配置过程中提供的信息保存为一个应答文件,您可以使用它来进行系统恢复。如果没有使用 --generate-answer=<file> 参数指定应答文件,它会被默认存为 /etc/ovirt-hosted-engine/answers.conf

注意

默认情况下,SSH 密码验证不会在 RHV-M Virtual Appliance 中启动,您可以通过 SPICE 或 VNC 控制台访问 Red Hat Virtualization Manager 虚拟机来启用 SSH 密码。确认 sshd 服务正在运行。编辑 /etc/ssh/sshd_config,把以下两个选项设置为 yes
  • PasswordAuthentication
  • PermitRootLogin
重启 sshd 服务来使所做的修改生效。

2.3. 管理 Manager 虚拟机

使用 hosted-engine 工具程序可以帮助进行对 Manager 虚拟机的管理。它可以在环境中的任何自承载引擎主机上运行。运行 hosted-engine --help 将显示所有可用的选项,hosted-engine --command --help 会显示相关命令的帮助信息。
如需了解更多相关信息,请参阅 第 3.1 节 “对 Manager 虚拟机进行故障排除”

第 3 章 对自承载引擎进行故障排除

3.1. 对 Manager 虚拟机进行故障排除

过程 3.1. 对 Manager 虚拟机进行故障排除

  1. 运行 hosted-engine --vm-status 检查 Manager 虚拟机的状态。

    注意

    对 Manager 虚拟机所做的修改大约需要经过 20 秒后才会反映在状态命令的输出中。
    如果 Manager 虚拟机已启动并在运行,您将可以看到以下输出:
    --== Host 1 status ==--
    
    Status up-to-date              : True
    Hostname                       : hypervisor.example.com
    Host ID                        : 1
    Engine status                  : {"health": "good", "vm": "up", "detail": "up"}
    Score                          : 3400
    stopped                        : False
    Local maintenance              : False
    crc32                          : 99e57eba
    Host timestamp                 : 248542
  2. 如果 health 是“bad”或 vm 是“down”,启用全局维护模式使主机不再被 HA 服务管理。
    • 在管理门户中,在引擎虚拟机上点鼠标右键,选启动全局 HA 维护
    • 您也可以通过命令行设置维护模式:
      # hosted-engine --set-maintenance --mode=global
  3. 如果 Manager 虚拟机已关闭,启动 Manager 虚拟机。如果虚拟机已启动,跳过这一步。
    # hosted-engine ---vm-start
  4. 设置控制台密码:
    # hosted-engine --add-console-password
  5. 连接到控制台。在提示时输入前一步中设置的密码。如需了解更多与控制台选项相关的信息,请参阅 https://access.redhat.com/solutions/2221461
    # hosted-engine --console
  6. 找出 Manager 虚拟机关闭或处于一个“不健康状态”的原因。检查 /var/log/messages/var/log/ovirt-engine/engine.log。在解决了相关问题后,重新启动 Manager 虚拟机。
  7. 以 root 用户身份登录到 Manager 虚拟机,检查 ovirt-engine 已被启动并在运行:
    # service ovirt-engine status
  8. 在确认 Manager 虚拟机已启动并运行后,关闭控制台会话,禁用维护模式并重新启用 HA 服务:
    # hosted-engine --set-maintenance --mode=none

额外的故障排除命令:

重要

如果您需要运行这些命令来对自承载引擎进行故障排除,请联系红帽技术支持团队。
  • hosted-engine --reinitialize-lockspace:当 sanlock 的锁定空间出现问题时可以使用这个命令。在使用这个命令重新初始化 sanlock 锁定空间前,请确认已启用了全局维护模式, Manager 虚拟机已被停止。
  • hosted-engine --clean-metadata:从全局状态数据库中删除主机代理的元数据。这将会使其它所有主机都忘掉这个主机。请确认目标主机已被关闭,全局维护模式已启用。
  • hosted-engine --check-liveliness:这个命令用来检查 ovirt-engine 服务的活性(liveliness)页。您也可以通过使用一个网络浏览器连接到 https://engine-fqdn/ovirt-engine/services/health/ 进行检查。
  • hosted-engine --connect-storage:这个命令会指示 VDSM 准备主机和 Manager 虚拟机所需的所有存储连接。这通常在自承载引擎部署过程中在后端运行。如果需要运行这个命令来对存储进行故障排除,请确定已启用了全局维护模式。

3.2. 清理一个失败的自承载引擎部署

如果一个自承载引擎部署被中断,此后的部署将会失败,并显示以下错误信息:
Failed to connect to broker, the number of errors has exceeded the limit.
如需了解如何清理一个失败的部署,请参阅 https://access.redhat.com/solutions/2121581

第 4 章 迁移到一个基于 RHEL 的自承载环境

4.1. 迁移到自承载环境

当需要把一个标准 Red Hat Virtualization 中存在的实例迁移到自承载环境中时,可以使用 hosted-engine 脚本来简化迁移的过程。这个脚本会要求用户输入一系列信息,并根据提供的信息对环境进行配置。在以下过程中,标准 Red Hat Virtualization 环境中的 Manager 被称为 BareMetal-Manager。
RHV-M Virtual Appliance 可以减少用户和 Manager 虚拟机的交流,从而缩短部署的过程。但是,appliance 只能在一个标准安装中自动化 engine-setup。在迁移过程中,用户需要手工运行 engine-setup,这样才可以提前在新的 Manager 虚拟机上恢复 BareMetal-Manager 备份文件。
迁移过程包括以下几个关键的步骤:
  • 运行 hosted-engine 脚本来配置主机作为自承载引擎的主机,并创建一个新的 Red Hat Virtualization 虚拟机。
  • 使用 engine-backup 工具程序备份引擎数据库和配置文件,把备份数据复制到新的 Manager 虚拟机上,并使用带有 --mode=restore 选项的 engine-backup 命令恢复备份。运行 engine-setup 对 Manager 虚拟机进行配置。
  • 使用 hosted-engine 脚本进行设置。

先决条件

  • 准备一个安装了 ovirt-hosted-engine-setup 软件包的新主机。请参阅 第 2.1 节 “在 Red Hat Enterprise Linux 主机上部署自承载引擎” 以获得相关的详细信息。主机需要是当前 Red Hat Virtualization 环境支持的版本。

    注意

    如果选择使用一个已存在的主机,把它设置为维护模式,并把它移出当前的环境。请参阅 管理指南中的 Removing a Host 以获得更详细的信息。
  • 通过安装 rhevm-appliance 软件包可以获得 RHV-M Virtual Appliance。RHV-M Virtual Appliance 总是基于最新支持的 Manager 版本。请确认您当前环境中的 Manager 版本被更新到最新支持的 Y-stream 版本,因为 Manager 的版本需要相同才可以进行迁移。
  • 如果使用 RHV-M Virtual Appliance 安装 Manager,需要保证一个目录有最少 60 GB 空间。hosted-engine 脚本会首先检查 /var/tmp 是否有足够的空间来展开 appliance 文件。如果空间不够,则需要指定一个不同的目录。
  • 新的 Manager 的完全限定域名需要和原始 BareMetal-Manager 的完全限定域名相同。DNS 中需要有它的正向和反向查询记录。
  • 需要有访问和修改 BareMetal-Manager 的权限。

过程 4.1. 迁移到自承载环境

  1. 开始自承载引擎部署

    运行 hosted-engine 脚本。使用 CTRL+D 可以随时中断部署。我们推荐在运行脚本时使用 screen 程序,这样可以避免因为网络中断或其它原因造成脚本运行被中断。screen 软件包包括在标准的 Red Hat Enterprise Linux 软件仓库中。
    # yum install screen
    # screen
    # hosted-engine --deploy

    注意

    当网络中断或超时时,可以运行 screen -d -r 来恢复当前运行的 hosted-engine
  2. 配置存储

    选择使用的存储类型。
    During customization use CTRL-D to abort.
    Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs3, nfs4)[nfs3]:
    • 对于 NFS 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/nfs
    • 对于 iSCSI,指定 iSCSI 门户 IP 地址、端口、用户名和密码,并从检测到的列表中选择一个目标名。在部署的过程中只能选择一个 iSCSI 目标:
      Please specify the iSCSI portal IP address:           
      Please specify the iSCSI portal port [3260]:           
      Please specify the iSCSI portal user:           
      Please specify the iSCSI portal password:
      Please specify the target name (auto-detected values) [default]:
    • 对于 Gluster 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。

      重要

      当前只支持 replica 3 Gluster 存储。请确认已进行了以下配置:
      • 在所有 3 个 Gluster 服务器的 /etc/glusterfs/glusterd.vol 文件中,把 rpc-auth-allow-insecure 设置为 on
        option rpc-auth-allow-insecure on
      • 对卷进行以下配置:
        gluster volume set volume cluster.quorum-type auto
        gluster volume set volume network.ping-timeout 10
        gluster volume set volume auth.allow \*
        gluster volume set volume group virt
        gluster volume set volume storage.owner-uid 36
        gluster volume set volume storage.owner-gid 36
        gluster volume set volume server.allow-insecure on
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/gluster_volume
    • 对于光纤通道设备,主机的总线适配器需要被配置和连接,hosted-engine 脚本会自动检测到有效的 LUN。LUN 不能包括任何额外的数据。
      The following luns have been found on the requested target:
      [1]     3514f0c5447600351       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
                
      [2]     3514f0c5447600352       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
      
      Please select the destination LUN (1, 2) [1]:
  3. 配置网络

    这个脚本会检测可以被用来对环境进行管理的网卡(NIC),然后会检查防火墙的配置,并根据控制台(SPICE 或 VNC)访问 HostedEngine-VM 的需要来修改防火墙的配置。另外,提供一个可以被 ping 到的网络 IP 地址,ovirt-ha-agent 会使用它来决定 HostedEngine-VM 是否在正常运行。
    Please indicate a nic to set rhvm bridge on: (eth1, eth0) [eth1]:
    iptables was detected on your computer, do you wish setup to configure it? (Yes, No)[Yes]: 
    Please indicate a pingable gateway IP address [X.X.X.X]:
  4. 配置虚拟机

    这个脚本会创建一个被配置为 Red Hat Virtualization Manager 的虚拟机(称为 HostedEngine-VM)。选择 disk 作为引导设备类型,脚本会自动检测可用的 RHV-M Appliance。选择一个 appliance。
             Please specify the device to boot the VM from (choose disk for the oVirt engine appliance) 
             (cdrom, disk, pxe) [disk]: 
             Please specify the console type you would like to use to connect to the VM (vnc, spice) [vnc]: vnc
    [ INFO ] Detecting available oVirt engine appliances
             The following appliance have been found on your system:
                   [1] - The oVirt Engine Appliance image (OVA)
                   [2] - Directly select an OVA file
             Please select an appliance (1, 2) [1]:
    [ INFO ] Checking OVF archive content (could take a few minutes depending on archive size)
    如果使用 cloud-init 对 Manager 虚拟机进行初始设置,则选 Yes。选择 Generate 来使用 cloud-init 进行配置,如设置 root 密码、配置网络、配置主机名。或选择 Existing 来使用一个已存在的 cloud-init 脚本来处理相关的 cloud-init 功能。为 Manager 虚拟机设置 FQDN。这需要和 BareMetal-Manager 的 FQDN 相同。

    注意

    如需了解更多与 cloud-init 相关的信息,请参阅 https://cloudinit.readthedocs.org/en/latest/
    Would you like to use cloud-init to customize the appliance on the first boot (Yes, No)[Yes]? Yes
    Would you like to generate on-fly a cloud-init no-cloud ISO image or do you have an existing one(Generate, Existing)[Generate]? Generate
    Please provide the FQDN you would like to use for the engine appliance.
    Note: This will be the FQDN of the engine VM you are now going to launch.
    It should not point to the base host or to any other existing machine.
    Engine VM FQDN: (leave it empty to skip): manager.example.com
    对于以下问题,回答 No,这样才可以在运行 engine-setup 前在 HostedEngine-VM 上恢复 BareMetal-Manager 备份文件。
    Automatically execute engine-setup on the engine appliance on first boot (Yes, No)[Yes]? No
    配置 Manager 的域名、root 密码、网络、硬件和控制台访问详情。
    Enter root password that will be used for the engine appliance (leave it empty to skip): p@ssw0rd
    Confirm appliance root password: p@ssw0rd
    The following CPU types are supported by this host:
        - model_Penryn: Intel Penryn Family
        - model_Conroe: Intel Conroe Family
    Please specify the CPU type to be used by the VM [model_Penryn]: 
    Please specify the number of virtual CPUs for the VM [Defaults to appliance OVF value: 4]: 
    You may specify a MAC address for the VM or accept a randomly generated default [00:16:3e:77:b2:a4]: 
    How should the engine VM network be configured (DHCP, Static)[DHCP]? Static
    Please enter the IP address to be used for the engine VM: 192.168.x.x
    Please provide a comma-separated list (max3) of IP addresses of domain name servers for the engine VM
    Engine VM DNS (leave it empty to skip):
    Add lines for the appliance itself and for this host to /etc/hosts on the engine VM?
    Note: ensuring that this host could resolve the engine VM hostname is still up to you (Yes, No)[No] Yes
  5. 配置自承载引擎

    指定在 Red Hat Virtualization 环境中标识 Host-HE1 的名称,以及访问管理门户所使用的 admin@internal 用户的密码。最后,提供 SMTP 的名称和 TCP 端口号、发送事件通知的电子邮件地址、以及需要接收事件通知的用户的电子邮件地址列表(以逗号分隔)。
    Enter engine admin password: p@ssw0rd
    Confirm engine admin password: p@ssw0rd
    Enter the name which will be used to identify this host inside the Administrator Portal [hosted_engine_1]:
    Please provide the FQDN for the engine you would like to use.
              This needs to match the FQDN that you will use for the engine installation within the VM.
              Note: This will be the FQDN of the VM you are now going to create,
              it should not point to the base host or to any other existing machine.
              Engine FQDN:  []: manager.example.com
    Please provide the name of the SMTP server through which we will send notifications [localhost]: 
    Please provide the TCP port number of the SMTP server [25]: 
    Please provide the email address from which notifications will be sent [root@localhost]: 
    Please provide a comma-separated list of email addresses which will get notifications [root@localhost]:
  6. 配置预览

    在实际进行配置前,hosted-engine 脚本会显示已输入的信息,并提示您确认这些信息。
    Bridge interface                 : eth1
    Engine FQDN                      : manager.example.com
    Bridge name                      : ovirtmgmt
    Host address                     : host.example.com
    SSH daemon port                  : 22
    Firewall manager                 : iptables
    Gateway address                  : X.X.X.X
    Host name for web application    : Host-HE1
    Host ID                          : 1
    Image size GB                    : 50
    Storage connection               : storage.example.com:/hosted_engine/nfs
    Console type                     : vnc
    Memory size MB                   : 4096
    MAC address                      : 00:16:3e:77:b2:a4
    Boot type                        : pxe
    Number of CPUs                   : 2
    CPU Type                         : model_Penryn
    
    Please confirm installation settings (Yes, No)[Yes]:
  7. 配置 HostedEngine-VM

    这个脚本会创建虚拟机 HostedEngine-VM,并提供和它进行连接的信息。您需要在 HostedEngine-VM 上恢复备份文件后,手工运行 engine-setup,这样才能继续在 Host-HE1 上执行 hosted-engine 脚本。
    [ INFO  ] Stage: Transaction setup
    ...
    [ INFO  ] Creating VM
              You can now connect to the VM with the following command:
                      /bin/remote-viewer vnc://localhost:5900
              Use temporary password "3463VnKn" to connect to vnc console.
              Please note that in order to use remote-viewer you need to be able to run graphical applications.
              This means that if you are using ssh you have to supply the -Y flag (enables trusted X11 forwarding).
              Otherwise you can run the command from a terminal in your preferred desktop environment.
              If you cannot run graphical applications you can connect to the graphic console from another host or connect to the serial console using the following command:
              socat UNIX-CONNECT:/var/run/ovirt-vmconsole-console/8f74b589-8c6f-4a32-9adf-6e615b69de07.sock,user=ovirt-vmconsole STDIO,raw,echo=0,escape=1
              Please ensure that your Guest OS is properly configured to support serial console according to your distro documentation.
              Follow http://www.ovirt.org/Serial_Console_Setup#I_need_to_access_the_console_the_old_way for more info.
              If you need to reboot the VM you will need to start it manually using the command:
              hosted-engine --vm-start
              You can then set a temporary password using the command:
              hosted-engine --add-console-password
              Please install and setup the engine in the VM.
              You may also be interested in subscribing to "agent" RHN/Satellite channel and installing rhevm-guest-agent-common package in the VM.
            
            
              The VM has been rebooted.
              To continue please install oVirt-Engine in the VM
              (Follow http://www.ovirt.org/Quick_Start_Guide for more info).
            
              Make a selection from the options below:
              (1) Continue setup - oVirt-Engine installation is ready and ovirt-engine service is up
              (2) Abort setup
              (3) Power off and restart the VM
              (4) Destroy VM and abort setup
            
              (1, 2, 3, 4)[1]:
    运行以下命令使用 VNC 协议连接到虚拟机。使用自承载引擎主机的 FQDN 或 IP 地址替换其中的 FQDN。
    # /bin/remote-viewer vnc://FQDN:5900
  8. 在 HostedEngine-VM 上启用 SSH

    默认情况下,SSH 密码验证不会在 RHV-M Virtual Appliance 中启动,您可以通过 VNC 连接到 HostedEngine-VM 并启用 SSH 密码验证功能,这样,就可以通过 SSH 访问虚拟机来恢复 BareMetal-Manager 备份文件并配置新的 Manager。确认 sshd 服务已在运行。编辑 /etc/ssh/sshd_config,把以下两个选项设置为 yes
    [...]
    PermitRootLogin yes       
    [...]
    PasswordAuthentication yes
    重启 sshd 服务来使所做的修改生效。
    # service sshd restart
  9. 禁用 BareMetal-Manager

    连接到 BareMetal-Manager(Red Hat Virtualization 环境中的 Manager),停止引擎并禁止它在系统引导时运行。
    # service ovirt-engine stop
    # chkconfig ovirt-engine off

    注意

    推荐停止运行 BareMetal-Manager,这可以确保在系统备份被创建后,不会再对虚拟环境进行改变。另外,它还可以防止 BareMetal-Manager 和 HostedEngine-VM 同时管理存在的资源。
  10. 更新 DNS

    更新您的 DNS,从而使 Red Hat Virtualization 环境的 FQDN 可以正确地解析 HostedEngine-VM 的 IP 地址,以及在 Host-HE1 上配置 hosted-engine 部署脚本所提供的 FQDN。在这里,FQDN 被设置为 manager.example.com,因为所提供引擎的 FQDN 和新设置引擎的 FQDN 必须相同。
  11. 为 BareMetal-Manager 创建一个备份

    连接到 BareMetal-Manager,运行 engine-backup 命令。使用 --mode=backup--file=FILE--log=LogFILE 参数来分别指定备份的模式、备份文件的名称以及日志文件的名称。
    # engine-backup --mode=backup --file=FILE --log=LogFILE
  12. 把备份文件复制到 HostedEngine-VM

    登录到 BareMetal-Manager,把备份文件复制到 HostedEngine-VM 上。在以下的例子中,manager.example.com 是 HostedEngine-VM 的 FQDN,/backup/ 是备份文件要被复制到的目录或路径。如果这些目录和路径还没有存在,您需要登录到 HostedEngine-VM 上后创建它们。
    # scp -p FILE LogFILE manager.example.com:/backup/
  13. 在 HostedEngine-VM 上恢复备份文件

    使用 engine-backup 工具程序恢复一个完整的备份。如果在执行 engine-setup 的过程中手工配置了 BareMetal-Manager 数据库,则需要根据 第 6.2.3 节 “手工恢复自承载引擎 Manager” 中的内容手工恢复备份的环境。
    • 如果只恢复 Manager,运行以下命令:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --restore-permissions
    • 如果恢复 Manager 和 Data Warehouse,运行以下命令:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --provision-dwh-db --restore-permissions
    如果运行成功,以下输出会被显示:
    You should now run engine-setup.
    Done.
  14. 配置 HostedEngine-VM

    配置恢复的 Manager 虚拟机。这个过程会检测到存在的配置设置和数据库内容。确认这些设置。完成后,系统会提供一个 SSH 指纹(fingerprint)和一个内部的证书授权哈希数据(Certificate Authority hash)。
    # engine-setup
    [ INFO  ] Stage: Initializing
    [ INFO  ] Stage: Environment setup
    Configuration files: ['/etc/ovirt-engine-setup.conf.d/10-packaging.conf', '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf']
    Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20140304075238.log
    Version: otopi-1.1.2 (otopi-1.1.2-1.el6ev)
    [ INFO  ] Stage: Environment packages setup
    [ INFO  ] Yum Downloading: rhel-65-zstream/primary_db 2.8 M(70%)
    [ INFO  ] Stage: Programs detection
    [ INFO  ] Stage: Environment setup
    [ INFO  ] Stage: Environment customization
             
              --== PACKAGES ==--
             
    [ INFO  ] Checking for product updates...
    [ INFO  ] No product updates found
             
              --== NETWORK CONFIGURATION ==--
             
    Setup can automatically configure the firewall on this system.
    Note: automatic configuration of the firewall may overwrite current settings.
    Do you want Setup to configure the firewall? (Yes, No) [Yes]: 
    [ INFO  ] iptables will be configured as firewall manager.
             
              --== DATABASE CONFIGURATION ==--
             
             
              --== OVIRT ENGINE CONFIGURATION ==--
             
             
              --== PKI CONFIGURATION ==--
             
             
              --== APACHE CONFIGURATION ==--
             
             
              --== SYSTEM CONFIGURATION ==--
             
             
              --== END OF CONFIGURATION ==--
             
    [ INFO  ] Stage: Setup validation
    [ INFO  ] Cleaning stale zombie tasks
             
              --== CONFIGURATION PREVIEW ==--
             
              Default SAN wipe after delete           : False
              Firewall manager                        : iptables
              Update Firewall                         : True
              Host FQDN                               : manager.example.com
              Engine database secured connection      : False
              Engine database host                    : X.X.X.X
              Engine database user name               : engine
              Engine database name                    : engine
              Engine database port                    : 5432
              Engine database host name validation    : False
              Engine installation                     : True
              PKI organization                        : example.com
              NFS mount point                         : /var/lib/exports/iso
              Configure VMConsole Proxy               : True
              Engine Host FQDN                        : manager.example.com
              Configure WebSocket Proxy               : True
             
              Please confirm installation settings (OK, Cancel) [OK]:
  15. 把主机和 Manager 进行同步

    返回到 Host-HE1,选择选项 1 来继续 hosted-engine 脚本:
    (1) Continue setup - oVirt-Engine installation is ready and ovirt-engine service is up
    这个脚本会显示内部 CA 的内容,并提示您选择 Host-HE1 要加入的集群。
    [ INFO  ] Engine replied: DB Up!Welcome to Health Status!
    [ INFO  ] Acquiring internal CA cert from the engine
    [ INFO  ] The following CA certificate is going to be used, please immediately interrupt if not correct:
    [ INFO  ] Issuer: C=US, O=example.com, CN=manager.example.com.23240, Subject: C=US, O=example.com, CN=manager.example.com.23240, Fingerprint (SHA-1): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    [ INFO  ] Connecting to the Engine
              Enter the name of the cluster to which you want to add the host (DB1, DB2, Default) [Default]:
    [ INFO  ] Waiting for the host to become operational in the engine. This may take several minutes...
    [ INFO  ] The VDSM Host is now operational
    [ INFO  ] Saving hosted-engine configuration on the shared storage domain
              Please shutdown the VM allowing the system to launch it as a monitored service.
              The system will wait until the VM is down.
  16. 关闭 HostedEngine-VM

    关闭 HostedEngine-VM。
    # shutdown -h now
  17. 设置确认

    返回到 Host-HE1,确认它检测到 HostedEngine-VM 已经被关闭。
    [ INFO  ] Enabling and starting HA services
    [ INFO  ] Stage: Clean up
    [ INFO  ] Generating answer file '/var/lib/ovirt-hosted-engine-setup/answers/answers-20160509162843.conf'
    [ INFO  ] Generating answer file '/etc/ovirt-hosted-engine/answers.conf'
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
    [ INFO  ] Hosted Engine successfully set up
现在,Red Hat Virtualization 引擎已被迁移到一个自承载引擎环境中。Manager 现在运行于 Host-HE1 主机中的一个虚拟机(HostedEngine-VM)上。HostedEngine-VM 被设置为具有高可用性功能,它会在需要时被迁移到其它主机上。

第 5 章 维护和升级资源

5.1. 维护自承载引擎

维护模式使您可以在不影响高可用性代理的情况下启动、停止和修改引擎虚拟机;或在不影响引擎的情况下重启和修改主机。
维护模式分为 3 类:
  • global - 机器中的所有高可用代理都不会监测引擎虚拟机的状态。当要进行的设置或升级操作需要停止引擎时,您需要设置 global 维护模式。例如,升级 Red Hat Virtualization。
  • local - 发出命令的主机上的高可用性代理不会监测引擎虚拟机的状态。当主机处于 local 维护模式时,它不会被用来运行虚拟机;如果把正在运行引擎虚拟机的主机设为这个模式,引擎会被迁移到另外一个主机上。当应用系统改变或更新主机时,我们推荐您把主机设为 local 维护模式。
  • none - 禁用维护模式,确保高可用性代理可以正常工作。

过程 5.1. 维护一个基于 RHEL 的自承载引擎(local 维护模式)

  1. 把一个自承载引擎主机设置为本地维护模式:
    • 在管理门户中,把主机设置为维护模式,主机会自动进入本地维护模式。
    • 您也可以通过命令行设置维护模式:
      # hosted-engine --set-maintenance --mode=local
  2. 在进行完维护任务后,禁用维护模式:
    # hosted-engine --set-maintenance --mode=none

过程 5.2. 维护一个基于 RHEL 的自承载引擎(global 维护模式)

  1. 把一个自承载引擎主机设置为全局维护模式:
    • 在管理门户中,在引擎虚拟机上点鼠标右键,选启动全局 HA 维护
    • 您也可以通过命令行设置维护模式:
      # hosted-engine --set-maintenance --mode=global
  2. 在进行完维护任务后,禁用维护模式:
    # hosted-engine --set-maintenance --mode=none

5.2. 从自承载引擎环境中删除一个主机

如果需要从环境中删除一个自承载引擎主机,您需要把这个主机设置为维护模式,禁用 HA 服务,并把自承载引擎从配置文件中删除。

过程 5.3. 从自承载引擎环境中删除一个主机

  1. 在管理门户中,点主机标签页。选择主机并点维护把这个主机设置为本地维护模式。这会停止 ovirt-ha-agent 服务和 ovirt-ha-broker 服务。
  2. 登录到主机,禁用 HA 服务,并使这个服务不会在系统重启时被启动:
    # systemctl disable ovirt-ha-agent
    # systemctl disable ovirt-ha-broker
  3. 删除自承载引擎配置文件:
    # rm /etc/ovirt-hosted-engine/hosted-engine.conf
  4. 在管理门户中,选择相同的主机,点删除打开删除主机确认窗口。点确定

5.3. 升级基于 RHEL 的自承载引擎环境

为了把 Red Hat Enterprise Virtualization 3.6 自承载引擎环境升级到 Red Hat Virtualization 4.0,Manager 虚拟机需要从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7。当 Manager 升级后,您可以更新自承载引擎主机(以及其它标准主机)到 4.0。

重要

升级工具程序会基于一个模板构建一个新的 Manager。对原始 Manager 所做的手工修改或自定义配置(如自定义用户、SSH 密钥)需要在新的 Manager 中手工进行应用。
以下升级过程只适用于升级运行 Red Hat Enterprise Linux 7 主机的 Red Hat Enterprise Virtualization 3.6 自承载引擎环境。

注意

升级操作需要在当前运行 Manager 虚拟机的、被设置为 SPM 服务器的主机上进行。升级工具程序会检查这个条件。
升级过程包括以下几个关键步骤:
  • 把管理 Manager 虚拟机的高可用性代理设置为全局维护(global maintenance )模式。
  • 启用所需的软件仓库并更新 Manager 软件包。
  • 运行升级工具程序来升级 Manager。
  • 更新主机。
  • 在更新完 Manager 虚拟机以及集群中的所有主机后,把集群兼容版本改为 4.0。
在升级 Manager 虚拟机前,请确定 /var/tmp 目录有足够的空间来展开 appliance 文件,或挂载其它有足够空间的存储。VDSM 用户需要有对这个目录的读、写和执行的权限。

重要

在升级的过程中,您会被要求创建一个 Manager 的备份,并把它复制到执行升级任务的机器上。

过程 5.4. 升级自承载引擎

  1. 在所有自承载引擎主机上禁用高可用性代理。在集群中的主机上运行以下命令:
    # hosted-engine --set-maintenance --mode=global

    注意

    运行 hosted-engine --vm-status 命令来确认环境处于维护模式。
  2. 在当前被设置为 SPM 的、包括 Manager 虚拟机的主机上启用所需的软件仓库。
    # subscription-manager repos --enable=rhel-7-server-rhv-4-mgmt-agent-rpms
  3. 在 Manager 虚拟机上启用所需的软件仓库。
    # subscription-manager repos --enable=rhel-7-server-rhv-4.0-rpms
  4. 把除 Manager 虚拟机以外的所有虚拟机迁移到其它主机上。
  5. 在主机上更新 Manager 虚拟机软件包。
    # yum update ovirt-hosted-engine-setup rhevm-appliance
  6. 运行升级脚本来升级 Manager 虚拟机。如果还没有安装 screen 软件包,则安装这个软件包(它包括在标准的 Red Hat Enterprise Linux 软件仓库中)。
    # yum install screen
    # screen
    # hosted-engine --upgrade-appliance

    注意

    如果检测到多个 applicance,您会被提示选择要使用的 applicance。它还会要求您创建 Manager 数据库的备份,并提供它的位置信息。
  7. 在升级完成后,禁用全局维护模式:
    # hosted-engine --set-maintenance --mode=none
如果在升级的过程中出现问题,使用 hosted-engine --vm-poweroff 命令关闭 Manager,然后通过运行 hosted-engine --rollback-upgrade 回滚升级操作。
在更新环境中的 Red Hat Enterprise Linux 主机前,在需要更新的主机上运行以下命令来禁用 3.6 版本的软件仓库,并启用所需的 4.0 版本的软件仓库。
# subscription-manager repos --disable=*
# subscription-manager repos --enable=rhel-7-server-rhv-4-mgmt-agent-rpms
RHEV-H 主机需要重新安装 RHVH 4.0。详细信息,请参阅安装指南中的 Red Hat Virtualization Hosts
现在,就可以更新环境中的主机,然后把数据中心和集群的兼容版本更新为 4.0。详情请参阅升级指南

5.4. 升级基于 RHEV-H 的自承载引擎环境

把基于 RHEV-H 的自承载引擎环境从 RHEV 3.6 升级到 RHV 4.0 需要安装最新版本的 Red Hat Virtualization Host(RHVH),然后再升级到 Red Hat Virtualization Manager(RHV-M)4.0。这个升级过程包括把 Red Hat Enterprise Virtualization Manager 3.6 备份文件恢复到 Red Hat Virtualization Manager 4.0 的机器上。

重要

升级工具程序会基于一个模板构建一个新的 Manager。对原始 Manager 所做的手工修改或自定义配置(如自定义用户、SSH 密钥)需要在新的 Manager 中手工进行应用。
在升级的过程中,您会被要求创建一个 3.6 Manager 的备份,并把它复制到执行升级任务的机器上。
升级过程包括以下几个关键步骤:
  • 把管理 Manager 虚拟机的高可用性代理设置为全局维护(global maintenance )模式。
  • 在环境中添加一个新的 RHVH 4.0 主机。
  • 把 Manager 虚拟机迁移到新的主机上,并把它设置为 SPM。
  • 运行升级工具程序来升级 Manager。
  • 更新主机。
  • 在更新完 Manager 虚拟机以及集群中的所有主机后,把集群兼容版本改为 4.0。

过程 5.5. 升级自承载引擎

  1. 安装新的 RHVH 4.0 主机。详情请参阅安装指南
  2. 把新主机添加到环境中。

    注意

    新主机需要以一个额外的自承载引擎主机的形式加入才可以运行 Manager 虚拟机。相关信息,请参阅 第 7 章 在自承载环境中安装额外的主机
  3. 在所有自承载引擎主机上禁用高可用性代理。在集群中的主机上运行以下命令:
    # hosted-engine --set-maintenance --mode=global

    注意

    运行 hosted-engine --vm-status 命令来确认环境处于维护模式。
  4. 从客户门户网站下载 RHV-M Virtual Appliance,并把它复制到新主机上:
    1. 登录到客户门户网站 https://access.redhat.com
    2. 点菜单条中的下载
    3. Red Hat Enterprise Virtualization > Download Latest 来访问产品的下载页。
    4. 选择 Red Hat Virtualization 4.0 的 applicance,点 Download Now
    把 OVA 文件复制到 Red Hat Virtualization Host:
    scp rhvm-appliance.ova root@host.example.com:/usr/share
  5. 把 Manager 虚拟机迁移到 RHVH 4.0 主机,把主机设置为 SPM。
  6. 在 Manager 虚拟机上启用所需的软件仓库。
    # subscription-manager repos --enable=rhel-7-server-rhv-4.0-rpms
  7. 运行升级脚本来升级 Manager 虚拟机。如果还没有安装 screen 软件包,则安装这个软件包。
    # yum install screen
    # screen
    # hosted-engine --upgrade-appliance

    注意

    脚本会要求提供复制到主机上的 RHV-M Virtual Appliance 的位置信息。它还会要求您创建 Manager 数据库的备份,并提供它的位置信息。
  8. 在升级完成后,禁用全局维护模式:
    # hosted-engine --set-maintenance --mode=none
如果在升级的过程中出现问题,使用 hosted-engine --vm-poweroff 命令关闭 Manager,然后通过运行 hosted-engine --rollback-upgrade 回滚升级操作。
在更新环境中的 Red Hat Enterprise Linux 主机前,在需要更新的主机上运行以下命令来禁用 3.6 版本的软件仓库,并启用所需的 4.0 版本的软件仓库。
# subscription-manager repos --disable=*
# subscription-manager repos --enable=rhel-7-server-rhv-4-mgmt-agent-rpms
RHEV-H 主机需要重新安装 RHVH 4.0。详细信息,请参阅安装指南中的 Red Hat Virtualization Hosts
现在,就可以更新环境中的主机,然后把数据中心和集群的兼容版本更新为 4.0。详情请参阅升级指南

第 6 章 备份和恢复基于 RHEL 的自承载引擎环境

因为自承载引擎所具有的特性,以及主机与承载引擎的虚拟机间的关系,备份和恢复自承载引擎与备份和恢复标准的 Red Hat Virtualization 环境相比,会需要考虑额外的一些因素。特别是,承载引擎的主机需要在备份时保留在环境中,这可能会导致在环境被恢复后,在同步新主机和承载引擎的主机时出现问题。
为了解决这个问题,推荐在进行备份前把一个主机设置为维护模式,从而使它不再运行虚拟机。这个主机可以被用来部署新的自承载引擎,它被称为“故障转移(failover)”主机。
如果一个承载引擎的主机在备份时仍然在运行虚拟机,则具有任何匹配标识(IP 地址、FQDN 或名称)的主机都无法被用来部署一个被恢复的自承载引擎。数据库中的冲突会导致无法在主机和恢复的承载引擎的虚拟机间进行同步。如果使用故障转移主机,则可以在同步前把这个主机从恢复的承载引擎的虚拟机上删除。

注意

如果有一个新主机被用来承载引擎,则不需要使用故障转移主机。这个新主机会有唯一的 IP 地址、FQDN 和名称,所以不会与数据库备份中的任何主机冲突。

过程 6.1. 备份自承载引擎环境的流程

以下介绍了使用故障转移主机对自承载引擎进行备份的流程示例。这个主机在以后可以被用来部署恢复的自承载引擎环境。如需了解更多与备份自承载引擎相关的信息,请参阅 第 6.1 节 “备份自承载引擎 Manager 虚拟机”
  1. 引擎虚拟机运行在 Host 2 上,其它 6 个普通的虚拟机被平均分配在 3 个主机上运行。
    Host 1 设置为维护模式。这会把在 Host 1 上运行的虚拟机迁移到其它主机上,使它不再运行虚拟机负载,并在备份时作为故障转移主机。
  2. Host 1 现在是维护模式。以前在它上面运行的虚拟机被迁移到 Host 3。
    使用 engine-backup 命令对环境进行备份。在备份完成后,Host 1 可以被重新激活来运行包括引擎虚拟机在内的虚拟机。

过程 6.2. 恢复自承载引擎环境的流程

以下介绍了通过一个备份恢复自承载引擎环境的流程示例。故障转移主机用来部署新的引擎虚拟机,然后使用这个虚拟机进行备份恢复。在通过备份进行恢复后,故障转移主机仍然会存在于 Red Hat Virtualization Manager 中,这是因为在创建备份时,它存在于环境中。从 Manager 上删除这个旧的故障转移主机可以使新主机和引擎虚拟机进行同步,并最终完成部署。如需了解更多与恢复自承载引擎相关的信息,请参阅 第 6.2 节 “恢复自承载引擎环境”
  1. Host 1 被用来部署一个新的自承载引擎,并恢复了在前面的示例中进行的备份。部署恢复的环境包括一些额外的步骤:
    • 当 Red Hat Virtualization Manager 在引擎虚拟机上安装后,但还没有运行 engine-setup 前,使用 engine-backup 工具程序恢复备份。
    • engine-setup 配置并恢复了 Manager 后,登录到管理门户并删除 Host 1(它存在于备份中)。当在部署新的 Host 1 时,如果旧的 Host 1 没有被删除并存在于 Manager 中,引擎虚拟机将无法和新的 Host 1 进行同步,从而导致部署失败。
    Host 1 和引擎虚拟机进行同步后,部署过程就已完成,现在的环境可以被看作为一个可以进行基本操作的环境。因为只有一个承载引擎的主机,引擎主机无法实现高可用性功能。但是,如果需要,具有高优先级的虚拟机可以在 Host 1 上运行。
    所有标准的 RHEL 主机(存在于环境中,但不是自承载引擎主机)将会成为活跃的主机,那些在备份时活跃的虚拟机现在可以在这些主机上运行,并在 Manager 中有效。
  2. 在它们当前的状态下,Host 2Host 3 无法被恢复。这些主机需要从环境中删除并使用 hosted-engine 部署脚本重新把它们添加进环境。如需了解更详细的相关信息,请参阅 第 6.2.4 节 “从恢复的自承载引擎环境中删除状态为 Non-Operational 的主机”第 7 章 在自承载环境中安装额外的主机
    Host 2Host 3 被重新部署到恢复的环境中。除了引擎虚拟机在 Host 1 上运行外,现在的环境与在进行备份前的状态完全相同。

6.1. 备份自承载引擎 Manager 虚拟机

我们推荐您定期备份自承载引擎环境。在这里,支持的备份方法是使用 engine-backup,它可以在不影响 ovirt-engine 服务的情况下进行。engine-backup 只备份 Red Hat Virtualization Manager 虚拟机,而不备份 Manager 虚拟机所在的主机,或环境中的其它虚拟机。

过程 6.3. 备份原始的 Red Hat Virtualization Manager

  1. 准备故障转移主机(failover host)

    故障转移主机(一个可以运行引擎的主机)需要被设置为维护模式,从而保证在备份时它没有运行虚拟机。这个主机在以后可以被用来部署恢复的自承载引擎环境。任何一个可以运行引擎的主机都可以作为一个故障转移主机,但是使用 Host 1 会使恢复的过程更加直接。Host 1 主机的默认名是 hosted_engine_1,它在 hosted-engine 部署脚本初始运行时被设置。
    1. 登录到可以运行引擎的一个主机上。
    2. 确认 hosted_engine_1 主机是 Host 1
       # hosted-engine --vm-status
    3. 登录到管理门户。
    4. 主机标签页。
    5. 在结果列表中选 hosted_engine_1 主机,点维护
    6. 确定
    取决于主机上的虚拟负载,迁移主机上的所有虚拟机会需要一些时间完成。当主机状态变为 Maintenance 时,进行下一步操作。
  2. 创建一个 Manager 的备份

    在 Manager 虚拟机上,备份配置设置和数据库的内容。把 [EngineBackupFile] 替换为备份文件的文件名;把 [LogFILE] 替换为备份日志文件的文件名。
    # engine-backup --mode=backup --file=[EngineBackupFile] --log=[LogFILE]
  3. 把文件备份到一个外部服务器上

    把文件备份到一个外部服务器上。在以下的例子中,[Storage.example.com] 是保存备份文件的一个网络存储服务器的完全限定域名;/backup/ 是保存备份文件的目录或路径。备份的文件需要可以被访问来恢复环境设置以及数据库中的数据。
    # scp -p [EngineBackupFiles] [Storage.example.com:/backup/EngineBackupFiles]
  4. 激活故障转移主机

    取消 hosted_engine_1 主机的维护模式。
    1. 登录到管理门户。
    2. 主机标签页。
    3. 在结果列表中选 hosted_engine_1
    4. 激活
您已经备份了 Red Hat Virtualization Manager 虚拟机的配置设置和数据库内容。

6.2. 恢复自承载引擎环境

本节介绍了如何在一个新安装的主机上恢复自承载引擎环境。支持的恢复方法是使用 engine-backup 工具程序。
恢复自承载引擎环境包括以下几个关键操作:
  1. 创建一个全新安装的 Red Hat Enterprise Linux 主机并运行 hosted-engine 部署脚本。
  2. 在新的 Manager 虚拟机上恢复 Red Hat Enterprise Manager 的配置设置,以及数据库的内容。
  3. 删除处于 Non Operational 状态的主机,并在恢复的自承载环境中重新安装它们。

前提条件

  • 一个安装了全新 Red Hat Enterprise Linux 系统的物理主机来恢复自承载引擎环境。
  • 新的主机和 Manager 的操作系统版本必须和原来的版本相同。
  • 新环境需要具有 Red Hat Subscription Manager 权利。如需获得所需权利的完整列表,请参阅安装指南中的 Subscribing to the Required Entitlements
  • 新的 Manager 的完全限定域名需要和原始 Manager 的完全限定域名相同。DNS 中需要有它的正向和反向查询记录。

6.2.1. 创建一个新的自承载引擎环境作为恢复的环境

您可以在备份环境中的硬件上恢复自承载引擎,但是必须使用故障转移(failover)主机。第 6.1 节 “备份自承载引擎 Manager 虚拟机” 中的故障转移主机(Host 1)使用默认的值作为主机名 - hosted_engine_1,这个主机名也在这里使用。因为自承载引擎恢复的特性,在对所恢复的引擎进行最后的同步前,使用的故障转移主机需要被删除(这要求在进行备份时,主机上没有运行任何虚拟机)。另外,您也可以在备份环境外的硬件上进行恢复。

重要

本过程假设您已经在一台物理主机上全新安装了 Red Hat Enterprise Linux 系统,并为主机订阅了所需的权利,而且安装了 ovirt-hosted-engine-setup 软件包。如需了解更多信息,请参阅安装指南中的 Subscribing to the Required Entitlements,以及 第 2.1.1 节 “安装自承载引擎软件包”

过程 6.4. 创建一个新的自承载环境作为恢复的环境

  1. 更新 DNS

    更新 DNS,使 Red Hat Virtualization 环境的完全限定域名与新 Manager 的 IP 地址相对应。在以下过程中,完全限定域名被设置为 Manager.example.com。引擎的完全限定域名需要和备份中的原始引擎使用的值相同。
  2. 初始化引擎

    在新安装的 Red Hat Enterprise Linux 主机上运行 hosted-engine 脚本开始部署的过程。您可以在任何时候使用 CTRL+D 键终止部署的过程。如果通过网络运行 hosted-engine 部署脚本,则推荐使用 screen 窗口管理程序以避免在出现网络问题或其它问题时丢失部署进程。如果还没有安装,请安装 screen
    # screen
    # hosted-engine --deploy
  3. 准备初始化

    脚本开始会要求您确认在自承载引擎环境中作为虚拟机管理程序(hypervisor)的主机信息。
    Continuing will configure this host for serving as hypervisor and create a VM where you have to install oVirt Engine afterwards. 
    Are you sure you want to continue? (Yes, No)[Yes]:
  4. 配置存储

    选择使用的存储类型。
    During customization use CTRL-D to abort.
    Please specify the storage you would like to use (glusterfs, iscsi, fc, nfs3, nfs4)[nfs3]:
    • 对于 NFS 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/nfs
    • 对于 iSCSI,指定 iSCSI 门户 IP 地址、端口、用户名和密码,并从检测到的列表中选择一个目标名。在部署的过程中只能选择一个 iSCSI 目标:
      Please specify the iSCSI portal IP address:           
      Please specify the iSCSI portal port [3260]:           
      Please specify the iSCSI portal user:           
      Please specify the iSCSI portal password:
      Please specify the target name (auto-detected values) [default]:
    • 对于 Gluster 存储类型,使用 FQDN 或 IP 地址指定它的完整地址,以及共享存储域的路径名。

      重要

      当前只支持 replica 3 Gluster 存储。请确认已进行了以下配置:
      • 在所有 3 个 Gluster 服务器的 /etc/glusterfs/glusterd.vol 文件中,把 rpc-auth-allow-insecure 设置为 on
        option rpc-auth-allow-insecure on
      • 对卷进行以下配置:
        gluster volume set volume cluster.quorum-type auto
        gluster volume set volume network.ping-timeout 10
        gluster volume set volume auth.allow \*
        gluster volume set volume group virt
        gluster volume set volume storage.owner-uid 36
        gluster volume set volume storage.owner-gid 36
        gluster volume set volume server.allow-insecure on
      Please specify the full shared storage connection path to use (example: host:/path): storage.example.com:/hosted_engine/gluster_volume
    • 对于光纤通道设备,主机的总线适配器需要被配置和连接,hosted-engine 脚本会自动检测到有效的 LUN。LUN 不能包括任何额外的数据。
      The following luns have been found on the requested target:
      [1]     3514f0c5447600351       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
                
      [2]     3514f0c5447600352       30GiB   XtremIO XtremApp
                              status: used, paths: 2 active
      
      Please select the destination LUN (1, 2) [1]:
  5. 配置网络

    这个脚本会检索可以作为环境的管理网桥的网卡(NIC),然后检查防火墙的配置,并根据控制台(SPICE 或 VNC)访问 Manager 虚拟机的需要来修改防火墙的配置。另外,它还需要一个可以被 ping 到的网关 IP 地址,ovirt-ha-agent 会使用它来决定主机是否适合运行 Manager 虚拟机。
    Please indicate a nic to set ovirtmgmt bridge on: (eth1, eth0) [eth1]:
    iptables was detected on your computer, do you wish setup to configure it? (Yes, No)[Yes]: 
    Please indicate a pingable gateway IP address [X.X.X.X]:
    
  6. 配置新的 Manager 虚拟机

    这个脚本会创建一个新的 Manager 虚拟机。根据具体情况指定引导设备、安装媒体的路径名、镜像别名、CPU 类型、虚拟 CPU 的数量以及磁盘的大小。为 Manager 虚拟机指定一个 MAC 地址,或使用系统自动创建的地址。在为 Manager 虚拟机安装操作系统前,这个 MAC 地址可以被用来更新 DHCP 服务器。为所创建的 Manager 虚拟机指定内存的大小和控制台连接类型。
    Please specify the device to boot the VM from (cdrom, disk, pxe) [cdrom]: 
    Please specify an alias for the Hosted Engine image [hosted_engine]:  
    The following CPU types are supported by this host:
              - model_Penryn: Intel Penryn Family
              - model_Conroe: Intel Conroe Family
    Please specify the CPU type to be used by the VM [model_Penryn]: 
    Please specify the number of virtual CPUs for the VM [Defaults to minimum requirement: 2]: 
    Please specify the disk size of the VM in GB [Defaults to minimum requirement: 25]: 
    You may specify a MAC address for the VM or accept a randomly generated default [00:16:3e:77:b2:a4]: 
    Please specify the memory size of the VM in MB [Defaults to minimum requirement: 4096]: 
    Please specify the console type you want to use to connect to the VM (vnc, spice) [vnc]:
    
  7. 指定主机的名称

    指定 admin@internal 用户用来访问管理门户的密码。
    为主机提供一个唯一的名称,避免与从备份中恢复的名称冲突。hosted_engine_1 这个名称可以在此使用,因为在进行备份前,这个主机已被设置为维护模式,它会在恢复引擎操作和在主机与引擎进行最后的同步操作间被删除。
    Enter engine admin password: 
    Confirm engine admin password:
    Enter the name which will be used to identify this host inside the Administration Portal [hosted_engine_1]:
  8. 配置引擎

    提供新的 Manager 虚拟机的完全限定域名。在这里使用 Manager.example.com 作为完全限定域名。指定 SMTP 服务器的名称、TCP 端口号、发送通知电子邮件的电邮地址、接收通知的一组电邮地址(以逗号分隔)。

    重要

    为引擎提供的完全限定域名(Manager.example.com)必须和初始设置原始 Manager 时提供的完全限定域名相同。
    Please provide the FQDN for the engine you would like to use.
    This needs to match the FQDN that you will use for the engine installation within the VM.
     Note: This will be the FQDN of the VM you are now going to create,
     it should not point to the base host or to any other existing machine.
     Engine FQDN: Manager.example.com
    Please provide the name of the SMTP server through which we will send notifications [localhost]: 
    Please provide the TCP port number of the SMTP server [25]: 
    Please provide the email address from which notifications will be sent [root@localhost]: 
    Please provide a comma-separated list of email addresses which will get notifications [root@localhost]:
  9. 配置预览

    在实际进行配置前,hosted-engine 脚本会显示您已输入的信息,并提示您确认这些信息。
    Bridge interface                   : eth1
    Engine FQDN                        : Manager.example.com
    Bridge name                        : ovirtmgmt
    SSH daemon port                    : 22
    Firewall manager                   : iptables
    Gateway address                    : X.X.X.X
    Host name for web application      : hosted_engine_1
    Host ID                            : 1
    Image alias                        : hosted_engine
    Image size GB                      : 25
    Storage connection                 : storage.example.com:/hosted_engine/nfs
    Console type                       : vnc
    Memory size MB                     : 4096
    MAC address                        : 00:16:3e:77:b2:a4
    Boot type                          : pxe
    Number of CPUs                     : 2
    CPU Type                           : model_Penryn
    
    Please confirm installation settings (Yes, No)[Yes]:
    
  10. 创建新的 Manager 虚拟机

    这个脚本创建的虚拟机会被配置为 Manager 虚拟机,并提供和它进行连接的信息。在 hosted-engine 脚本可以继续配置引擎前,您需要在这个虚拟机上安装一个操作系统 。
    [ INFO  ] Stage: Transaction setup
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Stage: Package installation
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Configuring libvirt
    [ INFO  ] Configuring VDSM
    [ INFO  ] Starting vdsmd
    [ INFO  ] Waiting for VDSM hardware info
    [ INFO  ] Waiting for VDSM hardware info
    [ INFO  ] Configuring the management bridge
    [ INFO  ] Creating Storage Domain
    [ INFO  ] Creating Storage Pool
    [ INFO  ] Connecting Storage Pool
    [ INFO  ] Verifying sanlock lockspace initialization
    [ INFO  ] Creating VM Image
    [ INFO  ] Disconnecting Storage Pool
    [ INFO  ] Start monitoring domain
    [ INFO  ] Configuring VM
    [ INFO  ] Updating hosted-engine configuration
    [ INFO  ] Stage: Transaction commit
    [ INFO  ] Stage: Closing up
    [ INFO  ] Creating VM
    You can now connect to the VM with the following command:
          /usr/bin/remote-viewer vnc://localhost:5900
    Use temporary password "3477XXAM" to connect to vnc console.
    Please note that in order to use remote-viewer you need to be able to run graphical applications.
    This means that if you are using ssh you have to supply the -Y flag (enables trusted X11 forwarding).
    Otherwise you can run the command from a terminal in your preferred desktop environment.
    If you cannot run graphical applications you can connect to the graphic console from another host or connect to the console using the following command:
    virsh -c qemu+tls://Test/system console HostedEngine
    If you need to reboot the VM you will need to start it manually using the command:
    hosted-engine --vm-start
    You can then set a temporary password using the command:
    hosted-engine --add-console-password
    The VM has been started.  Install the OS and shut down or reboot it.  To continue please make a selection:
             
      (1) Continue setup - VM installation is complete
      (2) Reboot the VM and restart installation
      (3) Abort setup
      (4) Destroy VM and abort setup
             
      (1, 2, 3, 4)[1]:
    使用以下命令通过 VNC 连接到虚拟机:
    /usr/bin/remote-viewer vnc://hosted_engine_1.example.com:5900
  11. 安装虚拟机操作系统

    连接到 Manager 虚拟机,安装 Red Hat Enterprise Linux 7 作为操作系统。
  12. 把主机和 Manager 进行同步

    返回到主机,选择选项 1 来继续 hosted-engine 脚本:
    (1) Continue setup - VM installation is complete
    Waiting for VM to shut down...
    [ INFO  ] Creating VM
    You can now connect to the VM with the following command:
          /usr/bin/remote-viewer vnc://localhost:5900
    Use temporary password "3477XXAM" to connect to vnc console.
    Please note that in order to use remote-viewer you need to be able to run graphical applications.
    This means that if you are using ssh you have to supply the -Y flag (enables trusted X11 forwarding).
    Otherwise you can run the command from a terminal in your preferred desktop environment.
    If you cannot run graphical applications you can connect to the graphic console from another host or connect to the console using the following command:
    virsh -c qemu+tls://Test/system console HostedEngine
    If you need to reboot the VM you will need to start it manually using the command:
    hosted-engine --vm-start
    You can then set a temporary password using the command:
    hosted-engine --add-console-password
    Please install and setup the engine in the VM.
    You may also be interested in subscribing to "agent" RHN/Satellite channel and installing rhevm-guest-agent-common package in the VM.
    To continue make a selection from the options below:
      (1) Continue setup - engine installation is complete
      (2) Power off and restart the VM
      (3) Abort setup
      (4) Destroy VM and abort setup
             
      (1, 2, 3, 4)[1]:
  13. 安装 Manager

    连接到新的 Manager 虚拟机,确认所有安装的软件包都是最新版本,安装 rhevm 软件包。
    # yum update
    # yum install rhevm
在软件包安装完成后,您就可以继续自承载引擎 Manager 的恢复过程。

6.2.2. 恢复自承载引擎 Manager

以下介绍了如何使用 engine-backup 工具程序来自动为备份的自承载引擎 Manager 虚拟机和 Data Warehouse 恢复设置以及数据库的内容。这些内容只适用于初始运行 engine-setup 时自动配置的组件。如果在运行 engine-setup 时手工配置了数据库,请参照 第 6.2.3 节 “手工恢复自承载引擎 Manager” 中的内容手工恢复备份的环境。

过程 6.5. 恢复自承载引擎 Manager

  1. 把备份文件安全地复制到新的 Manager 虚拟机上。以下示例把文件从一个网络存储服务器复制到 第 6.1 节 “备份自承载引擎 Manager 虚拟机” 所复制的文件中。Storage.example.com 是存储服务器的完全限定域名;/backup/EngineBackupFiles 是备份文件在存储服务器上的文件路径;/backup/ 是文件要被复制到的、在新 Manager 机器上的文件路径。
    # scp -p Storage.example.com:/backup/EngineBackupFiles /backup/
  2. 使用 engine-backup 工具程序恢复一个完整的备份。
    • 如果只恢复 Manager,运行以下命令:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --restore-permissions
    • 如果恢复 Manager 和 Data Warehouse,运行以下命令:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --provision-db --provision-dwh-db --restore-permissions
    如果运行成功,以下输出会被显示:
    You should now run engine-setup.
    Done.
  3. 配置恢复的 Manager 虚拟机。这个过程会检测到存在的配置设置和数据库内容。确认这些设置。完成后,系统会提供一个 SSH 指纹(fingerprint)和一个内部的证书授权哈希数据(Certificate Authority hash)。
    # engine-setup
    [ INFO  ] Stage: Initializing
    [ INFO  ] Stage: Environment setup
    Configuration files: ['/etc/ovirt-engine-setup.conf.d/10-packaging.conf', '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf']
    Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20140304075238.log
    Version: otopi-1.1.2 (otopi-1.1.2-1.el6ev)
    [ INFO  ] Stage: Environment packages setup
    [ INFO  ] Yum Downloading: rhel-65-zstream/primary_db 2.8 M(70%)
    [ INFO  ] Stage: Programs detection
    [ INFO  ] Stage: Environment setup
    [ INFO  ] Stage: Environment customization
             
              --== PACKAGES ==--
             
    [ INFO  ] Checking for product updates...
    [ INFO  ] No product updates found
             
              --== NETWORK CONFIGURATION ==--
             
    Setup can automatically configure the firewall on this system.
    Note: automatic configuration of the firewall may overwrite current settings.
    Do you want Setup to configure the firewall? (Yes, No) [Yes]: 
    [ INFO  ] iptables will be configured as firewall manager.
             
              --== DATABASE CONFIGURATION ==--
             
             
              --== OVIRT ENGINE CONFIGURATION ==--
             
              Skipping storing options as database already prepared
             
              --== PKI CONFIGURATION ==--
             
              PKI is already configured
             
              --== APACHE CONFIGURATION ==--
             
             
              --== SYSTEM CONFIGURATION ==--
             
             
              --== END OF CONFIGURATION ==--
             
    [ INFO  ] Stage: Setup validation
    [ INFO  ] Cleaning stale zombie tasks
             
              --== CONFIGURATION PREVIEW ==--
             
              Database name                      : engine
              Database secured connection        : False
              Database host                      : X.X.X.X
              Database user name                 : engine
              Database host name validation      : False
              Database port                      : 5432
              NFS setup                          : True
              Firewall manager                   : iptables
              Update Firewall                    : True
              Configure WebSocket Proxy          : True
              Host FQDN                          : Manager.example.com
              NFS mount point                    : /var/lib/exports/iso
              Set application as default page    : True
              Configure Apache SSL               : True
             
              Please confirm installation settings (OK, Cancel) [OK]:
  4. 从恢复的环境中删除主机

    如果被恢复的自承载引擎部署在一个新硬件中,而这个硬件系统的名称没有出现在备份的引擎中,则跳过这一步。这一步只适用于在一个故障转移主机上(hosted_engine_1)进行部署的情况。因为这个主机在备份时已存在,它仍然还会存在于恢复的引擎中。因此,在进行最后的同步前,需要把它先从环境中删除。
    1. 登录到管理门户
    2. 主机标签页。故障转移主机(hosted_engine_1)会处于维护模式,而且没有运行任何虚拟机。
    3. 删除
    4. 确定

    注意

    如果需要删除的主机的状态为 non-operational,请参照 第 6.2.4 节 “从恢复的自承载引擎环境中删除状态为 Non-Operational 的主机” 中的介绍来强制删除这个主机。
  5. 把主机和 Manager 进行同步

    返回到主机,选择选项 1 来继续 hosted-engine 脚本:
    (1) Continue setup - engine installation is complete
    [ INFO  ] Engine replied: DB Up!Welcome to Health Status!
    [ INFO  ] Waiting for the host to become operational in the engine. This may take several minutes...
    [ INFO  ] Still waiting for VDSM host to become operational...
    在此阶段,hosted_engine_1 会出现在管理门户中,它的状态会在变为 Non Operational 前经历 Installing 状态和 Initializing 状态。主机会等待 VDSM 主机变为正常运行的状态,并最终发生超时。这是因为环境中的另外一个主机具有 SPM 角色,而这个具有 SPM 角色的主机处于 Non Responsive 的状态,因此,hosted_engine_1 无法和存储域进行交流。当超时发生时,您会被提示关闭虚拟机来完成部署的过程。当部署完成后,主机可以被手工设置为维护模式,并通过管理门户激活。
    [ INFO  ] Still waiting for VDSM host to become operational...
    [ ERROR ] Timed out while waiting for host to start. Please check the logs.
    [ ERROR ] Unable to add hosted_engine_2 to the manager
              Please shutdown the VM allowing the system to launch it as a monitored service.
              The system will wait until the VM is down.
  6. 关闭新的 Manager 虚拟机。
    # shutdown -h now
  7. 返回到主机,确认它检测到 Manager 虚拟机已被关闭。
    [ INFO  ] Enabling and starting HA services
              Hosted Engine successfully set up
    [ INFO  ] Stage: Clean up
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
  8. 激活主机。
    1. 登录到管理门户
    2. 主机标签页。
    3. hosted_engine_1 并点维护按钮。主机可能会需要几分钟时间进入维护模式。
    4. 激活按钮。
    一旦激活后,hosted_engine_1 就可以竞争成为 SPM,存储域和数据中心都变为活跃状态。
  9. 对状态为 Non Responsive 的主机进行手工隔离(fencing),这会使它上面的虚拟机迁移到其它活跃的主机上。在管理门户中,点主机右键,选确认“主机已被重启”
    当进行备份时在那个主机上运行的所有虚拟机都会被从那个主机上删除,并从 Unknown 状态变为 Down 状态。这些虚拟机现在可以在 hosted_engine_1 上运行。使用 REST API 把被隔离的主机强制删除。
现在,这个环境已被恢复到 hosted_engine_1 活跃时的状态,并可以在恢复的环境中运行虚拟机。那些处于 Non Operational 状态的、可以运行引擎的主机现在就可以按照 第 6.2.4 节 “从恢复的自承载引擎环境中删除状态为 Non-Operational 的主机” 中的步骤被删除,并根据 第 7 章 在自承载环境中安装额外的主机 中介绍的步骤在新环境中重新安装。

注意

如果 Manager 数据库被成功恢复,但 Manager 虚拟机的状态为 Down,并且无法被迁移到另外一个自承载的主机上,您可以启用一个新的 Manager 虚拟机,并按照 https://access.redhat.com/solutions/1517683 中的步骤把不再可用的 Manager 虚拟机从环境中删除。

6.2.3. 手工恢复自承载引擎 Manager

以下介绍了如何通过备份手工恢复一个自承载引擎 Manager 虚拟机的配置信息和数据库内容。

过程 6.6. 恢复自承载引擎 Manager

  1. 手工创建一个空的数据库来保存从备份中恢复的数据库内容。以下操作需要在数据库所在的机器上执行。
    1. 如果数据库不在 Manager 虚拟机上,则需要安装 postgresql-server 软件包。如果虚拟机位于 Manager 所在的虚拟机上,则不需要进行这一步,因为这个软件包已包括在 rhevm 软件包中。
      # yum install postgresql-server
    2. 初始化 postgresql 数据库,启动 postgresql 服务,把它设置为在系统引导时被自动启动:
      # service postgresql initdb
      # service postgresql start
      # chkconfig postgresql on
    3. 进入 postgresql 命令行:
      # su postgres
      $ psql
    4. 创建 engine 用户:
      postgres=# create role engine with login encrypted password 'password';
      如果还需要恢复 Data Warehouse,在相关的主机上创建 ovirt_engine_history 用户:
      postgres=# create role ovirt_engine_history with login encrypted password 'password';
    5. 创建新数据库:
      postgres=# create database database_name owner engine template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
      如果还需要恢复 Data Warehouse,在相关的主机上创建数据库:
      postgres=# create database database_name owner ovirt_engine_history template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
    6. 退出 postgresql 命令行并登出 postgres 用户:
      postgres=# \q
      $ exit
    7. 编辑 /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 开头的行下面添加以下行,用 Red Hat Enterprise Virtualization Manager 的 IP 地址替换 X.X.X.X
          host    database_name    user_name    X.X.X.X/32   md5
        • 允许 TCP/IP 到数据库的连接。编辑 /var/lib/pgsql/data/postgresql.conf 文件,添加以下行:
          listen_addresses='*'
          在这个例子中,postgresql 服务被配置为监听所有接口上的连接。您可以使用 IP 地址来指定只监听特定接口上的连接。
        • 修改防火墙规则来打开 PostgreSQL 数据库连接所使用的默认端口,然后保存更新的防火墙规则:
          # iptables -I INPUT 5 -p tcp -s Manager_IP_Address --dport 5432 -j ACCEPT
          # service iptables save
    8. 重启 postgresql 服务:
      # service postgresql restart
  2. 把备份文件安全地复制到新的 Manager 虚拟机上。以下示例把文件从一个网络存储服务器复制到 第 6.1 节 “备份自承载引擎 Manager 虚拟机” 所复制的文件中。Storage.example.com 是存储服务器的完全限定域名;/backup/EngineBackupFiles 是备份文件在存储服务器上的文件路径;/backup/ 是文件要被复制到的、在新 Manager 机器上的文件路径。
    # scp -p Storage.example.com:/backup/EngineBackupFiles /backup/
  3. 恢复一个完整备份或数据库备份(通过 --change-db-credentials 参数指定新数据库的凭证信息)。Manager 本地数据库的 database_locationlocalhost

    注意

    在以下的例子中,对于每个数据库都使用了没有指定密码的 --*password 选项,这会使数据库在相应的阶段要求用户输入密码。虽然可以在命令中使用这些选项指定密码,但是这些密码信息会被保存在 shell 的历史记录中,因此我们不推荐使用这个方法来提供密码。另外,也可以选择使用 --*passfile=password_file 选项来为 engine-backup 安全地传递每个数据库的密码,而不再需要人工输入密码。
    • 恢复一个完全备份:
      # engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password
      如果需要恢复作为完全备份一部分的 Data Warehouse,则要包括这个数据库的凭证:
      engine-backup --mode=restore --file=file_name --log=log_file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password
    • 恢复只包括数据库的备份会恢复配置文件和数据库备份:
      # engine-backup --mode=restore --scope=files --scope=db --file=file_name --log=file_name --change-db-credentials --db-host=database_location --db-name=database_name --db-user=engine --db-password
      以上示例恢复了一个 Manager 数据库的备份。
      # engine-backup --mode=restore --scope=files --scope=dwhdb --file=file_name --log=file_name --change-dwh-db-credentials --dwh-db-host=database_location --dwh-db-name=database_name --dwh-db-user=ovirt_engine_history --dwh-db-password
      以上示例恢复了 Data Warehouse 数据库的备份。
    如果运行成功,以下输出会被显示:
    You should now run engine-setup.
    Done.
  4. 配置恢复的 Manager 虚拟机。这个过程会检测到存在的配置设置和数据库内容。确认这些设置。完成后,系统会提供一个 SSH 指纹(fingerprint)和一个内部的证书授权哈希数据(Certificate Authority hash)。
    # engine-setup
    [ INFO  ] Stage: Initializing
    [ INFO  ] Stage: Environment setup
    Configuration files: ['/etc/ovirt-engine-setup.conf.d/10-packaging.conf', '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf']
    Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20140304075238.log
    Version: otopi-1.1.2 (otopi-1.1.2-1.el6ev)
    [ INFO  ] Stage: Environment packages setup
    [ INFO  ] Yum Downloading: rhel-65-zstream/primary_db 2.8 M(70%)
    [ INFO  ] Stage: Programs detection
    [ INFO  ] Stage: Environment setup
    [ INFO  ] Stage: Environment customization
             
              --== PACKAGES ==--
             
    [ INFO  ] Checking for product updates...
    [ INFO  ] No product updates found
             
              --== NETWORK CONFIGURATION ==--
             
    Setup can automatically configure the firewall on this system.
    Note: automatic configuration of the firewall may overwrite current settings.
    Do you want Setup to configure the firewall? (Yes, No) [Yes]: 
    [ INFO  ] iptables will be configured as firewall manager.
             
              --== DATABASE CONFIGURATION ==--
             
             
              --== OVIRT ENGINE CONFIGURATION ==--
             
              Skipping storing options as database already prepared
             
              --== PKI CONFIGURATION ==--
             
              PKI is already configured
             
              --== APACHE CONFIGURATION ==--
             
             
              --== SYSTEM CONFIGURATION ==--
             
             
              --== END OF CONFIGURATION ==--
             
    [ INFO  ] Stage: Setup validation
    [ INFO  ] Cleaning stale zombie tasks
             
              --== CONFIGURATION PREVIEW ==--
             
              Database name                      : engine
              Database secured connection        : False
              Database host                      : X.X.X.X
              Database user name                 : engine
              Database host name validation      : False
              Database port                      : 5432
              NFS setup                          : True
              Firewall manager                   : iptables
              Update Firewall                    : True
              Configure WebSocket Proxy          : True
              Host FQDN                          : Manager.example.com
              NFS mount point                    : /var/lib/exports/iso
              Set application as default page    : True
              Configure Apache SSL               : True
             
              Please confirm installation settings (OK, Cancel) [OK]:
  5. 从恢复的环境中删除主机

    如果被恢复的自承载引擎部署在一个新硬件中,而这个硬件系统的名称没有出现在备份的引擎中,则跳过这一步。这一步只适用于在一个故障转移主机上(hosted_engine_1)进行部署的情况。因为这个主机在备份时已存在,它仍然还会存在于恢复的引擎中。因此,在进行最后的同步前,需要把它先从环境中删除。
    1. 登录到管理门户。
    2. 主机标签页。故障转移主机(hosted_engine_1)会处于维护模式,而且没有运行任何虚拟机。
    3. 删除
    4. 确定
  6. 把主机和 Manager 进行同步

    返回到主机,选择选项 1 来继续 hosted-engine 脚本:
    (1) Continue setup - engine installation is complete
    [ INFO  ] Engine replied: DB Up!Welcome to Health Status!
    [ INFO  ] Waiting for the host to become operational in the engine. This may take several minutes...
    [ INFO  ] Still waiting for VDSM host to become operational...
    在此阶段,hosted_engine_1 会出现在管理门户中,它的状态会在变为 Non Operational 前经历 Installing 状态和 Initializing 状态。主机会等待 VDSM 主机变为正常运行的状态,并最终发生超时。这是因为环境中的另外一个主机具有 SPM 角色,而这个具有 SPM 角色的主机处于 Non Responsive 的状态,因此,hosted_engine_1 无法和存储域进行交流。当超时发生时,您会被提示关闭虚拟机来完成部署的过程。当部署完成后,主机可以被手工设置为维护模式,并通过管理门户激活。
    [ INFO  ] Still waiting for VDSM host to become operational...
    [ ERROR ] Timed out while waiting for host to start. Please check the logs.
    [ ERROR ] Unable to add hosted_engine_2 to the manager
              Please shutdown the VM allowing the system to launch it as a monitored service.
              The system will wait until the VM is down.
  7. 关闭新的 Manager 虚拟机。
    # shutdown -h now
  8. 返回到主机,确认它检测到 Manager 虚拟机已被关闭。
    [ INFO  ] Enabling and starting HA services
              Hosted Engine successfully set up
    [ INFO  ] Stage: Clean up
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
  9. 激活主机。
    1. 登录到管理门户。
    2. 主机标签页。
    3. hosted_engine_1 并点维护按钮。主机可能会需要几分钟时间进入维护模式。
    4. 激活按钮。
    一旦激活后,hosted_engine_1 就可以竞争成为 SPM,存储域和数据中心都变为活跃状态。
  10. 对状态为 Non Responsive 的主机进行手工隔离(fencing),这会使它上面的虚拟机迁移到其它活跃的主机上。在管理门户中,点主机右键,选确认“主机已被重启”
    当进行备份时在那个主机上运行的所有虚拟机都会被从那个主机上删除,并从 Unknown 状态变为 Down 状态。这些虚拟机现在可以在 hosted_engine_1 上运行。使用 REST API 把被隔离的主机强制删除。
现在,这个环境已被恢复到 hosted_engine_1 活跃时的状态,并可以在恢复的环境中运行虚拟机。那些处于 Non Operational 状态的、可以运行引擎的主机现在就可以按照 第 6.2.4 节 “从恢复的自承载引擎环境中删除状态为 Non-Operational 的主机” 中的步骤被删除,并根据 第 7 章 在自承载环境中安装额外的主机 中介绍的步骤在新环境中重新安装。

注意

如果 Manager 数据库被成功恢复,但 Manager 虚拟机的状态为 Down,并且无法被迁移到另外一个自承载的主机上,您可以启用一个新的 Manager 虚拟机,并按照 https://access.redhat.com/solutions/1517683 中的步骤把不再可用的 Manager 虚拟机从环境中删除。

6.2.4. 从恢复的自承载引擎环境中删除状态为 Non-Operational 的主机

当一个主机通过管理门户被隔离(fencing) 后,就可以使用 REST API 请求强制删除它。这个过程会使用 cURL(一个命令行接口,多数 Linux 发行版本都会包括它)向 HTTP 服务器发送一个请求。它会连接到 Manager 虚拟机来进行相关的请求。
  1. 隔离无法正常工作的主机

    在管理门户中,在主机上点鼠标右键,选确认“主机已被重启”
    当进行备份时在那个主机上运行的所有虚拟机都会被从那个主机上删除,并从 Unknown 状态变为 Down 状态。使用 REST API 把被隔离的主机强制删除。
  2. 获得 Manager 的证书颁发机构(CA)

    连接到 Manager 虚拟机,在命令行中使用 cURL 进行以下请求。
    使用 GET 请求获得 Manager 的 CA 以供今后的 API 请求使用。在下面的示例中,使用 --output 选项指定 hosted-engine.ca 文件作为 Manager CA 证书的输出。--insecure 选项意味着这个初始的请求不包括证书。
    # curl --output hosted-engine.ca --insecure https://[Manager.example.com]/ca.crt
  3. 获得要被删除的主机的 GUID

    在主机集合中使用一个 GET 请求获得要被删除的主机的 GUID。以下例子中包括了 Manager CA 证书文件,使用 admin@internal 用户进行验证,并在命令执行过程中会被提示输入它的密码。
    # curl --request GET --cacert hosted-engine.ca --user admin@internal https://[Manager.example.com]/api/hosts
    这个请求会返回环境中所有主机的信息。主机的 GUID 是和主机名相连的十六进制字符串。如需了解更多与 Red Hat Virtualization REST API 相关的信息,请参阅 Red Hat Virtualization REST API Guide
  4. 删除隔离的主机

    使用带有被隔离主机的 GUID 的 DELETE 请求从环境中删除这个主机。除了以前请求中使用的参数,这个例子中的请求还包括使用 XML 的头(header),以及内容(body)项。在内容项中,把 force 操作设置为 true
    curl --request DELETE --cacert hosted-engine.ca --user admin@internal --header "Content-Type: application/xml" --header "Accept: application/xml" --data "<action><force>true</force></action>" https://[Manager.example.com]/api/hosts/ecde42b0-de2f-48fe-aa23-1ebd5196b4a5
    通过使用相应的 GUID,这个 DELETE 请求可以被用来删除自承载引擎环境中的每一个被隔离的主机。
  5. 从主机上删除自承载引擎配置

    删除存在的主机自承载引擎配置,从而可以在主机被重新安装到一个自承载引擎环境中时对它进行配置。
    登录到主机,删除配置文件:
    # rm /etc/ovirt-hosted-engine/hosted-engine.conf
现在,主机就可以被重新安装到自承载引擎环境中。

第 7 章 在自承载环境中安装额外的主机

添加额外的自承载引擎主机的方法和添加普通主机的方法类似,唯一的不同是需要一个把主机部署为自承载引擎主机的额外步骤。共享的存储域会被自动检测到,如果需要,主机可以作为一个故障转移主机(failover host)来运行 Manager 虚拟机。您也可以把普通的主机附加到自承载引擎环境中,但它们不能被用来运行 Manager 虚拟机。我们强烈推荐使用最少两个自承载引擎主机来保证 Manager 虚拟机的高可用性。另外,也可以使用 REST API 添加额外的主机。相关信息,请参阅 REST API 指南中的 Hosts

预备条件

  • 对于一个基于 RHEL 的自承载引擎环境,您需要已在一台物理主机上全新安装了 Red Hat Enterprise Linux 系统,并为主机订阅了所需的权利。如需了解更多与订阅相关的信息,请参阅安装指南中的 Subscribing to the Required Entitlements
  • 对于一个基于 RHVH 的自承载引擎环境,需要在一个物理主机上准备一个全新安装的 Red Hat Virtualization Host 系统。相关信息,请参阅安装指南中的 Red Hat Virtualization Hosts
  • 如果重新使用一个自承载引擎主机,则需要删除它的已存在的自承载引擎配置。相关信息,请参阅 第 5.2 节 “从自承载引擎环境中删除一个主机”

过程 7.1. 添加额外的自承载引擎主机

  1. 在管理门户中点主机资源标签页。
  2. 新建
    如需了解其它主机的设置,请参阅管理指南中的 Explanation of Settings and Controls in the New Host and Edit Host Windows
  3. 使用数据中心主机集群下拉列表为这个新主机选择数据中心和主机集群。
  4. 输入新主机的名称地址。标准的 SSH 端口(22)会被自动填充到 SSH 端口项中。
  5. 选择 Manager 用来访问这个主机的身份验证方法。
    • 输入 root 用户的密码。
    • 或者,如果需要使用公共密钥进行验证,把 SSH 公共密钥项中的密钥复制到主机的 /root/.ssh/authorized_keys 文件中。
  6. 如果主机中有被支持的电源管理卡,则可以配置电源管理功能。相关信息,请参阅管理指南中的 Host Power Management Settings Explained
  7. 承载引擎子标签页。
  8. 部署选项。
  9. 确定

第 8 章 迁移数据库

8.1. 把自承载引擎数据库迁移到一个远程服务器数据库中

当 Red Hat Virtualization Manager 被初始配置后,您可以把自承载引擎的 engine 数据库迁移到一个远程的数据库服务器。
这个任务被分为两个步骤。第一个步骤:准备远程的 PostgreSQL 数据库。远程数据库服务器需要安装并配置了 Red Hat Enterprise Linux,并且具有所需的订阅。
第二个步骤:迁移数据库,使用 PostgreSQL 的 pg_dumppg_restore 命令来处理数据库的备份和恢复。编辑 /etc/ovirt-engine/engine.conf.d/10-setup-database.conf 文件来包括更新的信息,最少需要更新新数据库服务器的位置信息。如果新数据库服务器中的数据库名称、角色名称或密码也有变化,这些信息也需要在 10-setup-database.conf 文件中进行相应的更新。在这里介绍的步骤中,为了尽量简化对这些文件的修改,我们使用了默认的 engine 数据库设置。

过程 8.1. 为 Red Hat Virtualization Manager 准备远程 PostgreSQL 数据库

  1. 登录到远程数据库服务器并安装 PostgreSQL server 软件包:
    # yum install postgresql-server
  2. 初始化 PostgreSQL 数据库,启动 postgresql 服务,把它设置为在系统引导时被自动启动:
    # service postgresql initdb
    # service postgresql start
    # chkconfig postgresql on
  3. 使用 postgres 用户连接到 psql 命令行界面:
    # su - postgres
    $ psql
  4. 为 Manager 读写数据库创建一个用户。Manager 的默认用户名是 engine
    postgres=# create role user_name with login encrypted password 'password';

    注意

    engine 用户的密码以明码形式保存在 /etc/ovirt-engine/engine.conf.d/10-setup-database.conf 文件中。在新服务器上创建的角色可以使用任何密码,但如果新密码和保存在这个文件中的密码不同,则需要修改这个文件中的密码。
  5. 创建一个用来保存 Red Hat Virtualization 环境信息的数据库。Manager 的默认数据库名是 engine,默认的用户名是 engine
    postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
  6. 启用 md5 客户验证机制来允许对数据库进行访问。编辑 /var/lib/pgsql/data/pg_hba.conf 文件,在文件底部的、以 local 开头的行的下面添加以下内容(使用 Manager 的 IP 地址替换 X.X.X.X 的值):
    host    database_name    user_name    X.X.X.X/32   md5
  7. 允许 TCP/IP 到数据库的连接。编辑 /var/lib/pgsql/data/postgresql.conf 文件,添加以下行:
    listen_addresses='*'
    在这个例子中,postgresql 服务被配置为监听所有接口上的连接。您可以使用 IP 地址来指定只监听特定接口上的连接。
  8. 打开 PostgreSQL 数据库连接所使用的默认端口,保存更新的防火墙规则:
    # iptables -I INPUT 5 -p tcp --dport 5432 -j ACCEPT
    # service iptables save
  9. 重启 postgresql 服务:
    # service postgresql restart
另外,可以设置 SSL 来进行安全的数据库连接(请参阅 http://www.postgresql.org/docs/8.4/static/ssl-tcp.html#SSL-FILE-USAGE)。

过程 8.2. 迁移数据库

  1. 登录到任何一个运行引擎的主机,把环境设置为 global 维护模式。这会禁用高可用性代理,并防止在进行数据库迁移过程中出现 Manager 迁移的情况:
    # hosted-engine --set-maintenance --mode=global
  2. 登录到 Manager 虚拟机,停止 ovirt-engine 服务,从而使它不会影响到引擎的备份:
    # service ovirt-engine stop
  3. 使用 PostgreSQL 的 pg_dump 命令创建 engine 数据库的备份:
    # su - postgres -c 'pg_dump -F c engine -f /tmp/engine.dump'
  4. 把备份文件复制到新的数据库中。目标目录需要允许 postgres 用户对它的访问:
    # scp /tmp/engine.dump root@new.database.server.com:/tmp/engine.dump
  5. 登录到新数据库服务器,使用 PostgreSQL 的 pg_restore 命令恢复数据库:
    # su - postgres -c 'pg_restore -d engine /tmp/engine.dump'
  6. 登录到 Manager 虚拟机,更新 /etc/ovirt-engine/engine.conf.d/10-setup-database.conf 文件中的设置。使用新数据库服务器的 IP 地址替换 ENGINE_DB_HOSTlocalhost。如果新数据库服务器的引擎名称、角色名称或密码也有变化,则还需修改这个文件中的相应值。
  7. 现在,数据库已被迁移,启动 ovirt-engine 服务:
    # service ovirt-engine start
  8. 登录到运行引擎的主机,关闭维护模式,启用高可用性代理:
    # hosted-engine --set-maintenance --mode=none

8.2. 把 Data Warehouse 迁移到一个独立的机器上

把 Data Warehouse 服务从 Red Hat Enterprise Manager 迁移到独立的机器上。在独立的机器上运行 Data Warehouse 服务会减轻单个机器的负载,并可以避免因为不同进程间的 CPU 和内存共享导致的不同服务间的相互影响。
迁移 Data Warehouse 服务,并把它和存在的 ovirt_engine_history 数据库进行连接;或在迁移 Data Warehouse 服务前,把 ovirt_engine_history 数据库迁移到一个新的数据库机器上。如果 ovirt_engine_history 数据库原来存在于 Manager 所在的机器上,迁移 Data Warehouse 服务的同时迁移这个数据库,可以进一步减轻 Manager 所在机器的负载。您可以把数据库迁移到 Data Warehouse 服务所在的机器上,也可以把它迁移到一个完全独立的机器上。

8.3. 把 Data Warehouse 数据库迁移到一个独立的机器上

在迁移 Data Warehouse 服务前,您也可以选择迁移 ovirt_engine_history 数据库。使用 pg_dump 命令创建一个数据库备份,再使用 psql 命令在新数据库中恢复数据库备份。pg_dump 命令提供了一组灵活的备份和恢复数据库的选项,如需了解相关信息,请参阅 pg_dump 的 man 页。
以下过程假设一个 PostgreSQL 数据库已经在新机器上被配置。如果只迁移 Data Warehouse 服务,请参阅 第 8.4 节 “把 Data Warehouse 服务迁移到一个独立的机器上”

过程 8.3. 把 Data Warehouse 数据库迁移到一个独立的机器上

  1. 在当前的数据库所在机器上,把 ovirt_engine_history 数据库输出到一个 SQL 脚本文件中:
    # pg_dump ovirt_engine_history > ovirt_engine_history.sql
  2. 把这个脚本文件从当前数据库所在的机器复制到新数据库所在的机器上。
  3. 在新数据库所在机器上恢复 ovirt_engine_history 数据库:
    # psql -d ovirt_engine_history -f ovirt_engine_history.sql
    以上命令假设新数据库已被命名为 ovirt_engine_history

8.4. 把 Data Warehouse 服务迁移到一个独立的机器上

把 Data Warehouse 服务从 Red Hat Virtualization Manager 所在的机器迁移到一个专门的机器上。在一个独立的机器上运行 Data Warehouse 服务可以减少 Manager 所在机器的负载。请注意,这里介绍的过程只迁移 Data Warehouse 服务,如需在迁移 Data Warehouse 服务前迁移它的数据库(也被称为 ovirt_engine_history 数据库),请参阅 第 8.3 节 “把 Data Warehouse 数据库迁移到一个独立的机器上”
这个操作会涉及到 4 个关键步骤:
  1. 设置新的 Data Warehouse 机器。
  2. 在 Manager 所在的机器上停止 Data Warehouse 服务。
  3. 配置新的 Data Warehouse 机器。
  4. 从 Manager 所在的机器上删除 Data Warehouse 软件包。
先决条件

请确认您已经满足了以下前提条件。

  1. 已在同一台机器上安装并配置了 Manager 和 Data Warehouse。
  2. 为了设置新的 Data Warehouse 机器,您需要:
    • 安装了 Red Hat Enterprise Linux 7 的虚拟机或物理机。
    • 订阅了 Red Hat Enterprise Linux ServerRed Hat Virtualization 权利池。
    • Manager 的 /etc/ovirt-engine/engine.conf.d/10-setup-database.conf 文件中的密码。.
    • 允许从 Data Warehouse 所在机器上访问 Manager 数据库所在机器的 TCP 端口 5432。
    • Manager 所在系统上的 /etc/ovirt-engine-dwh/ovirt-engine-dwhd.conf.d/10-setup-database.conf 文件中的 ovirt_engine_history 数据库凭证。如果您根据 第 8.3 节 “把 Data Warehouse 数据库迁移到一个独立的机器上” 的介绍迁移了 ovirt_engine_history 数据库,则需要获得在设置数据库时设定的用户凭证。

过程 8.4. 第 1 步:设置新的 Data Warehouse 机器

  1. 在 Content Delivery Network 中注册您的系统,在出现提示时输入您的客户门户网站的用户名和密码:
    # subscription-manager register
  2. 找到 Red Hat Enterprise Linux ServerRed Hat Virtualization 订阅池,并记录下它们的 ID。
    # subscription-manager list --available
  3. 使用前一步获得的池 ID 为系统附加权利:
    # subscription-manager attach --pool=pool_id
  4. 禁用所有存在的软件仓库:
    # subscription-manager repos --disable=*
  5. 启用所需的频道:
    # subscription-manager repos --enable=rhel-7-server-rpms
    # subscription-manager repos --enable=rhel-7-server-supplementary-rpms
    # subscription-manager repos --enable=rhel-7-server-rhv-4.0-rpms
    # subscription-manager repos --enable=jb-eap-7-for-rhel-7-server-rpms
  6. 确认当前安装的软件包已被升级到最新版本:
    # yum update
  7. 安装 ovirt-engine-dwh-setup 软件包:
    # yum install ovirt-engine-dwh-setup

过程 8.5. 第 2 步:在 Manager 的机器上停止 Data Warehouse 服务

  1. 停止 Data Warehouse 服务:
    # service ovirt-engine-dwhd stop
  2. 如果 ovirt_engine_history 数据库、Manager 数据库或这两个数据库都运行在 Manager 所在的机器上,而且是由一个较早版本的系统(Red Hat Enterprise Virtualization 3.4 或更早版本)所配置,然后进行了升级,则需要保证新的 Data Warehouse 机器可以访问它们。打开 /var/lib/pgsql/data/postgresql.conf 文件并把 listen_addresses 行的内容修改为:
    listen_addresses = '*'
    如果这行不存在或被注释掉,您需要手工添加它。
    如果数据库位于远程的机器上,您需要手工配置访问权限(编辑每台机器上的 postgres.conf 文件,根据上面的介绍添加 listen_addresses 行)。如果两个数据库都位于 Manager 所在的机器上,并通过 Red Hat Virtualization Manager 进行了全新设置,则相关的访问权限会被默认设置。
  3. 重启 postgresql 服务:
    # service postgresql restart

过程 8.6. 第 3 步:配置新的 Data Warehouse 机器

  1. 运行 engine-setup 命令在机器上开始配置 Data Warehouse:
    # engine-setup
  2. Enter 配置 Data Warehouse:
    Configure Data Warehouse on this host (Yes, No) [Yes]:
  3. Enter 自动配置防火墙,或输入 No 并点 Enter 来保持当前存在的设置:
    Setup can automatically configure the firewall on this system.
    Note: automatic configuration of the firewall may overwrite current settings.
    Do you want Setup to configure the firewall? (Yes, No) [Yes]:
    如果您选择了自动配置防火墙,但还没有激活的防火墙管理器,您将会被提示从一个列表中选择需要使用的防火墙管理器。输入防火墙管理器的名称后按 Enter
  4. Enter 接受自动检测到的主机名,或输入一个其它主机名后点 Enter
    Host fully qualified DNS name of this server [autodetected host name]:
  5. 输入 ovirt_engine_history 数据库的以下位置信息:
    Where is the DWH database located? (Local, Remote) [Local]: Remote
    输入您的选择后点 Enter
  6. 输入 ovirt_engine_history 数据库主机的完全限定域名。点 Enter 接受每个项的默认值:
    DWH database host []: dwh-db-fqdn
    DWH database port [5432]: 
    DWH database secured connection (Yes, No) [No]: 
    DWH database name [ovirt_engine_history]: 
    DWH database user [ovirt_engine_history]: 
    DWH database password: password
  7. 输入 Manager 数据库所在机器的完全限定域名和密码。点 Enter 接受每个项的默认值:
    Engine database host []: engine-db-fqdn
    Engine database port [5432]: 
    Engine database secured connection (Yes, No) [No]: 
    Engine database name [engine]: 
    Engine database user [engine]: 
    Engine database password: password
  8. Enter 为已存在的 Data Warehouse 数据库创建一个备份:
    Would you like to backup the existing database before upgrading it? (Yes, No) [Yes]:
    创建备份所需的时间和存储空间取决于数据库的大小,它可能会需要几个小时来完成。备份文件的位置出现在设置脚本的后面。如果您在这一步没有选择备份数据库,当因为某些原因 engine-setup 运行失败,您将无法恢复数据库或其中的任何数据。
  9. 确认您将永久地把 Data Warehouse 服务与 Manager 断开:
    Do you want to permanently disconnect this DWH from the engine? (Yes, No) [No]:
  10. 确认您的安装设置:
    Please confirm installation settings (OK, Cancel) [OK]:

过程 8.7. 第 4 步:在 Manager 的机器上删除 Data Warehouse 软件包

  1. 删除 Data Warehouse 软件包:
    # yum remove ovirt-engine-dwh
    这一步会防止 Data Warehouse 服务在一个小时后自动重启。
  2. 删除 Data Warehouse 文件:
    # rm -rf /etc/ovirt-engine-dwh /var/lib/ovirt-engine-dwh
现在,Data Warehouse 服务和 Manager 被运行在不同的主机上。

第 9 章 Data Warehouse

9.1. 配置 Data Warehouse

Red Hat Enterprise Virtualization Manager 包括了一个功能强大的管理历史数据库,所有应用程序都可以从这个数据库中获取不同级别(数据中心、集群和主机)的信息。当安装 Data Warehouse 后,ovirt_engine_history 数据库会被创建,Manager 将使用这个数据库记录日志信息,并为报表服务提供数据。Data Warehouse 组件是可选的,用户需要单独安装并配置它们。
我们推荐在 Data Warehouse 部署环境中的所有机器上使用 UTC 作为系统时区。这可以确保数据收集操作不会因为本地时区的改变(如夏时制)而受到影响。
使用 RHEV Manager History Database Size Calculator 工具程序可以估算 ovirt_engine_history 数据库需要使用的空间和资源。它是根据数据库中所包括的项的数量,以及数据需要被保存的时间来进行估算的。

9.2. Data Warehouse 配置备注

问题

engine-setup 命令有以下问题:

安装 Data Warehouse 软件包并运行 engine-setup,在被提问是否配置 Data Warehouse 时回答 No
Configure Data Warehouse on this host (Yes, No) [Yes]: No
当再次运行 engine-setup 命令时,配置这些服务的选项将不再被显示。
临时解决方法

要强制 engine-setup 再次显示所有的选项,运行 engine-setup --reconfigure-optional-components

注意

如果只配置当前安装的 Data Warehouse 软件包,并且不需要从启用的软件仓库中更新软件包时,请使用 --offline 选项。

法律通告

Copyright © 2016 Red Hat.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.