[解决后端使用ceph qem性能问题](升级kvm后使用virt-type=kvm(qemu-system-x86_64、qemu-kvm、qemu-img)
7 x8 j1 ]! B/ \
7 z+ ?6 {! T2 S' Y' d4 _& X; J7 j6 p' C4 R5 m( i$ w, Q
由于升级libvirt、 qemu 后没有qemu-kvm模块。nova配置文件配置为 virt-type=kvm将会报错、配置为qemu则性能低。
- w9 @- p$ H# X7 ]) B$ ]8 U2 d
, u$ l" W6 n* o. X d' l b关于kvm、和qemu类型选择请参考博文:qemu中KVM硬件虚拟化的初始化分析 (tcg、xen、kvm、qtest)
" W/ L7 N e8 S+ [ Y/ W6 Q6 h. B
4 O3 E7 r" B' r1 F {* {5 t$ \) @* u% u+ q
本次测试环境配置: ' Z+ M& C1 P' s) `
' z2 K+ X9 v# D# B) g6 ^& Z1 z. `
( a# h1 f4 M: ~& j& T) W6 T- horizon 的ip 192.168.10.71: p0 ?2 \6 O* z1 @
- 其他组件ip 192.168.10.1918 R3 V. w/ B6 H M( V: ^" e* m! _
7 L& u, z! N& v y( U5 E0 U+ ^' v" c3 ?
, j1 O; Q J0 a }/ \& I
1 r5 @5 `5 B! U, C9 l5 K% B复制代码8 o: n' V V5 L8 A
3 F, T9 X5 i: U! l6 b
2 M; g/ o, ]$ N* ^& s7 H
) v" t3 K6 f8 ?& O6 s5 A
' y5 q+ Y X3 q$ n% O9 ^
& ?; g6 V% w; ]+ B0 @% y
1、使用virt-type=qemu启动的虚拟机:
% o3 W: j* S0 e
, O k. ]- u! c3 Y
7 s6 N/ T) l% ?+ e! D
9 g( G: `* c6 `: P" |+ `
3 e3 F2 B+ t2 [, ?/ u1.png (46.25 KB, 下载次数: 0)
- l, A9 f5 a, `; o# U8 O R
% x+ C8 G/ S @2 \+ |9 `: o* D下载附件
5 g0 R# N" J8 O, x. [* {( U+ @' ^
6 t1 P. @4 v/ s: g' V 保存到相册- W( o& E' Z. z9 u/ c
0 U/ ^; p. e% F& d( Y
" y' f: G$ a0 C) J( d, s4 \ W6 [8 y
2015-4-7 18:43 上传
( f, W7 }- N! t( b) ?! y( V4 a
+ U! ^8 u1 v% j" L1 P2 G/ t) e( F- Y) n) J
( t" b: [' f( {6 y# B
$ _5 |6 }% l# d: s& U- `2 c! @ d# Y& ?2 q! E
1 {7 }' N3 k+ y/ K' n7 J5 s
) D& V3 z! y$ K5 p+ A L3 M- i5 y5 }# _) O, ]4 B' m9 e" P
- 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% j) t& D* q8 x' v+ v
. t& f& |7 F3 U3 \4 j: ^
: d; R. m' y0 ]7 ]) N" m! @ m4 d1 X
复制代码8 L; B2 h* l* \! ]% t
$ O3 [" _6 ]; p( d) W
$ J/ [2 @; s1 R I- k4 |4 r" ]! ]$ t8 T# w" E% d* x% }
/ {. I+ }( l8 o }5 U7 q! [- U
3 g% |( g( C! ]6 h" j9 o+ S1 E U# P" t0 Y7 x1 A6 _4 f( y) _
1 f/ M6 @+ W( h' `2 w
很明显看到上面使用的是/usr/bin/qemu-system-x86_64。 " C4 g, O/ z* d; c' R2 Q3 i
* Z( Q/ f h+ X+ T; [1 ^! r! y5 X
/ ?* m- v2 Y6 K$ A看看:/usr/bin/qemu-system-x86_64 --help 4 ~1 X0 I& e' V* `3 j9 u
4 i1 ^7 Z* \; P [0 V' S
+ ]. H+ v' B% A1 u) P! h, n
. g/ L# r1 _/ C) Y! j$ z: z( n$ C" \/ h9 [
2.png (10.38 KB, 下载次数: 0)
9 a& ~- H0 a( o
1 ?$ U: z+ j' R6 | U4 K% ^下载附件) K+ Q. B5 s! \( B. d
) O# E1 M6 S& P, `# w# D
保存到相册 d" [) B0 W! ?" N) E
- Y3 c, Z$ \8 h( f% {' l. B& d
U B7 _" r% w
8 _6 p5 ?5 G+ i2015-4-7 18:43 上传
% V% ?+ W5 m& @0 Z# {
- q6 s- F4 |8 ?! q0 i; I: e$ l9 e& O' M3 p e% v: H* K; L. e" R
/ Y' D4 j5 g+ V& L+ ?6 o
# K5 l/ e2 A3 V+ ^, q% [" c4 o
0 x3 E4 ^3 T- K; R
]( A6 O2 r0 e8 b/ u
4 \! `% \8 G0 S3 s5 H
; o" T( N4 y5 [2 ^7 j. W3 O
2 a* D$ C: _ `% e/ v5 W# J" O6 j
! f: y0 a( ? ~! P- T+ c& g* U) F5 _6 _' e1 q# f4 l
2、virt-type=kvm用openstack生成虚拟机,报错:
2 e. @6 C8 G) R9 E5 A1 Y& k1 \$ L& v/ J4 G) f" d8 t; X: J
- r1 ^. A" y. h) ?% R5 x# D. u
6 j% ]: _% _% e4 Q' v- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] Traceback (most recent call last):
h4 B: A! D5 [4 N, G# h* z9 r: G - 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" j6 L3 c' h1 J2 v0 T% Z/ e) [
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] set_access_ip=set_access_ip)
9 Q' W" M* _+ 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/compute/manager.py", line 393, in decorated_function- Z3 G) s* m- D
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] return function(self, context, *args, **kwargs). [% A7 g1 J" q4 ^! F2 j# `9 Y
- 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 _spawn1 d4 N! k8 s/ {# e2 Q# K
- 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)+ O2 M5 ?: r9 U3 E' T( ^. r, w- {& `
- 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__3 V5 X: [4 u, A# N; z/ P6 i8 `' q
- 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)) I f7 A% `, F; 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/compute/manager.py", line 1714, in _spawn
' d: i) j5 d/ |5 H8 J+ e$ `1 V, T; q- d - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] block_device_info): L. X @1 K: Q8 ]
- 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 spawn" t, H) Y1 U' a/ P
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] block_device_info)9 h: {' }" \* L$ U/ c1 x8 X0 w
- 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
) P* l/ w4 P5 Y4 t. p - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] power_on=power_on)
/ G) S6 `3 n. u ]( h; w) 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 3559, in _create_domain+ d/ y, e+ K7 F! B$ m
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] domain.XMLDesc(0))
' Y( R! @$ }+ d% N2 H: [) p. 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/openstack/common/excutils.py", line 68, in __exit__, r/ ^. I% F1 Y
- 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)& E( B0 c$ I1 s+ G: E0 r" K7 m
- 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
% \" d1 Z) F/ ~4 h$ l- H8 A% b - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] domain.createWithFlags(launch_flags)
+ J) S7 S' M. g* {2 ] F - 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
) g; Q- H5 s, j3 N/ k - 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)
! }% _' I$ a2 w N' C- k; }9 P - 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' m% V2 T, b5 p# _! q6 _! G
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] rv = execute(f, *args, **kwargs)$ D6 x( J9 }+ N7 c
- 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
/ |& Q- |* X5 q3 T ~- H" B - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] six.reraise(c, e, tb)* y( P, y* {1 W+ W1 \
- 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 tworker( t X$ O* N. C) z
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] rv = meth(*args, **kwargs)( Y4 g! x" U/ s. j9 z
- 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 createWithFlags
$ G' F7 V ~" @; g1 z- i! j2 n J2 n - 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)
3 @$ C) d; [+ G* F9 c& w" \: v6 a - 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, j. `/ N; J0 W3 i, Z" d/ U
- 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
) ~; U% h. j9 m' a2 `8 i: y9 O5 G f* {+ o! u8 ~$ x# @! n# Z
! E) @. p4 B: G7 C3 [: ~$ E+ F- C
3 Z) E: R i7 b9 D7 o: ~+ N复制代码# P0 f! T) i( P% B
$ C& k7 H+ N6 o
: U/ C2 w! u( y9 y2 `# k0 s3 G4 R6 v2 J3 s0 z. c0 ^
- ?& ^& Q( H, H* X$ h. m O5 i
/ y; l! F" x7 j6 x* w- g : J* O" Q0 \' Y- g- E
. A) {) E* D! M: R) f& {$ D
: K, x5 J% W$ j$ J; ~! Y
3.png (2.85 KB, 下载次数: 0) 3 N$ t+ h, H! f: l
1 [ W; _: m; j% L
下载附件
. k4 Q/ F5 r2 f# Y' u2 w- e! G0 g
保存到相册# W: E2 {- `0 r& G6 J( @, z
! _0 T# D) P! S
: a P" j# y$ w9 f, O' k( ~ j
; f$ y8 Y! V1 ?$ e2015-4-7 18:43 上传
& m. U1 n+ E( y: c
8 [! D8 v* w0 a# s$ O
* ]% d% S/ ?4 g' D/ P: {. y) I* d- B k6 I
1 D! e' u+ Y; x% t+ x, z( X
/ k% j) W# k! c
( D% j% d9 ]* R% ?, I% v ^/ q
3 a O7 t4 u& q3 G1 Y/ l0 y: g' L/ q9 R
8 C V8 u, h7 C- P3 }4 Q6 k0 H
5 \4 z: s+ R) D. N
2 p' t) I; L! K$ _- s) W" v3、关于qemu-system-x86_64、qemu-kvm、qemu-img
" r7 o& W3 b8 L7 ]0 {0 M6 |3 N. d5 S* b+ K: i& v2 K3 E
图3.1 # b1 {4 ~7 _, h) G9 f, s" Q
+ R( C# e. J; C
; \3 m, U- o P; c . L( @1 @$ V Q
! z& }3 B/ Y5 H( T6 Q) {5 z" s$ }: z4 @+ m
4.png (3.12 KB, 下载次数: 0)
# w6 G9 k4 G- i7 z* I% b" n4 P3 t. L: M. H
下载附件' t8 q0 k5 }9 W5 k1 Z4 w
- a: N7 l* U0 Q1 K 保存到相册+ \# p8 r. {5 }: u, G' x
- Q. q; B- y' c: J
v: }' A$ `6 n7 X: G& h+ F! f/ [
! y1 @' \" G) w2015-4-7 18:43 上传
3 u, H7 C% v- |
$ U$ X) {$ N# _( g
* e7 o4 i/ a3 f4 y8 S& f
5 e+ Q8 R5 l! z; J" i
_# {3 u! |5 D' i; P0 ?5 f% C2 ^- g: d3 V$ }6 k# }5 }6 ?
6 h! T0 g& D& Q4 o+ W! c
0 Z( }* z+ ]" V& O+ `1 _$ V9 Y( X7 A4 ?! ]" w# Z
; y6 ?2 Q- u" C( P1 d0 v
. L2 L8 I% L2 A1 k0 {; q
$ Q3 h! y8 }/ Z$ z2 O! B查看上面两个qemu-img对应的版本及支持格式: + ]+ C% r8 I2 m" f5 W' Z# M
$ G9 J8 K% g! @' h! o
J! [8 T- {0 |9 n5 y' @2 ~- /usr/bin/qemu-img | grep -E "version|Supported"
. B5 B" O3 a9 V. F8 l6 F! A. ~. Q( c
" Q2 u! j! ]! U. M- _0 k6 S5 o4 ]6 x
复制代码/ M' A) s1 k2 H8 ~5 H$ K
( ~4 M$ m8 M( Q$ {+ Y. X% m; h1 D
+ I: [* b) [3 _$ d) v+ x2 T
/ E$ V/ P* D. c4 J
" D& y0 M( V6 I: G E# W( s; @
" Y( R& p4 e2 i* m图3.2 # c% X6 i U; O K) ^" _9 T9 q( I0 q
4 N, T+ T! A7 Z/ z. m6 [
+ o" Y! r7 F8 K; c2 G
5 F2 f0 s5 F6 c3 E9 G$ D. a$ N0 y+ [4 a, I( t; f7 @1 @. [! O. v; f
5.png (11.06 KB, 下载次数: 0)
* F2 v( r2 ?6 s$ U7 J, n) b" f7 |! Z1 t; v$ [* a/ T, j8 n" j
下载附件1 i1 J1 J9 O1 v9 s3 P# T: D
7 p" E/ Z9 I+ l* x) z' m
保存到相册- j5 k* r* |+ v0 r# U' r5 t
/ q7 N" H; D. [' p. g& _. F1 w
' b0 B0 g! p; c8 c4 m: l0 s6 i
: R6 @# V$ I3 M3 D' F& v2015-4-7 18:43 上传
% {9 W; g; F% r: g" M; t/ i" o. |' l' Y7 ?% A7 y- f
2 h+ @, {: G j$ D# U( y- b
2 h+ f# b2 o6 }+ l
3 n f, y6 [' G, a; \& n7 i, T
+ s+ }& Q% a/ k$ A& T; ^' l 2 a" @0 ~# w. t5 C
0 W- I# j9 x) F' _
+ Y* W; A# x# N) c9 @$ T9 L
- /usr/local/qemu/bin/qemu-img | grep -E "version|Supported"
- Q5 k0 W, `: g J+ t4 N : C0 N6 x( D# `1 b. U
0 e# Z- }. }! X& @& E) r复制代码
/ k# n, ^7 S) F3 k $ g; {6 A- i8 T+ F; a" U5 J a8 {
2 U, U: L9 Y6 L. m% M/ U; F$ v& S2 q
( J. n" \% Z# ^6 s" D6 }
, z% k/ r) V# s图3.3
1 u% d% }+ V+ K" y
' @6 Q* p- @: f; g$ w* S+ l . }5 q$ u) f0 W
+ w9 N7 I4 ~! i/ G M/ i, Z( c1 e7 u3 n4 s
6.png (17.52 KB, 下载次数: 0) 3 I) o8 K6 }# X& O8 q/ g7 x
1 F* X* }: J8 @) F
下载附件1 T' P0 C8 i2 \. i9 y+ P
- i% N, U0 w- O' P6 S( J
保存到相册
* T! f4 B; W5 F; b. B9 C. G ~# N1 E, s8 r; P0 {( y8 f
7 E n" Q' B: E( J$ K4 n# n- e) g# h2 H) q) [+ f
2015-4-7 18:43 上传 ) h( o2 h! K( q
# f4 e' [+ i% V9 _9 n+ Y1 j [
# P" ^5 |0 j1 x* _! c2 {. H1 j2 e7 p) j( n8 l9 J. q- ~$ Z# |4 V
) ~" A) P2 `3 w: ? T; A1 Y( i; v, b! g o5 \/ d4 u' L
/ F* r. _% K+ U+ f$ O' r3 l
1 m0 D1 Q7 |/ L) X6 |
7 m- h2 x8 U+ }8 o/ f0 u
! `7 L$ m: z( G/ e: Z1 F( W8 x" p6 Y* L8 V
" F& W* F4 [% @$ U; q
: s1 b) G2 d" U* m$ _6 G9 m( b
: @5 U0 j2 D! l, l. K
在回到上述错误:
! `: g' q) i* R! f
: ?( } l+ n" ]( U7 U6 Z, ^图3.4 # B4 @! W8 h/ J2 L7 h& p* S- h
, q0 P6 h- N/ K7 _ g
" {/ v( E/ [. b' k5 m/ Y3 \+ w2 N/ A2 P i, }( |$ O
6 z4 c5 T0 M3 O* j& Q! O3 Z7.png (21.19 KB, 下载次数: 0) - ^, U: ~( f6 f6 M3 ^6 f! _6 ~
6 c1 a0 e* i% Y! C5 Q* I下载附件
) n) v5 x* e6 F: E% c8 }# R
8 P2 y5 l8 f* H3 r1 ]' |0 Z 保存到相册& u* @" E ?- w2 U4 n- e
/ l! B. J1 [5 b. w
8 [! z( _. k; A3 P4 \" p
$ R" }0 M1 h U0 G3 x3 v0 x- o2015-4-7 18:43 上传
|* C. j" _/ ~. X" L1 e4 H" _$ g2 P" D
/ c! b' N9 C6 B8 a; o* k
. O7 s4 I. N5 W" Q" O
) S0 _2 d! w1 D5 D* q) G4 H% {8 m$ P. d- M$ Y+ J
0 Q) ]6 ^2 e* {" N
5 X. K V1 l3 C! O6 j! Q7 ~, _; M6 Y" L1 ~
) m1 I( ]* I5 x5 ~$ x( ~% E3 S
5 V! O' o/ {) p1 W% y& V
# E$ x0 z9 ^5 g8 ~) l d4 U此处启动用的qemu-kvm: % B, B8 S9 y, D L% \* B
3 `, g1 x' H' l& p5 u. O @/ h( z! `+ D
查找qemu-kvm:
* c( F4 M, d* w: s# l
! Q! d8 w; K+ Q: S9 g图3.5 ! C W m) l; v, |3 a
8 |( c9 W: q1 K3 T. J9 m" e n
6 r2 w" x) f+ Y; O4 P0 ^- W! q
# T3 B6 k0 L- Q$ \" T9 p- m3 j' G
8.png (3.69 KB, 下载次数: 0)
% U1 M1 G5 i7 k9 c3 q$ L9 O1 s
}- D5 U# A6 U, v下载附件+ m3 O% X! a. h9 E! X0 E3 p
0 i6 e( v- M, H8 M) z. u& ^
保存到相册; o) f+ ?, s! w# D5 ?
) p w2 U# }. d% u4 Z2 n/ G/ r
$ a/ y# i6 Z1 n$ T
9 \6 j, B4 h5 T/ w/ u
2015-4-7 18:43 上传 0 O* i, T/ e v! j4 h
, U: M* s- l( z" w/ o1 F
$ Y: m8 J- [% d1 C' ?- a" @" a& t( C# B/ J& s
. V% q7 m2 h5 ]7 U3 S( o, |: V' O/ g+ U! Z$ T7 H
$ o, H1 b$ [, P# }& L, }# _# P& g5 y$ F" W( ^# W
, N* P! c, E; g2 L' Z) \' k2 {1 z" y; I2 g
9 k6 H( i& B. k3 V4 x+ a
6 {' \6 x2 w+ n9 n
查看qemu-kvm版本:
6 ?. E, T; E5 {
' ]- |5 r5 t7 b" d' R" ?6 [图3.6
% d# U3 Z3 e) ~! C3 @ }0 K8 `0 i6 i+ `& a O1 @: \9 L$ d1 C
. q' O" L$ q, o* Y% T. `) N
. M1 c# v) k5 h$ c( v
# l4 f8 l7 T3 m3 M! z9.png (5.34 KB, 下载次数: 0) ; \" W4 x, u5 \8 O/ E9 y! Y
. b$ O4 `. L* h- u5 a* t0 ?下载附件% ]; o# B8 o$ Y0 @; B) u
" ?6 J, \, n. c. @" \7 u h, \
保存到相册
% P6 m A* q; V4 m8 G6 m
2 h8 k9 D# f4 }
: ^# P7 u% @7 b
' ~/ E: F$ X: \$ G( `2015-4-7 18:43 上传 3 g1 p. B; R0 n$ B' r& {
7 ^# L. N% [& I j- j( w
" K- c E, W2 F) x' v1 o+ U+ X) p
' g5 u, d0 E5 d+ B! M( o
( H7 O* _, F: W" z L( p6 n3 _/ b, @: k R5 h$ r/ h' S9 ?6 g2 l8 E
2 z+ _$ @7 F# _
; x# Z' K4 q& g7 N
9 B& ^/ c9 B+ D* O) H7 }0 j$ c4 C6 j2 r
; e4 @7 G; j% ]! t4 U3 e2 \1 @8 R# U- l7 U
再找到对应的0.12.1版本的qemu-img(图3.2),发现不支持rbd(ceph后端使用需要rbd支持)。(注:图3.3qemu-img支持rbd。) 8 X0 Z- _5 |& b' n" k
5 o5 ^- n0 z/ o6 i4 P9 ?, @: l0 p
/ g2 C, l' W/ J/ ~9 h1 P通过上面分析总结一下:
9 }' C4 c/ P9 h
% x: h% h5 F/ x' v: O2 ?2 J; @- e0 f/usr/bin/qemu-system-x86_64与/usr/local/qemu/bin/qemu-img是配套的。版本为:version 1.6.1(手动编译1.6.1 qemu的源码包之后版本) 6 O/ i5 K1 ? A+ r' n7 V) p
& O. i; R7 z* D7 H# D6 k( T+ v+ f9 w2 F9 x* |
/usr/libexec/qemu-kvm与/usr/bin/qemu-img是配套的。版本为:version 0.12.1(为升级前版本) - E( h3 p3 g$ H
/ ]7 d/ N' U" B
5 U& I: G- y/ q y5 a
7 m0 S3 O, a7 m$ x" N4 l
! l) }" k" d. V! C E9 \9 f3 v这样就可以解释图3.4的错误了,因为图3.4使用的是V0.12.1,而V0.12.1的qemu-img没有编译支持rbd的模块,因此出现图3.4错误。 3 G2 ~! C$ q! V' R
4 p- `" i/ s0 `0 r2 }
1 n C7 O8 I; O6 [解决办法: ! q% X8 F( ?$ ?
4 p$ \8 W7 p, }: Y9 q将图3.4中启动的qemu-kvm替换为新版version 1.6.1的/usr/bin/qemu-system-x86_64来启动虚拟机。 9 s$ _; O& A* y' j" l' t
6 Y& v+ l# G% s/ I) v
* u2 m% U r' j8 M. o3 @/ r* q! V操作步骤: " X3 E$ K9 d1 h. n
& l8 e+ |' ` p7 K8 i, x4 u M9 h# v+ X/ `
- mv /usr/libexec/qemu-kvm /usr/libexec/qemu-kvm.bak
A- ]4 H! l% r5 \/ u! \5 r
1 h: n! r7 L% V& r/ j. e; D0 n7 L
( [! ^# |4 R- J3 m3 c9 h' A7 l复制代码
s+ f3 P# G8 n& m% z$ u
" \6 m3 d% J$ X
: D, Q, Y/ I- x3 T' x- V# m' W. k0 b) h0 u
0 ^ L5 J& W3 \- _
5 E( E7 j( Q, [ m0 U( }. |1 @2 J; y9 M) H. X
再次生成虚拟机:
( v: u# j4 R- Y2 e# }6 ]) B/ F. [ : O: h' X: V" I6 ^+ \
; m2 A. L; z8 M
% F0 Z- k. e' G9 @: e' A5 }10.png (49.33 KB, 下载次数: 0) 2 V: c0 ^: A) ^6 q
( S8 p9 m: V% S下载附件& B8 o( \- @& M
" ` c/ C; z; M' J. h 保存到相册
- F, V8 [+ h- z- \, A
& I4 Z3 H$ h6 G3 y Q/ E+ K
* U( R5 J' }: }5 n" F" P) O) e$ w" {$ s5 ?+ o- G: Y- o
2015-4-7 18:43 上传 " z. U7 K- b% F% Y7 {. C# I
0 |- l1 |# Z4 M+ p, I* u4 X* S T; }8 u
( x5 X5 ]1 P7 g& k" I* b" S$ |; b% _/ f# K) p
& U- R; k6 ]* L `6 Z) Q+ A+ ^
, b5 X: z9 f+ T' N/ c$ Q- B# d& E
1 I1 }5 { h( _9 ?& l- ^& J6 P2 m% y+ J; T) y( J
A: W2 E4 n& U% U
d% C& ^) x0 e3 `+ X R g2 I发现虚拟机生成成功。
. s1 b" Z- }9 o4 b0 o3 j/ g; G) X B
1 Q1 A( q4 Q2 ?% V! `* j
9 n7 z! d9 A |1 B% }再来看看底册启动参数: ' x% T3 C% c# r7 }
* B2 |/ Q% z6 W) J* ^# \
4 w. r/ _% X2 ]- ps aux | grep qemu8 g& R) o! n" }$ e$ R! r' C: x
0 Q0 b8 N! D6 P! F4 _/ s+ J
; v3 ~$ v6 J; V m' b ^$ e
复制代码
1 N( d6 r2 p1 r$ P; |. M
) {' D1 @& w$ Q) D, P* Q' {6 Y7 C
- y1 O3 @4 V2 M" b! H9 V; {0 \/ B; o6 `- f3 A1 Q( g+ ], v
2 A2 a. o- X2 E Q8 c. K% z. ]- T5 i' c8 N. W/ H% x* M
' g9 Y3 C! E7 `+ |' x
% M. A# w; A9 Z, s |/ E" @. h' J2 H& x' W; ^
11.png (99.05 KB, 下载次数: 0)
5 y1 p$ m5 T4 v' d& J' L
. k+ M7 v- `; N$ {下载附件
B: B8 C4 j& ^3 b4 Y9 G. {, l
6 K a: q& D4 F4 w7 F4 G 保存到相册
/ z( S0 h4 l+ n( o6 f' J
4 m. |5 y7 Z4 ^
1 ~7 T$ J" Y7 [
7 A G( e% W+ _: a8 g/ X# _+ y2015-4-7 18:43 上传
! o6 Z6 M5 h8 i0 O1 d* D1 n& t7 _/ g
) d0 } G1 |% Z6 ^. q+ g- |8 Q* F0 I" a: H7 V6 W. I- [
+ L( ]. ?) w$ }$ D
( b( [8 |! I& p) T4 Y' Q. K8 ]1 _ 6 l/ J& g6 o1 H9 {! i/ P+ m0 i
/ T0 b7 M' ? B9 A. ^! W( A
) \- L1 J3 u& T
6 u) w" U9 K/ `+ Q, ~
( {: o6 [/ T0 e9 T0 _% \3 o0 d9 F" e5 x3 n! Y6 C8 M
发现后面生成的虚拟机,将nova.conf配置为virt-type=kvm之后。再将原生自带的qemu-kvm移除掉则能正常生成虚拟机。且生成的虚拟机使用了kvm虚拟机(accel=kvm),提高了性能。 3 q8 d& q. W/ o5 i/ J. n! M
* U* C4 L2 ]; H' A
. s4 V3 I' x( Y
结论:
: C6 D3 ^# s$ m! r( j: R) C/ z( n+ e- y
" X9 b D" u8 C$ q9 y( j
1 `) m9 }2 A* E' Q) W1 @
- 1、当nova.conf配置为virt-type=qemu时候,会使用qemu软件特性模拟生成虚拟机,一次性能降低。
+ W* I# C1 y* W9 D# m& W0 V$ n - / N6 y( f; o9 b0 |, ^. W9 n
- 2、当nova.conf配置为virt-type=kvm时候,首先回去查找qemu-kvm模块。如果存在qemu-kvm模块则直接使用此模块启动虚拟机。如果qemu-kvm模块找不到,则会去寻找qemu-system-x86_64,找到则用qemu-system-x86_64启动虚拟机,并使用kvm虚拟机特性。及开启--enable-kvm特性参数+ e2 P! o2 P+ ^3 X: B3 v5 n
3 P$ Q7 J+ ?" ^0 \. i ^ " C) `6 m/ f; K& T9 Y
D- G" m- A! b
复制代码
0 _" N( [4 `8 v! x. p! |3 r
' ^# \5 u2 x0 D: O7 p# H. Q o: G
( ~) _. Z7 Y9 f# d7 L( u4 ~& I/ P$ t& s& I7 E1 Z5 G1 j
9 J3 r4 ]- N# F. f+ t% M: D
* h2 {: e% B, n注:kvm虚拟化模块:
$ M- _9 u; i( P1 M) a2 c$ k
8 j. t$ U. g' c# `1 \
7 x9 v- l( H3 j+ w1 o6 \
2 ~5 a% V. v% I; Q5 \( K7 M- 在老版本中有单独的qemu-kvm模块存在,结合qemu一起做虚拟机工作。在后续新版本中,已经将qemu-kvm模块完全合并到qemu中去。因此当需要使用kvm特性时候,只需要qemu-system-x86_64 启动命令中增加参数 --enable-kvm参数使能即可。
8 S+ C, @9 @: ~8 l& m 2 d6 I- B$ {7 x3 Z) Z1 q; s
% B3 c4 a i$ j; V$ e8 @! F5 V" i: C7 M: Z I1 v! s
|