找回密码
 注册
查看: 4415|回复: 3

CentOS 7部署KVM

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2017-8-2 19:20:22 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 3 金钱 才能浏览

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2017-8-2 22:39:13 | 显示全部楼层
安装软件包
% l8 k) h7 Q0 G# yum install qemu-kvm libvirt virt-install virt-manager
+ ]) b* K/ ?7 i  t, ]' y( i. q" `在这条命令中我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包,下面了解一下这4个包到底是干啥的。
! G7 V! j, i% H0 \5 ?* xqemu-kvm) l6 k* x3 [9 B2 F6 P. S, j
该软件包主要包含KVM内核模块和适用于KVM的QEMU模拟器。KVM模块负责CPU和内存的调度,QEMU负责虚拟机I/O设备的模拟。
1 T. Y; G/ L' p. w依赖包qemu-img
8 W5 @' j- W2 ]  U9 U5 G主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。& B) V9 q- z, l/ K4 L( K
libvirt7 s2 j7 B3 r$ f( T3 f% ]% K
提供Hypervisor和虚拟机的管理功能。# N. `6 o& @/ |: a# u- f! f7 t: e: u
依赖包libvirt-client
' q% i2 T0 B# y; L5 n. C) O. ^KVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。7 A8 i1 f9 _- S2 ]# o" e: }# _9 C
依赖包libvirt-daemon
8 {# b6 B2 ~# t! d  N' L' U8 alibvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。& S3 `* x0 n& K  M0 _
依赖包libvirt-daemon-driver-xxx
3 N9 C8 C( F, J" Y- n& ^7 V. H( `' J* B从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。
1 R$ w$ S  s  F6 b依赖包bridge-utils6 H! k/ {3 A* h. y3 D
网桥管理工具包,负责桥接网络的创建、配置和管理等工作。, Q0 `) w9 x" ~& c
virt-install
, P7 O0 d4 L* P/ L/ \创建和克隆虚拟机的命令行工具包。
' x, e; K) G( H/ vvirt-manager# s2 X* w5 `  y/ r0 u- e
图形界面的KVM管理工具。: F8 [$ j+ Q/ k: E. S" m* K4 h
当然安装KVM的依赖包远不止这些,由于本人水平有限,所以仅挑了一些跟KVM架构有主要联系的软件包进行描述。
. f3 A+ f6 v( x( t后续配置激活并启动libvirtd服务
; S3 ~+ I! h5 u& H) S# systemctl enable libvirtd
4 V5 c) L, _. Y7 p7 x- t# systemctl start libvirtd

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2019-11-19 14:27:55 | 显示全部楼层
4.KVM的相关命令
1 {. c- U' G2 t
, d# l1 f2 f5 M1 C
/ f) N; ^* r# X$ }, ]  L% p/ W) b" f  p* _5 f' A2 k
4.1退出虚拟机" N( t/ w/ \' l  T9 \4 e. q
) ]  E0 P$ M8 t  o' `) y
ctrl + ]
& s; I4 d- m. L9 F8 @6 G
, o. C: d0 J( ^ & k% W7 Y* Q8 i: E* q& ~

$ X3 [& D( q" }: ~4.2进入虚拟机3 g1 r2 K' f* T
( y3 T6 O; Q" L  O0 a
virsh console centos74. `4 Z& ~) }' U

* Z+ K) A% v4 F) @3 X( O5 ~/ S' v
8 k" I+ V- F/ d: s% p/ u+ l) F+ d  Z+ Y) R
4.3查看虚拟机的及状态6 H& @1 D3 n1 G! o
* {$ w) c0 U/ N( b1 E$ a
virsh list+ `5 {3 s% V7 U1 H

( m% j+ W; b, Lvirsh list --all
) D* O, @) ?& v$ Q) C" h" j& y3 j9 ^+ b; r+ b$ v0 i" H; Q8 d' E; o

: k) E6 W' w0 b  @: n* g
# f% M% d3 n) u# \' ~) k  V- m) M( I4.4启动虚拟机9 q! j, ?$ }; ]7 |1 i/ u/ K4 \
/ c0 v) T& E" ^$ b6 R
virsh start centos74
' N+ r( Q  \4 S+ u2 x& K
+ G0 O$ V8 O2 ~0 R) z9 B9 G$ U# ?- L1 N. _* Y$ k: n' |. q- z

$ }# K4 b$ [' C5 H4.5关闭虚拟机. u$ t+ U" @9 _, e" W

' H; [7 L  v: [7 ^# rvirsh shutdown centos74
, z' E! W: Y. @+ t. u2 t0 q( f' {6 }
$ r" M; x* Y. m+ K# {9 x( L/ G4 `2 h. S7 ?
5 y4 ?) v% v3 ~$ h$ V  X: q4 L
4.6强制关闭虚拟机
0 ^  q7 X: g, Q7 h$ I  Z! E& d  O4 r0 c- `( `
virsh destroy centos74/ Y( I6 l$ H9 }$ P& p  [( D. ^% M

. z* ^6 e! m- i8 b: A% `  b2 D0 m0 j) [# z1 w0 g* q) r
2 I$ Y6 ]7 ~# U! T) h4 o  L0 `! {
4.7删除虚拟机) k+ X- q$ Y: P% C
. _8 y' N! o3 K( _1 ]
virsh shutdown centos74
# K+ P2 n, V, e( F5 L, d8 p! U' _6 I) o1 E/ k
virsh undefine centos74" X7 ]% y" U  x$ @

7 j5 B# ?: P7 l2 j# O! Z# c3 w/ S, {) @7 T6 I- A4 B
8 H7 _: V2 X) ]1 i- x5 D
5.磁盘管理
3 N2 ~0 R) m- A4 ]% p+ b8 _# N$ E( @& a$ J$ ^# G) j2 m
& @3 t. a6 d- P6 ]3 z, I% s

