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

解决后端使用ceph qem性能问题

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-11-30 21:34:05 | 显示全部楼层 |阅读模式
[解决后端使用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 [, ?/ u
1.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+ i
2015-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 ?$ e
2015-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" v
3、关于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) w
2015-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& v
2015-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 \+ w
2 N/ A2 P  i, }( |$ O

6 z4 c5 T0 M3 O* j& Q! O3 Z
7.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- o
2015-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! z
9.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# _+ y
2015-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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 04:52 , Processed in 0.020500 second(s), 21 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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