如何备份自定义存储卷¶
有不同的方法可以备份您的自定义存储卷
选择哪种方法取决于您的用例和您使用的存储驱动程序。
通常,快照快速且节省空间(取决于存储驱动程序),但它们存储在与卷相同的存储池中,因此不太可靠。导出文件可以存储在不同的磁盘上,因此更可靠。它们还可以用于将卷恢复到不同的存储池中。如果您有单独的网络连接的 Incus 服务器可用,则定期将卷复制到此其他服务器也能提供高可靠性,并且此方法也可用于备份卷的快照。
注意
自定义存储卷可能已附加到实例,但它们不是实例的一部分。因此,当您备份您的实例时,不会存储自定义存储卷的内容。您必须单独备份存储卷的数据。
使用快照进行卷备份¶
快照在特定时间保存存储卷的状态,这使得可以轻松地将卷恢复到以前的状态。它存储在与卷本身相同的存储池中。
大多数存储驱动程序都支持优化的快照创建(请参阅功能比较)。对于这些驱动程序,创建快照既快速又节省空间。对于dir
驱动程序,快照功能可用,但效率不高。对于lvm
驱动程序,快照创建很快,但只有在使用精简池模式时,恢复快照才有效率。
创建自定义存储卷的快照¶
使用以下命令为自定义存储卷创建快照
incus storage volume snapshot create <pool_name> <volume_name> [<snapshot_name>]
将--reuse
标志与快照名称结合使用以替换现有快照。
默认情况下,快照会永久保留,除非设置了snapshots.expiry
配置选项。即使设置了常规过期时间,也要保留特定快照,请使用--no-expiry
标志。
查看、编辑或删除快照¶
使用以下命令显示存储卷的快照
incus storage volume info <pool_name> <volume_name>
您可以通过使用<volume_name>/<snapshot_name>
引用快照,以类似于自定义存储卷的方式查看或修改快照。
要显示有关快照的信息,请使用以下命令
incus storage volume show <pool_name> <volume_name>/<snapshot_name>
要编辑快照(例如,添加描述或更改过期日期),请使用以下命令
incus storage volume edit <pool_name> <volume_name>/<snapshot_name>
要删除快照,请使用以下命令
incus storage volume delete <pool_name> <volume_name>/<snapshot_name>
计划自定义存储卷的快照¶
您可以配置自定义存储卷以在特定时间自动创建快照。为此,请为存储卷设置snapshots.schedule
配置选项(请参阅配置存储卷设置)。
例如,要配置每日快照,请使用以下命令
incus storage volume set <pool_name> <volume_name> snapshots.schedule @daily
要配置每天早上 6 点拍摄快照,请使用以下命令
incus storage volume set <pool_name> <volume_name> snapshots.schedule "0 6 * * *"
在计划定期快照时,请考虑设置自动过期(snapshots.expiry
)和快照的命名模式(snapshots.pattern
)。有关这些配置选项的更多信息,请参阅存储驱动程序文档。
恢复自定义存储卷的快照¶
您可以将自定义存储卷恢复到其任何快照的状态。
为此,您必须首先停止使用存储卷的所有实例。然后使用以下命令
incus storage volume snapshot restore <pool_name> <volume_name> <snapshot_name>
您还可以将快照恢复到新的自定义存储卷中,无论是在同一存储池中还是在不同的存储池中(甚至是远程存储池)。为此,请使用以下命令
incus storage volume copy <source_pool_name>/<source_volume_name>/<source_snapshot_name> <target_pool_name>/<target_volume_name>
使用导出文件进行卷备份¶
您可以将自定义存储卷的完整内容导出到一个独立的文件,该文件可以存储在任何位置。为了获得最高的可靠性,请将备份文件存储在不同的文件系统上,以确保它不会丢失或损坏。
导出自定义存储卷¶
使用以下命令将自定义存储卷导出到压缩文件(例如,/path/to/my-backup.tgz
)
incus storage volume export <pool_name> <volume_name> [<file_path>]
如果您未指定文件路径,则导出文件将作为backup.tar.gz
保存在工作目录中。
警告
如果输出文件已存在,则该命令会覆盖现有文件,恕不另行通知。
您可以向命令添加以下任何标志
--compression
默认情况下,输出文件使用
gzip
压缩。您可以指定不同的压缩算法(例如,bzip2
)或使用--compression=none
关闭压缩。--optimized-storage
如果您的存储池使用
btrfs
或zfs
驱动程序,请添加--optimized-storage
标志,以便将数据存储为驱动程序特定的二进制blob,而不是单个文件的存档。在这种情况下,导出文件只能与使用相同存储驱动程序的池一起使用。以优化模式导出卷通常比导出单个文件更快。快照作为与主卷的差异导出,这减少了它们的大小并使它们易于访问。
--volume-only
默认情况下,导出文件包含存储卷的所有快照。添加此标志以导出卷而不导出其快照。
从导出文件还原自定义存储卷¶
您可以将导出文件(例如,/path/to/my-backup.tgz
)导入为新的自定义存储卷。为此,请使用以下命令
incus storage volume import <pool_name> <file_path> [<volume_name>]
如果您未指定卷名,则导出存储卷的原始名称将用于新卷。如果指定存储池中已存在(或仍然存在)具有该名称的卷,则命令将返回错误。在这种情况下,请在导入备份之前删除现有卷,或为导入指定不同的卷名。