, w! t* ?; N) ]- {; ?5.1查看当前虚拟机硬盘信息
' H$ p" Z5 n  h- K! y: Y8 G5 f% w9 s/ I- [. o5 k) J
[root@KVM ~]# qemu-img info /var/linux/images/centos74.img
9 D1 v& m% Q4 V2 ]. f% H8 z  o
- n+ n5 V1 e% Z3 R+ @; h3 ?image: /var/linux/images/centos74.img* t+ [7 O7 Z6 d- ~0 @
* P5 r- J0 e3 `5 N6 o' B) K' y' _
file format: qcow24 I( [- i* F. H( \" r+ b/ E2 W& I

- B9 a  H9 G7 Tvirtual size: 20G (21474836480 bytes)
7 T1 r! K" w, |- X; s  @* M; k3 x" a- [5 ^7 q# l9 W" S" a) u
disk size: 1.2G
: p! u( v9 c' z7 Q8 v0 S# J9 V. u
cluster_size: 65536
) c+ @+ b8 t% q7 r: V9 w( x' j" b/ r( J) x9 v. y
Format specific information:' J) M& w. i9 N. y: k6 D

5 ~' O# j( O5 c( B    compat: 1.1. T# A7 E$ T6 _

4 y* t% \$ u: X( D3 f9 _( f! @    lazy refcounts: false
  a' k' r# Q0 C; R5 n6 m2 r" ^; c4 u& w% P& M/ z) \: n6 v
    refcount bits: 16
% y5 F" B& B3 V1 j
$ N* t3 ~0 u. z    corrupt: false
$ ~7 r. L& j5 ?: C" S! u( c1 k$ A7 @/ t- m/ D; c

6 _6 Y0 T+ b! s: q" i+ T: i! W. Z9 @5 \
5.2转换磁盘格式(qcow2转换为raw)
9 y; I& Q7 ^3 S* y. Y6 S  F
  l/ f8 R2 n3 M) d[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img
8 ~" Y4 N5 L. ?2 t
+ Q7 T7 S+ ]  V, r, o
! ?0 W0 c; B4 b7 w+ y6 }
; Y) b  k- P% C- i4 [4 K5.3KVM虚拟机添加硬盘  C8 y+ N# w" Y# R5 K6 _
& k1 d$ G& l( V( V  K- ]6 k! R
4 |) R2 q! C/ G4 K- t
) x3 o! M, s3 {% s- m4 I
5.3.1创建一块新的硬盘+ V$ R. j+ |& v: d% {0 c1 L

4 B! V' |2 B* f6 p) S[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G9 L8 O# b6 }: M2 ^  m0 y
0 M* r8 c, Z4 J2 Z

/ t' O; l9 ^6 n8 m8 g6 |. Y' ?# B4 U7 e, |  a" p: T
5.3.2查看创建的硬盘信息
+ |) X1 s4 j4 ^& p0 m  Y5 W! n4 X- K* b! s; P- m
[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2
8 W3 q8 s$ G+ G2 s- E4 ?* g6 d
! G; F! \: s+ t  }& n6 }image: /var/linux/images/centos74-add.qcow2
+ [' `( ]* n& s# v8 J, W0 L- Q5 K; k/ J! P$ y1 a9 t' W
file format: qcow2
+ V% |) ^, Z5 S$ y5 Y9 K5 ]* I( m& a1 Z* K4 |; Z3 q
virtual size: 2.0G (2147483648 bytes), k% S4 U; ?2 R

) m9 f# L5 [; l( C" i0 Ddisk size: 196K
. a' @! c' U5 n9 _0 f4 ?: j* p7 w: @$ W5 ~% q1 I% V& J  _8 [
cluster_size: 65536
) r" k$ P  C7 o( Q* r3 D
9 j* G) A+ b% |Format specific information:
) D5 n8 ]" n4 }; V% {! n  [2 T9 h0 P: G+ m9 Q0 O
    compat: 1.1' k$ V7 j! V/ _7 h) V# {

