[解决后端使用ceph qem性能问题](升级kvm后使用virt-type=kvm(qemu-system-x86_64、qemu-kvm、qemu-img)
/ K3 F" F( _4 X/ G4 f
( l+ u( u+ v" v( e8 V3 K" L5 Z4 M8 `! k' ], f, e( J# J
由于升级libvirt、 qemu 后没有qemu-kvm模块。nova配置文件配置为 virt-type=kvm将会报错、配置为qemu则性能低。 ' i8 [$ j3 k+ J8 H
8 x. Y( O, b; a+ g( b1 A2 V- s
关于kvm、和qemu类型选择请参考博文:qemu中KVM硬件虚拟化的初始化分析 (tcg、xen、kvm、qtest)
# Q3 d3 ^5 `7 ]) `7 p7 c J" \" q: c' Y' o, w% Z; ^ k8 z
, }, `& f" }# @! G本次测试环境配置: 2 B3 Y- ~- \+ `( F
& U7 G4 {. y7 v/ x3 L
3 m4 b2 [, o6 H3 n$ p/ l. o- horizon 的ip 192.168.10.71; n% C" b+ @" l0 C! U ?, G
- 其他组件ip 192.168.10.191+ i/ J: l. Q& v* L' g* x; m
- P9 ^8 ]1 |+ ~, T7 i! h7 p5 B
, J+ ]6 |0 C$ T/ j2 \6 {$ V7 ^7 f% A$ G/ j, h, W0 [, g4 S$ R
复制代码& j8 v, _5 M# V. N$ k) G# q( s7 V3 G
0 t8 F* p" K2 m- S0 l9 ^* y
5 f I$ O! e& L( P5 F
& s O+ B% Z! {2 z; |: b m; @- d' o v
6 O: _) l& K( u! Q( b+ m1 n
- k' f7 @4 w6 ?0 h1、使用virt-type=qemu启动的虚拟机:
9 s, q d/ |1 V3 S# G6 ^3 ^0 v& A1 d$ {& J- h* T* a7 \
" {0 o6 V0 z/ h, v
; u4 f; g t$ d% g: m1 @ r
3 G8 i ~1 q) o! w: @$ u! X1.png (46.25 KB, 下载次数: 0) 2 S. [3 O. K; ?& K# `( i
$ M: ^7 \6 Y/ ^( g
下载附件
u2 X. S4 R3 H
1 E5 ]; ~& Y/ A1 Q 保存到相册
; h, z1 G9 U( Y# _8 z/ T0 H q( F3 T. t& C0 A! G
7 N) B1 o4 y/ i, }
9 f1 N2 M& t9 D# y" v$ m2015-4-7 18:43 上传 $ n* J) o& K9 e! W+ [
9 w6 J, Y. h& s* w& }+ i& ?
- ^. b4 }# z2 k( l4 t
" B, v" V2 `3 \! |
' H( H, }. i$ H, t
; g& ^* `6 k$ P3 @7 z; O K4 O$ |+ {" A0 G4 l
/ F7 r/ t; w1 U, t/ H$ }
7 o# B) t' s; M% b. c- root 24502 17.6 0.4 2530112 307192 ? Sl 21:51 1:23 /usr/bin/qemu-system-x86_64 -name instance-00000001 -S -machine pc-i440fx-1.6,accel=tcg,usb=off -m 512 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 8ee337e0-4808-49e7-9e66-45dc4a7b1f40 -smbios type=1,manufacturer=Red Hat Inc.,product=OpenStack Nova,version=2014.1.1-3.el6,serial=44454c4c-3600-1058-8033-b3c04f463232,uuid=8ee337e0-4808-49e7-9e66-45dc4a7b1f40 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/usr/local/libvirt/var/lib/libvirt/qemu/instance-00000001.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=rbd:liunova/8ee337e0-4808-49e7-9e66-45dc4a7b1f40_disk:id=admin:key=AQBlwSxU0HsWBxAAMfhhWANPIIDihk7JTFunKQ==:auth_supported=cephx\;none:mon_host=192.168.10.186\:6789\;192.168.10.187\:6789\;192.168.10.188\:6789\;192.168.10.189\:6789,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=18,id=hostnet0 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=fa:16:3e:99:7c:a0,bus=pci.0,addr=0x3 -chardev file,id=charserial0,path=/var/lib/nova/instances/8ee337e0-4808-49e7-9e66-45dc4a7b1f40/console.log -device isa-serial,chardev=charserial0,id=serial0 -chardev pty,id=charserial1 -device isa-serial,chardev=charserial1,id=serial1 -device usb-tablet,id=input0 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -k en-us -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5; E4 B* F# a/ ?6 u$ Z, u2 m6 O) H; U# d
^! T1 a0 Q+ [9 W: T
* U! i% N6 ^9 u- } f. Y/ \
复制代码
" g" d" _, U1 Z- ?8 N 1 a: n* E% X- z, u& C! O" c
7 Z; \ ~! {6 c% _0 m Y
# L; Q1 v3 g% |3 `
& N! k+ n& v [7 c; b" |* `( j8 `; T, U: G( B% g
; Y7 y. {+ m. d. D/ Q: [
# ^- Z. l+ e) P8 P4 O6 y
很明显看到上面使用的是/usr/bin/qemu-system-x86_64。 6 c$ e6 a1 ?: S: _* \1 {/ \$ ^* X- [
8 N- @8 l; k) `
7 {: U& m; Z7 q0 R. {看看:/usr/bin/qemu-system-x86_64 --help
7 L" f' O! n h I% [
: [1 G0 K- @7 u
9 W. n0 m9 x0 Y
, s4 B) [% j- n, k( J7 L, S: N5 t F6 _8 @# y
2.png (10.38 KB, 下载次数: 0) $ n( O1 T" s4 X- Q
" d7 m% r5 u7 N5 @# K
下载附件! n( f; e! q1 T* H+ H9 O# U9 ^
9 _1 F& @2 K, w/ j$ t$ \4 {
保存到相册
* T" E+ U% g" Z0 N Z/ D
$ x( F9 g8 f$ ~6 c3 p # E; h/ E4 ^+ \
8 w N" k5 P0 w, N- L2015-4-7 18:43 上传
* r+ Z7 I8 e; ~; J$ Q7 T8 [6 u2 s; s* J O" ?/ F
6 X6 ]! [5 I+ ` {- z E# _5 J- i( ^* U. y3 i% A( _
9 y0 `* s- ]6 U$ z6 T! q4 g4 ?, [4 L" c7 J3 h( S, y3 N8 Y; B
* p. Z$ u6 w# k( E$ c4 O* k6 u( W4 N. R' i$ F
4 r0 X0 B$ v* A1 T8 Z
( R# ?! x, ~% o1 Y% F. F. t) K) n% r( K4 l8 F
6 i) n: B! j' l8 }( o3 m2、virt-type=kvm用openstack生成虚拟机,报错: 1 T) _1 @. f9 q2 _0 R
9 }+ f) E. {! @" b7 `2 j
( K- f# W/ u, j7 R4 z! O7 c
4 H% k' Z* i9 _( Z% T$ ^- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] Traceback (most recent call last):+ Z) \# k" Q1 [. n4 g4 |7 o R$ z+ I
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1305, in _build_instance+ p M6 q& a, q2 j% ?8 z9 G3 S
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] set_access_ip=set_access_ip)
$ E8 n- B( H; x - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 393, in decorated_function* j, a( L3 I, K# \
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] return function(self, context, *args, **kwargs)0 l! }7 C0 Q* R' K
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1717, in _spawn. c# y* C* z4 x" g3 E/ _" V! g
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] LOG.exception(_('Instance failed to spawn'), instance=instance)
8 I H }; w9 A; P" h - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/openstack/common/excutils.py", line 68, in __exit__! [1 a" R4 j4 a! m7 p5 u, v' W
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] six.reraise(self.type_, self.value, self.tb)
) Z) j5 m, | g$ [( ~: @8 |- B - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1714, in _spawn
# Z8 c. A1 R6 N1 W+ y - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] block_device_info)
- j. ]9 i+ F$ P @* D3 x0 x& T' O - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 2265, in spawn9 |! I# X- [( D6 f) v& C
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] block_device_info)
% \/ h5 X0 w8 v - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 3656, in _create_domain_and_network
9 g: O0 j& Q' f* }, v - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] power_on=power_on)( P" j$ w1 B* W9 i! t0 Q& R) \
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 3559, in _create_domain* p+ ~1 M! J% J' I% }+ o' N
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] domain.XMLDesc(0))
1 T- M# c' S1 ] - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/openstack/common/excutils.py", line 68, in __exit__) z4 h' t+ y* a& w; e0 `. G8 F
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] six.reraise(self.type_, self.value, self.tb)7 t5 }# H3 C" h* s2 p2 k( }
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 3554, in _create_domain& S: f+ C- m8 ^2 |9 s
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] domain.createWithFlags(launch_flags)
) z6 @5 W( r! a) i' c2 K$ Z3 f1 ^/ B - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 183, in doit
- f* j5 d. r3 r7 ]* B t - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] result = proxy_call(self._autowrap, f, *args, **kwargs)
2 ^" b$ }1 D; }! L, c# \6 `; [ - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 141, in proxy_call
8 K8 S% I( t! R- A - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] rv = execute(f, *args, **kwargs)0 z' H4 y% }3 F9 y: @& b
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 122, in execute
8 l/ g7 r" q; u O - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] six.reraise(c, e, tb)
8 W% P5 t3 R: b: n' y: I - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 80, in tworker2 V. Q& e/ J4 p% l+ r4 O: z- z! E
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] rv = meth(*args, **kwargs)
: `( H% A0 H2 a4 m* B - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] File "/usr/lib64/python2.6/site-packages/libvirt.py", line 727, in createWithFlags4 p( z, \1 u8 m6 p7 ~; M
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)" v& z/ s5 V- O- @2 S
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee1tafd7f8] libvirtError: internal error: process exited while connecting to monitor: char device redirected to /dev/pts/4; b x! k6 [) _* t; C" M( r
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] q%mu-kvm: -drive file=rbd:liunova/5b50ed5b-c3d9-40cd-889d-0aee14afd7f8_disk:id=admin:key=AQBlwSxU0HsWBxAAMfhhWANPIIDihk7JTFunKQ==:auth_supported=cephx\;none:mon_host=192.168.10.186\:6789\;192.168.10.187\:6789\;192.168.10.188\:6789\;192.168.10.189\:6789,if=none,id=drive-virtio-disk0,format=raw,cache=none%sA could not open disk image rbd:liunova/5b50ed5b-c3d9-40cd-889d-0aee14afd7f8_disk:id=admin:key=AQBlwSxU0HsWBxAAMfhhWANPIIDihk7JTFunKQ==:auth_supported=cephx\;none:mon_host=192.168.10.186\:6789\;192.168.10.187\:6789\;192.168.10.188\:6789\;192.168.10.189\:6789: No such file or directory
2 P4 D0 [# C: k# K: D! s: \ ]) ?, T" ]) \, Q: B
; }0 b4 ]1 T" `. L2 X
3 }8 \6 X+ K9 P2 t3 ]2 N, V
复制代码7 G4 D/ N( M: V; Y9 v( ^
2 R4 s0 p5 @ w& c2 J- U
( m" Z3 A& ]- l
0 Q/ q( d1 W1 T5 K5 i/ Y1 h4 I
2 y+ L7 l" [/ @7 v5 m$ l" G) A: R/ z+ d3 r; b; G
, w3 h4 Z% d/ w9 C$ z6 Y. h
. _+ q; F' T( B9 ~4 k
6 V# U# \/ F: D) M" B0 m
3.png (2.85 KB, 下载次数: 0) ; r7 m+ C( ^% g# `& E; G+ r' ]
6 G* l! q4 q/ m& L# r下载附件2 \/ J3 p# T: f2 L
. {) i% T) Q- Q3 d+ D; r) i! i F
保存到相册
- {; F! }$ |7 n6 K7 _$ U0 H% t2 g( l: u9 c) D# K' x
. k* c# [1 c! l' N2 d
/ |% d, ^2 O5 C+ p2015-4-7 18:43 上传 & {! X5 D+ }5 a. ]
5 o# }: g9 d- L* W
: O8 s, i. n6 |7 u- L' D& A
& Z# w; m9 G6 h( I" m9 N3 u4 ^* u4 Z* c
/ M) w0 i! h: C1 J% f. n. V u
" k8 S6 u, Y2 T, t8 N7 D* @0 k
1 d$ U* ~5 r. v) ]. D) u( j/ X! U: j; [0 L: k* Y
0 r) d: q8 s: u. G% M. [: b, v
* o9 t" R# o/ N' g/ C! U6 l, v9 A- p" U s1 L
3、关于qemu-system-x86_64、qemu-kvm、qemu-img . T/ ]- v' o& @7 J* K
+ R6 J Q2 `* W' x+ ]9 `" S图3.1
" U5 a' |9 T! R# y& z1 G) }# Z. v9 F- \ t
4 a1 v/ N+ u! X S! {

1 w; h; G$ }$ h1 P) u! Y5 d+ A. B* q* M% |' _
8 M6 j( G& E* B4 M( `1 K0 j+ ?
4.png (3.12 KB, 下载次数: 0)
# G4 ]/ Q4 i# D/ u/ v: I* i; h3 ?; q# F7 v8 x6 Z& [7 w
下载附件
, k7 P% [6 o# `( h8 u8 z* d5 e1 Y! ^! i# w1 c! G
保存到相册4 t4 f& _+ _* s* ] y. h
. W+ F1 n8 A u1 {" A/ Y" `
. }2 @2 m2 u, g R& w8 U
! t' w0 P/ W0 a9 G2 e2015-4-7 18:43 上传
3 Q) p2 ?& p! U3 I8 Y
Y- H4 `& f6 t- E) c7 N7 G2 T0 C5 d4 R9 A/ _- A/ h
7 b8 t+ L# C- P. q( }3 f' `! R3 \) ?
* }# k8 z! H7 b1 r+ {
) _/ \# h7 j2 b. h9 N2 u" c) s: _
; G. t/ }: |9 S
4 {7 o; ]0 L9 f1 N' U: J4 _$ e8 F3 O- c9 x2 r" @! w
/ X/ R8 ? e0 Z! S
% ~1 P7 Q5 Q3 [) v# B4 B查看上面两个qemu-img对应的版本及支持格式:
* ], f8 e5 m: R& B7 e
1 A3 o; c4 J0 I8 {
' H0 W) M5 @ A8 Y7 ?- /usr/bin/qemu-img | grep -E "version|Supported"! u- E0 h3 X1 L: t
% P5 [/ m' V. {1 e; v& \8 w
: f, M+ D6 s4 N复制代码3 \4 _9 y6 W$ O) l9 [6 X
2 ~* N" U1 z2 _) J
2 F T, h3 B5 ]. Z1 R0 d/ z
+ \ W9 `$ w2 j. u/ }
5 ^; o& `7 Y. V% A* }" i
, U5 f/ z& k* Y( \1 @* u图3.2
* S3 C, F4 _7 v" z
3 q& O- C3 w Y8 B$ Z5 e
/ D: Y0 t0 R$ D
" R$ {$ x5 F$ J" Q* P- E* Y
* E6 c( t- O& d5.png (11.06 KB, 下载次数: 0)
# z9 d$ f3 m; }" E9 q6 s1 p" w
7 N# M- ?6 d# `0 n下载附件
% o" S. n3 f& V( B% F2 q6 Y3 @- M; `7 k7 T ?- X
保存到相册
7 P( n$ R1 b" v9 p: e$ z; v+ O# k _. I7 y
7 Y l; S$ I' S! z9 l) Q
; Y' O4 S1 o- c$ D% D' F
2015-4-7 18:43 上传
1 H" F" [; r2 X/ c+ w9 O4 Y" q) R0 ]. F7 a! d
( s/ ?. t4 h8 w5 T: c0 G2 o6 l1 g
7 f* w& U( s. Y- F# H4 I: j4 ^3 g8 s
6 V; g9 p; r8 d' A
. M& O8 z" G! S% z2 J- ]$ A; A
h) {6 I, T. \) Z
- h2 I- E# n+ M, {- /usr/local/qemu/bin/qemu-img | grep -E "version|Supported"
& B' R/ q8 R) X" a0 J9 O/ c1 b ! r' Z2 ]) z/ p3 U$ C7 ]" b( t
7 b. P% O2 Y( U: M复制代码
. s c. ?7 S& V" _
/ ]: w: a& |( c
! G$ k }, _" Y, U4 r) o5 s! w- f% F u" J, }
* {$ E! v! f8 s& ^8 y4 i2 E
; b) Y. `# j' k9 o# C7 K图3.3 4 |6 S. a6 R6 z
: @6 y6 {8 v6 U, o G: j+ n* V8 Y

$ R3 {; \3 C+ c/ o9 S* u5 I3 `) ?2 }! q7 u) ^, M6 y0 ^
, c- h1 d- u- |0 @) Y# N; h- H
6.png (17.52 KB, 下载次数: 0)
8 s. B. w; m: M+ i) S. X" M" U* g a; O' p6 p
下载附件, v$ Y6 j# S, o2 r0 R$ ^
7 G/ m# Y( o! b# l0 j; ^ 保存到相册# n! f- a& T" ?* M) j0 Z
4 ` W; c: }, D. K* [0 N
I, C' f: f3 U2 T
" g" f# t% @ E2015-4-7 18:43 上传
3 t* K& t) ^# d0 `. R: Z" X, }- C! H3 Y. U7 H, \3 N" R6 K5 a
0 @# q+ V' v5 Z0 p8 r6 S5 S
/ L2 \1 c1 G- h
, [) H5 W/ ^7 P" A T' c. }- K9 k& e% @. x7 e4 }2 B# ?* R. T
, [, K7 a4 _0 n+ J2 \/ i N
! L2 v5 G6 P8 k+ k; Q8 `8 M
; ^% m0 p$ p: G3 {& M
. z3 R4 h& N/ L+ D2 Y! v0 r! W& z
. @8 v. o+ ]; x4 Z5 {% a! o3 }8 c
( N+ C0 P" \0 \1 s- L0 z5 o* J" {
8 L7 v- P, N7 d J% ^ t5 k
4 C+ H5 V9 h% k2 ~3 ?+ O1 B在回到上述错误:
# P8 L% c) j0 Y L* U2 U/ i' w$ w+ o( u# P/ z
图3.4
7 T& d8 a3 [% t* Y
1 N/ z5 O6 z& q t0 i * G( g; y8 c& U0 g( a" q! C% I
d. a! q& ^. D |# s3 N7 P; j4 k3 |( x. u2 ?; g
7.png (21.19 KB, 下载次数: 0) - s# b$ ~9 d2 Z. O
' f5 s/ x+ ?# n. {下载附件
1 b z8 Z0 d* T4 V) l! h, f7 a
" }3 M5 ~2 | j. n* ? 保存到相册9 h9 j# q1 F1 b
2 v: p1 _. B j1 l. q
( D4 C U, X% r$ h( X
7 C' K0 q i w- T, ^- M2015-4-7 18:43 上传
/ j# f- I; s/ r* k) P
% u' c) y h6 N6 o4 U1 P9 i7 q# q$ I) L, s0 n3 H9 ~% Y
4 ~" ?8 U9 s3 C" o0 d2 O$ J& E/ }8 F/ `
1 D6 [ v5 c, X; ^
! | e: w; o" @! [
: U1 j9 n* A$ j- T& J2 \. g
5 p) Y2 s/ }7 E/ Z5 G
+ h/ j4 `9 n" F
: t1 P9 z/ n$ b! K8 g, K
" ?9 U1 b- \) y" ?+ G% ~6 O5 I2 k此处启动用的qemu-kvm:
$ K8 r' S- }9 H! V" n" d4 o/ Z( C! R& Z2 s0 F
d6 ~$ m$ u$ I: o- f查找qemu-kvm:
3 P$ @( I5 s& m1 A& o$ Z
3 C* I4 e# Y, P5 R1 _9 x4 f8 Q图3.5
! y3 G9 ^& L- E- {0 I( x% O4 ^: z. }1 W' c
3 N9 e0 o& S. @7 J- Q/ P
' J9 u( N+ E& c! x3 G! E% J! e* @6 A& g. {+ O3 k3 [1 M
8.png (3.69 KB, 下载次数: 0) 5 }! x' K3 w. [( }; B3 q" G
4 Z- }5 u: l" v1 n2 c
下载附件" S$ r6 n$ P1 a1 |5 Q
1 G K) @5 Z6 |9 F( _5 ?
保存到相册
, m w5 p4 Y, W0 t' ^6 X' A5 |
2 D2 n. e; L/ n6 A ! ^" p& l, w& N$ D* U* ~ S
' _8 Q Q4 N8 j) |$ d8 {7 F2015-4-7 18:43 上传 6 E- c( N* s7 @' s
- V3 V$ v+ y' O' a3 w5 t! Z
: ~' [. P( p. G8 R# O
2 z6 C- D( I7 j
) A; v- U. d' K f8 o+ `
' f4 \7 y+ f2 @0 B( U+ n0 m0 A* Q * t- r! x% U# r9 g
3 n- z6 @7 p+ o) H
+ |! R% R) ~( f- a7 i% I9 t
4 {$ G. ?$ |) @+ l
9 F9 }5 D/ g! S" Q# H
* h4 Z( n. _' ~+ U$ Y查看qemu-kvm版本:
, P, \; ^. W$ D W6 G+ `" {) B/ B
% c6 H& s' E) t8 F图3.6
% M3 Q5 K5 F3 a7 y0 u: x! K1 @. e( K/ o4 N7 Q' C4 j- r

1 _ ^3 m1 {- X
" z1 B2 L+ ]6 H
& _& U+ A) F0 n7 ] v3 w- }6 b9.png (5.34 KB, 下载次数: 0)
4 T! l9 C* Z0 W7 m# C0 }3 m/ v9 n# J
下载附件
) W% f8 v/ Y$ [2 u7 S& }. W' \) Z0 k
- Y* ~/ {& I* R 保存到相册- q d }" ~# X2 M* u3 R' r
$ O: e K& ~( q K5 Q$ L% A& | 8 @# ?/ ~3 q+ ?% \" k4 P+ h
) V0 w9 p2 y9 \* Z5 J, Z* S0 X
2015-4-7 18:43 上传
4 T" f+ i/ T% S2 g. C+ @; P3 x7 F& S; k$ ]& y6 b! _
+ E# k- Q, D( K8 n. Z3 G# ?! R& | O8 W& s* t0 d- \6 K4 ]0 n
; y1 z* y% w2 E
8 T. v( s7 P6 @6 m: G( y
" U6 b7 w B7 ?* }
8 R$ V# y( g: q6 C( E# s+ n' J3 i3 V
: i$ e( p! j5 L8 v
1 b$ w" E8 a7 Z, n- u% {: e
- `" I( V$ ^" p; @# u% R再找到对应的0.12.1版本的qemu-img(图3.2),发现不支持rbd(ceph后端使用需要rbd支持)。(注:图3.3qemu-img支持rbd。) / O# M% H' s$ [ D6 O! m
. J$ W% S% c3 q7 l. _5 J( B
: k$ }6 b5 s# g D通过上面分析总结一下:
2 _8 }/ Z3 D/ {
' w; T5 g" {1 h. Z# L( T: g2 D% B/usr/bin/qemu-system-x86_64与/usr/local/qemu/bin/qemu-img是配套的。版本为:version 1.6.1(手动编译1.6.1 qemu的源码包之后版本) ! k2 `# p" k( |1 [
( ?, ^7 l8 k* k6 H) G) X I; M
3 A- b" W! {" w, k
/usr/libexec/qemu-kvm与/usr/bin/qemu-img是配套的。版本为:version 0.12.1(为升级前版本)
4 a: s3 u5 s: N; |* k1 W% ?& C/ C2 h" j9 X3 o) [
/ P/ S4 y1 Z6 e
; B% J/ j6 a2 E+ @6 ~' V. j/ ?8 }' ^/ s7 a6 o& X4 a8 o
这样就可以解释图3.4的错误了,因为图3.4使用的是V0.12.1,而V0.12.1的qemu-img没有编译支持rbd的模块,因此出现图3.4错误。
! W2 h# ^* S |. P0 j$ O( T' c3 t6 B& l- C# p! V; F
: K1 B8 k+ L1 a6 j) F( X* ^. S解决办法:
% \' \5 N; C0 ?9 Y% s9 Z5 D$ V1 T8 O) p1 E! q( {
将图3.4中启动的qemu-kvm替换为新版version 1.6.1的/usr/bin/qemu-system-x86_64来启动虚拟机。 ( L! M% d$ L$ F/ }; ]0 b
: |( {- r+ l4 F8 H# C4 ~. K; l3 q- \1 D/ d* K' M. V& K7 j
操作步骤:
! w( E* C$ D3 ~+ U# Q+ l$ y8 `0 a+ W p
2 Q2 n5 _+ `. J g$ Y& e- mv /usr/libexec/qemu-kvm /usr/libexec/qemu-kvm.bak
; Q) B6 F1 z' _/ o2 f2 Z9 ] 5 T, f, d' b* f# E
B( i. v% X' I( K- K
复制代码$ W% P* L/ G* _8 L/ D
. a1 z2 }/ U6 }1 i+ O. x% x
( H9 \& ?3 Q. Q( u7 [+ b* V
- `5 X; b& Y: |( J
2 r h, m. X# F) U& h6 h. O% `7 Y6 J, E. j$ T1 p+ [
; P _& ~* L. q" f- y( U( r' C6 y
再次生成虚拟机:
+ u! J$ Y2 B3 ^! ^$ a% A* H) F
* b A5 O: Q! a0 r9 q8 P+ T* D2 }- y3 c2 `4 O* `; g. d
5 [. _; M7 L3 b* e
10.png (49.33 KB, 下载次数: 0)
& k# D' e) ^9 N" P% k. w# T4 N% M2 G' K; P6 ?
下载附件! N' k% O* Q7 X& @8 \
) E" W+ [5 d5 t- @9 o
保存到相册
9 F# `; n# ^( I" ~6 Z% u! t( y
+ s) o0 J: E6 m2 }% }% @: Z) a . [: j5 A% I' l+ {
+ ?5 U" S' b! f$ n; z8 s( h
2015-4-7 18:43 上传
) ?) s& k; ?- C
4 P O. \2 M! D0 b, N8 A
2 [' Q' V! I* z4 Z' \
( c. T/ G5 S) f) ^& s# H; O9 {( a, N- x, Y# S
3 ], g# y' K3 {" o: U% }6 M , c# D# e$ T& h- [ b( h+ x
* \ k. O; M% ]9 k
) r& H/ W4 G; X
; j1 ^6 H3 {+ P( H, C: x- p# R* I8 j- [
+ X! U) n, q6 a' X$ R8 O0 S发现虚拟机生成成功。
5 `) O2 `) F6 i" P& @8 O% T8 J# ^% C7 ?; E
' z/ \4 N/ l% J# v再来看看底册启动参数: 3 @* S% v! y9 J3 E8 @) ~% ^
1 E' _! G$ ~# f! x/ B" U
7 @ w: A/ n9 M, W8 B; A0 J- ps aux | grep qemu$ v6 h! i2 R/ _
2 i2 z) {; Z' n% E' l; S
+ J! H7 }- E# M/ I. \; {+ F- i复制代码
$ H' }2 F+ a1 F8 a& L, q7 ?
) r4 X% t- B" Z* V. N/ B6 G! B' |1 c6 \5 m# V x
( ~5 _: K2 j! p) e! F M6 p Q: h
5 I7 W# e' _8 K. {6 I3 o1 }' `3 Q2 A9 r' {0 i
# j" i# V! o8 y- l
7 K7 S6 |. k- ?' l/ a" T* L
+ s& ]1 h, C) ]+ h
11.png (99.05 KB, 下载次数: 0)
% J+ m% K8 f9 n' w& m7 e! U0 ]' A! o4 r4 }. f5 \
下载附件) X& w( x% C6 U3 S* F
$ o2 f8 M: e6 R F- ^7 K. I0 r 保存到相册* K/ {$ R( u7 k' z% i
2 l1 w1 V- ^! q. y3 d. ?
: T) U _# p. R* H% M
" u/ n, A p7 S5 s6 k8 K/ m2 I0 j/ k2015-4-7 18:43 上传 % |) o/ e1 ^: V' m* f+ S5 c
3 i. X8 `. P C6 a3 [, R: w) ]7 `6 H2 n
& y# x# I6 W/ }+ O. Y
9 `/ ]/ c6 {5 F; u5 \& z' Q
M$ v7 W6 t' I' |$ _' w# T, M; S
. z4 ?' D* ?0 J: c
+ P3 w5 w E% v
* @+ h" M. X, B1 f& c3 z2 F# n
$ K" q$ m) M+ e! {4 F9 M# J
. T6 R4 X5 `0 e. K, W- A1 S3 M
发现后面生成的虚拟机,将nova.conf配置为virt-type=kvm之后。再将原生自带的qemu-kvm移除掉则能正常生成虚拟机。且生成的虚拟机使用了kvm虚拟机(accel=kvm),提高了性能。 & z8 b8 [; T3 A; L" x( X( |+ J
% ]) J- a- t& P& {( }
" N# K( r1 L. C& }结论: , ]" Z2 p5 ~ C3 M" C' Z
' d4 X5 k: j& P- \6 J; R+ b
% N) W6 P3 U. k; g
* s6 I1 P# Z$ @' L4 ~) f- 1、当nova.conf配置为virt-type=qemu时候,会使用qemu软件特性模拟生成虚拟机,一次性能降低。
( H5 O+ B- X/ w- ]* H9 ` - - v' ?" P& s6 {& M
- 2、当nova.conf配置为virt-type=kvm时候,首先回去查找qemu-kvm模块。如果存在qemu-kvm模块则直接使用此模块启动虚拟机。如果qemu-kvm模块找不到,则会去寻找qemu-system-x86_64,找到则用qemu-system-x86_64启动虚拟机,并使用kvm虚拟机特性。及开启--enable-kvm特性参数
' ]- P4 Y; S! z6 c3 T% A
, c! a' u+ S0 o% a! w
3 R8 v. @4 @5 f0 R# n, N0 d+ h
+ Q: [# ]# Y' @ J. i复制代码! p/ n! M& {0 N% Q0 x& h# M
' h2 d9 i) V. K% ^) @
% r* U/ n8 W9 A8 C' Z& ]
* W5 C' y3 C1 _: Q3 m4 H) T3 e& H; O( d6 ^* Y- ^! ?, y. q
* t' p! H6 _2 g8 ~' V
3 g! G0 Y1 Q! l J
注:kvm虚拟化模块:
" v; Q' Y; I& q# u" P! m2 \; J* L0 O$ L8 Y+ T0 T6 E! k
( l( j \4 a$ E! s2 V) i; j* J; A! v( ?" j# H
- 在老版本中有单独的qemu-kvm模块存在,结合qemu一起做虚拟机工作。在后续新版本中,已经将qemu-kvm模块完全合并到qemu中去。因此当需要使用kvm特性时候,只需要qemu-system-x86_64 启动命令中增加参数 --enable-kvm参数使能即可。' T$ W9 C, _8 o# U
5 |, Z# Q! l2 g% ] 6 q, V, z# ?% |! c
' T i* S! R6 i% Y$ T
|