Openstack实例操作

snapshot(快照)

Snapshot 的工作原理是对实例的镜像文件(backing_file + instance_disk)进行全量备份,生成一个类型为 snapshot的image,然后将其保存到Glance上。

目前OpenStack支持cold snapshot和live snapshot。创建cold snapshot之前会关闭实例,创建完成后开启实例。

  • 创建snapshot

    创建snapshot是通过qemu-img convert -f qcow2 -O qcow2命令完成

  • 上传image到glance

若创建的实例是boot from volume,则可以利用块设备提供的基于指针的 volume snapshot 功能,不会真正拷贝数据(快照大小为0),通常一瞬间就完成,对业务几乎没有影响。

rebuild(重建)

Rebuild 会可以选择需要的镜像文件重建实例,同时保持该实例的相关资源分配属性不变

  • 关闭实例
  • 分离实例相关的网络接口
  • 删除实例
  • 以指定镜像创建实例
  • 启动实例
  • 连接原实例相关的网络接口

suspend & pause(挂起&暂停)

相同点

  • 两者都是暂停实例的运行,并保存当前状态,之后可以通过resume操作恢复。

不同点

  • suspend 将实例的状态保存在磁盘,pause 是保存在内存中,所以resume被pause的实例要比suspend快;
  • 实例被suspend后,状态为shutdown,而被pause则是paused。

shelve(废弃)

shelve 会将实例作为image保存到Glance中,然后在宿主机上删除该instance。

  • 关闭实例
  • <instance name>-shelved命名创建snapshot
  • 上传image
  • 分离实例相关的网络接口(unshelve时将会重新连接该网络接口)
  • 删除实例

rescue

rescue 相当于急救模式,nova-compute会用指定的image(若未指定则用该实例对应的image,但这会导致同一块系统盘的UUID重复而无法挂载)作为镜像启动实例,将实例本身的系统盘作为第二个磁盘挂载到操作系统上,可用来做一些系统故障恢复。

1
# openstack server rescue --image 030ddeb5-53d4-4691-b5f6-45331c857448 06fc1509-f847-40c1-bb45-0fc200a9e00b

进入系统后可见原实例的系统盘变成vdb且未挂载。

1
2
3
4
5
6
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
vdb 253:16 0 50G 0 disk
└─vdb1 253:17 0 50G 0 part

坚持原创技术分享,您的支持将鼓励我继续创作!
0%