OpenStack迁移需要将虚拟机创建运行在共享存储上才可以进行迁移。
一、配置共享存储
1、环境
OpenStack三个节点icehouse-gre模式部署一文部署了的OpenStack环境。
IP如下:
controller:10.1.101.11
network:10.1.101.21
compute:10.1.101.31
compute2:10.1.101.41
确保环境配置正确。
修改各个节点的nova.conf中vncserver_listen为:
vncserver_listen = 0.0.0.0
2、安装NFS服务器
由于迁移需要用到共享存储,我们在controller节点配置一个被所有计算节点共同使用的共享存储。这里使用NFS服务。
NFS服务了解更多可参考:NFS(Network File System)服务配置和使用
controller节点:
第一步,安装nfs服务
# apt-get install nfs-kernel-server nfs-common
第二步,创建一个目录作为nfs服务挂载的目录
第三步,配置/etc/exports
root@controller:~# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/var/nfs-storage *(rw,sync,fsid=0,no_root_squash)
root@controller:~# exportfs -rv
3、在compute和comput1两个计算节点挂载NFS目录
Note:
a、挂载点必须是nova.conf配置文件中state_path=/var/lib/nova指定的目录,两个计算节点目录必须一致。
b、建议在配置前先删除计算节点的所有实例,不然会造成僵尸实例的产生。
确保计算节点有执行和查找目录的权限:
chmod o+x /var/lib/nova/instances
安装nfs服务
# apt-get install nfs-kernel-server nfs-common
开机自动挂载:
root@compute1:/var/log/libvirt/qemu# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/xvda1 during installation
UUID=0c681b37-97ed-4d10-bd79-8d5931c443f8 / ext4 errors=remount-ro 0 1
# swap was on /dev/xvda5 during installation
UUID=9e2efc1b-ef13-4b7c-b616-34d2a62f04ea none swap sw 0 0
10.1.101.11:/var/nfs-storage /var/lib/nova/instances nfs defaults 0 0
root@compute1:/var/log/libvirt/qemu# mount -a
root@compute1:~# df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 19478204 2754448 15711276 15% /
udev 2530276 4 2530272 1% /dev
tmpfs 512512 224 512288 1% /run
none 5120 0 5120 0% /run/lock
none 2562556 0 2562556 0% /run/shm
cgroup 2562556 0 2562556 0% /sys/fs/cgroup
10.1.101.11:/var/nfs-storage 19478528 3164672 15301632 18% /var/lib/nova/instances
二、修改所有计算节点libvirt
第一步,修改/etc/libvirt/libvirtd.conf 【注意该目录还有一个libvirt.conf,不要弄错了】
改前:#listen_tls = 0
改后:listen_tls = 0
改前:#listen_tcp = 1
改后:listen_tcp = 1
改前:#auth_tcp = "sasl"
改后:auth_tcp = "none"
第二步,修改/etc/default/libvirt-bin
改前:libvirtd_opts="-d"
改后:libvirtd_opts="-d -l"
第三步,去掉 /etc/libvirt/qemu.conf 中以下三行注释
vnc_listen = "0.0.0.0"
user = "root"
group = "root"
第四步,重启libvirt-bin
service libvirt-bin restart
确认进程已启动
root@compute1:~# ps -ef |grep libvirt
root 9518 1 0 Jan20 ? 00:01:23 /usr/sbin/libvirtd -d -l
重启nova-compute服务
service nova-compute restart
到此配置成功!注意/var/lib/nova/instances目录权限:
root@compute1:~# ll /var/lib/nova/
total 36
drwxr-xr-x 9 nova nova 4096 Jan 20 15:40 ./
drwxr-xr-x 42 root root 4096 Jan 20 13:59 ../
drwxr-xr-x 2 nova nova 4096 May 15 2014 buckets/
drwxr-xr-x 6 nova nova 4096 Jan 6 17:15 CA/
drwxr-xr-x 2 nova nova 4096 May 15 2014 images/
drwxr-xr-x 6 nova root 4096 Jan 20 17:06 instances/
drwxr-xr-x 2 nova nova 4096 May 15 2014 keys/
drwxr-xr-x 2 nova nova 4096 May 15 2014 networks/
drwxr-xr-x 2 nova nova 4096 May 15 2014 tmp/
三、测试迁移
把compute1的虚拟机迁移到compue2上,先看compute1上有哪些虚拟机
# nova-manage vm list | grep compute_one | awk '{print $1}'
root@controller:~# nova-manage vm list
instance node type state launched image kernel ramdisk project user zone index
vm001 compute2 m1.tiny active 2015-01-20 08:30:21 a1de861a-be9c-4223-9a7a-cf5917489ce9 60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova 0
vm002 compute1 m1.tiny active 2015-01-20 08:55:02 a1de861a-be9c-4223-9a7a-cf5917489ce9 60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova 0
root@controller:~# nova-manage vm list |grep compute1 |awk '{print $1}'
vm002
要查看需要迁移的实例vm001实例的名字
root@controller:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446
+--------------------------------------+------------------------------------------------------------+
| Property | Value |
+--------------------------------------+------------------------------------------------------------+
| OS-DCF:diskConfig | AUTO |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-SRV-ATTR:host | compute1 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | compute1 |
| OS-EXT-SRV-ATTR:instance_name | instance-00000036 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-STS:task_state | - |
| OS-EXT-STS:vm_state | active |
| OS-SRV-USG:launched_at | 2015-01-20T08:55:02.000000 |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| config_drive | |
| created | 2015-01-20T08:54:04Z |
| flavor | m1.tiny (1) |
| hostId | af2b0609eb984606e572ddc5135b10b0d992dc73a5f9cc581f01baec |
| id | 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 |
| image | cirros-0.3.2-x86_64 (a1de861a-be9c-4223-9a7a-cf5917489ce9) |
| key_name | - |
| metadata | {} |
| name | vm002 |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | ACTIVE |
| tenantA-Net network | 10.0.0.29, 10.1.101.83 |
| tenant_id | 60a10cd7a61b493d910eabd353c07567 |
| updated | 2015-01-20T08:55:03Z |
| user_id | be1db0d2fd134025accd2654cfc66056 |
+--------------------------------------+------------------------------------------------------------+
root@controller:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 |grep instance_name
| OS-EXT-SRV-ATTR:instance_name | instance-00000036 |
root@controller:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 |grep instance_name | awk '{print $4}'
instance-00000036
控制节点执行:
root@controller:~# nova-manage host list
host zone
controller internal
compute1 nova
compute2 nova
查看可用的计算节点:
root@controller:~# nova-manage service list
Binary Host Zone Status State Updated_At
nova-cert controller internal enabled :-) 2015-01-20 08:57:09
nova-consoleauth controller internal enabled :-) 2015-01-20 08:57:10
nova-scheduler controller internal enabled :-) 2015-01-20 08:57:11
nova-conductor controller internal enabled :-) 2015-01-20 08:57:08
nova-compute compute1 nova enabled :-) 2015-01-20 08:57:13
nova-compute compute2 nova enabled :-) 2015-01-20 08:57:05
nova-compute controller nova enabled XXX 2015-01-19 06:52:42
查看目标节点资源:
root@controller:~# nova-manage service describe_resource compute2
HOST PROJECT cpu mem(mb) hdd
compute2 (total) 2 2997 18
compute2 (used_now) 1 1024 1
compute2 (used_max) 1 512 1
compute2 60a10cd7a61b493d910eabd353c07567 1 512 1
迁移成功,没有输出
root@controller:~# nova live-migration 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 compute2
root@controller:~#
迁移成功,再看虚拟机vm002运行在了compute2节点
root@controller:~# nova-manage vm list
instance node type state launched image kernel ramdisk project user zone index
vm001 compute2 m1.tiny active 2015-01-20 08:30:21 a1de861a-be9c-4223-9a7a-cf5917489ce9 60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova 0
vm002 compute2 m1.tiny active 2015-01-20 08:55:02 a1de861a-be9c-4223-9a7a-cf5917489ce9 60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova 0
aaarticlea/png;base64,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" alt="" width="1644" height="100" />
aaarticlea/png;base64,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" alt="" width="1644" height="97" />
- 虚拟机在 OpenStack 里没有共享存储条件下的在线迁移
虚拟机在 OpenStack 里没有共享存储条件下的在线迁移 本文尝试回答与 Live migration 相关的几个问题:Live migration 是什么?为什么要做 Live migratio ...
- OpenStack平台虚拟机实例在线迁移失败问题
一.在线迁移时提示如下的报错 二.原因分析 通过kolla-ansible部署queens版本时,因为OEM的机器设备的UUID记录的一致,导致迁移时识别的是自身机器的UUID,导致迁移失败 三.问题 ...
- openstack虚拟机迁移的操作记录
需求说明:计算节点linux-node1.openstack:192.168.1.8 计算节点linux-node2.openstack:192.168.1.17 这两个计算节点在同一个控制节点下( ...
- openstack热迁移和冷迁移
转自: http://www.cnblogs.com/pycode/p/6494848.html 迁移类型: *非在线迁移 (有时也称之为‘迁移’).也就是在迁移到另外的计算节点时的这段时间虚拟机实例 ...
- 基于本地存储的kvm虚拟机在线迁移
基于本地存储的kvm虚拟机在线迁移 kvm虚拟机迁移分为4种(1)热迁移基于共享存储(2)热迁移基于本地存储(3)冷迁移基于共享存储(4)冷迁移基于本地存储 这里介绍的是基于本地存储的热迁移 动态块迁 ...
- Oracle 12C 新特性之表分区或子分区的在线迁移
Oracle 12c 中迁移表分区或子分区到不同的表空间不再需要复杂的过程.与之前版本中未分区表进行在线迁移类似,表分区或子分区可以在线或是离线迁移至一个不同的表空间.当指定了 ONLINE 语句,所 ...
- Redis Cluster高可用集群在线迁移操作记录【转】
之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...
- Redis Cluster 4.0高可用集群安装、在线迁移操作记录
之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...
- Redis Cluster在线迁移
由于之前的redis cluster物理硬件性能不足.决定升级到更好的服务器上.考虑到redis是核心生产数据库,决定在线迁移,迁移过程,不中断服务. 下面是测试环境的完成迁移步骤:1. 原环境(测试 ...
随机推荐
- ExtJs特点、优缺点及注意事项
摘自:ExtJs特点.优缺点及注意事项 1.什么是ExtJs?ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写的,主要用于创建前端用户界面,是一个与后台技术无关的 ...
- 怎样从C#中打开数据库并进行 增 删 改 查 操作
首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登 ...
- csharp: InvokeHelper
Entity Framework https://entityframework.codeplex.com/ Enterprise Library https://entlib.codeplex.co ...
- win32程序启用控制台
#include <cstdio> #define USE_WIN32_CONSOLE int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _I ...
- Afinal
1.注解功能 1)继承:FinalActivity ( 需要复制 afinal_0.5.1_bin.jar到lib下) 2)@ViewInject() public class AfinalActiv ...
- java获取class所在jar
在类库的开发过程中,有些时候为了self-contain的原因,我们希望所有的资源都打包在jar中,但是有些工具好像无法支持从classpasth直接获取比如velocity的模板合并,此时我们就知道 ...
- MySQL Fabric 分片性能测试
苦逼的人生,开始了新一轮调研.这次是上面要看 MySQL Fabric 分片性能,好吧,开搞. 1 啥是 MySQL Fabric 其实就是一个Python进程和应用端的Connector的组合.来一 ...
- Vue自定义过滤器
gitHub地址: https://github.com/lily1010/vue_learn/tree/master/lesson05 一 自定义过滤器(注册在Vue全局) 注意事项: (1)全局方 ...
- android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
- IP 协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)
目录 IP协议首部格式地址解析协议 ARP逆向地址解析协议 RARP网际控制报文协议 ICMP网际组管理协议IGMP IP 数据报首部 IP数据报首部格式: 最高位在左边,记为0 bit:最低位在右边 ...