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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-6-17 17:00:01 | 显示全部楼层 |阅读模式
将kvm管理的虚拟机迁移到openstack6 e, l. \8 L0 Q1 g# R! Y
9 N0 Y$ n8 P! U: r* f- G2 o6 W: k. g
说了这么多,这才是本文重点。具体步骤如下:
" p& }* L, C& d* M5 ]2 h0 B' _3 M2 Z2 k* V. f, O, i: L; c4 U
a.备份kvm中的虚拟机成为镜像文件,在计算节点执行
2 Y8 e# I- r4 a4 U' w4 s0 X: H4 ]0 z9 H5 f  U1 W
qemu-img convert -f qcow2 -O qcow2 disk newdisk ; p. S  u' v+ C. ~) y

# k' Q6 r: E+ D" z$ fb.停止虚拟机
1 T/ M% O7 l2 B( T/ l: M0 C) L& ^& k; h  D4 b
c.在计算节点创建nfs将上面打快照的newdisk共享到控制节点,主要要减少大型虚拟机在结算节点和控制节点之前的拷贝,虚拟机一般500g左右。mount好以后,控制节点就会误以为镜像文件已经在自己的控制节点上了,省去了将快照镜像导入glance的步骤。! g# L& I% {6 B* s- B& s# w5 b
* ]+ b; p- {) t9 r* w
mount 192.168.0.2:/home/share/newdisk on /openstack/lib/glance/images
6 N" h( h0 b/ c! ^0 ?9 y* ^3 x+ l* a; d& u
" C" W/ `; X: Y% u, Id.修改openstack的数据库,修改数据库后,在新建虚拟机时才能在页面和openstack真正使用刚才假冒导入glance的虚拟机快照。细心同事写的脚本。在控制节点执行。
/ J4 e# x0 K2 Y3 {& A, w) B- e* \) V+ E. q' I
#!/bin/sh9 z+ a* B' W6 v) `1 y

4 h6 E, ]2 W& l0 Winame=$1
; I& i9 z; f$ X2 I) E
1 b' E# A3 t7 m3 O; B' Bfilepath1="/tmp/$iname-1.sql"* f3 g! Q/ _4 N& P1 o) ?; V; q

; ^2 e  `: F% {/ i5 z" e: tfilepath2="/tmp/$iname-2.sql"
) [& P  ?$ O( c* R5 ?
+ }* }2 i: J, J4 [mysql -uroot -ppasswd<<eof
, x% G: i# w* k6 N8 b% T  Y. n0 q0 N6 {5 [5 [4 z) |
use glance;0 J" n5 Q* u! N/ L

- }% i; t  @) e, e4 \. g% Cload 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);
+ |' y6 J4 m  w
+ _* h# ]: v! o$ e4 V7 Vload data local infile '$filepath2' into table image_locations(image_id,value,created_at,updated_at,deleted_at,deleted,meta_data);9 u+ C3 i/ Y5 N- d2 c( f2 H

6 b0 L( ^' k* D4 K* i. s5 @( [EOF
" t8 ~* y  K$ H3 I+ I* I$ W' w6 ^' l% M* a; A/ w& W# q9 D
执行import_mysql.sh 192.168.1.xxx_20161205: u/ S% G, K' V
8 v. \) u! Q3 S- i
inname-1.sql内容:( c2 g6 o$ f2 S/ ~) V7 I! W: ?
) @7 C9 Q  q* r! _
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
. `; e  C" h- p3 m$ O+ T7 V$ y: d/ B9 m1 {3 |* a
inname-2.sql内容:
7 N  E: i1 o  U1 A5 ?7 s/ L5 D/ V; O! u* ^
% j) O# k1 D: m' o1 s  f92b44daf-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     {}   ) K9 f7 C/ W; q4 I" `
5 e" j2 g' j* f% U
e.修改计算节点openstack HAVANA代码,由于我们不想让glance把快照传来传去,假装了glance的已经导入的快照,但是glance还是有办法判断,注释下面的代码让glanceclient不再判断。记得注释完pythonc编译一下,然后重启service openstack-nova-compute 服务。9 z* c6 @' P7 e

& n. C, A+ ^% ]# xvi /usr/lib/python2.7/site-packages/glanceclient/common/http.py
" w5 g4 [8 H; W3 G4 u  k+ r9 ~6 ?
8 Q' Q  f& l) S- Z7 Z8 }1 K9 f$ {) g将501行-504行注释代码
) p" ^: a+ A' R: \( V& L
4 |* x2 u# x4 T* _501               #if self._checksum is not None and md5sum != self._checksum:9 j; t& m$ i: s/ P5 l, a
4 R1 W! z( X" W
502               #  raise IOError(errno.EPIPE,& b7 ^. p* c7 m' j- g% t
: H* ?# a( [( h4 Y9 n/ Q
503               #                'Corrupted image. Checksum was %s '1 O8 G' n  i- E% {8 c

. S2 S5 i6 n: T' k. T% o504               #                'expected %s' % (md5sum, self._checksum))
8 P7 ^* _, a: J4 Z$ v7 I
' Q) A/ q% ^% v6 ~9 If.到这一步,kvm到openstack Havana的快照镜像已经准备好了,只需要在建立虚拟机就可以了。当然具体建网络,subnet和openvswitch的port过程不说了。
) ?: f' ?% M: v' w$ A
/ g* ~) D& T3 e* o; p5. 验证主机,一切ok,KVM虚拟机迁移到openstack 成功。4 [$ Q0 N; y2 B
' y' D9 x% T! @# N# C1 u/ H) T
</eof
/ D  f  \% E$ E% e+ k5 x3 R3 H2 |- `( U" P$ Q+ ?
<eof
. E% d* I9 {# e4 C5 b6 v7 c9 s0 t; k3 Q$ `/ E9 Z
</eof4 y) R  I# Q% f  h6 h& t% z' z

3 X+ h+ x8 A/ N% E6 I' x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 23:59 , Processed in 0.013256 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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