2 W$ m# E, \& c; a5 R    lazy refcounts: false
# s" M$ D% T1 D) ~! m. G3 W
, v% ^: c% _$ z! T# ^9 L& o    refcount bits: 16
5 V5 e( m1 {7 U4 q6 r4 k( `
& ?, y8 k' R$ Z( d) |    corrupt: false( y2 Q6 x  q1 E/ K/ m, I+ F" B$ P

- e" _0 F* A; F5 K$ @
7 G( b  d, d* ~" I$ Y: X) T5 M
) b$ H1 O. I5 m+ p9 G0 O5.3.3为虚拟机添加硬盘
2 x8 {+ U* u) _
* I) j) S2 T8 S+ M! y[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2
: V5 ~8 C2 f6 B3 g
$ S3 x! |! j' ]* r* S: lDisk attached successfully
  E. b3 Y) b; ]' j3 {9 m/ L" E5 J* A+ }, {" N/ v" S4 R$ a
  
0 z  M  e% x  \! r
5 |2 h- y# n! l; Y- w( N5 ^+ A说明:vdb    第二块硬盘
9 U7 [7 W) E9 |, V$ |  l# Z
8 c' f" F! u4 b( Y4 E          --live    热添加
, a/ o# J& A+ l
3 I% |) j% ?/ P2 ]1 e          --sudbriver    驱动类型
. T& y8 @- q* a' I( P& y  |* B7 ^
5 b0 r) z. [, n$ T          detach-disk    分离磁盘设备& y- {! \9 \- f( K4 v2 B$ H0 l

( C' K0 x$ ], y* z0 g          attach-disk     附加磁盘设备
+ M3 s4 B- O, S3 M6 W2 x
3 j9 }! i/ U1 |7 A
% t1 K% W+ E- a9 F6 D( N5 u. {3 v! w4 p
5.4格式化磁盘(在KVM虚拟机中操作)) }  W1 J; l$ s; p' S+ a
5 M/ V. G5 ?' ^. J2 t% Y; ~* `
[root@centos74 ~]# mkfs.xfs /dev/vdb6 k- K! t" \( ^! Z
* H, k  j' j" T( _" r- c
$ w2 @4 Q+ d. @& ?% w

! f% `/ \, c& y% y6 t  Y* S+ M6.快照管理5 o, t/ n5 F: k+ y, [
1 m# i* ^+ O: Q6 [6 l

9 I& _# D4 Q: D8 C/ X
8 I  }1 O( ?4 t, g, D9 A% Y6.1创建快照
1 Y2 T* m4 N. C( y( r; v8 v& S- W: S3 x: `: S1 c: S
[root@KVM ~]# virsh snapshot-create cnetos74
) X+ }( `- t0 B* H, e' v' a6 G* [
9 ?  T8 f5 p6 c6 Q; r
/ b! _! y+ _" i, [# o2 a7 C. B, J6 j1 g& y# Z+ L  r9 n( B; S
6.2查看主机快照列表) X" d2 [" |# r4 j0 y. f# M
7 W0 r" k& g: R9 s. \
[root@KVM ~]#  virsh snapshot-list centos740 W1 m3 b. f& j/ o# i) {; z
  X* D3 T3 w% [; L" p7 E0 H

  M; p+ q- X" T: H0 ^9 N
/ p$ e7 L/ q9 T6.3查看快照信息
9 W8 f" T7 b0 ^% t5 }6 n% t6 c  V: |7 K# ]% g3 C' M
[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756
6 N5 j  ?' A  b0 S/ G
2 M" a) T( _7 R3 d8 y7 l2 n3 |2 X4 r& n5 t& K! e7 X" m
4 G) a! E4 \+ |. c
6.4还原快照& Z( c* [. f2 t' r5 I

) o. G# m! r/ K2 c[root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756# g2 ^+ n2 C% D/ t. w& F" P+ `
- V( _$ m# _6 u- A
8 h" a' v3 Z$ \* F8 B- h: l

- e" o7 p2 X! U) H4 v. q7 ~6.5删除快照1 h7 m6 c* H% S- E
# w- c/ j6 N1 |+ R8 `- K5 ~
[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756
0 ^4 `: R% ~8 I  g( l" k9 c* ?& }% z2 {/ R- Y8 ~+ K

# j. }/ l8 j* a# [
/ [' _" J% G# X( \+ k1 U) o0 H! x7.KVM虚拟机克隆
- k+ ?0 _, w2 K; c: k( E* |
7 R+ P8 U. {* J: g$ A! T[root@KVM ~]# virsh-clone --auto-clone -o centos746 X. t) @% z1 P; b  ^2 y: b
) J7 t5 G, ?6 Q" y+ O' r# ~& |
# w  `, ]& u5 N5 H' E; L

9 b  P+ f' i* |+ ]4 I* ]8.KVM虚拟机冷迁移1 C2 G, W. h3 x' Y5 X
+ \5 X+ r/ @2 ]4 j
, P# r6 |* [  M/ [0 i
- O; n& i8 G1 D" ?" B
8.1在KVM02中安装kvm组件
' F+ R' J; j3 H8 i2 }: |
" G8 m* I, V8 x5 e2 r7 P3 O* f* F[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*
7 O; V5 T5 P" f8 R, D
; r7 m& ?# R2 K
. f' {* S- X9 d9 v: E0 w- R' Z& z- k2 \, K. X' [4 s
8.2配置桥接网络
% {. a5 E0 |( }' R) i) \& j& o0 M: h4 S1 w5 \4 l
[root@KVM 02~]# virsh iface-bridge eth0 br0" y- E1 ?; Y7 t( e7 m
4 I+ g1 a1 L" u2 G9 c% g- @, |
8 D* D: V+ l9 r; s  ]& w

$ t7 j- s5 _1 G5 g' E8.3KVM主机将虚拟机关闭,导出配置文件
+ f1 }* ^; W0 p5 M4 E6 j; K3 D2 R$ ?8 Z' X
[root@KVM ~]# virsh shutdown centos74
* j- {0 N+ J! {; t  `( g( C: K; N/ c, C0 c6 e( W" ~+ Z
[root@KVM ~]# virsh dumpxml centos74 > centos74.xml. P+ V$ t6 R$ y( x9 z, |. r0 h* k& E

, ~$ Y& l' x0 ~+ @6 k3 M& }4 z- v( w8 t

9 ~3 J" Z$ g3 a$ }: {0 k8.4将虚拟文件传输到KVM02上
! \* s. Q0 i6 L( q  |. {% H- N8 _5 N5 g# Q
[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data0 h* ]' T! m, Z  G% ?& W* o- e
; k) v/ f  X( b. f' k
9 Y' N7 f3 H$ n" @
6 L5 T; S" F1 l8 t2 |+ C
8.5KVM02主机导入文件
8 V+ I- R' _. R+ s
* O' l8 g8 a6 B: t' N/ `/ x& ]% a' J[root@KVM02 ~]# virsh define centos74.xml
' I* K9 Y$ V( C3 w1 o3 A8 P
; ^0 e, {! R1 G8 |4 h/ }' A% p) P8 d' K( p3 h6 I
4 O- b/ d  X( u% `; i) n3 A- B
8.6启动虚拟机" J+ q6 B% G; }+ [6 }3 ^5 s

' J3 }1 H+ |; L/ G[root@KVM02 ~]# virsh start centos74
7 v" g1 I" I6 a9 `$ s2 j
: ~8 q7 F( `7 y0 H2 ]9 s
1 l0 [7 z4 i$ S6 x! z% t: m, _5 a4 b6 x7 D- O& f9 H
9.KVM虚拟机热迁移) m" C2 h2 C$ P: k+ O9 \

! v! R2 O0 s8 R  F/ E! _  Z' k5 y' ]# o0 V, Y
1 l9 u$ N4 \, e: B4 e5 |( U8 U
9.1KVM虚拟机热迁移的核心. k6 S! K* G; V; c* z  Y+ P
5 f4 ~. e8 D' n0 l9 k
   共享存储。这里使用NFS共享存储(详情参考:https://blog.51cto.com/13520761/20877203 b  z( Q2 n9 t

, ^# {2 a9 ^! _: Q9 p9 G* P" W9 k" G3 V- H3 o- [- y
0 I7 i/ C7 R8 F
9.1安装virt-manager所需桌面及vnc-server: \" u" b: h9 b$ T3 G4 z
1 D3 V7 E+ W6 E) d0 x3 J
[root@KVM ~]# yum groupinstall "GNOME Desktop" -y
# s1 j" m( ]2 C: v: D
1 i1 i( V0 e, J; M[root@KVM ~]# yum install -y tigervnc-server
- I" t8 F6 I  F* o* `  T) G+ N4 `: O$ i5 B% W- g1 s
[root@KVM ~]#  yum install -y opnssh-askpass
$ O4 g9 C3 \& x. `8 a. r: T9 `* D' W5 D- n' f% [! q

6 v% K7 z: d9 G. z: [7 e
) ]1 f# k/ C5 f/ A* [9.2复制vnc配置文件9 {8 A7 W- Z* i) U) x- w2 D
& P# v) Y+ v) g0 ^
[root@KVM ~]# cp /usr/lib/systemd/system/vncserver@.server  /usr/lib/systemd/system/vncserver@\:1.server8 h% `7 u/ D8 e3 y

* E6 ]  H6 C" V% ^* v: p& u! I% \8 i

* U1 P6 O6 j/ B( g3 t1 B9.3修改配置文件* @! _* s: N% B" i" R. z' M

5 ^" [, v4 L9 O/ V$ z[root@KVM ~]#
) d5 h) T1 I9 s8 A% @* l4 u# ?1 i4 C/ x* }8 \) u
egrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service) i+ V- m- N" h+ s. R0 J4 v
+ Y, x% W& H6 {( u- \. U8 T
[Unit]# I" p5 A% t4 ]9 v" L" k8 w3 q: g
5 c: x! z, R9 U/ N7 G; }
Description=Remote desktop service (VNC)" c4 j! K$ q! D  I

! S0 [% D$ T. z# @- N- o* D# x- mAfter=syslog.target network.target4 N6 S5 `2 r5 I6 C1 R( J/ j. U
3 M" U$ e- O: a% D) k
[Service]
: |: L4 G" x) V5 H/ X& _5 Q$ s0 K4 ^4 u5 [/ A$ p
Type=forking
- [- ]+ U; l* j  a2 T6 b7 T1 a& b% T% s$ V* W
User=root
) C; X$ d' a. i/ j
! Z% g2 x$ k8 K7 W( ZExecStartPre=-/usr/bin/vncserver -kill %i, ~$ V8 L/ k' Q! ^4 U5 {5 s
: h8 U) ?7 I4 @5 X
ExecStart=/usr/bin/vncserver %i4 ?8 w, t5 g4 O' t0 T
) E( y/ m% s4 d0 w) q7 M
PIDFile=/root/.vnc/%H%i.pid) z# U! {" V! a" h' n4 L  o

