利用快照迁移实例

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

在源Project中:

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

在目的Project中:

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

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

创建实例的快照

  1. 关闭您想要迁移的实例,确保在创建快照的时候所有的数据都已保存在硬盘中。如果有必要,您可以列出所有实例,来查看您想要迁移的那个实例的实例名。
  1. $ nova list
  2. +--------------------------------------+------------+--------+------------------------------+
  3. | ID | Name | Status | Networks |
  4. +--------------------------------------+------------+--------+------------------------------+
  5. | c41f3074-c82a-4837-8673-fa7e9fea7e11 | myInstance | ACTIVE | private=10.0.0.3 |
  6. +--------------------------------------+------------+--------+------------------------------+
  7. $ nova stop example
  1. nova list再列出实例,确定您要迁移的实例已经是SHUTOFF的状态了:
  1. $ nova list
  2. +--------------------------------------+------------+---------+------------------+
  3. | ID | Name | Status | Networks |
  4. +--------------------------------------+------------+---------+------------------+
  5. | c41f3074-c82a-4837-8673-fa7e9fea7e11 | myInstance | SHUTOFF | private=10.0.0.3 |
  6. +--------------------------------------+------------+---------+------------------+
  1. nova image-create命令来创建新快照:
  1. $ nova image-create --poll myInstance myInstanceSnapshot
  2. Instance snapshotting... 50% complete
  1. nova image-list命令检查镜像的状态,直到状态变为ACTIVE
  1. $ nova image-list
  2. +--------------------------------------+---------------------------------+--------+--------+
  3. | ID | Name | Status | Server |
  4. +--------------------------------------+---------------------------------+--------+--------+
  5. | 657ebb01-6fae-47dc-986a-e49c4dd8c433 | cirros-0.3.2-x86_64-uec | ACTIVE | |
  6. | 72074c6d-bf52-4a56-a61c-02a17bf3819b | cirros-0.3.2-x86_64-uec-kernel | ACTIVE | |
  7. | 3c5e5f06-637b-413e-90f6-ca7ed015ec9e | cirros-0.3.2-x86_64-uec-ramdisk | ACTIVE | |
  8. | f30b204e-1ce6-40e7-b8d9-b353d4d84e7d | myInstanceSnapshot | ACTIVE | |
  9. +--------------------------------------+---------------------------------+--------+--------+

将这个快照镜像下载下来

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

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

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

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

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

  1. $ glance image-create --copy-from IMAGE_URL

用新的快照启动实例

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

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