易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4409|回复: 3
收起左侧

CentOS 7部署KVM

[复制链接]
发表于 2017-8-2 19:20:22 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 3 金钱 才能浏览
 楼主| 发表于 2017-8-2 22:39:13 | 显示全部楼层
安装软件包9 a/ h4 l/ j6 [; C  d! X
# yum install qemu-kvm libvirt virt-install virt-manager
# u4 |/ d+ ^! T; I( T0 i& F在这条命令中我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包,下面了解一下这4个包到底是干啥的。% G* X6 p% I" k- {
qemu-kvm
* h8 n; y, w9 k+ o9 a该软件包主要包含KVM内核模块和适用于KVM的QEMU模拟器。KVM模块负责CPU和内存的调度,QEMU负责虚拟机I/O设备的模拟。1 U9 I" k: C$ e6 v+ o- `& }1 r
依赖包qemu-img' x" D; m$ o( D* M  v/ V' V
主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。
8 `2 P" D/ x3 H' y& x1 d, Rlibvirt
6 l& T  a5 j$ M. S" K  h# w% _9 Y提供Hypervisor和虚拟机的管理功能。
  N8 Z' t. K/ D; `依赖包libvirt-client
* F- i5 N! I) h$ ^7 i" kKVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。
3 ~( e5 O4 l0 {) _( n6 ]9 N- k依赖包libvirt-daemon9 Q% e$ ^  F2 d; y5 G
libvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。2 f) _8 E6 W5 M- f
依赖包libvirt-daemon-driver-xxx
5 w& ?6 U7 y6 V从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。% A$ S9 Y/ Q6 R* {& Z4 n
依赖包bridge-utils
: |- t$ A+ O+ k4 [, t( z网桥管理工具包,负责桥接网络的创建、配置和管理等工作。. b/ D, U# e* t+ U* K2 u0 p
virt-install- c3 Q* X* u$ D( n
创建和克隆虚拟机的命令行工具包。
) `+ r0 J/ Q* S) _6 ?! t+ Wvirt-manager6 ]4 n3 i/ s. _5 u2 P; f$ m
图形界面的KVM管理工具。" n: y! X' Q2 Z
当然安装KVM的依赖包远不止这些,由于本人水平有限,所以仅挑了一些跟KVM架构有主要联系的软件包进行描述。: k! B( W0 C$ n$ ~2 y2 ^& R/ D
后续配置激活并启动libvirtd服务
4 ~  ]# [: _) Z4 I, e# systemctl enable libvirtd
; w4 r1 x3 v9 `# _% b# systemctl start libvirtd
 楼主| 发表于 2019-11-19 14:27:55 | 显示全部楼层
4.KVM的相关命令
, h, B) e" A9 }* F, n7 f. j( l7 T3 W" O. q
& d! o6 D5 J% D* e. ?* Y, X4 i7 u
# \6 E- u' ^: [8 J
4.1退出虚拟机
' Q5 Z+ p# D# ]. g, p2 V4 [; U1 ^5 s; M' a5 b
ctrl + ]
: X6 J6 y( k* j* c9 T
9 a  V- Q) c; o% k: i7 ] 8 ?# }$ F% p5 J  Z* N- H9 q

" k# |: y% W# X% p9 h4 j" \* R, ?4.2进入虚拟机
+ e* ^* b- U& _: \
0 g  V" x! x  F9 Q6 Z3 tvirsh console centos74
1 J. w6 j( ~8 N. B' W: N% l. r! t0 \- d* ~: j/ |4 E# F6 }

2 a/ ?) v; g7 f3 ^' b
6 s% b. {: }8 L/ S) S4 J1 t4.3查看虚拟机的及状态
' \: D# R% R  |' D/ E  m7 a' X2 z5 B% @8 B; T. F0 g9 j7 j
virsh list2 g1 r  E( B1 t) |

