找回密码
 注册
查看: 4413|回复: 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 | 显示全部楼层
安装软件包
0 g" e* y: J! l$ E# yum install qemu-kvm libvirt virt-install virt-manager3 ?' g- I8 i# K( F: y" k( f" U; C. x
在这条命令中我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包,下面了解一下这4个包到底是干啥的。3 \- J* h7 V8 j8 }
qemu-kvm$ [, I& }7 S6 Q' o' a8 f: \/ J
该软件包主要包含KVM内核模块和适用于KVM的QEMU模拟器。KVM模块负责CPU和内存的调度,QEMU负责虚拟机I/O设备的模拟。
; ^# q" {; F: O$ j  E4 h+ \依赖包qemu-img
" p7 D5 J+ t+ S2 ^* i主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。
7 P, Y- o) X4 Olibvirt
3 f+ p- o8 ?! _! x, u提供Hypervisor和虚拟机的管理功能。
  h% Z4 M4 T6 t9 E* f) ?- c3 g依赖包libvirt-client/ n" q* [7 `) b. N0 z
KVM客户端命令行管理工具virsh,负责虚拟机的启动、停止和管理等。
4 d' C! ?( ~2 P0 I依赖包libvirt-daemon
* q. q0 G8 F5 h" Z' flibvirtd守护进程,作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁。
0 I5 W1 P# u1 i- A  a$ b依赖包libvirt-daemon-driver-xxx3 A: I* O0 @3 U7 d: X/ K" l1 h$ a
从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器,网络,存储等)间的接口。' A8 K' p' O# I; T
依赖包bridge-utils
8 B: d& |' ^. K" x' A6 Q+ J5 U网桥管理工具包,负责桥接网络的创建、配置和管理等工作。% h6 }) E- W5 X( `" a2 Q
virt-install8 ^. F8 \9 A# J& P
创建和克隆虚拟机的命令行工具包。
8 ^2 i* M2 {1 \1 x8 Avirt-manager
# j: ]3 S) p" S1 _) M9 v: e图形界面的KVM管理工具。7 B! R+ F% I, ?6 S7 q
当然安装KVM的依赖包远不止这些,由于本人水平有限,所以仅挑了一些跟KVM架构有主要联系的软件包进行描述。& d6 ~& D( Y/ e& Q
后续配置激活并启动libvirtd服务: H5 o8 b. N) s8 _6 J/ A
# systemctl enable libvirtd
/ b) ?0 x, V( l. }9 w  X: d5 g, y# systemctl start libvirtd

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2019-11-19 14:27:55 | 显示全部楼层
4.KVM的相关命令
: y! ?7 X+ ^8 ^5 f. W; d
. Y+ ~" O, m( x# g  V' U- j, G+ [5 x

* r9 |& J& \" v4.1退出虚拟机
  R( y. f1 p9 l% c, h5 w2 S3 H: \& N4 y+ }! W# A) E, y+ q
ctrl + ]# ^  S$ G, J7 f: Q7 F& Q% {0 f) J
- W" u. ^# M: p. i& m! r! s
: X6 _7 ]% w: J( W
. P% c- |% A! ]. b2 b/ x
4.2进入虚拟机
5 ^  g$ \. D; B4 A& D8 P6 u/ g6 n& ^
4 k& n+ H% [9 e- S8 f2 _& U* W, Yvirsh console centos74
4 T% ?7 M' B" |" z) F* I) [4 Y! T& e/ {: ]1 |

: F' z6 A1 F% ?- ~. J: n
6 a; t8 t% k* D) V4.3查看虚拟机的及状态
3 a$ s/ n4 f& ~; W$ R; _$ u4 f
$ W* P) W7 g. S5 a* Dvirsh list5 I: J% [! t0 `2 u6 j/ S
5 B6 q" |+ H1 t- M: d  b# w
virsh list --all/ F  c0 F/ c/ @" z" K% }

