利用快照迁移实例

优质
小牛编辑
122浏览
2023-12-01

如果要用快照将实例从OpenStack Project迁移到云中,请使用如下方法。

在源Project中:

  1. 创建实例的快照
  2. 将快照镜像下载下来

在目的Project中:

  1. 将快照导入到新的环境中
  2. 用这个快照启动新实例

注意: 有些云提供商只允许管理员来进行这项操作。

创建实例的快照

  1. 关闭您想要迁移的实例,确保在创建快照的时候所有的数据都已保存在硬盘中。如果有必要,您可以列出所有实例,来查看您想要迁移的那个实例的实例名。
$ nova list
+--------------------------------------+------------+--------+------------------------------+
| ID                                   | Name       | Status | Networks                     |
+--------------------------------------+------------+--------+------------------------------+
| c41f3074-c82a-4837-8673-fa7e9fea7e11 | myInstance | ACTIVE | private=10.0.0.3             |
+--------------------------------------+------------+--------+------------------------------+

$ nova stop example
  1. nova list再列出实例,确定您要迁移的实例已经是SHUTOFF的状态了:
$ nova list
+--------------------------------------+------------+---------+------------------+
| ID                                   | Name       | Status  | Networks         |
+--------------------------------------+------------+---------+------------------+
| c41f3074-c82a-4837-8673-fa7e9fea7e11 | myInstance | SHUTOFF | private=10.0.0.3 |
+--------------------------------------+------------+---------+------------------+
  1. nova image-create命令来创建新快照:
$ nova image-create --poll myInstance myInstanceSnapshot
Instance snapshotting... 50% complete
  1. nova image-list命令检查镜像的状态,直到状态变为ACTIVE
$ nova image-list
+--------------------------------------+---------------------------------+--------+--------+
| ID                                   | Name                            | Status | Server |
+--------------------------------------+---------------------------------+--------+--------+
| 657ebb01-6fae-47dc-986a-e49c4dd8c433 | cirros-0.3.2-x86_64-uec         | ACTIVE |        |
| 72074c6d-bf52-4a56-a61c-02a17bf3819b | cirros-0.3.2-x86_64-uec-kernel  | ACTIVE |        |
| 3c5e5f06-637b-413e-90f6-ca7ed015ec9e | cirros-0.3.2-x86_64-uec-ramdisk | ACTIVE |        |
| f30b204e-1ce6-40e7-b8d9-b353d4d84e7d | myInstanceSnapshot              | ACTIVE |        |
+--------------------------------------+---------------------------------+--------+--------+

将这个快照镜像下载下来

  1. 找到镜像的ID
$ nova image-list
+-------------------+-------------------+--------+--------------------------------------+
| ID               | Name              | Status | Server                                |
+-------------------+-------------------+--------+--------------------------------------+
| f30b204e-1ce6... | myInstanceSnapshot| ACTIVE | c41f3074-c82a-4837-8673-fa7e9fea7e11  |
+------------------+-------------------+--------+---------------------------------------+
  1. 用上一步查询到的镜像ID来下载镜像
$ glance image-download --file snapshot.raw
f30b204e-1ce6-40e7-b8d9-b353d4d84e7d

注意: glance image-download这个命令要求必须使用镜像ID,不能使用镜像名。此外,您还要确保您的目标文件夹有足够的空间来存储这个镜像文件。

  1. 将该镜像转移到新环境中,用HTTP或者直接上传(scp),任何方法都可以。

将这个快照导入到新系统中

在新的Project或者云环境中,导入快照:

$ glance image-create --copy-from IMAGE_URL

用新的快照启动实例

在新的Project或者云环境中,用新的快照启动实例:

$ nova boot --flavor m1.tiny --image myInstanceSnapshot myNewInstance