1 {. }- c% T. C: J6 k  uExecStop=-/usr/bin/vncserver -kill %i/ {( a: Z: w, C) @) H) p
; W% ]& z" s+ g( w  W7 a
[Install]
3 j% L& J5 N3 ?% |8 x& s3 V
! q' P& W3 x. }  O) ~WantedBy=multi-user.target. |0 X1 Y$ ^. [$ }! u' {6 q0 n

4 H  t4 B) I. b+ C; p) N! I$ C+ W  d! L' e

# {3 O" I* u, V7 h7 `/ y9.4设置vnc连接时的密码
8 E, S' E! j5 z( E$ X8 B
' @5 y- Y+ Q! y[root@KVM ~]# vncpasswd$ A1 m) r8 r$ C. K

0 n/ k+ N2 q4 f3 }1 _2 u+ }- }9 T5 d0 c9 u* V
$ Z! P! g* U5 r
9.5启动vnc服务% \. E' p& j  y7 D# v2 Z
2 i/ b, G' `' p" ?, k0 H- }
[root@KVM ~]# systemctl start vncserver@\:1.services+ N- r) q$ _$ q, x4 \6 [: P
9 f4 u1 K$ h9 ?% [

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2019-11-19 14:28:17 | 显示全部楼层
4.KVM的相关命令1 N# j1 C' x! p0 }) U0 }
! Z8 O7 m2 A0 j& E' Z
- P2 j. ^+ ^' @3 r

. D% K2 z# N7 j" O1 ?' F4.1退出虚拟机. S5 W2 T8 L9 l- Z7 s" i5 J2 E7 J
! N: I; z. d7 ~* e* A
ctrl + ]6 }7 M% u+ U9 z7 o6 t& E

