跨平台(I版到K版)迁移实践总结
rm -f /etc/udev/rules.d/-persistent-net.rules
nova stop uuid
[root@node-63~]# scp -r /var/lib/nova/instances/5e8d5d06-e3ed-4f56-b28b-7d57309e9fbb node-76:/tmp/
qemu-img convert -f raw disk -O qcow2 disk
[root@node-63~]# qemu-img info /var/lib/nova/instances/5e8d5d06-e3ed-4f56-b28b-7d57309e9fbb/disk
image:/var/lib/nova/instances/5e8d5d06-e3ed-4f56-b28b-7d57309e9fbb/disk
file format: qcow2
virtual size:50G(53687091200 bytes)
disk size:734M
cluster_size:65536
backing file:/var/lib/nova/instances/_base/c631b3cc0e8ed9b5fa4d9020995b108d50ba085f
Format specific information:
compat:1.1
lazy refcounts:false
[root@node-~]# scp /var/lib/nova/instances/_base/c631b3cc0e8ed9b5fa4d9020995b108d50ba085f node-:/tmp/5e8d5d06-e3ed-4f56-b28b-7d57309e9fbb/
source /root/openrc-xxx
nova boot <instance-name>--image <image-uuid>--flavor <flavor-id>--nic net-id=<net-uuid>,v4-fixed-ip=<fixed-ip>--security-groups
<security-groups_id> --available-zone nova:hostname
注意:
1)instance-name 需要很原来的虚拟机名称保持一致
2)image-uuid,已经在K版环境上传了I版镜像,可以直接使用:
有些镜像无法使用,创建这些镜像的虚拟机时,请用任意其他镜像代替
3)flavor,选择和以前的flavor内容一致的模板
4)net-uuid,请选择正确的网络
5)v4-fixed-ip,填写正确的ip地址,和老系统保持ip一致
6)--security-groups,填写正确的安全组
7)--available-zone ,事先规划好的目标计算节点
再次注意:
创建虚拟机时,需要使用特定租户创建,而不是用admin创建。
nova stop 41c0cc46-8afd--877b-45310f2a80b2
mv /var/lib/nova/instances/5e8d5d06-e3ed-4f56-b28b-7d57309e9fbb/disk /var/lib/nova/instances/<new-vm-uuid>/
mv /var/lib/nova/instances/5e8d5d06-e3ed-4f56-b28b-7d57309e9fbb/c631b3cc0e8ed9b5fa4d9020995b108d50ba085f /var/lib/nova/instances/_base/
nova start xxxx
1. 是否能够正常启动,重启,读写数据。
2.虚机所有信息保持与原虚机一致,包括登录密码。
3.网络可达东西南北流量正常,浮动ip可以访问。
#!/bin/bash
#:vm uuid
#:dest host
#copy instance file to remote host
set-e
if[ $# -ne ];then
echo "please inpute two parment 1:uuid and 2:dest hostip"
exit
fi
source openrc-zmg.sh
echo vm-uuid:$
echo remotehostip: $
status=`nova show $|grep "^| status"|cut -f -d "|"|sed 's/ //g'`
if["$status"="ACTIVE"];then
echo "please use [nova stop uuid] to shutoff the vm"
exit
fi
nova show $
sourcehost=`nova show $|grep "OS-EXT-SRV-ATTR:host"|cut -f -d "|"`
echo sourcehost:$sourcehost
diskfile=/var/lib/nova/instances/$
echo $diskfile
#ssh $sourcehost "sshpass -p qwe123 scp -r /var/lib/nova/instances/$1 $2:/tmp"
#echo diskfile copy complete
#sleep
#ls
#ssh $sourcehost qemu-img info /var/lib/nova/instances/"$1"/disk|grep backing|cut -d : -f |tr -d '\r'|xargs -i cp -r {} /tmp
#sleep
expect <<!
set timeout -
spawn ssh $sourcehost
expect "root@node"
send "sshpass -p qwe123 rsync -arv --progress /var/lib/nova/instances/$1 $2:/var/lib/nova/instances/tmp\r"
expect "~]#"
send "qemu-img info /var/lib/nova/instances/$1/disk|grep back|cut -d : -f 2|xargs -i sshpass -p qwe123 scp {} $2:/var/lib/nova/instances/tmp/$1\r"
expect "~]#"
send "echo copy competed!\r"
expect eof
!
xargs -n7 ./create-vm.sh <test
#!/bin/bash
set-e
if[ $# -ne ];then
echo -e "please input parament\n1:<instance-name>\n2:<image-uuid>\n3:<flavor-id>\n4:<net-uuid>\n5:<fixed-ip>\n6:<security-groups_id>\n7:hostname"
exit
fi
nova boot "$1"--image $ --flavor $ --nic net-id=$,v4-fixed-ip=$ --security-groups $ --availability-zone nova:$
sleep
uuid=`nova show "$1"|grep "^| id"|cut -f -d "|"`
nova show "$1"
#!/bin/bash
set-e
if[ $# -ne ];then
echo "please inpute two parment 1:new vm uuid and 2:old vm uuid"
exit
fi
status=`nova show $|grep "^| status"|cut -f -d "|"|sed 's/ //g'`
echo $status
if["$status"="ACTIVE"];then
echo "please use [nova stop uuid] to shutoff the vm"
exit
fi
source admin-tenant.sh
nova show $
host=`nova show $|grep "OS-EXT-SRV-ATTR:host"|cut -f -d "|"`
echo "=====VM is at:$host=============="
ssh $host mv /var/lib/nova/instances/tmp/$/disk /var/lib/nova/instances/$/
echo "========mv disk compelted===="
sleep
echo "=====check the disk time for change======== "
ssh $host ls -al /var/lib/nova/instances/$/disk
echo "disk change ok!"
sleep
nova start $
echo "========start vm==wait 30s======"
nova show $
sleep
echo "=======create 0M disk.config======="
ssh $host qemu-img create /var/lib/nova/instances/$/disk.config 0M;
ssh $host chown nova:nova /var/lib/nova/instances/$/disk.config;
echo "======check disk.config owner====== "
ssh $host ls -al /var/lib/nova/instances/$/disk.config
跨平台(I版到K版)迁移实践总结的更多相关文章
- VPGAME 的 Kubernetes 迁移实践
作者 | 伍冲斌 VPGAME 运维开发工程师 导读:VPGAME 是集赛事运营.媒体资讯.大数据分析.玩家社群.游戏周边等为一体的综合电竞服务平台.总部位于中国杭州,在上海和美国西雅图分别设立了电 ...
- VPGAME的Kubernetes迁移实践
VPGAME 是集赛事运营.媒体资讯.大数据分析.玩家社群.游戏周边等为一体的综合电竞服务平台.总部位于中国杭州,在上海和美国西雅图分别设立了电竞大数据研发中心和 AI 研发中心.本文将讲述 VPGA ...
- HTML5与CSS3基础教程(第8版) PDF扫描版
<HTML5与CSS3基础教程(第8版)>自第1版至今,一直是讲解HTML和CSS入门知识的经典畅销书,全面系统地阐述HTML5和CSS3基础知识以及实际运用技术,通过大量实例深入浅出地分 ...
- c++学习书籍推荐《清华大学计算机系列教材:数据结构(C++语言版)(第3版)》下载
百度云及其他网盘下载地址:点我 编辑推荐 <清华大学计算机系列教材:数据结构(C++语言版)(第3版)>习题解析涵盖验证型.拓展型.反思型.实践型和研究型习题,总计290余道大题.525道 ...
- Windows Server 2008 R2 官方简体中文免费企业版/标准版/数据中心版
Windows Server 2008 R2是一款微软发布的Windows服务器操作系统,和之前发布的Windows Server 2008相比功能更为完善运行更为稳定,提升了系统管理弹性.虚拟化.网 ...
- 如何做系列(4)-微博URL短网址生成算法原理(java版、php版实现实例)
短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代 ...
- camunda开源版与商业版的差异
Camunda流程引擎分社区版和企业版,社区版实际上是开源版,是Apache2.0协议,企业版实际上是商业收费版本,需要购买授权才能使用,那么社区版和企业版的差异有哪些呢,社区版本是否能满足我们日常的 ...
- 微软发布 Windows Server 2016 预览版第三版,开发者要重点关注Nano Server
微软已经发布 Windows Server 2016 和 System Center 2016 第三个技术预览版,已经提供下载.Windows Server 2016 技术预览版第三版也是首个包括了容 ...
- 使用VNET-to-VNET连接Microsoft Azure国际版和中国版
Microsoft Azure的VNET-to-VNET功能可以实现跨虚拟网络的VPN连接,通过VNET-to-VNET互联的两个虚拟网络可以在同一个订阅下或者隶属不同的订阅,而且可以跨数据中心.这实 ...
随机推荐
- windows下忘记mysql超级管理员rootpassword的解决的方法
今天帮一个朋友找回了MYSQL的超级管理员ROOTpassword.開始输入命令的时候少打了个"点"害的折腾了几个小时.最终攻克了,写个教程,方便以后使用! 假设你是server是 ...
- Atitit.pdf 预览 转换html attilax总结
Atitit.pdf 预览 转换html attilax总结 1. Swf flash还是html1 2. pdf2htmlEX1 3. iText 5.5.0 发布,Java 的 PDF 操作类库1 ...
- maven的一些基础命令
1.显示当前构建的实际pom,包括活动的Profile mvn help:effective-pom 2.打印出项目的世界settings,包含从全局的settings和用户级别settings继承的 ...
- android学习笔记(3)Button控件的学习
一,增加一个button并用外部类绑定事件 //XML文件: <Button android:id="@+id/button1" android:layout_width=& ...
- Android SDK环境搭建
方法有二 方法一: Android SDK开发包国内下载地址 http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform ...
- 解密SVM系列(二):SVM的理论基础(转载)
解密SVM系列(二):SVM的理论基础 原文博主讲解地太好了 收藏下 解密SVM系列(三):SMO算法原理与实战求解 支持向量机通俗导论(理解SVM的三层境界) 上节我们探讨了关于拉格朗日乘 ...
- PHP里的socket_recv方法解释
以前一直经为PHP里没有低级的socket帧接收函数,看来是没看仔细,不过那些说明也太少了,(更令人气的里在英文版说明里的例子下有一句话:这个程序不能运行,因为没用listen函数,但在中文版里却没了 ...
- WPF 自定义快捷键命令(COMMAND)(转)
命令简介 WPF 中的命令是通过实现 ICommand 接口创建的.ICommand 公开两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged).Exec ...
- Lumen开发:lumen源码解读之初始化(2)——门面(Facades)与数据库(db)
版权声明:本文为博主原创文章,未经博主允许不得转载. 紧接上一篇 $app->withFacades();//为应用程序注册门面. $app->withEloquent();//为应用程序 ...
- Hibernate 表连接hql语句
现有两个表 user 表 和 VIPcard 表 UserVo user VIPcardVo 中含有 UserVo user select v from VIPCardVo v left join ...