OpenStack中共享存储的虚拟机在线迁移

栏目: 服务器 · 发布时间: 7年前

内容简介:正常安装的OpenStack中,实例存放在/var/lib/nova/instances/目录;使用kolla安装的OpenStack中,实例存放在/var/lib/docker/volumes/nova_compute/_data/instances/目录。共享存储,需要两个步骤:

《OpenStack中虚拟机的在线迁移》 一文中,虚拟机迁移时,把block一起进行了迁移。生产环境中,这些虚拟机往往是共享存储设备,不需要对block进行迁移。所以,本文就来重新配置一下环境,实现共享存储的虚拟机在线迁移。

原理

正常安装的OpenStack中,实例存放在/var/lib/nova/instances/目录;使用kolla安装的OpenStack中,实例存放在/var/lib/docker/volumes/nova_compute/_data/instances/目录。

共享存储,需要两个步骤:

1、有一台NFS(Network File System)服务器,共享某个目录,比如/nfs/share/instances。

2、所有计算节点的instances目录,都挂载上NFS服务器的/nfs/share/instances目录。

主机准备

使用virtualbox创建一个新的ubuntu16虚拟机,或者clone其他节点并且通过快照恢复初始状态,作为nfs存储节点。这里通过clone的方法得到一个新的主机,设置IP为192.168.56.130。参考 《VirtualBox中Ubuntu扩容》 ,对虚拟机进行扩容。

NFS

NFS服务器

首先,我们要搭建一个NFS服务器,参考 Ubuntu 16.04系统上NFS的安装与使用使用NFS实现Ubuntu的文件共享

1、安装nfs软件包

apt install nfs-kernel-server

2、编写配置文件

vim /etc/exports

添加如下内容:

# openstack instances
/nfs/share/instances *(rw,sync,no_root_squash)

3、创建共享目录并修改权限

mkdir -p /nfs/share/instances
chmod o+x /nfs/share/instances

4、重启nfs服务

service nfs-kernel-server restart

5、查看共享信息

exportfs

控制节点

在控制节点删除demo1实例,或者在horizon控制台删除demo1的实例。

计算节点

1、安装nfs客户端

apt-get install nfs-common

2、查看共享信息

showmount -e 192.168.56.130

3、挂载nfs目录

mount -t nfs 192.168.56.130:/nfs/share/instances /var/lib/docker/volumes/nova_compute/_data/instances/

instances目录中还有文件和文件夹,直接挂载覆盖确定没有影响吗?没有。

两个计算节点都执行同样的操作,此时它们的instances目录是同一个目录。

4、修改instances目录权限

chmod -R 777 /var/lib/docker/volumes/nova_compute/_data/instances/

一定要修改,否则创建实例时会报错。

OpenStack中共享存储的虚拟机在线迁移

5、自动挂载

vim /etc/fstab ,添加:

192.168.56.130:/nfs/share/instances /var/lib/docker/volumes/nova_compute/_data/instances nfs default 0 0

6、重启compute服务

docker stop nova_compute
docker start nova_compute

如果不重启,那么创建的实例会存放在计算节点本地磁盘上,卸载instances目录后可以看到。

迁移

创建实例

参考 《Kolla安装OpenStack多节点》 的初始化配置部分,使用cirros镜像创建demo2实例。

1、使管理员环境生效

source /etc/kolla/admin-openrc.sh

2、创建实例

openstack server create \
    --image cirros \
    --flavor m1.tiny \
    --key-name mykey \
    --nic net-id=25e6c0ef-6a0a-481c-a08a-46f7ef67ad3e \
    demo2

3、分配浮动IP

openstack network list
openstack floating list
openstack floating ip create public1
openstack server add floating ip demo2 10.0.2.156

OpenStack中共享存储的虚拟机在线迁移

3、查看实例

计算节点上,在/var/lib/docker/volumes/nova_compute/_data/instances目录中,可以看到新创建的实例。

迁移实验

1、查看实例列表

nova list
OpenStack中共享存储的虚拟机在线迁移

2、查看实例信息

nova show demo2
OpenStack中共享存储的虚拟机在线迁移

可以看到demo2位于compute节点。

3、实例迁移

nova live-migration demo2 compute2

4、再次查看实例信息

nova show demo2
OpenStack中共享存储的虚拟机在线迁移

可以看到demo2迁移到了compute2节点,迁移成功,nice。


以上所述就是小编给大家介绍的《OpenStack中共享存储的虚拟机在线迁移》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

游戏编程中的人工智能技术

游戏编程中的人工智能技术

布克兰德 / 吴祖增 / 清华大学出版社 / 2006-5 / 39.0

《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游戏演示软件。 《游戏编程中的人工智能技术》适合遗传算法和人工神经网络等人工智能技术的各行业人员,特别是要实际动手做应用开......一起来看看 《游戏编程中的人工智能技术》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具