Red Hat Training
A Red Hat training course is available for Red Hat Virtualization
6.2.3. 手动恢复自托管引擎管理器
以下流程概述了如何为备份自托管引擎管理器虚拟机手动恢复配置设置和数据库内容。
过程 6.6. 恢复自托管引擎管理器
- 手动创建可以恢复备份中数据库内容的空数据库。必须在要托管数据库的计算机上执行以下步骤。
- 如果数据库要托管在 Manager 虚拟机以外的计算机上,请安装 postgresql-server 软件包。如果数据库要托管在 Manager 虚拟机上,则不需要这一步,因为该软件包包含在 rhevm 软件包中。
# yum install postgresql-server
- 初始化
postgresql
数据库,启动postgresql
服务并确保该服务在引导时启动:# postgresql-setup initdb # systemctl start postgresql.service # systemctl enable postgresql.service
- 输入 postgresql 命令行:
# su postgres $ psql
- 创建
engine
用户:postgres=# create role engine with login encrypted password 'password';
如果您也恢复数据仓库,请在相关主机上创建ovirt_engine_history
用户:postgres=# create role ovirt_engine_history with login encrypted password 'password';
- 创建新数据库:
postgres=# create database database_name owner engine template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
如果您也恢复数据仓库,请在相关主机上创建数据库: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';
- 退出 postgresql 命令行,再从 postgres 用户注销:
postgres=# \q $ exit
- 编辑
/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 替换为 Manager 的 IP 地址: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
- 重启
postgresql
服务:# systemctl restart postgresql.service
- 保护将备份文件复制到新 Manager 虚拟机。这个示例将文件复制到 第 6.1 节 “备份自托管引擎管理器虚拟机” 中的网络存储服务器中。在本例中,Storage.example.com 是存储服务器的完全限定域名,/backup/EngineBackupFiles 是存储服务器上备份文件的指定文件路径,/backup/ 是文件将在新管理器中复制的路径。
# scp -p Storage.example.com:/backup/EngineBackupFiles /backup/
- 使用
--change-db-credentials
参数恢复完整的备份或仅数据库备份,以传递新数据库的凭证。在本地的数据库到管理器的 database_location 是localhost
。注意以下示例为每个数据库使用--*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
如果数据仓库也作为完整备份的一部分恢复,请包括额外数据库的修订凭证: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
上面的示例恢复数据仓库数据库的备份。
如果成功,则会显示以下输出:You should now run engine-setup. Done.
- 配置恢复的 Manager 虚拟机。这个过程标识现有的配置设置和数据库内容。确认设置。完成后,设置会提供 SSH 指纹和内部证书颁发机构哈希。
# 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]:
从 Restored 环境中删除主机
如果恢复的自托管引擎的部署位于备份引擎中不存在唯一的名称的新硬件上,请跳过这一步。此步骤仅适用于在故障转移主机hosted_engine_1
上发生的部署。因为创建备份时,此主机存在于环境中,所以它会在恢复的引擎中维护一个存在的,因此必须首先从环境中删除,然后才能进行最终同步。- 登录管理门户。
- 单击 Hosts 选项卡。故障转移主机
hosted_engine_1
将处于维护模式,且没有虚拟负载,因为这是如何为备份做好准备。 - 点击 Remove。
- 单击确定。
同步主机和管理器
返回到主机,并通过选择选项 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)角色和hosted_engine_1
无法与存储域交互,因为 SPM 主机处于 Non Responsive 状态。当此过程超时时,系统会提示您关闭虚拟机以完成部署。部署完成后,可以手动将主机置于维护模式,并通过管理门户激活主机。[ 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.
- 关闭新 Manager 虚拟机。
# shutdown -h now
- 返回到主机,以确认它检测到 Manager 虚拟机已关闭。
[ INFO ] Enabling and starting HA services Hosted Engine successfully set up [ INFO ] Stage: Clean up [ INFO ] Stage: Pre-termination [ INFO ] Stage: Termination
- 激活主机。
- 登录管理门户。
- 单击 Hosts 选项卡。
- 选择
hosted_engine_1
,再单击 维护 按钮。在进入维护模式前,主机可能需要几分钟时间。 - 点 Activate 按钮。
处于活动状态后,hosted_engine_1
会立即标记为 SPM,存储域和数据中心将变为活动状态。 - 通过手动隔离不响应的主机将虚拟机迁移到活动主机。在管理门户中,右键单击主机并选择 Confirm 'Host has Rebooted'。在备份时在该主机上运行的任何虚拟机都将从该主机中删除,并从 Unknown 状态移到 Down 状态。这些虚拟机现在可以在
hosted_engine_1
上运行。现在,隔离的主机可以使用 REST API 强制删除。
现在,环境已恢复到 active
_engine_1
处于活动状态,并且能够在恢复的环境中运行虚拟机。现在,可以按照 第 6.2.4 节 “从恢复的自托管引擎环境中删除非操作主机” 中的步骤删除剩余的自托管引擎节点,然后按照 第 7 章 在自托管环境中安装其他主机 中的步骤重新安装到环境中。
注意
如果 Manager 数据库成功恢复,但 Manager 虚拟机似乎为 Down,且无法迁移到另一个自托管引擎节点,您可以启用新的 Manager 虚拟机,并按照 中提供 https://access.redhat.com/solutions/1517683 的步骤从环境中删除死管理器虚拟机。