4 Q4 t+ I2 N4 y- L% u( e- l( B* y" v& B$ j

. D$ B; q2 ]7 ]0 P. ~5 J4.4启动虚拟机
% E0 O1 `, W" A. w4 |. G' `- B" ^: I4 A2 w* p- I
virsh start centos74
/ I7 r* W1 p4 k% B2 n- Z7 A9 S
5 k. T9 @% }3 X( c
# y" {% }" N9 T4 a! [. v+ ^5 y# y3 y
4.5关闭虚拟机
% m, Q6 a/ f; |5 B2 V3 }' d/ j" E# |4 H5 g
virsh shutdown centos74
, ?4 d' v: ]& m! S- w2 e" l; B, j. R8 P* \/ @9 j% l
  i; d- B3 C( `6 V4 {
4 n) v. i% ~) k" d/ U
4.6强制关闭虚拟机% k3 H/ B; G% S( B! @/ Q& v5 a

7 C# q1 ]4 y: q) P& s2 e4 ovirsh destroy centos749 j* f# I' G- ]. A+ {! M& v
& ^% z' N. C7 K2 c/ ?+ ~

! O8 K* z( j6 n, A5 |, I9 F& G- c6 n6 O6 p& r$ [
4.7删除虚拟机: k' ]' {- M+ q+ S& x( S

$ v1 a3 t" W* Pvirsh shutdown centos74  Q* O5 U$ Q, F, j8 t
7 ~9 N. C6 e& N
virsh undefine centos74
# H' I; d! w$ |  T! q0 {
) ?- d) {: `% q" o. n7 z3 \
* B. G3 u' `8 T+ M: q4 a
! U" H( k4 G: r) W9 m5.磁盘管理' A/ O+ E! _3 y7 K# w' U

- ^+ a% O, `1 C0 E% X4 R7 H& A) K; i! C5 W4 t! s- l
$ [+ G, p. ?, V* W1 n4 ^' f
5.1查看当前虚拟机硬盘信息/ t: y" K, z) J
: H+ }! A! x+ u& D$ Q
[root@KVM ~]# qemu-img info /var/linux/images/centos74.img 9 f$ L9 ?2 R% H3 E

  H* p# b$ l1 c0 w/ uimage: /var/linux/images/centos74.img1 m# |7 T2 Q: E3 i( v- N2 r
. o: T0 k7 U. [  r  \- c9 @
file format: qcow2/ Q  z9 e* G, x, m

* E/ |# A2 S( h1 V* ]! q4 p: S6 B5 _: cvirtual size: 20G (21474836480 bytes)+ R: i' k: m& b& k
' o7 \( h  [' r1 `
disk size: 1.2G
6 G5 `( E2 e9 Q, O# c
3 l' S& c* N. j; `0 zcluster_size: 65536- ?8 F  E7 _8 w# }$ N6 d. j
! _% q  N5 p' W# C0 o
Format specific information:5 [  E+ R$ A1 M7 E; q, a
/ i, O( u1 M9 Y1 B$ c/ Z2 ^7 V& B0 e/ p
    compat: 1.1
. a' f0 \5 B$ K8 J( P# S+ z. q1 v, C9 [, A# |  g
    lazy refcounts: false
* i6 Z8 ?1 \- ^
5 ^/ e( X! r" ^, r    refcount bits: 16
* d( J0 r: f0 ^& S& w; w& \! ~- X" }3 g, v8 G- o( O! |( ~
    corrupt: false. j/ x% @7 a" D  N) w
! \7 B- @$ Y8 z7 ]* E

! h3 c  v* k" ^% h: Z1 g
" A* g4 `& \; I6 s5.2转换磁盘格式(qcow2转换为raw)
/ U8 s+ x4 L- [0 _/ X$ U  n/ b% C( ]4 y8 G6 c
[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img 6 ^0 m. n7 u5 D+ k0 X" M9 c8 B9 ]
+ z4 n1 c* v9 R$ |
1 N+ @) k! e0 {7 k$ F& q8 W& I

& w  s  X5 O8 w' c% \; D5 S5.3KVM虚拟机添加硬盘
' k' l+ L0 ^( }) O
4 R: S. x; d" Q% w* ~) z  j) N) C; d) U( ~! E

9 t) O4 O, m9 x2 `5.3.1创建一块新的硬盘3 S5 n" U  D& M8 s
1 N& d: ?1 R/ m! t: q' }; E, J1 ?
[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G
; a2 i2 Q6 g$ k/ a) d. q3 B9 E6 C  w6 h% x! r& Q" ]' [1 I
2 ]' I/ e' ?, l7 f7 h
0 ~! F! e& P" g# I  b2 A/ Z3 i
5.3.2查看创建的硬盘信息
* _. }* U9 x3 y8 q, p# d! |; z8 s; T* `; ]) t
[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2   r; o/ e9 s9 c) H
9 {- e" G9 i, Y2 D
image: /var/linux/images/centos74-add.qcow2
9 R& U- e1 S% e8 y, D: J8 `: q# Q, b, ^; l% |
file format: qcow2
0 l" v. _$ m. l5 P" b0 g5 b+ v+ U; @$ P5 J
virtual size: 2.0G (2147483648 bytes)9 s$ b/ P3 ^, B% O7 n0 A! Z9 [
# M, m3 q; G! s' C1 @; K
disk size: 196K
7 K3 K7 }  d! U: t% |% T5 ^# @5 q, l- r3 K8 C
cluster_size: 655366 F: }* _" e3 ^. k2 h
7 A2 n; ]+ i" ]4 W7 F
Format specific information:* O: o4 X: e+ b( n$ w! H9 Y

9 @; h/ I: }3 M/ E6 h    compat: 1.1
  r" W8 C: f# J. Z* r' v3 Q. U' p" e3 ^- C7 j
    lazy refcounts: false
' v; \7 L9 t  q0 p9 r2 I6 E5 \$ g' A: @6 R2 P/ M
    refcount bits: 16
- C( V' K2 z% ^( S- j
5 S% H5 Q' f/ D3 l9 ], p4 R& l    corrupt: false
$ J1 z* k5 U. t
- C6 z1 [- `) F
( o$ ?, G* i# B% m# l7 i; X6 m; A: }% q# k. Y4 x
5.3.3为虚拟机添加硬盘' R. l9 D; A6 ^! v$ z, |7 z( I

% B8 R6 S& q3 h' q, S, p[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2
/ M5 v5 P% Y! ^' b, p+ A" H1 U. X
Disk attached successfully5 h! ^3 m7 c3 x. d: B9 p
3 L3 U1 D  P9 u5 P
  8 G0 {1 D" X; m# U0 K2 B; B1 E' r

' ~$ v& K" z! [+ u说明:vdb    第二块硬盘
1 X6 N5 ]# E( y7 B
6 a$ ], @* ~, J, y" {6 r+ H) x+ A          --live    热添加& t" t( g2 ~$ O: Q3 l2 d5 @
1 I/ S3 ]3 s5 j0 o% I* d
          --sudbriver    驱动类型
8 s1 z) I* n4 {& M; Q" S7 ]4 L2 Y% D, ?  ]9 O, K! O
          detach-disk    分离磁盘设备
8 J4 d5 d* n3 S
5 u, F* K3 n( @          attach-disk     附加磁盘设备
6 v( L! N8 Z8 \) x5 e: E0 n+ e7 M' n# J. X
. R: s' f2 L& Y2 E# f7 p8 ?0 n2 m0 t
7 S/ Y* O- S0 ~! U  v: r
5.4格式化磁盘(在KVM虚拟机中操作)
# ~4 f& ~7 ]! I4 e! w( E
% K: Z7 _: p7 M+ B9 u/ s; S[root@centos74 ~]# mkfs.xfs /dev/vdb
, v* O# U* ], ^8 `' H6 p( @
! K- Y# i1 z4 t" O* P! x& m" S  U$ y; O, u. \* `) {  t9 o
8 U. {2 G4 O& F% h5 G( Q6 u- j9 L
6.快照管理" |. ?9 z! P: m4 A' j: V; M' ~" o

* S9 l" l8 c  [% Y' x  Y
+ @" ^1 q1 ~9 u$ n6 W$ j
# B0 O! \+ H4 |( E, A6.1创建快照
  P8 B! u& T4 A6 M. }- X
: E( M1 a# r7 k* K/ m[root@KVM ~]# virsh snapshot-create cnetos74! f" t4 P3 @2 B) E

; \- h/ N9 L8 \/ j/ ?
7 x( N) [, O* D# x/ Z6 ?  w  a" y! H
6.2查看主机快照列表
3 _3 @, ?. z3 ?; L" j8 }/ x  p1 y! {$ L$ D6 ~
[root@KVM ~]#  virsh snapshot-list centos74
! v: t& p/ ?: x' R1 e3 ~
* N/ a: K5 p: p
8 L9 O( ^9 X, N$ e$ R
( Z5 K% d/ A9 y+ N5 q6.3查看快照信息
6 `/ I' t( @/ H: f1 R. b5 r
; @. q% D2 n! F1 H[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756
5 w( Z) g7 q( h" d. C* M/ n/ _' B  I- e2 C9 [

% z6 }* O& ?5 y2 n0 g
7 o" X8 r6 O: D, O$ _6.4还原快照
* z3 E9 z& I' e; r5 R: r6 i* E# O; Z: i6 Y. h
[root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756
( U9 G6 K1 H$ V) Z. ]0 A
( x) ^! `0 p3 \
: ]% ^- J, m0 J" K/ N( O* g' T6 ~; k) q" F
6.5删除快照$ O3 f0 G  |. w- U+ a2 @& b( j- V

7 a- `$ z7 J5 o[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756
& K9 x. O! b: E# S: d1 \) S& V/ F* T5 z
* j* S6 A& R4 d4 @
  R: a0 |* ?4 G1 a; X5 A" `" O6 n% c# N
7.KVM虚拟机克隆: p2 r* A# _5 W2 q9 e! G7 q) S

6 ^5 h: {. }3 ?, w3 {[root@KVM ~]# virsh-clone --auto-clone -o centos74
. i# H! G  K$ t" ^7 n( S, q
* X1 k+ s# I2 l/ D2 v. @
  a$ v9 O. s. ]9 [0 h: W" a- s- |
- y. M! g6 o4 s! n, R$ Q% F* L! G# g& H8.KVM虚拟机冷迁移
$ @, G, O$ A4 r% j, \3 C& u) ~+ n1 F4 Z; O0 k2 c- {
+ L0 I3 b$ P! [; g( K" z  |" S

" p/ w! L' h0 M4 M( {8.1在KVM02中安装kvm组件
& `0 W. N+ M% _: X/ C& N2 L
9 n0 Q" n* t1 [/ m0 F[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*
! [4 j/ |9 @9 J2 H8 H1 J( U
! m2 y  f) t' e; f* _3 y7 i0 R! F) ^# l) F% h
) I  i: }3 \- v! Z+ E
8.2配置桥接网络
! H: ^& N( [" k6 E0 L0 A, z2 ~. E3 |$ o- T  B& d9 a  A* G
[root@KVM 02~]# virsh iface-bridge eth0 br0
6 z2 s) ?% F) t- N  W' ~% ~) ?5 V5 F' B" S& B! \  r
" g! j  `' v1 o

" w5 ~7 r- d, ]/ c8.3KVM主机将虚拟机关闭,导出配置文件; p; ^# ]& X# k7 d
: X( E% P6 Y2 O' O  x% z
[root@KVM ~]# virsh shutdown centos74
$ E* k$ \0 {' X) s! H- F
8 ~8 w* Z) \, `- o5 G9 M[root@KVM ~]# virsh dumpxml centos74 > centos74.xml: Q' {  X) Y& z% d0 T
8 Q) F# ~! B% k, d- \" I. i
+ g+ z4 @1 ]1 h, Q4 ^  ~' k

' W  L: N" j+ p8.4将虚拟文件传输到KVM02上( P/ L0 F( n! `' ^

7 p) @; [& {0 Y) f4 L[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data" A: W9 A# w! d8 l
8 v9 F  _) O$ Q% `0 L
/ Y! |1 c3 p. K! {2 M
8 @+ b6 }) Z9 w  e5 E( U
8.5KVM02主机导入文件
- Q) W0 j9 ?/ t+ a" ~' p
7 D9 v0 d% F# K+ [8 ]$ A[root@KVM02 ~]# virsh define centos74.xml
- \# c% w9 y& {( H0 D, N6 w7 |6 i* a6 l' ?& }% z# e) }4 j% `! Z

$ w. L: z4 ~! x8 a$ [8 S+ r* s  \* T. k; V; ?' \6 Q
8.6启动虚拟机& p/ K4 o* h% `; q& Y

3 P. I" U; L8 k, d8 S[root@KVM02 ~]# virsh start centos74
+ C& q% ^7 H2 g- k# b- Y$ Q( Y( ^( q5 K4 K# ^' J( \  j
; m/ I2 U. h& s- n4 J

9 Y1 r% W4 [/ u. Y, r9.KVM虚拟机热迁移/ p1 [  m- X% M0 F; Y6 D- L. R

/ s- n4 q9 T% {4 T+ ^/ |0 J8 n2 s  c2 s
+ [! r' j, S( Q% R
9.1KVM虚拟机热迁移的核心, @0 s7 O# v3 G
9 W; y; V& I+ r
   共享存储。这里使用NFS共享存储(详情参考:https://blog.51cto.com/13520761/2087720
. Y( f; z" G6 L4 D0 z) s5 l" b
6 C9 H) g+ P, ]  u& D
0 e: B( A7 e, U6 V$ Z( i: e2 b% J) J/ }0 P
9.1安装virt-manager所需桌面及vnc-server
+ _8 V$ I0 q5 s" S' y7 V7 V. V4 f" ?0 c
[root@KVM ~]# yum groupinstall "GNOME Desktop" -y6 {! Z6 o& d# ]& t, f

! P: Y1 S* Z( Y) X4 x[root@KVM ~]# yum install -y tigervnc-server
/ \  w0 H1 `. ?& C7 y* Z6 ^
: V9 G, }9 O7 M" `8 {4 m, l  w[root@KVM ~]#  yum install -y opnssh-askpass2 \, F3 q& [2 |6 A
+ S$ w( S3 x3 w. z6 A; h

/ }6 F4 V  ?; Z8 y; y+ e9 U2 k6 S, q$ r5 v: t6 _& Y9 c1 M7 @
9.2复制vnc配置文件
1 D% f0 L9 q0 V0 g
7 @# s2 F8 _! I[root@KVM ~]# cp /usr/lib/systemd/system/vncserver@.server  /usr/lib/systemd/system/vncserver@\:1.server% k+ }5 V7 b9 _0 G$ ?" k

1 H- ]3 k2 ?" k$ M4 y' q' a& z
6 U' I- }( E  U5 S
" ~; I* x' e/ U- u6 ?9.3修改配置文件+ K7 f9 [0 ?+ y  g& x  h, D
2 d8 p3 V) |8 K9 @, \9 U- E
[root@KVM ~]#
1 Q. d' D4 g4 r) [# \0 D
& f9 R. M2 ~" N; X- U( n' Hegrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service
# N1 g4 K" m. Z* @1 I6 }4 h! N1 j# S; b% o
[Unit]2 x" g. V& e. X
1 T- |+ C. ?( z3 z! R& i
Description=Remote desktop service (VNC)" E) d1 [- z# W6 l
, Z# K0 w/ }, J7 l
After=syslog.target network.target' |! z, E$ L& k" K# Z6 d4 C

, e4 G: R& Y' \[Service]
0 b( E% b& K# N; b
- p$ {* Y: w; |. B0 P- ~Type=forking, h8 ~! o8 c; p3 r
5 D3 g6 s0 e% w/ E5 o+ F% j
User=root
% G$ m# _1 V1 H, }. ^! X" Y9 E! C  |' E+ t& w/ m- i
ExecStartPre=-/usr/bin/vncserver -kill %i
$ Y& Y) o; E; G, u/ a8 [
! B1 \; `, H, |' w: cExecStart=/usr/bin/vncserver %i
2 |) P' T5 p- L" a9 x2 N1 t0 ?" A( q3 {5 [' W: h' C
PIDFile=/root/.vnc/%H%i.pid" t' ]) Q+ K6 ]6 u& T' y) X6 t( R

  X/ w( q/ B9 @3 B* y1 F" t% jExecStop=-/usr/bin/vncserver -kill %i( Z4 T9 u/ A3 y0 M  Q. J9 B
$ ~, |; A& P* H; z( e
[Install]
/ j* x$ y, r& D4 r6 o& x7 ^0 ^5 l: n( u
WantedBy=multi-user.target: y. x. I" V8 i9 \. v6 K: Q
$ h* H1 u$ U  X
& h! V6 x# a8 |9 a, O+ P3 ?' \
6 K) U8 }3 k9 K8 S
9.4设置vnc连接时的密码
  t* U; q+ _% S8 ]
6 V% P0 Z! f$ H9 B[root@KVM ~]# vncpasswd9 X. \8 D* |8 ^5 ^' T
8 F) W* @8 {" `6 P, y

- z" Y! T( J& `
6 M! ]/ H$ v; A. X% [, i- D9.5启动vnc服务7 I/ ^! F, Y! ?: ?& \# \- v' v0 K$ m
* m+ ?% h. n, q9 `
[root@KVM ~]# systemctl start vncserver@\:1.services' ?3 J& ~3 C0 X. ?! S

& W! U$ N4 k, e, o; Z( {0 J7 U# s

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2019-11-19 14:28:17 | 显示全部楼层
4.KVM的相关命令. C/ Y- l$ ^! w) x; b- e; a2 N0 k' ^
% Z- g4 F% w2 Y3 H1 |

) B0 L4 R0 r- O6 |0 k/ ^1 e3 u  @2 ?6 I3 E
4.1退出虚拟机
  {9 o) @; w" O1 Z( Z6 B4 s) r
- Q* P$ a& {% z) Dctrl + ]3 a5 B; _/ [& G9 J$ R8 g! |2 x

7 q% v: L5 ]4 K* M
$ }  S( A. M2 j. l: [' o$ ~
) @- B2 ]( W: |- ]4.2进入虚拟机3 \5 b) b' B& I' N2 I

9 H8 R0 I1 g* T. E1 Vvirsh console centos74( t4 z# L4 F: Q: [

/ n" c6 ^' Z: o3 f  |) q
+ y+ U% _, {: b- y+ {$ w0 `) M" q/ r" S( H" T- _
4.3查看虚拟机的及状态. w. M" k2 |; w+ Z, g/ f
+ }; ~) l2 |$ W, j- @" Q& j! B% z
virsh list
, q% F) o& ~8 P; p& e: g# ?6 m/ I/ C+ y% K
virsh list --all
6 `* Z1 [0 C3 z( W1 W( p$ ?0 v: Z% C
$ T7 y% ?+ `4 ]) g) Q! j% V9 [6 C
  N& w$ F/ A( E3 B4 I
4.4启动虚拟机
! E: h  E; I; m1 C' Z
, w2 z) ]5 }/ z! {2 D3 b+ Fvirsh start centos74* y8 H% ]# U+ G( O9 t# W. O
% n9 U' w/ r/ _
- \7 q) y+ s, F
0 \0 T/ C) r, x7 f7 Y' w
4.5关闭虚拟机
  A" q0 E" o+ b& [/ _2 w( s( S4 z  I0 @# H! s* Z
virsh shutdown centos74- d: I  h6 |. H& `/ Q
  y$ r" ]& }. v

# s/ L5 m7 R0 |! O" f% L- O+ q  |7 T& w# H8 p  Q: V* I2 G; u
4.6强制关闭虚拟机, Y) Q* U5 j0 d, b  P4 M) K7 W# E
# O3 M* L& I2 f9 s% ~
virsh destroy centos74
; w/ l, t) e, N: G5 a* J; g! X" x3 C: R# }

- H. n- f5 f0 f* ~& \  p/ F
5 _# H3 ^; v1 ~4 E0 A+ o/ L$ n4.7删除虚拟机
* V6 L0 c! Y! Q/ z5 s  w3 J: Y9 V# d
virsh shutdown centos742 a) G) |$ ?( e3 y
% ~% H+ v9 A% }' P0 d& t
virsh undefine centos74
) E( r5 o- s: g2 I3 E% n* W: W! {/ F% h. [8 O( w8 S
1 u6 Z! `) }& a1 R" z& w# i* d
# D9 O# q; I! C9 B
5.磁盘管理! C2 X4 G: r6 \: L4 }
8 W0 K, i3 C# t! m! J/ u

: ^8 t1 D9 n$ W6 w9 |) A9 a2 `( m
5.1查看当前虚拟机硬盘信息
7 i' _: t2 i' b: _
3 w" ~' d; P8 P9 k) e) N5 R. m[root@KVM ~]# qemu-img info /var/linux/images/centos74.img
/ r7 b5 Z7 C, c
" U# d+ O4 f9 T$ simage: /var/linux/images/centos74.img; o# v' m' y# W% m0 Q% w# i

0 d! j9 I* t! R( Q: yfile format: qcow22 ]. M; g# D, i1 r& g8 h

# u/ B, p/ C6 B. wvirtual size: 20G (21474836480 bytes)
. e- p  E% l" }) e/ `( T7 C
0 A, E4 [. K; |disk size: 1.2G
" S+ \& k3 U( {& k* L0 @, I5 G1 J
# s9 S: k1 _2 p( G' r+ ocluster_size: 65536
& {: r: @! j, D, B1 v' H! g$ }! m. h3 N' H/ ]% u
Format specific information:+ H  G9 A7 Z4 a0 t7 q' i
8 u8 _$ y5 U% s7 t4 b. k
    compat: 1.1
% p% ]# c% H! A7 H, K" l7 U6 L4 V, W  d5 t! o
    lazy refcounts: false$ P9 E; @7 R% D, `% ?4 t: K
# u5 C$ B$ _. P: _* K4 F9 `
    refcount bits: 16
' C3 @/ ]4 U4 l8 k; u( _- o- U+ b7 [5 V$ \+ T/ }, j
    corrupt: false8 ?3 v1 L7 g% u) R0 O; l4 w, k
% M4 |( |% t, ]# |& L+ J! E
* R& N: r6 I7 R

$ B4 z0 t6 l& ^/ t4 [. ]" y5.2转换磁盘格式(qcow2转换为raw)
& e+ u5 y2 A4 l- ^$ d8 V7 o( \
  D/ ~% s, T8 b. u/ l[root@KVM ~]# qemu-img convert -f qcow2 -O raw /var/linux/images/centos74.img /var/linux/images/centos74.img 0 e2 Q8 v: E9 u0 j* h
( |# L+ n" }) z! p. Y0 e0 C% G

% a5 w) s7 _4 Z+ B
" m, s& T. W( q! O0 g* U5 Q5 A5.3KVM虚拟机添加硬盘
, ?* r( `. f. j4 X* @5 O
# c' |: [2 B! i1 t" D- U4 X( Q6 ?+ F8 }% O% y- u& K

" b6 ]+ ^6 Y3 C% P0 I0 d1 R: ^  ?5.3.1创建一块新的硬盘- l) f- n% {( ^+ B% i: H3 {

3 F$ u4 J# M, Y) v1 C0 e! y[root@KVM ~]# qemu-img create -f qcow2 /var/linux/images/centos74-add.qcow2 2G! B% W- `; I# A" U% c6 H& A

* ^  ^3 K0 v+ \9 g+ F1 ]9 v% i4 [8 L5 e2 g

# l" i$ M+ H7 E+ m8 ?5.3.2查看创建的硬盘信息
  I3 O1 b0 |* F. n1 P6 d: z- s9 c" B" G  H
[root@KVM ~]# qemu-img info /var/linux/images/centos74-add.qcow2
" b4 ~2 f4 G8 A; d
: K  v' E8 @% e# h2 himage: /var/linux/images/centos74-add.qcow2' v, @  O; i3 k! P& Z
) ?: ]- R: f; T
file format: qcow2
- D1 f$ Q6 q# N0 ~3 m, o! G! G+ }* C- w1 o
virtual size: 2.0G (2147483648 bytes), ^- \* V, D5 b& t9 F, B

: W$ X+ h8 ?: M2 @* J. wdisk size: 196K; ]( d' b1 O/ o1 J: i+ z
8 @5 A9 U( H! I" Q0 M
cluster_size: 65536
4 [# M8 I5 J6 B$ _2 L7 ]6 t7 G2 y6 g' o* H) ]& c0 t0 C' C6 R
Format specific information:6 P# T! z; S- z- B* _

7 I/ T7 A1 B1 g. X    compat: 1.13 ~* o; J# N* |! ~/ U

0 v) g0 r# l$ u; h; a9 ?    lazy refcounts: false9 i% H! k, @. P0 E4 g

1 p' r2 `# B7 e& p0 \# P! m3 u& `    refcount bits: 16( }, H  ^5 ]$ C  T  j$ w

& F7 T" c6 U# u% S7 H    corrupt: false
% C: a" S! G) r
2 B/ ~6 U( B; d1 e0 _2 ?% w; M+ Y& u

# U5 {6 T7 d! V6 @% `+ n5.3.3为虚拟机添加硬盘/ W6 D4 f8 ~$ ~! ~/ n  \+ @( f

3 j; K5 d/ _" q5 T0 p$ w; h[root@KVM ~]# virsh attach-disk centos74 /var/linux/images/centos74-add.qcow2 vdb --live --cache=none --subdriver=qcow2
' W1 v* |% T4 v2 t( k5 Z' A
/ a) d/ e& S, ~! gDisk attached successfully4 h1 V7 [/ y1 l  v) _
% R3 C9 `1 W8 O: s
  
7 I( y* B  ~% J, s' T8 ]$ F) O! a7 W
说明:vdb    第二块硬盘, |7 ?5 R0 S0 x0 U' l( ?, T5 i
, V0 Z- N+ n2 K# u- k7 S
          --live    热添加2 L3 H9 R9 `% {% t6 r) D
7 V+ x% ~3 p9 Z( u% L
          --sudbriver    驱动类型
5 L, w8 K' d4 U: L/ X0 y
* P% H2 x" H+ K( v5 p8 x) G3 W          detach-disk    分离磁盘设备+ p2 V% }$ M( G  r7 J5 C  h

' {5 I: m) D' ^# [9 k5 m          attach-disk     附加磁盘设备. [, P8 M, h4 r
( a& O5 }2 X* F, s7 Z4 T: u

/ `- c+ y' V9 o
4 v" O! |$ t* U  Y7 Z5.4格式化磁盘(在KVM虚拟机中操作)* p$ {' b- M0 d8 Q! }
$ w, {; z, @  J) d
[root@centos74 ~]# mkfs.xfs /dev/vdb# p( q3 t4 M- W! M2 _/ P# t9 X

" h6 ^" @' q' K4 x6 W4 m% q, b! h0 B, T# K0 }7 J9 c- a

0 H# F4 J; A4 Q! u$ H) S$ r6.快照管理
. t, o( x& O  M& i4 K7 G* p' R$ a7 P1 R# x# Q5 C& Q

6 F. b' y1 T, D- Z  x
3 p8 @! F5 L* p3 J6 ~  @5 g6 m6.1创建快照
! c% F! @) K+ J% O
' @# I0 q1 i0 A, e# @[root@KVM ~]# virsh snapshot-create cnetos74- o8 p7 ?* g- o' K" s
7 a5 ]4 z0 i+ ]; E, S
" y, V( R3 c  l* k
1 t" @! D- _; W& W3 N4 f/ F
6.2查看主机快照列表$ ?+ ~; L. E; Z! a
1 h+ \4 l6 _- d2 x5 n1 E. T
[root@KVM ~]#  virsh snapshot-list centos742 r) Z: e/ [% v0 G
% k6 _# o; q) |1 i2 p$ S6 L
: y7 ^& L% v; `- r, p

$ _1 @" F, S1 j) i/ b5 Y6 g. ]6.3查看快照信息
; M7 a6 w* v$ z. ~7 [( Q: H6 [: G. r  U& s% e( Q, q
[root@KVM ~]# virsh snapshot-info centos74 --spanshotname 1516607756
5 n! ~6 p6 Y* k; C
% {4 ~) r- W' C% m* U7 r- w) I- }/ m1 Y# {
7 F# L9 c/ ]5 L1 V! S: K
6.4还原快照
1 q" R3 H# a$ \$ L& A; C
* h( a+ N5 l% ?& {2 Y# `% j[root@KVM ~]# virsh snapshot-revert centos74 --spanshotname 1516607756
8 d  k% c1 e8 V4 ^! q* y* x; ?7 B5 h% K- o
5 P! J* u- n7 C
% c: {/ X+ F; Z+ L( m
6.5删除快照9 p8 g) P% D) E2 e# \% \$ z

2 v8 W0 A6 a& J4 i( x1 Y% F5 |[root@KVM ~]# virsh snapshot-delete centos74 --spanshotname 1516607756
9 c- x. B9 k9 z% |$ `
1 m% ]4 D; u& Y+ ^* W; C! C) I, X

) K0 A: |( }2 S) q, V. `8 t2 h7.KVM虚拟机克隆
2 ^5 Z4 a4 h/ L, v  Z* l; t! }  t6 j. S- u6 z6 u
[root@KVM ~]# virsh-clone --auto-clone -o centos74
8 [1 V* A/ k1 Z
: P0 E* p7 D7 u' e! y# J
7 G6 K! i' g) a# I9 t: t2 A" e. }0 f4 Q, z* ?" `
8.KVM虚拟机冷迁移0 Q, {% i* C, X; s9 ^/ F

% R( P- Q' Z2 g6 V/ N1 a* N0 O# l$ g. g) O4 D& b. ]* G: z* Q

3 @, X0 F" k+ T7 e8.1在KVM02中安装kvm组件
; ^$ D2 C' j( i) E2 S2 j! T1 N$ O* R% ^* B$ o
[root@KVM02 ~]# yum install -y libvirt* virt-* qemu-kvm*1 x7 o. D" n, |9 A1 A3 I: T- E
6 N0 {7 `3 v+ ^- o  D9 }
. E% O& j& S) ^+ Q% ^( C8 m3 q5 P
% `1 y2 G6 Q" D+ \7 O5 @* j
8.2配置桥接网络
$ ?8 {+ o" G& U- g( D. r. m2 @) O
" }6 |* o  [$ i: l% u% F) O, g[root@KVM 02~]# virsh iface-bridge eth0 br0
& i! ^" q, n" u' W$ c2 r5 }: ^4 Q) ?/ S* D* `" L5 G

5 ~& t3 K4 e1 u! V. F
6 S. S6 Z4 J" ?; Y* }8.3KVM主机将虚拟机关闭,导出配置文件
* h2 B- V# j- {3 C
4 _# b# J. ~+ Q8 m1 u[root@KVM ~]# virsh shutdown centos743 ~/ x+ U: ]$ [+ I

/ F+ g; V, g7 d$ o" `. P8 h[root@KVM ~]# virsh dumpxml centos74 > centos74.xml, _+ p& G! w+ I9 Y

. K$ I% K3 m& Q. W0 \3 ~7 x6 o, x# _4 T( h7 F  R
5 ?0 o0 W( d8 ]" ^+ ?
8.4将虚拟文件传输到KVM02上7 s5 N# W. Z* E! _8 Y/ {) a: \

8 ~0 B. k' o! L/ r9 a3 b[root@KVM ~]# scp -rp centos74.xml 10.0.0.102:/data
- k* z$ w, u6 Q
8 Z( O. Y' ]/ e0 E9 J
) x1 |3 \( V# \, q
, h7 ^$ s2 {: e8.5KVM02主机导入文件5 m2 Q+ L5 k4 K

+ L; d2 h/ T- M8 H  D0 q! u3 g3 [[root@KVM02 ~]# virsh define centos74.xml
& _7 z3 B* j4 M3 X& |
  x( w& O+ ~7 N  L7 `: ?/ H
( ^% @( S  a0 R& u; w) B
6 j( F, c, n: {. w) s1 I" G2 v8 f& V8.6启动虚拟机: V' C; b/ W6 X7 v, v
$ ^/ x. L' h9 d/ u
[root@KVM02 ~]# virsh start centos74' X+ n  v# [8 B

, E+ G: f- k+ t' U4 J  \" J% X9 M7 `/ k' i$ G4 r
3 B( G1 X2 |' o' @5 w( y
9.KVM虚拟机热迁移
$ w! a3 N" O% g8 b9 f
7 L0 P/ D8 [$ t
; p7 F1 @& a# S2 s+ F. S, h! |5 G/ p6 V
9.1KVM虚拟机热迁移的核心
- q+ J- `7 G1 h* }9 N
$ v0 R  K% B# R  ?   共享存储。这里使用NFS共享存储(详情参考:https://blog.51cto.com/13520761/2087720, }* A! Q5 U& @8 j
1 B& z, e; r; K3 P* [' N/ y

) z. Z6 w3 S$ t/ R: P% R: h
& L7 L9 N9 ~( q2 D) G0 v! z% M, A9.1安装virt-manager所需桌面及vnc-server% D0 B: H  x4 K! w

& ~1 `" g2 E6 U0 r" \5 E[root@KVM ~]# yum groupinstall "GNOME Desktop" -y6 I+ u1 N. R7 g. W' T! v: U

* s. M& Y: d0 z1 Q- e[root@KVM ~]# yum install -y tigervnc-server
3 p+ A, m' w, q7 w' {1 m
. Z; t( I3 X* L$ X[root@KVM ~]#  yum install -y opnssh-askpass
9 h# r: C8 @- O3 l3 @
+ N$ d, J& h/ y, ~$ S# t2 C
! P0 H/ W; r$ H* l1 b2 M) Y6 X
5 N* [' P( Q  E9 a9.2复制vnc配置文件
; g) i) T. E3 t- O9 ]7 d
8 b) d, J+ J+ s  v* f[root@KVM ~]# cp /usr/lib/systemd/system/vncserver@.server  /usr/lib/systemd/system/vncserver@\:1.server, z0 w' W% c/ `* t: _7 x

* k4 [  c7 S6 n5 X/ P( P" o0 K# @& o! F- ^) z( O
7 I! o2 B3 i8 f" l9 G' s
9.3修改配置文件% K6 Q/ A7 `% j) m9 H. L' k: _

3 y$ X8 S3 e$ J6 B6 Y5 Z% U$ _  a[root@KVM ~]# 8 ?  b- U  J7 I8 o1 r0 ?
) w* b% p3 A+ L0 D& }
egrep -v "^#|^$" /usr/lib/systemd/system/vncserver@\:1.service+ x2 t: {0 e: J

& C9 c# U: V  L+ \[Unit]
4 R5 o* \7 E( }; S0 R2 o2 p$ N) b4 ^3 A5 E* M7 k
Description=Remote desktop service (VNC)0 R8 n+ }/ W, J' O8 {% C# s
8 X& G/ @& U) l7 e' W
After=syslog.target network.target
6 U# P% P9 c+ C: A( y' [& ]4 @" q3 t1 r; e; k' i
[Service]; ?! W8 c8 C% ^. c

$ M# b' c+ A0 K0 c9 UType=forking
! n- p5 ?$ R  m2 x: T
4 h! J- P' L" x, t3 @1 Y+ yUser=root
6 i: Y" Y% G6 y. h# H: q4 y. c2 N6 j
ExecStartPre=-/usr/bin/vncserver -kill %i$ L& Y, o0 R- d5 ~  M
: o9 r, B8 d- Q/ X0 g
ExecStart=/usr/bin/vncserver %i
7 E0 d: \# D0 E
; I. e4 ~" l( h& a8 J* }% lPIDFile=/root/.vnc/%H%i.pid/ \! A9 p( b3 e2 Z8 |5 R5 K

- g7 `. [: B( k4 EExecStop=-/usr/bin/vncserver -kill %i; A: i7 B/ y# G& j2 A
5 U' W" G7 ?4 \: g8 {
[Install]0 |8 y/ `- H$ e! m

! j8 w% \. s2 `. E  {% zWantedBy=multi-user.target
% q  o9 D. E( l1 `# Y' ?- P$ C0 u5 L2 M. S3 a3 D3 T: d
' `+ W0 p6 U9 S" q* Y

: i0 ~, X4 P0 }7 z; @( b9.4设置vnc连接时的密码$ T: {$ y- b( {

) S7 d2 u. }  U2 S( X7 \' y[root@KVM ~]# vncpasswd
  C# i7 a9 @( W2 z, ^$ n: Y8 U: i- `& f5 S, [6 m9 u' {3 C+ W
# Y0 Q' |# W2 A$ J
% T- l9 W9 m+ x% |
9.5启动vnc服务. m- Z! Q; L8 y6 m1 L; z
" o) b8 ?. K7 L2 w/ z: K
[root@KVM ~]# systemctl start vncserver@\:1.services
8 D. p) X8 [7 C: O3 D+ w
3 R/ L, u6 k+ H
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:53 , Processed in 0.020109 second(s), 24 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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