备份和恢复 Red Hat OpenStack Platform
备份和恢复 Director undercloud
摘要
第 1 章 备份和恢复 Undercloud 复制链接链接已复制到粘贴板!
本指南论述了如何备份 Red Hat OpenStack Platform director 中使用的 undercloud。undercloud 通常是单个物理节点(尽管高可用性选项使用在虚拟机中运行 director 的双节点 pacemaker 集群),用于部署和管理您的 OpenStack 环境。
1.1. 备份注意事项 复制链接链接已复制到粘贴板!
制定可靠的备份和恢复策略,以便最大程度降低数据丢失和系统停机时间。在决定备份策略时,您需要回答以下问题:
- 您需要多久才能从数据丢失中恢复?如果您根本无法丢失数据,除了使用备份外,还需要在部署策略中包含高可用性。您需要考虑获取物理备份介质所需的时间(包括从非站点位置、如果使用)以及可用于恢复操作的磁带驱动器。
- 您应该保留多少个备份?您需要考虑法律和法规要求,它们会影响您期望存储数据的时间。
- 您的备份是否应在现场保存?现场存储备份媒体将有助于降低您物理位置的灾难风险。
- 应测试备份的频率?可靠的备份策略将包括备份数据的常规恢复测试。这有助于验证正确的数据是否仍然被备份,且在备份或恢复过程中不会引入任何崩溃。这些深入应该假定它们在实际的灾难恢复条件下执行。
- 将备份什么?以下小节描述了组件的数据库和文件系统备份,以及恢复备份的信息。
1.2. Undercloud 节点的高可用性 复制链接链接已复制到粘贴板!
您可以自由考虑 undercloud 节点的首选高可用性(HA)选项;红帽不规定这方面的任何特定要求。例如,您可以考虑将 Undercloud 节点作为 Red Hat Enterprise Virtualization (RHEV)中的高可用性虚拟机运行。您还可以考虑使用带有 Pacemaker 为所需服务提供 HA 的物理节点。
在解决 Undercloud 节点的高可用性时,您应查阅您决定最适合您的环境的解决方案的文档和良好做法。
1.3. 备份 Undercloud 复制链接链接已复制到粘贴板!
完整的 undercloud 备份包括以下数据库和文件:
- undercloud 节点上的所有 MariaDB 数据库
- undercloud 上的 MariaDB 配置文件(以便您可以准确恢复数据库)
- /var/lib/glance/images中的所有 glance 镜像数据
- /srv/node中的所有 swift 数据
- stack 用户主目录中的所有数据: /home/stack
- /opt/stack中的所有数据
以 root 用户身份运行以下命令,将数据从 undercloud 节点转储到名为 undercloud-backup-[timestamp].tar.gz 的文件。
确认您在执行备份过程前有足够的磁盘空间可用。tarball 可能至少为 3.5 GB,但这可能会变大。
mysqldump --opt --all-databases > /root/undercloud-all-databases.sql tar -czf undercloud-backup-`date +%F`.tar.gz /root/undercloud-all-databases.sql /etc/my.cnf.d/server.cnf /var/lib/glance/images /srv/node /home/stack /etc/keystone/ssl /opt/stack
# mysqldump --opt --all-databases > /root/undercloud-all-databases.sql
# tar -czf undercloud-backup-`date +%F`.tar.gz /root/undercloud-all-databases.sql /etc/my.cnf.d/server.cnf /var/lib/glance/images /srv/node /home/stack /etc/keystone/ssl /opt/stack
1.4. 验证完成备份 复制链接链接已复制到粘贴板!
您可以通过运行和验证恢复过程来验证已完成的备份过程是否成功。有关从备份中恢复的详情,请查看下一部分。
第 2 章 恢复 复制链接链接已复制到粘贴板!
本节论述了如何恢复 Red Hat OpenStack Platform Director 中使用的 undercloud。
2.1. 恢复 Undercloud 复制链接链接已复制到粘贴板!
以下恢复过程假定您正在恢复失败的 undercloud 节点,您需要从头开始重新安装。它假定硬件布局相同,并且计算机的主机名和 undercloud 设置也相同。
安装机器并处于干净状态后,重新启用安装和运行 director 所需的所有订阅/存储库。以 root 用户身份运行以下命令:
1.安装 mariadb 服务器:
yum install -y mariadb-server
# yum install -y mariadb-server
2.恢复 MariaDB 配置文件和数据库备份,然后启动 MariaDB 服务器并载入备份数据:
a.以 root 用户身份,恢复 MariaDB 文件:
tar -xzC / -f undercloud-backup-$DATE.tar.gz etc/my.cnf.d/server.cnf tar -xzC / -f undercloud-backup-$DATE.tar.gz root/undercloud-all-databases.sql
# tar -xzC / -f undercloud-backup-$DATE.tar.gz etc/my.cnf.d/server.cnf
# tar -xzC / -f undercloud-backup-$DATE.tar.gz root/undercloud-all-databases.sql
b.编辑 /etc/my.cnf.d/server.cnf,并注释掉 bind-address 条目。
c.启动 mariadb 服务:
systemctl start mariadb cat /root/undercloud-all-databases.sql | mysql
# systemctl start mariadb
# cat /root/undercloud-all-databases.sql | mysql
d.清理某些权限(以后重新创建):
for i in ceilometer glance heat ironic keystone neutron nova ; do mysql -e "drop user $i" ; done # mysql -e 'flush privileges'
# for i in ceilometer glance heat ironic keystone neutron nova ; do mysql -e "drop user $i" ; done
# mysql -e 'flush privileges'
3.创建 stack 用户帐户:
sudo useradd stack sudo passwd stack # specify a password echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack sudo chmod 0440 /etc/sudoers.d/stack
# sudo useradd stack
# sudo passwd stack # specify a password
# echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
# sudo chmod 0440 /etc/sudoers.d/stack
4.恢复 stack 用户主目录:
tar -xzC / -f undercloud-backup-$DATE.tar.gz home/stack
# tar -xzC / -f undercloud-backup-$DATE.tar.gz home/stack
5.安装 swift 和 glance 基础软件包,然后恢复其数据:
yum install -y openstack-glance openstack-swift tar -xzC / -f undercloud-backup-$DATE.tar.gz srv/node var/lib/glance/images
# yum install -y openstack-glance openstack-swift
# tar -xzC / -f undercloud-backup-$DATE.tar.gz srv/node var/lib/glance/images
6.确认数据归正确的用户所有:
chown -R swift: /srv/node chown -R glance: /var/lib/glance/images
# chown -R swift: /srv/node
# chown -R glance: /var/lib/glance/images
7.恢复 HAproxy SSL 证书:
tar -xzC / -f undercloud-backup-$DATE.tar.gz etc/keystone/ssl semanage fcontext -a -t etc_t "/etc/keystone/ssl(/.*)?" restorecon -R /etc/keystone/ssl
# tar -xzC / -f undercloud-backup-$DATE.tar.gz etc/keystone/ssl
# semanage fcontext -a -t etc_t "/etc/keystone/ssl(/.*)?"
# restorecon -R /etc/keystone/ssl
8.以 stack 用户身份重新运行 undercloud 安装,确保在 stack 用户主目录中运行它:
su - stack sudo yum install -y python-tripleoclient
# su - stack
$ sudo yum install -y python-tripleoclient
9.确认在 /etc/hosts 中正确设置了主机名。
10.重新安装 undercloud:
openstack undercloud install
$ openstack undercloud install
2.2. 将恢复的 undercloud 重新连接到 overcloud 复制链接链接已复制到粘贴板!
完成上述步骤后,undercloud 可以自动将其连接恢复到 overcloud。节点将继续轮询待处理任务的编排(heat),每几秒钟使用一个简单的 HTTP 请求。
2.3. 验证完成恢复 复制链接链接已复制到粘贴板!
使用以下命令对新恢复的环境执行健康检查:
2.3.1. 检查 Identity Service (Keystone)操作 复制链接链接已复制到粘贴板!
此步骤通过查询用户列表来验证 Identity Service 操作。
source overcloudrc keystone user-list
# source overcloudrc
# keystone user-list
从控制器运行时,此命令的输出应包含您环境中创建的用户的列表。此操作表明 keystone 正在运行并成功验证用户请求。例如:
2.3.2. 检查 OpenStack 服务 复制链接链接已复制到粘贴板!
运行 openstack-status 命令来查看 OpenStack 服务的状态:
openstack-status
# openstack-status