2 W4 E. y* a5 W, e; k 9 t, m( z2 Y+ D/ J7 o

6 f$ u7 X1 \# ?! }  z* G) J4.2进入虚拟机4 p& o: T0 B- [9 r+ b7 }% W* }

3 H* G! S+ \* H6 r- P6 _; [) avirsh console centos74
3 Z1 q& ?  R/ O8 B. L9 x) N" y/ v" ^
& b* `) r- b* b2 D7 L5 N/ c

  `8 d/ h: t( h4.3查看虚拟机的及状态5 Y" W, w$ G% z  P1 {0 A
5 n3 y2 o  m- {$ w4 D7 ^
virsh list9 w3 W. a) E: X: `+ g% ]8 u
3 m/ m; Z0 u# s( ~& y2 P6 u
virsh list --all& p! {$ _, E- N
) X8 f( h# k0 R# j
9 M+ r- w" E9 V8 A

- S" |2 t2 x/ H9 C1 ^( N4.4启动虚拟机
- C5 c& B; t/ @9 A: z+ Y1 Q" @
8 j, I/ s3 `- l  ovirsh start centos74
) h  e  x7 o) u+ e. T
! s1 Q3 v/ s2 X$ M/ d, |) n& f/ G" b

0 m9 `, t" O( I1 T4.5关闭虚拟机; r2 @1 |6 J" l5 f: K$ L

( \) f. \1 ?+ Kvirsh shutdown centos74
& }: T1 @" ^" L
* _9 K' D/ X2 B/ @
: a* s6 k( |$ ?  S1 O' g/ J2 _1 @0 c" o/ p
4.6强制关闭虚拟机
2 J) N* `; @# N/ G, {: M
0 Q, Q. |: A$ i* B& c4 Wvirsh destroy centos74
3 f0 o0 E3 p" ~6 o$ t4 f6 @8 A- O- k7 S

