共享备份管理

共享备份管理是提供创建给定共享的备份、恢复备份和删除备份的功能。对于大多数共享文件系统用户来说,这是一个有价值的功能,尤其是对于 NAS 用户而言。

用例

作为管理员,您可能希望备份和恢复您的共享,以便简化归档,并在需要时恢复旧数据。它包括

  • 创建备份

  • 删除备份

  • 在指定共享中恢复备份

备份/恢复工作流程

从 2023.2 开始,已实现一种通用的通过 manila 数据服务备份共享的方法,该方法可以将共享的备份存储在控制节点上挂载的 NFS 路径上。此驱动程序匹配 cinder NFSBackupDriver 的工作流程,从而帮助用户减少学习时间,并提供基本的备份能力。支持 NFS 的供应商必须为 NFS 提供空间,以便与 NFS 备份驱动程序互连。NFS 备份驱动程序的实现将是通用的。此驱动程序的备份过程包括

  • 确保共享处于可用状态且未占用。

  • 允许对共享进行读取访问,并允许对备份共享进行写入访问。

  • 将共享和后端驱动程序的共享(即备份共享)挂载到数据服务节点。

  • 将数据从共享复制到备份共享。

  • 卸载共享和备份共享。

  • 拒绝对共享和备份共享的访问。

对于通用的 NFS 备份方法,为了简单起见,目前仅允许一个备份后端。默认情况下,不会启用任何备份驱动程序。要启用备份驱动程序,请在 manila.conf 中使用以下配置

backup_driver = manila.data.drivers.nfs.NFSBackupDriver
backup_mount_export = <NFS_Server>:/<NFS_Data_Path>
backup_mount_options = '-o vers=<version>',minorversion=1

备份和共享的新状态

  • 备份中

    • creating

    • available

    • deleting

    • deleted

    • error_deleting

    • 备份恢复中

    • error

  • share

    • 备份创建中

    • 备份恢复中

    • 备份恢复错误

在备份期间,共享将被标记为繁忙状态,并且在共享变为可用之前,无法对共享执行其他操作,例如删除、软删除、迁移、扩展、缩小、取消管理、还原到快照、创建快照、创建副本等。最后,无论共享是否成功备份,共享的状态都将回滚到可用状态。如果备份失败,共享 task_state 将包含失败信息。同时,将记录失败消息。

新的清理操作:备份和恢复操作在服务中断时可能会中断,因此将添加新的清理操作来重置状态并清理临时文件(如果涉及)。

备份的新配额

  • quota_backups:指示每个项目允许的共享备份数量。

  • quota_backup_gigabytes:指示每个项目允许用于备份的总存储量,以千兆字节为单位。

使用备份 API(CLI):

与共享备份 API 交互的命令是

  • openstack share backup create:它在 NFS 路径上为共享创建备份。备份变为创建中,并在备份完成后变为可用。

    $ openstack share backup create --help # to see the help of all the
    available options
    
    $ openstack share backup create --name manila_backup1 25a6f80e-306e-4bb8-ad27-cf6800955228
    +-------------------+--------------------------------------+
    | Field             | Value                                |
    +-------------------+--------------------------------------+
    | availability_zone | manila-zone-0                        |
    | created_at        | 2024-03-21T12:49:35.719214           |
    | description       | None                                 |
    | host              | None                                 |
    | id                | c2022366-0701-44d2-b48b-aa95a666efa5 |
    | name              | manila_backup1                       |
    | progress          | 0                                    |
    | restore_progress  | 0                                    |
    | share_id          | 25a6f80e-306e-4bb8-ad27-cf6800955228 |
    | size              | 1                                    |
    | status            | creating                             |
    | topic             | None                                 |
    | updated_at        | None                                 |
    +-------------------+--------------------------------------+
    
  • openstack share backup list:它打印备份的当前状态。如果所有操作都成功,则设置为 available

    $ openstack share backup list
    +--------------------------------------+----------------+--------------------------------------+-----------+
    | ID                                   | Name           | Share ID                             | Status    |
    +--------------------------------------+----------------+--------------------------------------+-----------+
    | c2022366-0701-44d2-b48b-aa95a666efa5 | manila_backup1 | 25a6f80e-306e-4bb8-ad27-cf6800955228 | available |
    +--------------------------------------+----------------+--------------------------------------+-----------+
    $
    
  • openstack share backup show:它获取备份的最新信息。

     $ openstack share backup show c2022366-0701-44d2-b48b-aa95a666efa5
     +-------------------+--------------------------------------+
     | Field             | Value                                |
     +-------------------+--------------------------------------+
     | availability_zone | manila-zone-0                        |
     | created_at        | 2024-03-21T12:49:36.000000           |
     | description       | None                                 |
     | host              | vm.openstack.opendev.com             |
     | id                | c2022366-0701-44d2-b48b-aa95a666efa5 |
     | name              | manila_backup1                       |
     | progress          | 100                                  |
     | restore_progress  | 0                                    |
     | share_id          | 25a6f80e-306e-4bb8-ad27-cf6800955228 |
     | size              | 1                                    |
     | status            | available                            |
     | topic             | manila-data                          |
     | updated_at        | 2024-03-21T12:50:07.000000           |
    +-------------------+--------------------------------------+
     $
    
  • openstack share backup set:它设置备份的名称和描述。

    $ openstack share backup set c2022366-0701-44d2-b48b-aa95a666efa5 --name "new_name" --description "backup_taken_on_march_21"
    

    注意

    此命令没有输出。

    $ openstack share backup show c2022366-0701-44d2-b48b-aa95a666efa5
    +-------------------+--------------------------------------+
    | Field             | Value                                |
    +-------------------+--------------------------------------+
    | availability_zone | manila-zone-0                        |
    | created_at        | 2024-03-21T12:49:36.000000           |
    | description       | backup_taken_on_march_21             |
    | host              | vm.openstack.opendev.com             |
    | id                | c2022366-0701-44d2-b48b-aa95a666efa5 |
    | name              | new_name                             |
    | progress          | 100                                  |
    | restore_progress  | 0                                    |
    | share_id          | 25a6f80e-306e-4bb8-ad27-cf6800955228 |
    | size              | 1                                    |
    | status            | available                            |
    | topic             | manila-data                          |
    | updated_at        | 2024-03-21T12:57:09.000000           |
    +-------------------+--------------------------------------+
    