( g8 L$ y3 k- g) X; kvirsh list --all
' m( P, ^" S# Q2 {, e. Z# ^4 C
4 J/ D& w& l! c0 F1 V8 U$ |' v( k3 m- U! X' C5 `5 ^) ^) M
  t  m+ }6 ~9 s! p; g9 c' }/ M* O
4.4启动虚拟机
% J5 M! k( L1 s1 b. y4 z# F
4 f1 ^+ a) d4 z6 m& R$ Qvirsh start centos74+ e; M7 S7 E$ R
" m- @7 h0 I8 q% R" U( Z
7 ]) {' @, Z5 ]8 _, ]/ C# K, c

" p1 M% C" l) L: K4 X! t( h- K4.5关闭虚拟机. m" g) }: ^9 n0 `4 [7 T

) c9 @) J7 o" C. d7 Mvirsh shutdown centos74
2 s( Z* E0 O. |% q- Z2 t5 t" L# U$ I" k9 A" {/ I' r

- O3 f7 S* N. @
0 D; P  Y, u( Z4.6强制关闭虚拟机
4 K2 Y- n: |" C2 e4 X7 ~- u, h; y9 t8 @
virsh destroy centos74
/ G$ F4 T' @1 f0 M! s/ M' q1 e8 [5 @
, }% B5 g) g5 Z; G' u2 [) T; ~0 P; r  Z- r" g. y# B4 b

% O7 ~$ K4 d6 Q4.7删除虚拟机& |8 p8 a1 N, Q
- P3 w* ?" ^; C& z9 W
virsh shutdown centos74
8 F! ~! X, h% f; X4 r+ A# p& s  I9 Z( U! q/ k6 O$ E1 f
virsh undefine centos74
6 M2 S2 X! c0 r4 x+ X0 p$ Q' b! e
+ x% P- B$ C6 I0 O; i
  A# l, o% t/ x$ Y: ^
5.磁盘管理, F! u. _. \8 S+ D2 z1 M
" G2 C6 t' e+ G+ c+ E, u

) A) u: K* J- S% K5 w  f( G6 g0 L" o; C6 M" g0 d% `. e
5.1查看当前虚拟机硬盘信息
' v# G4 L- }3 I1 J) A2 @3 p9 [7 W0 E- k
[root@KVM ~]# qemu-img info /var/linux/images/centos74.img
9 b4 o; W4 t: f2 ]5 d1 b
# h5 u4 x$ B3 P3 mimage: /var/linux/images/centos74.img
( q* r' O9 q! B) z- H: ?3 U0 `
  x( M+ f- Q  hfile format: qcow21 b$ b- N% A  s2 p
! F# c' b5 `5 E0 r7 r
virtual size: 20G (21474836480 bytes)6 y# \( g3 G0 s- C
- A1 z8 j' Q! S, p% j2 ^, d6 h
disk size: 1.2G$ I5 f' p+ D. `- w

% x+ |) p' `5 jcluster_size: 65536- d3 h+ s6 w. V8 J+ ]

. r! z0 L5 S( t) P5 GFormat specific information:, f! H" l* b2 o9 M

5 g) @& C4 A/ C( T% y- _! t    compat: 1.1: @' \) v0 f" r( B- R2 p6 [

/ R4 r* _. {$ o& \0 i    lazy refcounts: false
! r& I- @5 o9 W  l" y: n7 c' p4 t3 ^* }6 G4 `' L( c
    refcount bits: 16; E( S4 W2 l1 T- G5 @
& q/ {: F& {# C- b# u
    corrupt: false
0 Z& P4 v. S9 t2 s
  j, y/ K  U( @4 M
1 ?. ^( L; X: C9 w! }" n  H+ L# w+ t7 F2 S3 |9 r# j3 T1 m; H2 ]
5.2转换磁盘格式(qcow2转换为raw)1 y2 C) t: E# G5 y5 x& c
. s+ l! `3 W+ a% l- g0 o/ N7 ]
[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img
/ B/ ]8 E; ^4 P) ~
: U3 U# w0 E: O
  @, ^9 ^" s1 A) H: u2 ^9 G9 A4 f
) F1 k% [- W  M6 o$ w% P5.3KVM虚拟机添加硬盘8 U3 x, c3 w7 k5 t( D2 d) _' x0 N

2 S, W8 [, D7 s5 t! V) w. Q# Q: h/ u- q$ |5 x$ d* w

$ P# R/ G7 m- i  d8 @5 j( [5.3.1创建一块新的硬盘  z3 z( V# z8 }# ?  }8 d
5 `7 r( g! @" H9 l. P
[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G
. e3 z4 F4 c  E: L6 `& a2 _5 x% C" t* i5 x+ \* `
3 a0 p2 f. T- A

4 ^) Y* F0 D8 m- P% f8 x5.3.2查看创建的硬盘信息
8 [! q; d& X7 @
2 t! [/ l% z1 [5 ^; ^! n; b[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2 # G" b# H2 o6 s2 }" V$ J! ]# O3 M/ A
# o3 s1 _0 M8 ^
image: /var/linux/images/centos74-add.qcow2% L6 B, s( l* n: C9 {9 N
8 r5 @+ @  @+ A' o2 h& s, x0 T
file format: qcow2
" }6 W$ y1 I. E7 `- R
) Q1 e1 p$ t7 G+ _& C3 i+ evirtual size: 2.0G (2147483648 bytes)  _1 p9 w  w. X- Z
& A8 B" f! T- b5 t; R" a) _
disk size: 196K+ c% K8 Q" E6 G. i) @) W

* [, J; a# e0 Y, A' A. qcluster_size: 655361 o+ c7 l( O! [
6 I7 {& ?8 V) [4 r
Format specific information:5 I: x1 V# Y6 B% p5 g

' l6 s" r6 Q$ ?7 q6 X/ J    compat: 1.13 K  b3 O) ?5 I$ f
, ^. f8 m! a# ^* |6 X0 \5 p/ L
    lazy refcounts: false) ^1 o) c! ~+ B2 C. _& H# u

7 X  G- U; ^& _3 s    refcount bits: 16
6 ~6 I1 U1 R9 b7 u6 q0 o0 S0 `
    corrupt: false
  ~( s3 Y5 `4 n5 F, c
( H2 W& l( q, g2 q- h/ f. N
: p- U: N! S) X$ C
7 `! A- O( m, @' w. Y+ @5.3.3为虚拟机添加硬盘
. R) _* T: S' q' p$ i9 a
7 L" _0 f: R7 R7 @4 Z0 R[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2
! T8 q' h0 z2 F
5 o4 T9 f  I6 V: |9 nDisk attached successfully; E) A8 U5 T* D" K

- Z" S5 U, j: P* ?% c  ! Z: {" g4 H1 E: e' F6 c

$ J2 m( m$ p7 v8 N# _# \6 {说明:vdb    第二块硬盘* J4 w* @9 I1 _  w: j" }
0 m9 E4 t6 Z5 t% `% \- W  c
          --live    热添加! R, f8 i' c, C7 u2 e

5 P# y/ V$ B6 u2 }          --sudbriver    驱动类型& p9 i8 f. Z- e
& Y. m7 ~+ E9 j$ s" t4 ~" b
          detach-disk    分离磁盘设备: x: G: E; ]% @) g$ |
5 }5 c3 |) ]' D2 y3 x
          attach-disk     附加磁盘设备
# O% K  E2 f- Z4 b: x* ]
  l4 o7 B8 D# n7 V8 R1 {
* Y) `+ g4 c1 M! p0 y
' P' `7 t2 ?5 `- q, d0 E" ]6 Z5.4格式化磁盘(在KVM虚拟机中操作)
5 T! Y; s) C& t* |
4 S) k) [; \4 E* V8 H[root@centos74 ~]# mkfs.xfs /dev/vdb- P+ n5 O# ~' H
, a/ c6 _: W8 ^8 a; E+ [

5 X. U# ]' [" M; H; _( C$ l* \4 ~! @6 l7 r. z" ^$ A
6.快照管理, X/ `  E" K. V
3 ?  a! z- L: N( L1 k9 [  c3 K
# d- O: ^8 v1 I( z* P9 p4 V' `

1 x; ?. _3 i0 B# X$ _3 ~7 C6.1创建快照3 _9 Z! W# w, i+ y

* a: S" C0 [/ M6 M# F0 B2 X: b[root@KVM ~]# virsh snapshot-create cnetos74
+ a1 \  V: R/ I% }" d" e) E9 r1 }/ [! Q1 k( B
) x) U" E7 w7 R, Y9 F" ]+ G1 G! p
1 ~& t8 n; t* D
6.2查看主机快照列表" i, b: ?% k& M
" L% G4 G0 j9 ?% _/ `1 e0 Q
[root@KVM ~]#  virsh snapshot-list centos74" m+ V& g! R0 M5 q7 _; L9 ?
4 `( a! s9 a2 b8 ?4 N+ Z$ K* {$ R  a

8 k( l% w4 p2 ?2 Z4 |
9 ^( c# B- |2 `3 l4 C6.3查看快照信息6 E" x% N( u" a# o4 R6 v
% G# T: K8 Y" c( o7 W
[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756
; Y  t1 l7 s& x
( E8 }- i/ t. ?7 R0 {. b4 ?, D8 b. h% q6 V

; t6 v3 D" d6 R# q6.4还原快照- s! R1 [; [# E# _0 Z9 `3 `/ l

$ q) }0 [% p( y; N" G/ `7 c5 Y[root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756+ V0 H/ u* W  T+ S; o

: P3 d  q9 J7 I! E& C
# I2 Q" v% T6 K* K. ~* b: a% r! |- Y5 g3 H1 H4 E4 F
6.5删除快照
; x3 y3 X! q3 k; Y
9 {. m! [3 Z! r: b[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756
% k9 z& y2 Q- z
( C5 Q  D" w3 R" \2 z/ N, U0 U/ i* r7 v! a( M! [4 `
& C+ v! m1 [0 ^  x+ A8 q( T9 C
7.KVM虚拟机克隆
0 A0 M5 e8 |7 s0 Z! w; j/ O6 O* W# R* F
[root@KVM ~]# virsh-clone --auto-clone -o centos74
& B6 S( I" ?* }% ~+ W
) N; s* B; N5 G7 Y, ~2 h0 k2 X2 J0 y" S% _  j

. @: _! D* p. ~" n# ]+ W8.KVM虚拟机冷迁移! G8 A/ \6 k3 d0 b  _8 i  g
9 }0 d- ]: E! U; d
( w1 Z, S  L- ]; o6 ~! {( a7 _1 y
' Q% F6 X5 b; X1 O" U0 b. N! q
8.1在KVM02中安装kvm组件
; w- h: P, H8 J8 n$ p3 J, ?
5 x1 |! n* z4 R9 @& _: z/ r3 k[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*
# q! k. e: j6 k) q1 w4 f6 [1 K$ D) V  V5 p

8 \+ p+ i9 K  ~, ~" a
1 K4 y4 \: p% Y6 @; L8.2配置桥接网络
8 h  l2 M) X% q+ S7 ]# x/ x' {% s  w) Y6 k, f/ I9 M
[root@KVM 02~]# virsh iface-bridge eth0 br0
1 d* o# Q7 u6 J! L1 \" [5 d) `
& t2 x) j" R& D- `: h
) ?* C% H: i2 ^/ U
, Z& s0 W9 G( x" {7 _8.3KVM主机将虚拟机关闭,导出配置文件. C% U) G+ k! a# _
4 W& {3 `# U8 V* E% i
[root@KVM ~]# virsh shutdown centos748 a2 p. d1 i/ u0 W+ s, E
+ ~3 m4 z0 v" v
[root@KVM ~]# virsh dumpxml centos74 > centos74.xml
7 K# e; h; e% r  p. A  t' w! R
. C* x; E2 S+ E- Z) n+ V
6 b+ I. s0 E0 w5 L; w  k9 P) g# d4 q8 c: m
8.4将虚拟文件传输到KVM02上) H6 r% E# [- p. o

6 ~- J/ T6 x& Y& [+ \  Y1 x[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data
. ^& U  D6 F5 ^; r6 `0 B! n: }9 S' E& B3 W
% z8 w- E& w0 o# {/ i
5 H4 {7 p# O+ R. N
8.5KVM02主机导入文件7 Q% Q: R5 m, }- p
, S7 Q- S% C- Z* R* {" g
[root@KVM02 ~]# virsh define centos74.xml3 f! Y6 \2 i2 N0 W
! P9 r2 x" S& c" g, d. j
- F4 y6 [7 ~( K
" j. i. d/ G, N% H" @" G: \. v
8.6启动虚拟机
3 z- |# b  _+ o* Q6 J
* e# f" j( w2 K[root@KVM02 ~]# virsh start centos74
* H% E) \1 P  z8 p# z5 ^5 j4 j$ I& Q- O' g$ ^

: K2 Z. x3 U9 N8 i  A+ Z. @" Q8 _5 {; a
9.KVM虚拟机热迁移6 k% x. k* e8 \
' X+ |5 q1 D) z4 h* K2 Y6 G9 B
5 f% R" p! G. A+ z( @' @

# j& r( b  [* g, B: b% v9.1KVM虚拟机热迁移的核心
7 \6 D5 S! L5 }9 ]2 e/ ~4 g& J; F7 K* O2 U! j; Z& s
   共享存储。这里使用NFS共享存储(详情参考:https://blog.51cto.com/13520761/2087720
0 n; q% `: T/ {3 H7 K
9 y) \* Y% ~; f5 O+ V$ [5 n, c7 [3 m  S

; U# c) {) U+ f' [9 G9.1安装virt-manager所需桌面及vnc-server1 l3 p$ C3 Q, O! e" b1 l

, d  e* n, @4 w/ l! B6 \6 g8 @) a  o[root@KVM ~]# yum groupinstall "GNOME Desktop" -y, A5 t0 [- M4 D& y0 t. o2 b( W

; L) Z9 E/ K' g[root@KVM ~]# yum install -y tigervnc-server
1 N+ B& l2 P. \1 Z: f: b# e7 F5 T/ y; e3 i4 |2 L1 l( c4 L
[root@KVM ~]#  yum install -y opnssh-askpass
( u6 A0 V* t& X5 _) b+ e/ ?/ n* z. k% k6 e4 O0 b& ?1 y" Y: @
: K- @8 E! i$ b3 Y
3 ~2 u/ |2 Z4 r, R! ^  I% t
9.2复制vnc配置文件! S: f0 V  W+ J3 I& ^
8 q2 A( X9 T; {/ @4 L; ?" m
[root@KVM ~]# cp /usr/lib/systemd/system/vncserver@.server  /usr/lib/systemd/system/vncserver@\:1.server
% D, J. d$ k5 |: v  _/ B
5 a& T6 v5 f/ K: S" V! [! Q3 p; u- a6 [* _
- L) i. Y) y! ^! J0 M; K. D
9.3修改配置文件! h3 q8 ]' p2 Q5 a' T& M$ i$ [0 ^8 L* ^

/ B$ a+ v1 G8 C" y  T[root@KVM ~]#
6 ~$ Z* |, e, F! v! \5 M% G
9 s: [% n* N7 M9 w* qegrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service
$ b8 d7 k8 a( _  @5 m9 y  I& J9 \' ^% z
[Unit]
0 S. c3 W/ l1 H. _3 y, a, E. Y
7 T& Y4 {- ?  K) l; `Description=Remote desktop service (VNC)
" u5 e- ?$ O! e1 _0 }/ o% `; I+ }; e; X( t! W  }
After=syslog.target network.target( S* e9 z. R# N3 |0 k4 U' S; s  A. P

* G' E1 B( r$ {& j0 R; z, [[Service]
, C: z: ]: h9 Z& g& C4 b0 ^( D$ R7 P7 u& D  D
Type=forking8 f+ P( v3 r( R) G8 w4 e& X6 a

3 k, j7 E1 c8 |$ WUser=root
9 _+ |6 m5 |0 o4 j0 s2 K% M% N9 E1 t0 [- j' r2 E; P
ExecStartPre=-/usr/bin/vncserver -kill %i- X* V) v6 ?; b' [0 w) Q

6 j/ ?2 c4 b/ i# E' LExecStart=/usr/bin/vncserver %i
% s5 k- ?! |- V8 l$ K% P" A& D7 c2 h& H9 j( _
PIDFile=/root/.vnc/%H%i.pid3 J9 D$ y% U2 [4 j. Q' ?0 F# j
  n/ o& `& S( w1 q/ `3 l) w
ExecStop=-/usr/bin/vncserver -kill %i* J; Q1 E; v5 z

- m: }5 P& ?% Z, D( h% O[Install], ~0 B6 r# i: q+ K$ k
/ `4 S1 a4 A. S+ w/ s
WantedBy=multi-user.target
7 \3 s; f5 ^+ C# c; M' n" h+ W2 ?5 R/ J# D

+ b/ B1 m- ]$ L5 r! [+ w8 T* P; P$ Z" p/ n  J& }0 x$ n
9.4设置vnc连接时的密码) a6 K+ L: T! t. a

1 f5 |+ X* K; }[root@KVM ~]# vncpasswd
6 `* c- l; S) e8 Q! L: m6 p3 ], L7 I
5 w# _& z! L4 z5 U$ A- ]- d, |/ c: B, M- P5 x6 v

# L% l( E1 B2 n" h* ?9.5启动vnc服务: K) f# h' |) C4 e
: |' j3 ?' ?: E
[root@KVM ~]# systemctl start vncserver@\:1.services
. K1 Z  B* Q6 t( c
2 X3 {8 _& I4 q, n8 s
 楼主| 发表于 2019-11-19 14:28:17 | 显示全部楼层
4.KVM的相关命令7 U1 v2 L* N1 {- A3 R# j9 h
, [  h8 ]6 ?. p
) ?3 g3 g; h3 o; C
/ ?; U3 K/ t- M+ O/ C
4.1退出虚拟机
; m: \: |# t6 e0 C4 M
3 i- [* v. |. F0 _# L/ S4 ^ctrl + ]
. O  O1 }2 c5 @# ^2 g
- `, |* O/ l; [8 V- ~4 \1 ]
3 H& M& k4 ]9 Z9 r% a/ Q4 \9 Y+ N0 q! y
4.2进入虚拟机
+ g! F  C! }8 X2 ^/ }5 x! H. l) ?  ?
) e3 p6 _, G# \% z8 t' ^4 q9 V: bvirsh console centos740 [: M" r, c& [$ }( Y
: H; a+ c+ q% x7 n) B& d

" ]8 T6 C# D3 `& d/ [
/ @- B1 j: C+ v# f; d. j3 Z# O- `4.3查看虚拟机的及状态  l" j, E3 S! n
0 `5 g1 Y1 `. j, H, ?2 `
virsh list& s, A; F9 R/ _$ B  c0 p6 v
. |* j% a% F. c- d
virsh list --all
/ X) ^# o: E& m- W$ i
& y* T7 g/ m$ U, t% R3 U1 j( s  X9 i* d# k: y

. e* L* N' D5 X6 H5 F0 {9 I4.4启动虚拟机
% o4 [; |; ^+ Y( S. i/ p3 r5 m, E) b$ \
virsh start centos74
/ [- g/ o! L( Y4 V8 h, L+ g5 O; o3 Z9 J( U2 A
$ A0 M. e% q8 t; e- y' h

. h  a$ R0 y: J! @6 h' C6 F8 q& T4.5关闭虚拟机1 u2 j+ `- |0 J, S7 p- j  }
# }# W$ j; r# b+ y+ S% _
virsh shutdown centos74
; Q% o# U2 ^9 b* |( R
% R, G9 ]4 w4 S0 {- Y7 N& b$ Y) w$ T

) Z5 ?! L+ n# B) J- W3 J4.6强制关闭虚拟机
( N& E4 ?9 U& D  ^: E8 M
$ L: f- O/ z  \" m, ~/ Tvirsh destroy centos74
) \( O" [: A2 i) k% v6 I$ ^- f1 D) ?9 I

# p9 ~+ l0 D. A6 h8 ^) x  c0 X  k; c- `8 O4 v; m
4.7删除虚拟机' l2 C8 w9 r# d0 H# ?2 w" p3 H
! Q; P9 u; f2 e, U! S/ H/ S8 c
virsh shutdown centos745 d8 d. s8 d, A) D

7 l) E' e" V: q: l0 ^' n% gvirsh undefine centos74
  ?; w2 ~1 ]! A; L# U" l
  G0 F) A! V% d: v8 u
, }3 ~" O8 P) j% H0 G  y2 J: x/ p
6 _, h0 W' b; s2 s8 f" w5.磁盘管理* K6 Z! S% u& v( e5 l/ E

0 d) l# }3 @  ?2 V" A5 v- k1 z7 O" K: \( G+ W9 M" g# i
% Q& V. Z" `/ |+ |
5.1查看当前虚拟机硬盘信息+ A8 ^% P# i( {( o, D- M
' C# k' l* A+ j4 o
[root@KVM ~]# qemu-img info /var/linux/images/centos74.img
6 N1 S3 P2 [0 @% M" H) }. u7 }9 J9 b/ P$ X8 ~, u4 y, v0 O
image: /var/linux/images/centos74.img
2 P4 `* [" Y- v) Z0 Z
( y" a+ v, Y( d, O/ R, F7 Gfile format: qcow2
) _8 N3 ~7 `1 p/ C* ]* G; {1 p% f+ |; p( |' |! F2 g. D
virtual size: 20G (21474836480 bytes)
7 V' X9 S6 O- |  a- t+ N' L& r3 Q/ M) O" Q; ^5 D" L1 V2 @6 r
disk size: 1.2G6 B/ \/ f2 E1 ^8 _& g2 W+ t

: y! ]  g! v* jcluster_size: 65536$ ?, x( I! o# s5 a

( R( @- @7 _" R: t* ^" D. H3 I: zFormat specific information:
8 m. a$ m0 t" ~& z7 k3 |
  g! l& _  _7 p# F- M    compat: 1.1+ f8 k1 x& T  o3 L  P$ F4 G
* _  ^$ d; k8 }. ?6 p
    lazy refcounts: false9 k0 m( p5 H7 y- y& z

2 B  @- Z0 F1 C) s* h8 Q* }    refcount bits: 16
  h, {& C! S) A8 H% |
; D6 F4 l' z' ]    corrupt: false
! i: T5 k4 x0 J* G( Y. @( R, c
$ V* C+ N* y5 P8 t  R# _3 u9 O% G1 P, Q$ b/ _
, s. `: z: d& ^+ Y
5.2转换磁盘格式(qcow2转换为raw)' F, t0 S, {8 Y5 M  \) D

8 \+ I( s1 S8 V) {' n[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img # ^3 P: r& I. v& r% P
* ]6 S$ d% W5 l2 Q
6 j  h8 O, `) P

6 @3 G: N4 }# J* {# n5.3KVM虚拟机添加硬盘: w8 U1 `- `; i. ?( R4 \- d# h' q
) i3 {( S8 C1 H! {9 T& J" ?1 {
- k% U" b- z: b( }9 F& E5 [) n. l! ?

% U& ^% t7 C# `5.3.1创建一块新的硬盘
- s) [% b. e. Y- [
' B4 Q# D2 J2 j[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G4 p4 m1 O  K1 i) x$ e
& `! }3 c5 V) c0 @# a) A8 g7 ~
, G) B9 p( U7 k
* q2 D+ b  j; p! _2 s
5.3.2查看创建的硬盘信息. q5 _( {" l) y" P& Q; R; U

" T! h% e0 r+ z9 f) S[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2 ! h: S+ ]+ a% _0 E

* \! o8 i" l7 m( d' s! S* Vimage: /var/linux/images/centos74-add.qcow2. X" H# E% b# W" t7 I4 C2 U

$ K% D- K. U0 K" I1 Z, Cfile format: qcow29 d2 }3 p3 Z5 W
1 w" `; j8 P- X( K  k
virtual size: 2.0G (2147483648 bytes)
  J. l0 ^  W& g& E( c* v/ F: q0 p7 B0 ?5 N
disk size: 196K
# v! n6 L+ I1 o0 k6 x  ^8 V! }  I& z! y2 t& B, |1 B1 c
cluster_size: 65536
; E6 @5 E- ?2 }; \, T6 j; V4 b4 _! f( L8 ]' b3 {
Format specific information:
" y" Q* s" Q) W
4 A3 ?4 v6 I# q: P. F    compat: 1.1
. o; U( a1 t: {: j6 Y# S8 O% `0 ~* e
    lazy refcounts: false# q/ t! i& a6 e( J! k, i  ?
5 ^& n4 \# H6 `6 |' m( N9 y! K
    refcount bits: 16) H( [5 V' B9 k& b' S7 G
/ z, A$ I' H' j+ N* Y0 E- Y
    corrupt: false
, b" B& a/ u0 m: r
+ T3 q! H: `* h4 M$ v* f+ G! M7 V" x5 q

7 C( k5 ~2 B: f6 W. v5 u5.3.3为虚拟机添加硬盘
7 S- c. i8 X0 C
+ \+ N/ N0 z! T! D3 p[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2, `4 T* o4 V2 O4 t; j5 u

& a6 ~4 f* G9 vDisk attached successfully7 d! z/ y! M7 i, g2 |# ~/ {
2 p7 S6 G5 d9 X0 Z8 N
  
4 x9 d9 T4 |2 y% i3 F* k
- y3 s' |5 `; O' l说明:vdb    第二块硬盘
1 T  H/ K+ H$ m0 O% Z) L
& p1 B& }1 h, ~$ U  q2 J( u( \          --live    热添加2 N2 v& t; G; L
* V, v* m" b; [5 P* B# t
          --sudbriver    驱动类型
6 \* _9 q% G2 e# @% ~+ `
. a' q; g" }0 B& ]' m5 }          detach-disk    分离磁盘设备
3 V; {& Q2 v' v
8 [* P4 c, J* Y7 H/ C          attach-disk     附加磁盘设备8 y. M9 J8 t7 \' O( E
* z& w% p: z$ Y4 H& F

/ s' D# A, ?! G
5 `" z8 x7 ]- q3 {5.4格式化磁盘(在KVM虚拟机中操作)
, d- ]  M7 l- `6 X# X7 Y+ ?3 u, Q
! h: Y- J/ K, Y5 u6 r[root@centos74 ~]# mkfs.xfs /dev/vdb3 F& \3 g( l9 w1 H) P
! d( o. i% I  ?* \3 b

1 W' s8 c  p' S4 Y; ^
8 O" C: `5 x. n2 L9 t, M6.快照管理8 B$ d4 j- ~0 V( d3 D
+ N7 D. `8 l- {. k- |8 i& W

; b% V. \. f7 n; H, O# j8 M
4 X: N8 r/ q2 i6.1创建快照+ k, ?7 \6 o& z) U
" i( y5 E6 b% J
[root@KVM ~]# virsh snapshot-create cnetos743 z( U1 a# X9 ?4 x- y
) v2 ~% t9 ]3 F# U$ I0 B

6 M. H8 U% ^0 y) W8 W' T) L
2 v2 k) K- i6 d* N4 J) k9 d; ^6.2查看主机快照列表
' p. M6 d: h' H2 t
5 Y# z1 a& o# {1 q[root@KVM ~]#  virsh snapshot-list centos743 \8 t1 h. p6 l" c$ p( `, p8 a
& f2 E, R' q( c/ b
8 O( r: j; o$ p- z
* s# d: `* x3 r' [+ [$ b& |
6.3查看快照信息
4 y: O7 O- \6 _8 b+ _6 _
: ^- B2 H0 G, A3 |7 P9 h[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756# N/ t1 z( C3 [3 d1 S

% |+ m7 {+ O5 D
' a9 f& r4 l% p8 b- P+ Q2 c
9 w  O5 j' n# ?" M3 m# R; C% v6.4还原快照/ J5 F- g1 V5 N7 V! t/ x

' W- v# q# X9 W' ][root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756' W/ I5 h3 b* u) |  E8 Z
9 ^% ]  r. C# e2 |8 ?. G* j

7 J0 [6 y' g2 k6 v5 ]# r1 i. {3 j
$ R+ i& c5 h$ h1 A0 s. Z# z6.5删除快照
/ v! x7 N2 w/ d) E; l0 @5 q# ]2 g- ^- ^' V. w/ C
[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756
5 @7 E. }* Z. {6 }9 L- O
8 h" i) q6 X7 e! P. ]& I' y1 \+ n; T. B- H( Z& H9 I' b
+ l+ Y( I" l9 K3 d# d
7.KVM虚拟机克隆3 y  {) y7 U) j( T& w
( h7 n* i1 x+ K2 l7 @  _1 o* p3 e
[root@KVM ~]# virsh-clone --auto-clone -o centos747 S8 _3 u0 }% i% p
# a7 F  K# f( W  c" z# f9 t

3 N3 Y5 \6 m  n+ x, }. T, `& M+ s: \. a
8.KVM虚拟机冷迁移
+ Z: C- j6 g: w; ?' Z) c
8 B: T+ U3 T8 P1 j% [
/ E4 L! A0 ~4 \* c  t9 [# i& i( b; t% g+ H- \5 h
8.1在KVM02中安装kvm组件  c& P+ z7 k+ V/ c

) n% z3 ]. w! `! G* }6 @[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*. b" i1 U5 z/ J3 P
5 Y+ {1 u, ]# R  F& q; U' u' m
1 t7 B( D' z7 Z5 y0 j1 I

1 t  z! f7 [% v" r: Y; Y% A8.2配置桥接网络% z' A; D& m4 E% A" q% O) E
: b$ O" v; T2 V9 ^4 }
[root@KVM 02~]# virsh iface-bridge eth0 br0: q, q# }; o# a8 d* Y
. B) R$ H) v/ i" B' v; N$ W
8 e4 h6 g$ {; x) j- p$ y  x& _3 {
6 s% K& n$ H7 Z2 }. z, p4 X
8.3KVM主机将虚拟机关闭,导出配置文件
+ i9 K8 q- m3 y+ }: U& O/ F/ m, ]9 H  z- o
[root@KVM ~]# virsh shutdown centos74
" d, s6 a+ O- o/ X# _( @4 Q% U* W" U* |7 P& Y  b. D8 C; @
[root@KVM ~]# virsh dumpxml centos74 > centos74.xml
1 a4 F/ y: h6 [7 E
8 w. E& Q6 A  O7 m* G
7 _7 U; H$ H# T4 M3 U2 i* j, G7 m) f: @& O% h
8.4将虚拟文件传输到KVM02上4 |6 G: g" P1 v/ ?  G- x3 J; s) k
0 P+ s3 j& ^8 O4 j+ O$ N
[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data" F- B, U3 ~3 N+ ?
$ _7 R1 U% D2 q4 G. [" @. d
' z/ {( h$ z( u# `

- \3 J0 a# l' h. r% t8.5KVM02主机导入文件
$ s# O2 p9 V- V; o" U5 Q
2 h9 ~! H' j/ ^  ^' E* c$ U[root@KVM02 ~]# virsh define centos74.xml
; D7 i. P! H7 }" }
7 s+ |5 G1 ]- e2 U+ x
  H% @# G! h, f3 k! D* n2 ~* b  Q5 k3 a/ @7 N9 V
8.6启动虚拟机- ?1 m1 L" p1 K% A* z

9 `0 g1 K* `2 |! l& h# c[root@KVM02 ~]# virsh start centos74
: S; e  r& s7 W6 K, h! }7 t6 J0 C) }6 w# m+ J
7 G' Y) ]6 m6 z& }# ^. W
6 O' y5 o  u: k
9.KVM虚拟机热迁移' t/ [! s# g8 t3 E

, L; ^  f) @! W* a. V+ K1 |
) D2 i* J6 _$ k7 \+ ?2 f! i  B( F5 ?' A8 ?
9.1KVM虚拟机热迁移的核心
: X+ h9 O6 R# c* B  y/ I% p( I: e5 w& ?: X" C6 H9 ~
   共享存储。这里使用NFS共享存储(详情参考:https://blog.51cto.com/13520761/20877208 S/ d9 L9 b. N$ B1 F) S
% q4 d3 `' R. |. l1 O. x& A, T0 A
( q1 t4 ^/ J# j5 _- D

) t/ D1 r" g9 H$ L" Y/ s" J4 S2 n" P9.1安装virt-manager所需桌面及vnc-server1 L& y! B* m# ]( J$ y0 t/ W# E

  z$ @5 P7 M+ e7 f[root@KVM ~]# yum groupinstall "GNOME Desktop" -y9 g' t3 Y. E0 H

# m  W4 U  K  h4 i) i% s9 K, {9 S[root@KVM ~]# yum install -y tigervnc-server
5 O0 F8 V$ ?. T* m7 ^( }8 p8 l& X7 e* _
[root@KVM ~]#  yum install -y opnssh-askpass
. E: C+ E! {' D! o6 v3 X2 C# h
1 X8 y1 ?0 R5 S0 F; f7 Z1 [2 f$ o  {, w: p

4 |0 f* w1 @6 S: U. c, [4 v9.2复制vnc配置文件
; P' }# y2 ?7 |# F. z2 D3 [5 t5 j1 c  l7 l4 B6 H1 J3 b1 l
[root@KVM ~]# cp /usr/lib/systemd/system/vncserver@.server  /usr/lib/systemd/system/vncserver@\:1.server! ?/ K4 p- g: _4 y

# s5 O+ ^5 ]( E: [0 h% E
5 @& f! G1 Y- e) W# _3 ^
" h9 e2 j" o4 E; f; E9.3修改配置文件
9 x9 U0 ?+ `+ B3 I3 B4 t2 o# x7 |! f4 h# W- g* l( w2 B
[root@KVM ~]# % t, Z3 ]1 }% I! i

# n& L- U0 a. W% jegrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service
; K: L. t: u0 C0 M
# x6 H7 P# q, G5 X[Unit]6 h. l6 `/ w6 Z, W4 @
8 v( h/ X8 d1 m+ V! ]
Description=Remote desktop service (VNC)# ^# e" ?: y1 U" Y

+ s, K# t3 ^9 D  l, P3 i' E8 oAfter=syslog.target network.target8 ^4 v6 S% {3 [- z9 a
+ w; X$ `, U" @& _+ Z
[Service]! C1 A  N3 T1 i4 {- V4 t

/ z$ ?9 s, w$ H" cType=forking
" G' W3 B$ G" Q& O
4 y8 B8 s5 ]" f4 h" X6 TUser=root; ?  Q3 D8 c0 z' Z: q

1 C7 ?  I$ b% f: W$ m: X% `5 GExecStartPre=-/usr/bin/vncserver -kill %i
( Y5 u! e$ l$ I) I& J
. a# I% k- a4 z1 C0 |' kExecStart=/usr/bin/vncserver %i& u1 h' S. v* j. J7 N5 E" d. Y6 Z

; e% Z& ^: {1 z  ]  Q0 \0 sPIDFile=/root/.vnc/%H%i.pid
# B: ^7 }3 [- ?
& i1 ~0 c! e' h) U7 {& ]ExecStop=-/usr/bin/vncserver -kill %i. V/ U# q: x# l6 E/ l1 K/ f
+ d. L1 [+ R& ]8 r/ d) C9 o
[Install]
/ L% g3 A. K' P* L
+ W9 D/ H  z+ P$ |WantedBy=multi-user.target
6 H+ A8 o4 P3 a5 O
/ g" `, u* d6 ~! j
9 h7 q; O7 K; N5 X- P, o( q* }3 E' d4 M+ Z5 Y$ P% O0 y
9.4设置vnc连接时的密码
; X8 |/ F- p% n
+ Q7 g' p" j; I# Q, m# j[root@KVM ~]# vncpasswd) e: @5 H7 ?8 V6 x7 q
: R2 Q4 G/ ]4 W" X& s2 s, G

; w  f2 f" Z+ p6 s6 n3 o
. c0 l  r$ k" _2 f! e9.5启动vnc服务3 x( n! I+ U0 e( m
7 m$ x+ q& h; K4 S
[root@KVM ~]# systemctl start vncserver@\:1.services- Q" P7 z8 O& Q! i, x, H4 w* a
6 Z" N8 A  C3 `' E1 |& U& ~
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:50 , Processed in 0.071804 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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