% q$ D8 Z' {2 i, j
4 {$ a1 _, l5 n1 J8 ?4.7删除虚拟机4 }( [$ `0 Q, k! p' y

& ?9 X. x2 m3 \virsh shutdown centos74
8 r+ W! s' Z4 v1 l4 }: v2 I, q5 F  }- q
virsh undefine centos74+ b4 F* l  d' Z- C
% _1 ~0 P% s" f
1 x8 F! m' X2 m. t. ?" t

+ Q9 J7 T' P- y7 ^$ b  v5.磁盘管理
1 c& p1 j0 T; K& e( z$ O; L" f; V5 G; r- L# M0 t5 |7 |% |

. M7 o2 `. \$ w5 T
% Y0 L2 m  X, N% @7 a1 r: a7 p; @* ~5.1查看当前虚拟机硬盘信息
3 z* c, `/ C; D- c7 a/ _0 n7 g( D% b0 p
[root@KVM ~]# qemu-img info /var/linux/images/centos74.img 3 [4 s- E8 d0 ?+ x4 W1 l% c2 {5 V

( I! f8 W6 G1 e3 Uimage: /var/linux/images/centos74.img
0 `, U/ x- C5 B5 ]4 K/ f
, }; @) b1 v4 x7 @. L4 F0 Zfile format: qcow2
% i) L) y* Q" M; H9 Q3 }% c3 E# b9 s$ K$ _0 p
virtual size: 20G (21474836480 bytes)
2 B$ i9 [! T5 k9 z2 t
2 h2 u5 a! `  }8 ^& n0 V% ]3 Udisk size: 1.2G8 ?2 `; a* c  w3 \* I! `% J3 M
0 `3 g9 u( e9 Y8 g7 P1 L2 }2 z
cluster_size: 65536* U# y- A( e, M* U2 p4 U

; X5 p5 O/ V% f2 t5 A( n' T3 O2 CFormat specific information:4 J. W& U6 t- |5 `$ K
3 j5 P. T6 R, K3 k
    compat: 1.14 f" D+ D1 `. @3 W  c

, T  ?7 s7 V0 Q* y) U1 b    lazy refcounts: false
  `5 u5 S+ N7 I- d8 w
; x( k# [1 U( T9 c( [. N/ k    refcount bits: 16) U6 Z, V) X3 x' ~8 d% b
& ]6 c# J2 c/ T8 F4 a
    corrupt: false# q' d" Y) F2 m3 F" v, e
) H) G7 _/ c$ V3 y# v$ T
5 g( }/ h8 A( V8 I# h9 ?

' v$ z; j  I5 V5.2转换磁盘格式(qcow2转换为raw)1 R  _; Y: Q  {8 B

0 b. I# S! I0 e$ M- k# r- N[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img
. M2 h2 M, b* H; m9 g$ x) _+ N. I9 }3 {

7 W% `: z9 H4 `, h% B8 {2 o
& [: R- r. q+ G0 ^$ o5.3KVM虚拟机添加硬盘% q  }) q0 z& v+ d. _* n

% s: n$ {" X: [" \# n  [2 _5 G/ \- F& v- ?' }. R+ K  O7 U

4 b3 K, F+ D/ U" c5.3.1创建一块新的硬盘9 o# }7 V7 R8 b8 t( T
/ I, V6 [3 ]. o: m8 p2 X. P
[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G
3 V' o5 O$ Z4 p& m; F7 s6 V5 \; v! g" o' o2 q3 U

3 q( K4 D  V/ ^1 z3 ^& _
5 F% q5 m" O3 u) G- F5.3.2查看创建的硬盘信息  s8 p9 I) n! c* w8 u7 F: i9 Y

0 f- Z+ h9 q! y4 _, {[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2 " l6 `" w! X/ b: K( D* G+ n( ?/ i2 X
7 [+ J8 R. j; ^+ b, z2 a
image: /var/linux/images/centos74-add.qcow2# I9 Y) R% k7 z  P" Y. K8 d& Y

# x- g+ m$ ^7 V6 a1 [- Z8 Jfile format: qcow2
3 R4 ?5 i% {- C( {" n
# D( U/ h3 |. S% S2 u8 Avirtual size: 2.0G (2147483648 bytes)
) b, J9 s" j2 O% U3 S5 I1 r  }4 j) w: d, X" A& f# i3 o
disk size: 196K
1 j. }1 @: h% o$ B" }, M5 N; D" Y6 m" Q1 t' w, N# Q! t; {) t- h
cluster_size: 65536# a/ o9 b# h) E/ m& @; j8 b
0 x6 F4 m* ~* b5 k* Z. Q
Format specific information:, o4 i2 T# _% i3 F9 p: h. J
% d6 R7 h- K; P! U! l
    compat: 1.1
8 ~1 V! ~4 y' P8 l2 V5 Y0 b' i- M8 `4 k0 v* Q9 W* l
    lazy refcounts: false
/ q2 F2 H; A: e. |7 @. o2 x' l; c* ^: g. z' I' D* I2 |6 R' O! ~
    refcount bits: 16* W* L5 P+ b( ~6 S2 I  X8 R2 M( f! B

; \, ^% x! b- \$ \& K    corrupt: false
$ z" J7 W' F4 O, [/ |
# C: o. _# C1 N/ v" D# E2 s9 b/ T
. m: l- `  a  W; B8 u" q8 `! T7 Z" j
5.3.3为虚拟机添加硬盘  ?7 v$ }# d4 f# e* t' a
: `) h5 Q. ^* `' I8 u6 h) y
[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2& s" x9 q) E. }" @1 `. j2 R3 o

3 D7 d" {/ z& w% s! Y/ iDisk attached successfully6 I, M. i: a  |$ u. L5 q

6 W5 `, ?) C' [! H  
4 U) b3 j+ G( Q9 Z: `, D/ D1 d! f/ _+ I
说明:vdb    第二块硬盘
. z; O  H8 ?& m7 m+ f3 F
* i! E" \: ~. M( Y/ G" g          --live    热添加* [- d4 c7 @5 \1 n5 x2 w- v3 S
6 B4 K, M9 c1 L" ?& f* U- D$ n
          --sudbriver    驱动类型: a& n3 z  V8 P2 l
2 o/ Y6 c- ?6 D+ E
          detach-disk    分离磁盘设备
3 y4 I. P/ D7 ?* a4 f9 X' c( r! E- A  D
          attach-disk     附加磁盘设备. E2 v, M- n" z; ]4 w
; B; V0 J" J/ E- [) |
- H$ ]& ]9 o8 {/ f8 ~0 k1 X
1 a" e* a6 P8 _# B) A$ t. |6 p! H
5.4格式化磁盘(在KVM虚拟机中操作), l0 a! o; {5 a" j0 {% f  ^- m
7 \" j# a3 h5 t) r! c
[root@centos74 ~]# mkfs.xfs /dev/vdb
, p6 }' i9 R  D4 h' v0 X4 t! _7 O& K8 T" {4 x- ^

3 H% T6 e0 l$ j1 q
. V4 c. L& n; a4 Y9 [6.快照管理3 s' D0 x" ^3 X

- T# [" ?6 U+ y* u2 }, |5 d5 Q& _/ }8 S" B: [( S: o4 _

5 v$ |) g" i( o9 }& s3 t0 ?9 ^% l# j" M6.1创建快照
) m/ j) Z1 }: ^# w9 k
$ i  x% Y) F- T$ T[root@KVM ~]# virsh snapshot-create cnetos74) {) O+ P+ A0 ~7 m7 ]+ u, e" z
: \# Z5 x* t! T" ?8 `% z

: k+ j& u& U) N, L; @, D& M5 p5 z
8 E: v4 G$ h9 z& b# `1 X) b6.2查看主机快照列表* F2 F) d- g8 Y6 n3 \$ c

! B6 {* C! n% N% Q- O/ s' o* g[root@KVM ~]#  virsh snapshot-list centos74- Y- m  k0 @7 z. V0 Y( M' c

% H0 t; n7 R8 p- U5 _: R* [6 x; l- X9 V; I% E

: K! S; W7 {' P: _$ s' |6 i6.3查看快照信息
2 A- M6 _; g6 }5 E
, R4 k: T. K2 |" s5 N0 t[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756' t0 ~/ C/ T/ K3 z9 o  w

, ?' q8 H; @& l, `7 F* v0 j
" K/ k: Y8 o& w; x3 q( F' k! W
3 v4 ?( G3 d% \% S7 N  v6.4还原快照% N3 C. z0 I$ }% L8 Z- j7 J

, g3 U1 Q/ u! N0 v# U/ u[root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756' M) V9 f7 I* W0 _" x/ w

) g+ L3 G7 ~% D, ^% F% W5 T) m  S8 b: r& O+ V7 q
% ?! K% U' y+ ]/ ~2 L6 b
6.5删除快照
* T3 H$ y  ]2 {' ], Q
2 T. u, D- S8 l4 X[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756
3 Q# I: ?  L( I, L1 `- a0 t# l" w7 V* ^- `/ t

/ h3 d/ r% X6 {' u# \* d
2 g$ e# D" r/ U7.KVM虚拟机克隆
' ^# L# q$ T5 M, F( f( ^+ A' x$ L
[root@KVM ~]# virsh-clone --auto-clone -o centos742 [8 ?+ c3 ^; T8 u" ?" t; R( I& B" Y
7 M# m4 ?+ `0 J
  `0 Q) j$ y/ g) Q$ y  u
# S- F' k1 E% o- R* |/ |8 @" q2 t
8.KVM虚拟机冷迁移
7 S9 |/ D  x4 w+ ]( F+ ]$ t6 [0 e0 _0 n1 u: r
) x8 l8 Z6 X8 O5 o1 c! U' G0 ?* l
& @- o) L6 l( B+ q
8.1在KVM02中安装kvm组件6 U9 N# o3 O7 e% y2 Z6 w
8 u7 u8 |" w+ L; V. |% q1 d& _2 L
[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*2 g% ~; T) V% |, Z8 H( i

8 ^' p' f' j6 n! @5 O7 r' o0 m/ O2 b# g" R2 |& v
6 E1 Q8 Z9 \/ {( N
8.2配置桥接网络
- V7 i# k' I# U4 Q9 ^, z1 G# E. v  n' o- m8 ~' I
[root@KVM 02~]# virsh iface-bridge eth0 br08 V6 D. L/ ~! F5 M1 ]3 {% [1 R
- J! d& n$ k. i& `6 C! }
4 I0 }5 D5 C1 d" I9 U- x! H
5 t5 y: Y+ p% I  n% i) o6 d# g
8.3KVM主机将虚拟机关闭,导出配置文件  ^& v+ P+ e) H+ W/ W: R6 X
; F+ C! _( x. j) I5 g( K
[root@KVM ~]# virsh shutdown centos74
3 G- Y* Q$ Y, n" D6 ^9 s0 [
/ I( q2 X$ ]% a/ D+ }9 g3 |, B[root@KVM ~]# virsh dumpxml centos74 > centos74.xml
, _# z" v+ n# H6 d
% K% V8 J! n8 j1 t; K( V8 n7 b5 G5 `* t% O' x! l

0 R% a3 G9 C% z8.4将虚拟文件传输到KVM02上
8 s+ @( y8 {! [/ t$ u2 T: m2 h& T
0 q1 H2 L* ?9 w) c+ H' V# {[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data
& k) ~7 {/ A$ b, v& u6 R; Y) Q. [

& B+ a/ M" @$ b6 x$ x/ H( V: H+ U" [9 j4 h! e9 |% u" ^
8.5KVM02主机导入文件
& [( D; f  Y- q3 \  j
, a7 M" c1 C; K! w0 i% O[root@KVM02 ~]# virsh define centos74.xml
3 c9 K! B6 `  ^) W& b) x4 D1 e$ Y2 u( A; I9 }  }
9 g' v1 {, y. P
' P! A; r1 k+ S% A
8.6启动虚拟机% S+ E1 r7 I" E/ I

