找回密码
 注册
查看: 797|回复: 0

将kvm虚机导入openstack平台中管理

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-6-17 17:00:01 | 显示全部楼层 |阅读模式
将kvm管理的虚拟机迁移到openstack# }( [5 c0 T/ Z" z# R

" K( s, V7 e9 t说了这么多,这才是本文重点。具体步骤如下:
# w$ Y- |. e& L. a  v$ u! @" B5 y! @; K2 W
a.备份kvm中的虚拟机成为镜像文件,在计算节点执行
. d5 _6 l  [9 E2 i- r- i( T9 \: }7 [7 g% R6 m
qemu-img convert -f qcow2 -O qcow2 disk newdisk
& c+ n! d) r1 u7 |
1 X  u# c7 D* O/ t# }b.停止虚拟机/ j' }) U8 o3 i7 H: r7 `
, e3 {3 `' P, A( j% L9 X
c.在计算节点创建nfs将上面打快照的newdisk共享到控制节点,主要要减少大型虚拟机在结算节点和控制节点之前的拷贝,虚拟机一般500g左右。mount好以后,控制节点就会误以为镜像文件已经在自己的控制节点上了,省去了将快照镜像导入glance的步骤。) ~/ x$ ], C9 R& n9 R( r

6 z0 u8 M2 p4 ?mount 192.168.0.2:/home/share/newdisk on /openstack/lib/glance/images$ _8 O9 ^" Z4 n

3 B! U/ Y$ [3 h. w! `4 W) j3 o& fd.修改openstack的数据库,修改数据库后,在新建虚拟机时才能在页面和openstack真正使用刚才假冒导入glance的虚拟机快照。细心同事写的脚本。在控制节点执行。2 k2 J) h7 l/ P7 D0 t8 e) V
& I! a* ~( ~4 w* \
#!/bin/sh
! x+ i, k0 g; F, _+ _
# p+ e" s- n0 `$ Siname=$1
  c. Z) W+ \8 G  Q, Q+ {- y' ^6 e# d3 ~1 i0 R" r$ c4 @& i
filepath1="/tmp/$iname-1.sql"! c3 w2 A4 W0 n6 Y/ \

; L9 q  F( S- d3 J0 Nfilepath2="/tmp/$iname-2.sql"- h  |* ]8 M2 E. x, V' D' K) H

; ]  H$ d9 i: S1 [8 Kmysql -uroot -ppasswd<<eof
4 O% v% X2 Z; k' b' n) R: L# K6 K+ ~& C2 C
use glance;& N5 N* d% b, x7 e3 x0 \
$ K' p+ @9 `' X* w6 J
load data local infile '$filepath1' into table images(id,name,size,status,is_public,created_at,updated_at,deleted_at,deleted,disk_format,container_format,checksum,owner,min_disk,min_ram,protected);# ~' U: V/ z) Z( }( U9 t

1 B( z" k" d6 ]' F/ x9 N6 P) fload data local infile '$filepath2' into table image_locations(image_id,value,created_at,updated_at,deleted_at,deleted,meta_data);5 _: m, V7 Q% |1 F

1 z. T' S- d: A* P/ _0 I1 eEOF
- ]6 I4 F) m: ?7 U% }  s
  N9 J, x/ m$ ~3 w3 g8 \' Z+ }/ e执行import_mysql.sh 192.168.1.xxx_20161205
1 K0 k0 d5 B5 C4 R+ z$ P$ E$ Z+ z5 m! D
inname-1.sql内容:# c1 I1 r  P# h& T
: r0 I2 u( `+ m$ n( A/ S+ _
e340ccc1-dd65-4163-822f-348d5711313f  172.21.0.41_20161205  97956003840   active  0     2016-12-02 18:10:04   2016-12-02 19:36:10   N    0     qcow2 ovf   e30b8b94918aad131cf4618a8efc3d78      f3267153b73d4bf09bed91eb289e26ec 0     0     0
& m( D) W5 G5 c. I' j1 m$ [2 C5 y0 t& D) V( c
inname-2.sql内容:) B+ t+ K9 k, p* ~! c! Y

" {2 |* N7 b& {8 R. q92b44daf-a529-469d-b428-dca8bc39fe4c  file:///openstack/lib/glance/images/92b44daf-a529-469d-b428-dca8bc39fe4c      2016-12-02 17:59:30   2016-12-02 17:59:30   N    0     {}   
8 M2 S. W: W' X7 `: u/ w5 H' ]; K+ Z  G1 E; F0 c
e.修改计算节点openstack HAVANA代码,由于我们不想让glance把快照传来传去,假装了glance的已经导入的快照,但是glance还是有办法判断,注释下面的代码让glanceclient不再判断。记得注释完pythonc编译一下,然后重启service openstack-nova-compute 服务。
$ _" C0 V+ U# v0 p) D' r" x+ v% V; B' f
vi /usr/lib/python2.7/site-packages/glanceclient/common/http.py( ?- R8 s$ ~* `3 l# G

3 `4 v" J2 N3 }5 ?6 Q5 m将501行-504行注释代码' m, E. @+ c. ]0 @0 S% i( h9 q

# s- v- E$ ^4 W& o$ m2 ?8 v501               #if self._checksum is not None and md5sum != self._checksum:* o8 g4 q8 ~, I+ ^: f5 x3 j  A
+ |5 `3 {2 \- i$ I& K
502               #  raise IOError(errno.EPIPE,
  A6 z9 ^3 c; y& t+ l$ _, l& D) [- Z( D& p( b9 x, b, L* I# }, S1 L
503               #                'Corrupted image. Checksum was %s '
- V7 w2 m& w$ O" L& X4 S  @5 E0 `6 T9 N4 H0 X' H* S9 d
504               #                'expected %s' % (md5sum, self._checksum))
6 ^; t) Z$ t0 Y! u$ d2 \: D$ a8 p% G1 c$ _0 g; c
f.到这一步,kvm到openstack Havana的快照镜像已经准备好了,只需要在建立虚拟机就可以了。当然具体建网络,subnet和openvswitch的port过程不说了。
! q  W- W9 K5 t7 m( H5 |: W1 V, y# G1 N
5. 验证主机,一切ok,KVM虚拟机迁移到openstack 成功。3 b# C1 {2 @) K0 b8 S( f
+ c! x& a! O# u/ z* r
</eof
9 P4 Y8 n' ~; g( t* F6 G- r9 u/ ~1 s5 F
<eof
7 a0 U! i: `4 z$ ^. X2 p9 `/ m/ m$ a% `
</eof
; }3 n# q  m; J0 J( g, M
* o0 R- s% t; d5 W
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:56 , Processed in 0.044211 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表