确保OpenStack实例得到备份是灾难恢复计划的重要组成部分。在本文中,我们将介绍在Linux上使用Ephemeral Storage和Block Storage手动备份OpenStack实例的几种方法,并为每种方法提供分步说明。
方法1:快照实例及其连接的卷
第一种方法是拍摄实例及其连接卷的快照。此方法包括使用OpenStack CLI工具创建实例及其连接卷的快照,然后将快照复制到备份位置。
步骤1:创建实例的快照
要创建实例的快照,请使用openstack server image create命令,指定要为快照提供的名称和要快照的实例的ID。例如:
openstack server image create --name myinstance_snapshot --wait 12345678-1234-5678-9012-34567890abcd
这将创建具有指定名称的实例的快照,--wait选项将使命令等待快照创建完成后再返回。
步骤2:创建每个连接卷的快照
要为每个连接的卷创建快照,请使用openstack volume snapshot create命令,指定要为快照提供的名称和要快照的卷的ID。例如:
openstack volume snapshot create --name myvolume_snapshot --volume 12345678-1234-5678-9012-34567890abcd
对每个连接的卷重复此步骤。
步骤3:将快照复制到备份位置
一旦创建了实例及其连接卷的快照,就需要将它们复制到备份位置以进行安全保护。你可以分别使用openstack image save和openstack volumn snapshot save命令来执行此操作。例如:
openstack image save myinstance_snapshot --file myinstance_snapshot.qcow2
openstack volume snapshot save myvolume_snapshot --file myvolume_snapshot.qcow2
对每个连接的卷重复第二个命令。
方法2:使用rsync备份实例及其连接的卷
第二种方法是使用rsync工具将实例及其连接的卷复制到备份位置。此方法要求可以直接访问运行OpenStack实例的主机。
步骤1:识别实例及其连接的卷
第一步是确定存储实例文件的目录,以及每个连接卷的挂载点。实例目录通常位于/var/lib/nova/instances/<instance_ID>,其中<instance_ID>是要备份的实例的ID。可以使用openstack server show命令来查找实例的ID:
openstack server show myinstance
要查找每个连接卷的挂载点,可以使用openstack volume show命令:
openstack volume show myvolume
步骤2:使用rsync复制实例及其连接的卷
要将实例及其连接的卷复制到备份位置,请使用rsync工具和以下命令:
rsync -avz --exclude='/dev/*' --exclude='/proc/*' --exclude='/sys/*' --exclude='/run/*' --exclude='/mnt/*' --exclude='/media/*' --exclude='/lost+found' --exclude='/var/lib/nova/instances/*/console.log' <INSTANCE_DIR> <BACKUP_LOCATION>
将<INSTANCE_ID>替换为要备份的实例的ID,将backup_location替换为要存储备份的位置。此命令将排除某些不需要备份的目录。
方法3:使用tar备份实例及其连接的卷
第三种方法是使用tar工具创建实例及其连接卷的压缩存档。此方法还要求可以直接访问运行OpenStack实例的主机。
步骤1:创建实例及其连接卷的压缩存档
要创建实例及其连接卷的压缩存档,请使用以下命令:
rsync -avz --exclude='/dev/*' --exclude='/proc/*' --exclude='/sys/*' --exclude='/run/*' --exclude='/mnt/*' --exclude='/media/*' --exclude='/lost+found' --exclude='/var/lib/nova/instances/*/console.log' <INSTANCE_DIR> <BACKUP_LOCATION>
将<INSTANCE_ID>替换为要备份的实例的ID,将<VOLUME_NAME>替换为每个连接的卷的名称。对每个连接的卷重复该命令的最后一部分。此命令将创建一个名为backup.tar.gz的压缩档案,其中包含指定的目录。
步骤2:将压缩的存档复制到备份位置
创建压缩档案后,使用scp或rsync工具将其复制到备份位置。例如:
rsync -avz backup.tar.gz backup_location
将backup_location替换为要存储备份的位置。
结论
备份OpenStack实例是灾难恢复计划的关键部分。在本文中,我们介绍了在Linux上使用Ephemeral Storage和Block Storage手动备份OpenStack实例的几种方法,包括每种方法的分步说明。无论你选择使用OpenStack CLI工具、rsync、tar还是这些工具的组合,都必须定期备份实例,以确保在发生灾难时能够快速恢复。
原文链接:
https://superuser.openinfra.dev/articles/safeguarding-your-openstack-instance-complete-guide-to-manually-backing-up-ephemeral-and-block-storage/