虽然有多种方法可用于备份系统,但建议您根据灾难恢复策略备份 Salt 基础架构。

您必须备份多个文件,并将其传输到新的 RHEL 8/9 环境:
  • RaaS 节点文件和目录
    • /etc/raas/raas 文件
    • /etc/raas/raas.secconf 文件
    • /var/log/raas 文件
    • /etc/raas/pki/ 目录
  • PostgreSQL 节点
    • Postgres.conf - /var/lib/pgsql/12/data/postgresql.conf
    • Pg_hba.conf - /var/lib/pgsql/12/data/pg_hba.conf
有关这些文件和目录的详细信息,请参见 升级 SaltStack Config

可以使用此命令行作为示例来说明如何备份基础架构。您可以为每个特定节点创建三个不同的状态文件,并分别应用以下命令:

  • RaaS 节点:salt rhel9-raas state.sls raas-backup
  • PostgreSQL 节点:salt rhel9-postgres state.sls pg-backup
  • Salt 主节点:salt rhel9-master state.sls master-backup
注: 如果您具有多节点环境,则需要拆分此状态文件,以将该节点的相应节状态应用于包含相关文件的节点。
# file: /srv/salt/backup.sls
copy_raas_config:
  file.copy:
    - name: /tmp/backup/raas 
    - source: /etc/raas/raas
    - makedirs: True
    - force: True 
copy_raas_secconf:
  file.copy:
    - name: /tmp/backup/raas.secconf
    - source: /etc/raas/raas.secconf
    - force: True 
    - require:
      - copy_raas_config
copy_raas_log:
  file.copy:
    - name: /tmp/backup/raas.log
    - source: /var/log/raas
    - force: True 
    - require:
      - copy_raas_secconf
copy_raas_pki:
  file.copy:
    - name: /tmp/backup/pki
    - source: /etc/raas/pki/
    - makedirs: True
    - force: True 
    - require:
      - copy_raas_log 

copy_raas_conf:
  file.copy:
    - name: /tmp/backup/master.d/raas.conf
    - source: /etc/salt/master.d/raas.conf 
    - makedirs: True
    - force: True 
    - require:
      - copy_raas_pki

copy_eapimasterpaths:
  file.copy:
    - name: /tmp/backup/master.d/eAPIMasterPaths.conf
    - source: /etc/salt/master.d/eAPIMasterPaths.conf 
    - makedirs: True
    - force: True 
    - require:
      - copy_raas_conf

copy_postgres_conf:
  file.copy:
    - name: /tmp/backup/postgresql.conf
    - source: /var/lib/pgsql/12/data/postgresql.conf
    - force: True 

copy_pg_hba_conf:
  file.copy:
    - name: /tmp/backup/pg_hba.conf
    - source: /var/lib/pgsql/12/data/pg_hba.conf
    - force: True 

备份 Postgresql 数据库

您可以使用命令行以 postgres 用户身份备份 PostgreSQL 数据库。
  1. 要成为 postgres 用户,请运行以下命令:
    su - postgres
  2. 运行 list 命令以显示数据库列表,从而查找数据库的正确名称。postgresql 数据的名称应类似于: raas_43cab1f4de604ab185b51d883c5c5d09。
    psql --list | grep -i raas
    raas_43cab1f4de604ab185b51d883c5c5d09 | salt_eapi | UTF8 | en_US.utf8 | en_US.utf8 |
    
  3. 使用以下命令创建压缩的 gz 文件备份。
    pg_dump raas_43cab1f4de604ab185b51d883c5c5d09 | gzip > 
    raas_43cab1f4de604ab185b51d883c5c5d09.`date +%Y%m%d`.gz
    注: 此命令会在当前工作目录中创建数据库的副本。确保工作目录有足够的空间可用于存储此备份。有关详细信息,请参见 恢复磁盘空间
此 gz 文件由 VMware SRE 团队使用并导入到 Config Cloud Postgresql 数据库。