使用备份 API(REST):

API 将是实验性的,直到经过几轮测试,并最终毕业。有关更多信息,请参阅此链接 REST API 支持

通过备份类型(供应商特定)进行备份/恢复

存在一些用例,即各个存储供应商/驱动程序可能在其自身存储中具有强大的解决方案来备份数据。当存储中提供此类功能时,可以通过使用备份类型来扩展现有的 manila 备份驱动程序,从而增强各个驱动程序以构建自己的备份解决方案。因此,在 Manila 中创建的共享,可以通过供应商特定的解决方案轻松备份。

注意

backup_type 已在版本 2.85 中添加到备份 API 响应中。

从 2024.1 开始,引入了一个名为 backup_type 的概念。这对于使用第三方驱动程序创建备份是必需的,如果存在实现的话。 backup_type 是一个构造,应该具有备份特定的参数,例如 backup_type_name

注意

示例配置如下:eng_data_backup 是这里的 backup_type。

[eng_data_backup]
backup_type_name=my_backup

[nas_storage]
enabled_backup_types = eng_data_backup

通过备份类型进行备份/恢复工作流程:

用户可以使用 backup_type 在供应商特定的存储上创建、删除和恢复备份。

注意

在使用此功能之前,您需要与您的存储合作伙伴确认 Manila 驱动程序中是否可用此功能。

以下是用户参考的创建、查看、恢复和删除备份的工作流程。

$ openstack share backup list
+--------------------------------------+-------+--------------------------------------+-----------+
| ID                                   | Name  | Share ID                             | Status    |
+--------------------------------------+-------+--------------------------------------+-----------+
| 8a9b3ce0-23bb-4923-b8ce-d0dd1f56b2b8 | test4 | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 | available |
+--------------------------------------+-------+--------------------------------------+-----------+

$ openstack share backup create --name test5 --backup-options backup_type=eng_data_backup source_share
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| availability_zone | manila-zone-0                        |
| backup_type       | backup_type1                         |
| created_at        | 2024-03-11T18:15:32.183982           |
| description       | None                                 |
| host              | vm.openstack.opendev.com@nas_storage |
| id                | 4b468327-d03f-4df7-97ef-c5230b5beafc |
| name              | test5                                |
| progress          | 0                                    |
| restore_progress  | 0                                    |
| share_id          | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 |
| size              | 1                                    |
| status            | creating                             |
| topic             | None                                 |
| updated_at        | None                                 |
+-------------------+--------------------------------------+

$ openstack share backup list
+--------------------------------------+-------+--------------------------------------+-----------+
| ID                                   | Name  | Share ID                             | Status    |
+--------------------------------------+-------+--------------------------------------+-----------+
| 4b468327-d03f-4df7-97ef-c5230b5beafc | test5 | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 | creating  |
| 8a9b3ce0-23bb-4923-b8ce-d0dd1f56b2b8 | test4 | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 | available |
+--------------------------------------+-------+--------------------------------------+-----------+

$ openstack share backup show test5
+-------------------+------------------------------------------------+
| Field             | Value                                          |
+-------------------+------------------------------------------------+
| availability_zone | manila-zone-0                                  |
| backup_type       | backup_type1                                   |
| created_at        | 2024-03-11T18:15:32.000000                     |
| description       | None                                           |
| host              | scs000215254-1.nb.openenglab.netapp.com@ontap1 |
| id                | 4b468327-d03f-4df7-97ef-c5230b5beafc           |
| name              | test5                                          |
| progress          | 0                                              |
| restore_progress  | 0                                              |
| share_id          | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7           |
| size              | 1                                              |
| status            | creating                                       |
| topic             | manila-share                                   |
| updated_at        | 2024-03-11T18:15:32.000000                     |
+-------------------+------------------------------------------------+

$ openstack share backup list
+--------------------------------------+-------+--------------------------------------+-----------+
| ID                                   | Name  | Share ID                             | Status    |
+--------------------------------------+-------+--------------------------------------+-----------+
| 4b468327-d03f-4df7-97ef-c5230b5beafc | test5 | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 | available |
| 8a9b3ce0-23bb-4923-b8ce-d0dd1f56b2b8 | test4 | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 | available |
+--------------------------------------+-------+--------------------------------------+-----------+

$ openstack share backup restore test4

$ openstack share backup list
+--------------------------------------+-------+--------------------------------------+-----------+
| ID                                   | Name  | Share ID                             | Status    |
+--------------------------------------+-------+--------------------------------------+-----------+
| 4b468327-d03f-4df7-97ef-c5230b5beafc | test5 | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 | available |
| 8a9b3ce0-23bb-4923-b8ce-d0dd1f56b2b8 | test4 | 983c6dd5-ef93-4c73-9359-ef02fe3bbce7 | restoring |
+--------------------------------------+-------+--------------------------------------+-----------+

$ openstack share backup delete test5