|
|
一、xl安装centos7
& Z# y1 T0 C: t' w L1、准备
* K" b8 \+ m) ?3 h1.1 下载光盘的两个文件
' b5 T+ k/ }8 j) ~2 A6 {代码语言:javascript8 p& n* J; \# a- b, w9 v' u$ \6 F
复制4 Q2 L7 C6 o* X% n! ~% H* o
下在光盘镜像 isolinux目录下的两个文件
' h& j M' L" x% J0 M[root@node1 ~]# ll
* V1 T) z" b& K4 Q1 Ntotal 40228
8 ^$ U" _# s' r9 X5 w7 X1 N* ldrwxr-xr-x 35 root root 4096 Sep 11 08:39 busybox-1.22.1
( v' f' [ O4 U- q, M# W-rw-r--r-- 1 root root 2218650 Sep 11 08:08 busybox-1.22.1.tar.bz28 [4 f- R) ~0 @# ^, @
-rw-r--r-- 1 root root 34815427 Sep 12 05:22 initrd.img
. |# w0 @! S1 Y( a, C, a-rw-r--r-- 1 root root 4152336 Sep 12 05:22 vmlinuz
4 i* I ~; {$ `4 p9 ]' N! S! s" _, ? z5 w5 _! n1 p6 ~; f1 {
创建目录存放:
- S# ?0 a# [- w# k[root@node1 ~]# mkdir /images/kernel
3 t+ H% j$ p6 s4 L4 ?3 x; F[root@node1 ~]# mv vmlinuz initrd.img /images/kernel/
, N& W* D4 [$ z8 d8 b. _1.2 准备新虚拟机的配置文件
+ r% b; t5 C+ v' u代码语言:javascript
% q6 M. a5 O4 z( I( S8 P1 c1 q复制& N- \: n& p9 H R+ x2 S
[root@node1 xen]# pwd
$ o& x4 v7 x+ ?6 _- S+ z& O! S/etc/xen
7 ]# x# Z U- B" D* y4 Q[root@node1 xen]# cp busybox centos
/ C' N$ }/ i6 J, ^, b
# a* H5 V3 H3 ?- n% t[root@node1 xen]# vim centos . L7 K& d8 R& \# m! ?' n
; M, q# S& N+ t% cname = "centos-01"
% w; |+ j9 M+ V. |0 b' mkernel = "/images/kernel/vmlinuz"9 L0 b i; p. z6 I ]( P' Q
ramdisk = "/images/kernel/initrd.img"
( L& S) ]1 y/ u+ Pextra = ""
: O& O0 Q! U$ t" l2 Bvif = [ 'bridge=xenbr0' ]! [( m6 R0 F. G* W9 Z, s; a$ s
disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]" r: S' s$ E y+ c3 T" W
M6 ~( S) V4 T, m# l5 _
#root = "/dev/xvda ro"0 `1 U) L; I% t9 ]6 u, s
1.3 准备磁盘映像文件
, U8 z! j6 `* E: A* m0 [1.3.1 创建磁盘映像文件& Z% i* W: t; u" x/ ^0 I
代码语言:javascript8 e Q# I# N5 g$ o' V; M' ~: T) U
复制
- u- D% w/ E/ U5 {5 ^! y: e) a[root@node1 xen]# qemu-img create -f qcow2 -o size=320G,preallocation=metadata /images/xen/centos7.img& }" V1 f# e3 _' l% C% [5 s
1.4 开机测试
# U4 E4 U/ i+ O; ]+ R! v+ ^代码语言:javascript
3 j! i; F n2 Z, ~6 w! S: c5 q复制+ ?% m4 C( N7 i- C8 Q9 Y
[root@node1 xen]# xl create /etc/xen/centos, Y! ~ E+ g) p9 P. M' ~
- l" @( W, I+ p3 S5 x[root@node1 xen]# xl list
! t7 q2 V% [; G3 M$ n1 ^4 CName ID Mem VCPUs State Time(s)% [4 z0 F5 G1 z0 I( \+ c
Domain-0 0 1024 1 r----- 691.5
/ V. l" H# ?& J6 O. C7 ^centos-01 21 512 1 r----- 5.8
: w' w# T. m) S' B/ G% C7 c连接控制界面:
/ _$ C" H3 p2 k( W5 r[root@node1 xen]# xl console centos-001! \) k3 z8 `6 y6 o
" N _3 ]* W& w% b
% t3 R( p: d2 p4 h3 w3 U& h8 |& o6 b$ i4 @
手动配置IP:1 M' X- g9 v1 ^) a
( s4 u( C7 m4 p7 a$ L# k H
选择镜像FTP目录. U8 I& d( u: v& P( N
4 S% Y+ E; K! H% o3 E
A( q& D* X. \1 A- y$ i1 B3 e6 \2 `: s
. S" E5 ?3 q, b) [
# k6 U, x5 b8 L0 C以此类推安装系统即可
. V* l3 r6 y2 Z* c7 w( k
3 |3 u. d3 Z# B. o# z( C K
5 r& _0 V. s& M6 b' e二、基于自动化安装(kistat文件安装). R3 c$ u+ c3 S, o2 j/ s9 p! ^) g0 e
1、删除之前的虚拟机$ O% o, j d$ w, N& [: s K
代码语言:javascript
9 q' ]2 y2 ~* g4 R复制) ^# r% H7 Z# K
[root@node1 ~]# xl destroy centos-0014 y# b* T$ P6 D8 m3 ?3 L
2、由于我没有ks文件,这个实验只能不做了,只看马哥视频过一遍 。自己手动安装了一遍centos6.6
2 ~' j% y, f9 R5 j+ Z3 V代码语言:javascript4 V. K4 G- Y' W: D t; q; o. C8 ^
复制( o2 {9 c6 Q4 D$ c* T' I; w0 _- |
修改配置文件
s1 ? m0 n5 Q* k2 B( Y9 R c# nvim /etc/xen/centos, p7 Z0 T, F: F2 M# r
extra = "ks=http://172.16.0.1/centos6.x86_64.cfg"; @% \- _8 t1 K6 m. X) t
on_reboot = "shutdown"( {# l1 J- }) W! a/ T
. U4 X8 U8 ~. I( z% b开机后就会自动安装系统, Y& g! K- M/ v" [9 Q
[root@node1 xen]# xl create /etc/xen/centos5 F1 i3 a$ Z9 C9 d D" M; D% ~2 {
2.1 安装完毕后修改配置文件(下次就会直接引导新系统,而不是重新安装)
% T4 X6 }- ^1 i1 v0 \2 I1 l1 d7 g代码语言:javascript: n/ t0 m; y" C! ?8 P# T
复制5 Q' o! S1 U/ C$ I& F6 i6 G2 S+ c
vim /etc/xen/centos
1 [ ^4 {0 B1 Jname = "centos-001"
3 A! P! Q8 S- Q1 S, c1 P& }( g- h; u7 ^/ g
bootloader = "pygrub") N+ `: C2 O0 t) F/ @& g0 y
memory = 512, ]6 g6 k; L) E8 |
vcpus = 1
$ O2 c* h! n" M3 s8 a9 i3 _. a( \vif = [ 'bridge=xenbr0' ]' d6 N( r% z. i: G9 r4 f5 _$ ?( j
disk = [ '/images/xen/centos6.6.img,qcow2,xvda,rw' ]
* A/ o/ s' I4 x! [* B, q3 T- B2.2 关机
5 N% p: s+ ~ Y( V* e代码语言:javascript
8 P1 K6 N- J8 ~0 I4 ~6 _$ i复制
( E0 ~/ Y$ W# W% I3 f# xl shutdown centos-001
* s/ }) M) c! Y# p0 u; C R4 |三、定制系统模板
% k" p8 r( E8 t0 e* G" Z; X1、安装设置cloud-init% I8 \* B% Z3 w& R9 i
代码语言:javascript8 R, [3 ^2 ?. B
复制
" I* b* l. e0 I- g: f$ u[root@node1 xen]# yum info cloud-init
; w7 }, `2 q( m- aLoaded plugins: fastestmirror, security/ B) ?7 s* ?% ^ ^4 _
Loading mirror speeds from cached hostfile
& S& ]6 _! c. G2 y R+ mAvailable Packages
7 e- p$ W7 J3 ~: O2 \Name : cloud-init ^7 R# o% d2 H9 v9 C9 E
Arch : noarch9 @' ~7 N0 o, q
Version : 0.7.4
# P2 G0 f! L3 k6 ~; s" r- [) jRelease : 2.el6' {& v$ p( a5 @( d4 a9 ?
Size : 487 k
: j" Y F5 O9 c- X3 fRepo : ali-epel v* }. }6 A: F; P8 c1 P6 B& q6 \# ]
Summary : Cloud instance init scripts' d7 j; N p& n& D; u$ ?7 [
1.1 剔除磁盘唯一信息,生成随机MAC地址
# s! T" n i) m; }. S3 O! K5 g3 p四、其他
3 E: _9 P9 s% r/ }1、使用VNC
' j! d4 q1 `% |4 S5 M1、编辑vnc配置文件
$ \& b2 p, A3 E代码语言:javascript9 u& a# e+ ?' f! k8 H/ {3 q6 ^ r
复制
' x5 R! j3 x+ E) j- h2 H[root@node1 xen]# vim /etc/xen/busybox$ V8 K% S% q0 }6 `, b
% }5 W g0 c. Qvfb = [ 'sbl=1' ]: `* m+ @! a/ D' _1 L
测试:
2 V$ F) T2 i& ^: \4 h' W! O2 f3 Z9 @7 r5 v+ v+ V8 O
2、VNC
* t& q& ^0 N; j) R0 o2.1 Dom0安装vnc
4 M/ o) e0 R+ x8 k代码语言:javascript2 I0 n& ]5 @( Q
复制
/ q. P' g1 t- J5 p! M! Q: m[root@node1 ~]# yum install tigervnc4 I t5 C% k# V4 Q- @. B
2 c- `# D: C. }4 R: v1 A[root@node1 ~]# vim /etc/sysconfig/vncservers
* `. v$ O9 [9 c2 H& H, q
5 C, o) k# A3 P6 v! Q6 SVNCSERVERS="1:root", s |& F- ]7 V
VNCSERVERARGS[1]="-geometry 800x600"
: \. N, K& m5 G- F! D2.2 修改虚拟机配置
) R, l% w+ x* |9 i, b4 H代码语言:javascript
9 @& w" S- q2 E q- g J: k. O复制4 Z3 ~/ R; \( I( G9 ^0 N% P
[root@node1 ~]# vim /etc/xen/centos & r. {& P+ o) ~, `" ~
: c+ A' F, e, ]. ~1 ` G
vfb = [ 'vnc=1' ]
7 K$ k* j+ `) H1 s f2 F3 G2.3 通过windows远程连接
% N+ C4 s, \( N! L6 ^5 J0 S代码语言:javascript
+ u" e/ V1 h: v复制* O, ^9 F1 ~3 j2 Z& w: N
vfb = [ 'vnc=1,vnclisten=0.0.0.0,vncpasswd=123456' ], [1 G/ `. k$ d. t8 M$ o
2.4
6 F( J# [1 I5 V& M4 R" r五、使用Dom0中的物理磁盘分区为DomU提供存储空间
) F5 x& |& v. L6 V+ A$ q1、分区格式化$ R6 a9 J) M9 R* b) B4 A2 M9 o6 q
代码语言:javascript
, Q4 _8 l- R2 g4 C" b* z1 I复制
( T4 M: |& b3 U0 Pfdisk /dev/sda+ ~" n: A v" _- [$ d) i
Last cylinder, +cylinders or +size{K,M,G} (24134-32636, default 32636): +30G- w- r+ Y3 T9 H; ^% J% S
/dev/sda11 24134 28050 31463302+ 83 Linux
: d" R) n; O1 Q, r) H4 T- t& k4 o! P+ z: \! f( ^4 Z
Command (m for help): t
. c! ~9 T j. S$ G6 hPartition number (1-11): 11
4 M5 J9 j2 A$ t' `' I, AHex code (type L to list codes): 8e- H* h7 k3 v5 [: ?0 Y% Z
/dev/sda11 24134 28050 31463302+ 8e Linux LVM
1 Q2 t0 ~* R$ x% {1 G+ }
1 D/ N+ t n4 G4 u[root@node1 ~]# partx -a /dev/sda$ j4 Z6 ?1 c" s7 i# a
[root@node1 ~]# partx -a /dev/sda
! d" _' A) T" g7 L/ G4 s+ @6 A1.1 创建LVM卷
6 S4 ^+ `' E. W% _代码语言:javascript# G' ?( o9 x1 `% v
复制
* _. e9 ~. b4 Z+ }: J [- b `如果遇到系统grub损坏,进入拯救模式:
5 r7 m4 @" \1 [# grub-install /dev/sda
0 m) D3 @% c: ?( c4 x' \% D# s6 L8 v- O- U% w
创建物理卷
, ^0 Y/ s% O# S[root@node1 ~]# pvcreate /dev/sda11
6 P7 \8 v1 P6 Y( P: g2 K Physical volume "/dev/sda11" successfully created) n* D S2 E& S6 X" w- x& J9 r; m
1 \2 r" s; | o2 R; [& F; T创建卷组:
9 H5 u/ K: Z$ X' S1 c- b: _% ^[root@node1 ~]# vgcreate myvg /dev/sda11
+ i8 L2 u2 x: Z H( T Volume group "myvg" successfully created
2 u" W4 D7 L# ^1 J( b* z$ A0 E+ B* M% Y: ] w; P. Q
创建名为“bbox”的逻辑卷9 d# a9 @( l9 s; ~6 U4 g- T
[root@node1 ~]# lvcreate -L 2G -n bbox myvg' L) x' g" k y+ b6 ~. P# d7 }
Logical volume "bbox" created.
" l5 M6 A! }! u" ~3 O
$ e8 {& K# H; U# N. h格式化:* I( ~" p% w# X+ `: |) J0 V
[root@node1 ~]# mke2fs -t ext2 /dev/myvg/bbox: K a. e1 {& ?5 R
% V( J: R0 H3 J! C2 p/ W
挂载:/ n8 x( C5 x7 m, u Z
[root@node1 ~]# mount /dev/myvg/bbox /mnt/
) w- t, v9 c# @& L0 z! F2 w/ e4 U2、提供映像文件% z$ o/ d2 e2 Q& m1 W
代码语言:javascript% B( O1 F6 m% I; u+ z
复制# ]/ Z- b1 Y; |
[root@node1 ~]# cp -a busybox-1.22.1/_install/* /mnt/6 A& z" w* Z6 \9 J5 @* b5 U! Y
2.1 创建其他系统目录和文件
! I% v: y5 R5 y7 \4 _- T代码语言:javascript; D/ L9 @/ w/ f: L' p% y: f
复制: k! d! K! A; p2 j
[root@node1 mnt]# cd /mnt/1 M6 k' I, S7 l q# h
[root@node1 mnt]# mkdir -pv proc dev sys tmp etc var boot usr- d3 |8 |! ?* M4 q7 }
3、提供虚拟机配置文件7 X! y1 {* v1 C
代码语言:javascript" g" t* h0 p6 Z; ^* z
复制' H1 j: |, s* N) |! g7 U
# cd /etc/xen/
1 A" k6 Y: d4 {! q[root@node1 xen]# cp busybox bbox
$ H3 W& y' A& I; `# ^
% ]2 G9 q# Y) i; h( c) t[root@node1 xen]# vim bbox
" i- T7 C1 u: n3 ?* D+ p# m* H& Y, x+ C* |
name = "bbox-001"
; c0 b3 z* ?2 O4 ykernel = "/boot/vmlinuz"
) }. p7 w2 P1 a; h9 }+ zramdisk = "/boot/initramfs.img"4 n# {4 T/ C7 u) u9 x
extra = "selinux=0 init=/bin/sh"
$ h. k; P% _/ Y' G+ E# L0 Z O3 G; O+ }" _vif = [ 'bridge=xenbr0' ]
4 M& q- B, {1 ~, T) B9 q: B1 _; d% X
, H# x+ c" {% R1 tdisk = [ '/dev/myvg/bbox,raw,xvda,rw' ]
) k& A' g: d7 b# O! L5 I4、启动测试6 v! o' a( O# p: t- _: n/ ?8 P+ O, B" c
代码语言:javascript
\* E3 v8 `* |. S3 j5 L" b复制' ]. m6 X2 P! s3 x6 Q
查看生成的配置信息:3 c1 a" ]" P2 I5 y
[root@node1 xen]# xl create bbox -n
' H4 U; ? O& u8 w. P7 h# j& Z- E- H4 p; `1 U
启动测试:$ L- T# j2 o% F5 L7 K
[root@node1 xen]# xl create bbox -c' n' j2 F3 m& h9 i3 I. @5 W
' C0 Z d) u* e) H/ #/ U& W/ X8 R$ O! S3 Q
五、libvirt实现xen虚拟机管理
4 A( h+ r$ [2 A/ B3 w7 g* X' D1、安装
" s! {- w% o3 D7 V代码语言:javascript1 z7 c* k% Z# w; X" v: T& ?) |" G' n7 N
复制
# L4 }. p E1 n3 f[root@node1 xen]# yum install libvirt libvirt-daemon-xen.x86_64 virt-manager
6 a) _- A3 h5 w5 e/ L1.1 启动服务8 o7 ]6 d% ]9 h3 ^9 G5 W% D
代码语言:javascript! `: F. _: S8 @0 B) G
复制
9 X e t* c: h[root@node1 xen]# service libvirtd start
* i. _3 g5 S6 h7 y" s# R5 Y2、 virt-manager5 {7 o2 r4 E8 J: X
代码语言:javascript
6 }- ]1 Y# }" J0 R0 v复制. J U. H) ]( K" E9 e8 C; h
启动,会弹出图形界面
9 g' ^% _! T: n( B% \[root@node1 xen]# virt-manager1 i4 p6 k# V% u+ z, }$ E
. Y* W" x# U* [3 m/ n
弹出第一个窗口点 no6 x4 I( p' J2 I% _# r, l5 l
" x* d) L: L+ n
, P! L% G3 c5 A& b# H5 Q% h创建虚拟机:7 y0 }& l$ f2 G7 C) [, @$ r
8 @4 A# J0 N! l& {3 O2 S& ] o1 y4 f3 t, v2 q7 a
图形界面很简单,就不截图了。' h" p4 m& I5 h, a/ G7 l
1 q% Z4 c U! U2 x- Y# }0 C7 e
# ? g" l H& l1 ~" W磁盘目录 /var/lib/libvirt/images/) q! {. X3 s+ F
/ _3 {" |% t, u7 ^% K: ~1 A/ }# Q+ h! e7 u
8 {, ~! M( V( H3 a
4 s& ^, ] t2 ?3、安装virt
/ m X+ d- k9 E- {( R代码语言:javascript i A( ]$ W. ~ Y
复制% W# C+ o2 x% d# s! r; k
[root@node1 ~]# yum install libvirt-client
/ U. r, k3 {& J/ ~: e' A2 f& a
/ Y9 K" ?) ^+ ^[root@node1 ~]# virsh help
5 |/ d# c2 k- o* q& U4 Q2 K3.1! e& f0 X0 k* ~! a9 i! {6 @
代码语言:javascript
- E7 L, ?5 w3 w9 m( o n复制6 l5 F+ s5 P4 [/ q0 Q7 M
查看处于运行的虚拟机
! Z9 w8 ]: c9 Y[root@node1 ~]# virsh list1 Y: n4 r. l1 \ c& [. J0 [2 E) Y
Id Name State
% n; E( M# Q/ {$ P: m5 \3 B----------------------------------------------------
6 j; H9 d$ g3 s9 p9 M5 l; f4 T 0 Domain-0 running
$ l5 a4 R: X; z2 e1 a) \
, _ d7 Z" P# z9 m I5 r关闭虚拟机8 h9 m* w- @3 P6 Q, z; W; X7 p
[root@node1 ~]# virsh destroy centos2 A2 T/ l7 x" g4 O
* j: N5 {6 D4 G |
|