7 U5 g7 }" o- G3 Z* |+ ?- ][root@KVM02 ~]# virsh start centos74
# S( S! p* [" `6 M' m
+ r& i  M- M( `5 K" n9 b3 S0 V1 w# k: f" @' ]7 y- f
+ G2 G) T2 h; N6 h
9.KVM虚拟机热迁移
0 l$ R7 f9 v1 ^9 o! Y# J# t* Z  r3 g5 V* f

  Z; l6 k: X  i1 l6 l; o+ D! J7 Y: s% `: \/ H6 n* [; C
9.1KVM虚拟机热迁移的核心
2 D! B$ a5 a- C: s0 t7 I( R3 ^0 M8 u
   共享存储。这里使用NFS共享存储(详情参考:https://blog.51cto.com/13520761/2087720
$ b. T0 @9 n6 R
# V$ W6 A7 \5 ^3 d( I8 n9 p- P: p
, C2 G% `9 p% J4 h1 m  _& ~$ K" m5 T
, P% d6 c' l2 F8 j) T. R# {9.1安装virt-manager所需桌面及vnc-server
; I' U! _% T) |0 w1 G3 c  x& e0 b
5 W/ K( x4 v2 o[root@KVM ~]# yum groupinstall "GNOME Desktop" -y/ A, _6 }( p1 W! E) m% W( b

2 U9 [- Q# V# t) p: Z[root@KVM ~]# yum install -y tigervnc-server 6 J$ P4 k! J5 y8 s1 k9 |# [

% ]7 L- j6 l$ ?[root@KVM ~]#  yum install -y opnssh-askpass
2 E, U& B, C& R& `6 m- [! Z+ C5 \' e3 v5 c6 k" i

6 e4 A7 ~( C8 d
9 B2 P3 E9 n& G# I) r) i5 v9.2复制vnc配置文件9 u! @& w/ \0 ?+ F* P! r. _
1 Z: o/ H9 c" Q. J5 t. [* k7 Z1 O
[root@KVM ~]# cp /usr/lib/systemd/system/vncserver@.server  /usr/lib/systemd/system/vncserver@\:1.server! G) H4 k7 I* Y0 M2 g" J
) q2 p+ _) p* d2 m, S8 X( e
3 ~  s9 m- k) Y$ G, I) B) B

( H% e! |6 W1 |4 Q5 W9.3修改配置文件& S1 O1 L3 s$ q- J4 i' u3 q
9 _- ]& u4 \- r5 A
[root@KVM ~]#
) C( |  c4 R6 G& }, V+ n, a, m
1 |' d6 {3 t7 m+ p* D1 m" pegrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service
: i; [/ |" \( k: `4 l" \
8 I3 @  V# {- D) j- J# S+ I[Unit]
( {$ z6 y! b! m* e5 n7 K
; k; v2 a0 P* LDescription=Remote desktop service (VNC)# c( N& l" Z6 T7 H7 x# z# R

! x0 S9 }! ?9 s1 pAfter=syslog.target network.target3 S/ d0 L' t+ G: p/ d

& @+ Q4 i$ c# D: ]& d, U; ][Service]
1 {  Y" G% Q# y, P4 e9 m( L9 ]% {, O
Type=forking& y- T5 g4 ?' u0 ]
' @6 |; o7 @# ~- c4 e
User=root4 |% ?9 n2 e6 u
0 l/ |! M4 ^* F: Y6 ~7 j1 n2 m& ~4 w
ExecStartPre=-/usr/bin/vncserver -kill %i# N  q9 e9 z) H2 O# y8 i( F6 ?

& l2 P) g% k4 }7 Y( M+ r& QExecStart=/usr/bin/vncserver %i( |( _' @: ^7 z, W
" J4 Y: W) ~' @2 Y" c! F2 I; K2 S
PIDFile=/root/.vnc/%H%i.pid1 c1 K/ T6 x3 E  t$ i8 c
$ D0 z5 A( p  i, t& g6 G9 e9 G
ExecStop=-/usr/bin/vncserver -kill %i1 u/ k6 ^* \: m4 [  E5 p; i

" {( B. @6 l0 ~3 b" S[Install]
- X0 T/ ~* t- C3 N4 S
  X$ F  C* a8 V. ?/ mWantedBy=multi-user.target3 n/ b4 V$ |4 v# `8 `" t( ~+ @6 }

0 m3 r5 q+ K, h: h  S& _( M! {
6 q  F, Y' J( o' R- L5 r
9 i3 B9 O1 L  P: u3 V9.4设置vnc连接时的密码0 R7 h4 {- B& j- e+ @* {) T2 Z7 t) C
, i+ O9 @% {0 W  _% @9 k
[root@KVM ~]# vncpasswd
! @0 F; p7 H* }6 A
, s$ T! W" o3 z2 O6 \! l4 X" e. @* a  Y1 p

6 a: V; I6 }+ k" G1 f) i9.5启动vnc服务8 O( C7 o3 A* a: R) D) o+ Y

- r; @4 p% ~1 S3 e% b[root@KVM ~]# systemctl start vncserver@\:1.services. x. F$ D( D$ K6 h) |' w

# s0 c' @. G; z/ E1 {) D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:02 , Processed in 0.028380 second(s), 25 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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