共享备份管理¶
共享备份管理是提供创建给定共享的备份、恢复备份和删除备份的功能。对于大多数共享文件系统用户来说,这是一个有价值的功能,尤其是对于 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