Atom feed of this document
  

 备份和恢复卷

cinder 命令行接口提供了创建卷备份的工具。只要块设备存储数据库中的备份相关的数据库信息 (或备份元数据) 是完整的,您就可以从一个备份中恢复卷。

运行此命令以创建一个卷的备份:

$ cinder backup-create [--incremental] 

VOLUME是卷的名称或ID,incremental是一个说明是否要执行增量备份的标志。

若没有incremental标志,默认会创建全备份,若有incremental标志,就会创建增量备份。

[注意]注意

incremental 标签只对块设备存储的 API v2 可用。您必须在 cinder 命令行接口中指定 [--os-volume-api-version 2] 以使用该参数。

增量备份是基于一个已经存在的打了时间戳的备份来进行的。其上游的备份可以是全备份也可以是增量的备份,主要取决于时间戳。

[注意]注意

第一个卷的备份是一个全备份。尝试进行没有基于已存在的备份来做增量备份会失败。

对于默认的Swift备份驱动来说有一个新的属性backup_swift_block_size被引进到cinder.conf。那就是多大byte的变化以跟踪增量备份。至于backup_swift_object_size ,是Swift备份对象的大小,也以byte算,拥有多个backup_swift_block_sizebackup_swift_block_size默认是32768,backup_swift_object_size默认是52428800。

此命令会返回一个备份ID。当恢复卷时使用此备份ID:

$ cinder backup-restore BACKUP_ID

当从一个完全备份恢复时,也会是一个完全的恢复。

当从一个增量备份恢复时,会列出其所基于动上游的备份的ID。一个全部的恢复的执行首先得基于全备份,然后是恢复基于增量的备份,就是这么个顺序。

由于卷备份是依赖于块设备存储数据库的,您还必须定期备份您的块设备存储数据库来保证数据可恢复。

[注意]注意

您可以选择导出和保存所选择的卷备份的元数据。这么做就除去了备份整个块设备存储数据库的需要。如果您仅仅想要备份卷的一小部分来挽回一个灾难性的数据库故障,那么这将是很有用的。

如果您在创建卷规格时指定了一个 UUID 密钥,那么当您备份和恢复卷时,备份元数据会保证密钥保持有效。

关于如何导出和导入卷备份元数据的更多内容,请参阅“导入和到处备份元数据”一节

默认情况下,备份的仓库会使用swift对象存储。

如果您想转而使用 NFS 导出作为备份仓库,请添加下列配置选项到 cinder.conf 文件的 [DEFAULT] 小节中,并重启块设备存储服务:

backup_driver = cinder.backup.drivers.nfs
backup_share = HOST:EXPORT_PATH

对于 backup_share 选项,请将 HOST 替换为可以被 DNS 解析的主机名或 NFS 共享存储服务器的 IP 地址,将 EXPORT_PATH 替换为共享的路径。如果您的环境需要指定共享的非默认选项,请设置如下:

backup_mount_options = MOUNT_OPTIONS

MOUNT_OPTIONS是逗号分隔的字符,即NFS挂载的属性,更多细节请参考NFS 文档页面。

有多个默认的其它属性会覆盖掉你环境对应的值:

backup_compression_algorithm = zlib
backup_sha_block_size_bytes = 32768
backup_file_size = 1999994880

属性backup_compression_algorithm可以设置为bz2None。后者用于当服务器提供了共享作为存储的仓库时会用到后者,此仓库上的备份数据执行重复数据删除或压缩。

选项 backup_file_size 必需是多重的 backup_sha_block_size_bytes。它有效地在您的环境中使用了最大文件大小,以保持备份数据。大于它的卷会被保存到备份仓库的多文件中。backup_sha_block_size_bytes 选项决定了 cinder 卷所备份的块设备的大小,它计算数字签名,以启用增长的备份容量。

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...