您的位置:首页 > 运维架构

openstack live-migration

2015-12-26 10:24 423 查看
1.安装NFS服务器

由于迁移(migrate)需要用到共享存储,所以我们必须得配置一个能够被compute节点共同使用的存储服务。共享存储服务有很多种,也不只限于NFS服务。但是考虑到NFS的方便性,我采用了NFS。我选择在controler节点上配置一个NFS服务,用apt-get安装:

1 apt-get install nfs-kernel-server

安装后,创建一个文件夹,将此文件夹作为后面nfs服务要挂载的目录,我是创建在这里的:

1 mkdir -p /var/nfs-storage

然后编辑/etc/exports文件,在上面配置好nfs的访问规则,我直接在上面添加了如下的一句话,便于学习测试,对于ip地址的限制等安全问题我就没设置了:

1 /var/nfs-storage *(insecure,rw,sync,no_root_squash)

保存退出,重启nfs服务:

Systemctl restart nfs

Systemctl status nfs

2.在compute节点上挂载NFS目录

在controler节点上配置好NFS服务后,要在compute节点上挂载这个目录,但是挂载点是有要求的,一定要挂载在 nova.conf的配置文件中所指的那个instances目录下。除非你已经修改了上面的默认配置。而且,在不同的compute节点上,这个路径必 须一摸一样。默认的路径是

“/var/lib/nova/instances”。

由于原来的compute节点上就有instances目录,所以我把原来的更名,然后重新创建了一个新的instances目录。注意修改权限,下面是我的文件夹的权限(我用root创建的,但是把owner改成了nova),给大家作为参考:

改好权限后,再计算节点上安装nfs-common:

1 apt-get install nfs-common

然后用下面的命令挂载:

1 mount 192.168.100.51:/var/nfs-storage /var/lib/nova/instances

为了防止每次开机都要重新手动挂载可以把它添加到fstcb文件上,这样每次开机都会自动挂载:

1 192.168.100.51:/var/nfs-storage /var/lib/nova/instances nfs defaults 0 0

接着我们要修改passwd文件,允许su nova用户,vim /etc/passwd,找到下面的行:

1 改前:

2 nova:x:109:116::/var/lib/nova:/bin/flase

3 改后:

4 nova:x:109:116::/var/lib/nova:/bin/bash或nova:x:109:116::/var/lib/nova:/bin/sh

前面的数字没关系的(各个compute的nova的ID要一致)

如果以前没有设置过nova账号的密码,切换到root下,用passwd nova设置一个密码,后面会用到。

在另外的compute节点上也同样的配置

3.让compute节点能够互相免密码ssh登录

先切换到nova用户,然后用ssh-keygen产生一个公钥一个私钥一路直接回车就行:

1 ssh-keygen

cd到~/.ssh/,并用scp命令将产生的公钥发送到另一台compute节点的.ssh/authorized_keys文件里面:

1 scp id_rsa.pub nova@192.168.100.57:~/.ssh/authorized_keys

如果你原来的authorized_keys里面有内容,请不要这么操作,先scp到另一个文件,然后再用cat添加公钥到末尾,注意权限问题,下面是我的文件权限(包括.ssh文件夹的权限):

在另一台compute节点上配置好权限后,用ssh尝试一下是否可以免密码登陆,可以则表示成功,否则失败。成功后,在另一台compute节点上按上面的教程重新配置(注意是在nova用户下),直到所有的compute节点能够互相面密码ssh登录。

4.配置libvirt的相关文件

每个compute节点都是同样的配置,我这里只配置一台。

修改/etc/libvirt/libvirtd.conf文件:

1 改前 : #listen_tls = 0

2 改后 : listen_tls = 0

3 改前 : #listen_tcp = 1

4 改后 : listen_tcp = 1

5 添加(有了的话,不需要添加): auth_tcp = “none”

修改/etc/init/libvirt-bin.conf文件:

1 改前 : env libvirtd_opts=”-d ”

2 改后 :env libvirtd_opts=”-d -l”

修改/etc/default/libvirt-bin:

1 改前 :libvirtd_opts=” -d”

2 改后 :libvirtd_opts=” -d -l”

用uuidgen产生一个uuid号,

1 root@g-compute3:/var/lib/nova# uuidgen

2 f4ef4243-1ad4-4818-a4cf-abfc1979a7ce

复制常生的uuid号,并修改/etc/libvirt/libvirtd.conf文档,将上面的host_uuid 改成刚刚产生的那个号,并把注释去掉。

现在重新启动libvirt-bin:

1 service libvirt-bin restart

5.修改nova.conf文件

到这里,基本就差不多了,现在要做的就是修改nova.conf文件,并添加如下的内容到nova.conf文件上。

1 live_migration_bandwidth=0

2 live_migration_retry_count=30

3 live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE

live-migration在Juno默认支持的。

上述方法是用controller直接作为NFS的,当然你也可以用openfiler来做。参考下面几篇文章应该就可以了。

下载openfile

http://www.openfiler.com/community/download/

Openfile配置nfs

http://blog.sina.com.cn/s/blog_92e9262b0101q9wq.html

/article/1448663.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: