易陆发现互联网技术论坛

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

xen 安装过程介绍

[复制链接]
发表于 2023-3-13 15:33:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
一、Xen简介" m6 }# H; J/ P$ B( }# ^. y
! P( l. T5 V( F+ I
1、Xen简介
9 Q1 k3 v! _. V. L  E* {3 T  @7 S
+ ^5 a( R4 \9 A! z+ v  Xen 英国剑桥大学研发,开源的VMM,是一种类型 1 虚拟机管理程序,它创建系统资源的逻辑池,使许多虚拟机可共享相同的物理资源。
+ I4 _% W" R/ E7 E8 C. K1 l
2 @' S; L7 y( Y: U# Z# K+ u3 D3 s      Xen 是一个直接在系统硬件上运行的虚拟机管理程序。Xen 在系统硬件与虚拟机之间插入一个虚拟化层,将系统硬件转换为一个逻辑计算资源池,Xen 可将其中的资源动态地分配给任何操作系统或应用程序。在虚拟机中运行的操作系统能够与虚拟资源交互,就好象它们是物理资源一样。, q) h) Z# l; N! m, x8 L

& T9 @: p( H. a/ e# o+ D. ]1 C2 f+ k, t

/ e. b/ g  p. u& P6 _; Z% Z        Xen 架构
+ |6 L5 J/ O# F$ c1 r" W* D- S2 a- C+ f$ j
     Xen 运行 3 个虚拟机。每个虚拟机与其他虚拟机都独自运行一个来宾操作系统和应用程序,同时共享相同的物理资源。& u- w9 V" ^4 \4 h. d

% h1 M3 ~& w; l2 [* t2、Xen的组件6 N9 f) X0 ~! x- C, z
/ ]( |( @# O) N7 ?2 j" e
1)Xen Hypervisor
6 S/ l8 s; q6 `, B- [. J
3 q  K  n# ^8 D: D1 e         分配cpu、内存、interrupt(中断)4 d+ }$ T  |" h! n
1 l  a3 i+ a: t$ c8 U% g5 C2 N- `1 e
2)Dom0
" r) W, \/ J# ?* M' @$ M; a, M# v4 [* q/ ^  m  T% v+ e; F
          特权域,I/O分配:* t: ?2 l9 H, M2 ^6 |5 Y2 N8 I
+ m/ e3 m  M. R! ~
                             网络设备:net-front(guestOS),net-backend
$ J: u1 p' I8 l- \9 l, n
; j# H4 i6 n  ?% Q4 k                             块设备:block-front(guestOS),block-backend
! W3 N9 R# Y* J9 X
+ S) `3 `0 u" z0 X- r          linux kernel:2.6.37支持Dom0 原始支持
0 ^6 w% s# a! N8 d8 {1 i, B1 I4 K0 N7 u% t  X# f/ r5 n  A
                                3.0对关键特性进行了优化# V$ T. B& ?; u) b; q
' N# k5 M9 s. a) H* l+ N4 A
           提供管理DomU工具栈,用于实现对虚拟机进行添加,启动,快照,停止,删除等操作$ y4 D0 V" g/ H8 Y$ n! R9 ^

1 t( G' T. d! H 3)Domu  }; M. c3 T; N1 R1 V

( S' c" y$ V" `3 m* G0 Y          非特权域,无权直接访问硬件资源1 ]* E+ E! N$ J7 Z4 N+ {& B9 u

4 l' `, p  E% z( E1 ^9 c1 Q1 l          根据其虚拟化方式实现的方式,有多种类型2 @* G; H' X& }" S
: |5 J- N8 t3 n! i+ L
                 PV:半虚拟化; {5 k5 p; G, V1 ~1 q

7 [$ m8 h$ Q6 N: Y             HVM:完全虚拟化% l0 O0 K0 [; ]- N) ~* M

' Q' q, D$ t* g6 V4 h0 O   PV on HVM:I/O半虚拟化但cpu完全虚拟化0 h/ o0 l1 j1 ]: X* ]

& B  u  T3 O! M7 |Xen的PV技术:不依赖于CPU的HVM特性,但要求GuestOS的内核作出修改以知晓自己运行于PV环境,
2 p; L5 I# A. r8 g% v# l
0 `. h2 m: j4 l: e  l. X. K# ~                         运行于DomU中的OS:linux(2.6.24+),NetBSD,FreeBSD,OpenSolaris& R* F  I  M8 e% M5 B* S/ y/ Y! F
. U- v4 ~- g: K3 }% r0 Q% m8 E
Xen的HVM技术:依赖于Intel VT或AMD AMD-V,还要依赖于Qemu来模拟IO设备
8 T5 @6 P- A9 }1 u
7 ?! H# ?& L7 Z                            运行于DomU中的OS:几乎所有支持此X86平台的OS* P2 p& J2 Q  N# I9 F" o
1 f' y0 E, d/ U9 Q* G: J2 v
PV on HVM:CPU为HVM模式运行,IO设备为PV模式运行
' m: V& \9 G0 E" V: d5 E. Q+ p" I' H4 T. x: {1 l& R5 i. G5 Z
                    运行于DomU中的OS:只要OS能驱动PV接口类型的IO设备:net-front,block-front# S& }+ A" _7 ?% H
* ~& u3 t5 ^. h1 T/ Y9 Y- I

* \3 p& e) ?$ i* u3 G& F7 p; k

8 {, X" e  F; z& t3 L% r( {$ I- Z4 s4 V' Y( K' v  V
( q( j3 t+ t1 O4 x% ]9 H% n: U5 u+ R
! L# A, c  w5 R5 F: J

; t- [4 @' C) T  ], U# K; W1 N, I3 s3 R4 G9 }+ e

2 u7 I/ q5 v* D4 Z5 y: M! [' T3、CentOS对Xen的支持( X" s( P- A2 K7 M' d# V
& k0 S  X; w7 O% L
RHEL 5.7-:默认的虚拟化技术为xen
9 V" M) b% k2 D" l6 ^5 S% x4 f4 m0 q3 r% h  h8 f
        kernel version:2.6.18   不能运行在Dom0上,要运行Dom0上需要安装补丁,RHEL提供了安装补丁后的内核 kernel-xen:3 t, x* l. X8 y* s2 T9 P: Q* \8 c
* i1 y* _9 ]0 C9 b/ x
       5.8:同时支持Xen和kvm
, w, w$ I* j& k# ?# ~
- {! N. @5 N6 v' w" K" N* i: X$ S       6+:仅支持kvm
, @3 P1 t, }! V! B$ K  c9 \. N
& U6 @  ^1 t/ i/ K$ q# j               Dom0:不支持
4 G- w8 k3 d9 r# U
8 M  I/ O  w3 k7 [, ]9 \               DomU:支持2 @( {0 z5 g' {0 L5 L6 L, u6 k: I
$ P: Z# ]; e$ Y# R" N
那如何在CentOS6上使用Xen?
& z( |- X3 g. @3 b8 i6 Y) z) _
+ c2 W# n  I7 S! d1)编译3.0以上版本的内核,启动对Dom0的支持
6 O% R1 N, [1 M, a4 r: ^7 k3 h6 n, H# ?, V1 D+ k
2)编译Xen程序* J9 R$ }5 W! j8 w
( D) H  s+ r' O0 u
制作好相关程序包的项目:
7 }( [6 }/ d( f$ ?6 J$ f
! _* a8 Z$ g  ~. c) F/ m( o% D2 Q6 wxen made easy/ Y& r; W7 K0 J: n
. g) c' y) K8 s9 R% G: A/ {
xen4centos:xen官方提供,每个centos镜像站中已经提供了,
' ^! G# h& T/ R4 Y- w' O5 a- I& z/ T+ C! I# d, Z

1 S' c1 G" J* b
4 d! t8 V6 D4 b! q- A/ y我们可以自定义一个yum源9 @7 P6 @! q! g% ^# R! }+ P
/ r2 Y0 E; D' A5 v# s, F  m
[root@BAIYU_175 ~]# cd /etc/yum.repos.d/; g1 _) I( G; R8 r
[root@BAIYU_175 yum.repos.d]# ls0 g9 ~4 k! J' I( n
bak  Centos-6.repo  epel-6.repo  Xen-6.repo  Xen-6.repo.orig& M6 D2 U! K! i6 r
[root@BAIYU_175 yum.repos.d]# vi Xen-6.repo
: s. c: O8 ]; `8 x' H  P  P7 V[root@BAIYU_175 yum.repos.d]# cat Xen-6.repo0 M1 B2 `* e/ D# X
# CentOS-Base.repo
4 l) I2 B: R3 ]9 _/ }: E7 h& c#
  O$ w: f3 o) ?/ j' ^, d0 ^# The mirror system uses the connecting IP address of the client and the6 K- C1 s5 ^( g' H7 v- E* x
# update status of each mirror to pick mirrors that are updated to and
, a. ]6 Y3 b6 J& w0 i9 V1 b  _# geographically close to the client.  You should use this for CentOS updates
) \7 I9 l8 U+ N8 ]6 n+ L# unless you are manually picking other mirrors.
7 p3 b2 z8 ~( i2 ?; w#* G. q( r4 X2 l1 V
# If the mirrorlist= does not work for you, as a fall back you can try the / f; x2 t: c6 n* U
# remarked out baseurl= line instead./ d7 m3 Q% t; P: ~; X
#8 ~" v" C; G7 d2 r' r
#& |5 T9 f+ N3 R; [" |7 F
0 `. M/ W  W! J4 R7 P0 z
[Xenbase]
; F0 g# T) z( @! _name=CentOS-$releasever - Base - mirrors.aliyun.com# M% }' Y0 U2 O
failovermethod=priority- z* |) h  G% ]9 O
baseurl=http://mirrors.aliyun.com/centos/6/virt/x86_64/xen-46
; q% u3 A4 h# r' r2 u; A" B2 e# H: W#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
, n; _% W; i8 `. s$ j, I, J4 G  _( K8 F#gpgcheck=1
1 i) d3 Y' E) S, l' r#gpgkey=
5 G. h' P2 D8 a' Q+ H# y& e2 W4 M1.
+ E# O$ b7 k7 ]/ k
1 y) A& U, x: z/ L/ _" c1 F! ?
依赖关系解决
+ v; [/ U( H0 t' u0 {
7 Z8 e" G6 h7 u$ f================================================================================================================* R% K3 L- X2 X& k( C0 [) O
软件包                              架构              版本                            仓库                大小9 O" x9 y( B' \2 n; J
================================================================================================================
8 J: T4 B  ?% ?: n3 E1 Q$ s+ x正在安装:
5 @# E  T. d% J3 y, q' m xen                                 x86_64            4.6.1-11.el6                    Xenbase            111 k
* p! u6 m3 _0 M为依赖而安装:$ D, E# X, k5 \6 `. k% f0 v
SDL                                 x86_64            1.2.14-7.el6_7.1                base               193 k
  s. {9 t, y$ t$ Q glusterfs                           x86_64            3.7.5-19.el6                    base               392 k
; I6 t( T5 L( ? glusterfs-api                       x86_64            3.7.5-19.el6                    base                56 k6 f8 i4 Y/ K4 X& l4 E
glusterfs-client-xlators            x86_64            3.7.5-19.el6                    base               942 k! h$ N  Y& l8 g' n# P5 S- n
glusterfs-libs                      x86_64            3.7.5-19.el6                    base               303 k1 P  t0 p& u, M2 r2 s! S1 P5 \
kernel                              x86_64            3.18.34-20.el6                  Xenbase             37 M
* b9 [# ~+ o; Y) W5 p. u! D libxslt                             x86_64            1.1.26-2.el6_3.1                base               452 k
- d( a6 S& r0 ~: ? mesa-dri-drivers                    x86_64            11.0.7-4.el6                    base               4.1 M
* \/ ?$ F5 A$ d. i) O9 L9 D mesa-dri-filesystem                 x86_64            11.0.7-4.el6                    base                17 k' B% E# B" j2 e" M0 L; x- x
mesa-dri1-drivers                   x86_64            7.11-8.el6                      base               3.8 M" s3 x8 O* K. [1 S1 P. x* J
mesa-libGL                          x86_64            11.0.7-4.el6                    base               142 k
1 s+ n# K9 {0 @6 R- i  _" G mesa-private-llvm                   x86_64            3.6.2-1.el6                     base               6.5 M
0 d6 `) c0 J7 _' C python-lxml                         x86_64            2.2.3-1.1.el6                   base               2.0 M
  D( z' v9 t, Z  z qemu-img                            x86_64            2:0.12.1.2-2.491.el6            base               836 k5 Z- o6 @( }6 _/ G( X0 J) g
usbredir                            x86_64            0.5.1-3.el6                     base                41 k: N, R. |6 h, o2 @& ^9 l" G2 U2 r1 H
xen-hypervisor                      x86_64            4.6.1-11.el6                    Xenbase            927 k
" _6 X9 ^4 t  i0 W& l xen-libs                            x86_64            4.6.1-11.el6                    Xenbase            532 k+ y# v! e9 a3 U( e
xen-licenses                        x86_64            4.6.1-11.el6                    Xenbase             85 k
9 {& Y: q. }$ o8 E xen-runtime                         x86_64            4.6.1-11.el6                    Xenbase             16 M
8 a* `) ^7 ~; [3 ?8 W( a) V* N yajl                                x86_64            1.0.7-3.el6                     base                27 k
3 t7 y1 Z$ d. o8 S6 a为依赖而更新:
/ |/ X3 k! k3 \6 z0 u$ v8 e kernel-firmware                     noarch            3.18.34-20.el6                  Xenbase            6.4 M
- C6 x1 m) s$ p, X% o: n& \6 `/ L libdrm                              x86_64            2.4.65-2.el6                    base               136 k' i8 ~) l* p# T  e5 a! ?" ~: P# e
$ M1 @- b5 ~! R2 Z$ c
事务概要
: J4 v0 K- _4 {$ U- \1 _6 u================================================================================================================
' ?) I, A4 j/ `1 f4 tInstall      21 Package(s)
; d. ?5 V1 _. I7 v" |( LUpgrade       2 Package(s)" E: Y& z6 o8 j8 T2 b' A

! ~8 H0 C; r+ u! B. B% z
& p! }, I  E$ t3 u% @然后修改/etc/grub.conf配置文件) ?; c6 A# {# c( l8 K
+ N0 Q- w# j" K
[root@BAIYU_175 ~]# cat /etc/grub.conf* g0 a# W! W6 [) c$ p$ i
# grub.conf generated by anaconda# }' o# Y+ w' P/ a4 a) X& M8 i
#0 D+ ~. c/ T, z- s7 w; R7 P
# Note that you do not have to rerun grub after making changes to this file
( C. ]  r8 i+ X9 k# NOTICE:  You have a /boot partition.  This means that. g* `9 b8 o: A, Y
#          all kernel and initrd paths are relative to /boot/, eg.
0 A1 F* S5 K& B: o4 p% i+ u#          root (hd0,0)
& {8 J6 y$ |1 z/ U#          kernel /vmlinuz-version ro root=/dev/sda25 W! x6 Q# C# U- _7 ~! }) k
#          initrd /initrd-[generic-]version.img& a! F! P8 y# E; v) I
#boot=/dev/sda
3 I9 N7 ?" r5 idefault=06 x. B2 ^) n. Z) c$ v$ v, z
timeout=5. p1 {" g6 y6 X% K4 X9 B
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz. [) G8 l: F- i: u; y& v
hiddenmenu6 J9 W: n; z' a0 m( ^% Z$ y8 T
title  (3.18.34-20.el6.x86_64)
6 M! W& j7 X6 i+ O( {        root (hd0,0). c8 D8 o, g1 K& [6 b. ^) Z
        kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin
1 C" N& l1 K* }$ J2 D" r& Q. P        module /vmlinuz-3.18.34-20.el6.x86_64 ro root=UUID=d393efa7-a8b5-4758-bbf5-2eaead07f8c3 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=zh_CN.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_LVM crashkernel=auto rhgb quiet rd_NO_DM rhgb quiet% w- S8 J& }5 u# O8 v+ w
        module /initramfs-3.18.34-20.el6.x86_64.img
8 l+ p0 g5 I. O# s5 s( ftitle CentOS 6 (2.6.32-573.el6.x86_64)
  P" I- \0 y: ~$ d* \' A5 z        root (hd0,0)( P7 M6 X  B5 k- O# u$ V. {
        kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=d393efa7-a8b5-4758-bbf5-2eaead07f8c3 rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_LVM crashkernel=auto rhgb quiet rd_NO_DM rhgb quiet  C) V3 V4 k. g2 r. K
        initrd /initramfs-2.6.32-573.el6.x86_64.img, }. o' j0 g( V* C
[root@BAIYU_175 ~]#
& Q( s( x2 {/ r# m6 r% ^! N8 e" g7 L1 ]3 N5 M: X7 L9 B4 `! t
+ H4 f8 n. t  G5 i" j( W
然后重启* p/ a0 a7 P  g3 g" D4 W( P
9 z  l# c9 ~" \* t( P
[root@BAIYU_175 ~]# uname -r( C" o  S, R6 p
3.18.34-20.el6.x86_64
2 [* _, b( d* F) Y6 W; `. I/ p1 S[root@BAIYU_175 ~]# xl list     #查看运行的虚拟机,注意此时我们操作的是Dom0,虚拟化平台已经安装完毕,可以创建虚拟机了,) x- P: Y. V) Y5 t) {3 O, E
Name                                        ID   Mem VCPUs        State        Time(s)
6 z4 g' r5 l# N! @Domain-0                                     0  1024     2     r-----      36.7
5 j2 D- E$ ~4 }5 I1.; x( K1 i# D7 G
2.
4 r( k; }! M' ~0 m3.
8 D. M, F, c% i, ^+ K6 N' j4.
0 V  [+ ~( F- x' z- F. M$ n5.
; s2 c1 C, ^* J" v* V4、Xen的管理工具栈
9 G$ S- r# D) c
1 Y) X7 T4 D" d; i+ [; E; [- R* ~xm/xend:在Xen Hypervisor的Dom0中要启动xend服务,重量级- ?6 X3 u6 I1 ]  }6 j, o- s! `

. e1 p: Z3 h0 z( f. u                  xm:命令行管理工具,有诸多子命令:
2 V4 T& p3 I& @/ h0 [4 l$ j& s2 a2 @$ X! [, Q0 u7 o
                           create,destroy,stop,pause...
' f! U$ g0 i9 X& S  B! W7 O; S( P. T/ S+ |+ G
xl:libxenlight提供的Xen的轻量化工具,Xen 4.2 xm和xl同时提供,4.3 xm提示被废弃,6 W0 \  ?; s0 p) d2 b- f& H. Y
2 ?1 k! l0 H& M$ l2 g' K6 V
xe/xapi:提供了对Xen管理的api,因此多用于cloud环境: Xen Server, XCP3 Z; E& ]% Y1 C, H% U5 D
8 J: D3 l& Q7 L- S+ M
virsh/libvrit: python语言研发   
  {6 \# {" z& A2 M+ Q+ E
- y. ?( [* v- B5 d% ~/ x                   在每一个hyper上安装libvrit库,并启动libvritd服务,就可以用virsh管理它们
/ Z+ W( o# c# w) t
$ }+ e2 i+ H# z& N& F, l! w* @& o6 D  ?+ d

  Y& h! C- a/ a4 D* q$ o, u5、XenSrore0 |( H) R8 }+ O

1 ^3 x" y  I4 g3 Z% y/ W1 z      为各Domain提供的共享信息存储空间:有着层级结构的名称空间:位于Dom0/ ~) |2 h+ B) ]0 H  ~* l2 v# @4 ]

6 U( N' G/ [1 z9 U4 z, r0 Q
3 c7 y4 J: X/ e0 X( t, j( Q) E  J- s
二、Xen的使用' H: ~/ O) Y; ?+ V, Q

% p$ z' a9 z, Q. C5 R7 y1、xl命令详解& ~0 t; e; d4 J3 m/ k7 c

1 o* n4 y% e8 A6 J/ U[root@BAIYU_175 ~]# xl
. Z! J, n7 u- b+ [& ]; K1 SUsage xl [-vfN] <subcommand> [args]: G+ o- @8 t# I6 q- M7 G; m
: D$ ]8 X9 o$ v/ M' X) K
xl full list of subcommands:      #子命令完整列表, W7 J" o4 {4 i+ K
& G/ m" @  z, c5 j3 }% G
create              Create a domain from config file <filename>9 J/ g% I8 J, w/ P- I9 X. H
config-update       Update a running domain's saved configuration, used when rebuilding the domain after reboot.5 F" T, Z* O) M3 Z! j
WARNING: xl now has better capability to manage domain configuration, avoid using this command when possible
7 A" J) ?. x( J- h' }/ \ list                List information about all/some domains    #列出所有或某个Dom的信息8 |3 q  }3 B* E. ~
destroy            Terminate a domain immediately  #之间关掉虚拟机的电源5 ?- [3 l$ _/ r- B1 \& |
shutdown            Issue a shutdown signal to a domain #正常关机
5 b& R5 w9 [# ~" g4 U  ` reboot              Issue a reboot signal to a domain #正常重启! Y% G7 O) V$ w; n( Z* B3 s
pci-attach         Insert a new pass-through pci device #增加一个pci设备,热插拔
. C) O+ K" ]7 i! N0 x/ n pci-detach       Remove a domain's pass-through pci device #拆除一个pci设备,热插拔6 M) n) k8 A# h; C
pci-list            List pass-through pci devices for a domain #查看虚拟机pci设备,除了网卡,查看网卡有专门的命令7 P" Q2 A) G0 V) {7 o1 q
pci-assignable-add  Make a device assignable for pci-passthru. U; a( x* [! `% f" R% F7 d
pci-assignable-remove
$ B: h7 u* ]1 P( j& z                     Remove a device from being assignable
1 S$ W" l) G. y, } pci-assignable-list List all the assignable pci devices
' e( O) T  z; ^ pause            Pause execution of a domain #暂停虚拟机,保存在内存中* ], a5 N6 j  e8 M/ a" I3 R
unpause             Unpause a paused domain  #解除暂停
& \6 r; |9 T. u# P& M! j console             Attach to domain's console #连接虚拟机的控制台" @( k' E1 t2 j/ @( C
vncviewer           Attach to domain's VNC server.
2 E  X6 k2 w# T( l save                Save a domain state to restore later 3 u* {1 H' A# K* k1 C2 \
#将DomU的内存中的数据转至指定的磁盘文件中,相当于挂起" A9 t( L: |" B- @' N
migrate             Migrate a domain to another host#将虚拟机迁移到另一台物理机上
4 I( J# T) v  _; |' [! c restore             Restore a domain from a saved state
1 I6 H* x/ r4 I  Y, f8 C/ T# r2 l #从指定磁盘文件中恢复DomU的内存数据,
) T6 B0 H" O) c" Y% q# n migrate-receive     Restore a domain from a saved state" x1 K. B& ]( L3 M7 Y" q
dump-core           Core dump a domain  #转存内核?
6 Q" n' ^" {8 j( w. `+ i* g cd-insert           Insert a cdrom into a guest's cd drive #插入光盘
9 Q$ ^& M) |* h# n cd-eject            Eject a cdrom from a guest's cd drive #弹出光盘
0 s0 p% [4 _# V" y& ~ mem-max             Set the maximum amount reservation for a domain
% r/ z0 y1 s5 W8 w #内存最大上限
9 ?! I3 Q2 d$ R4 U; {! p mem-set             Set the current memory usage for a domain
, _1 _0 ~: @: q1 P* I #内存大小( I  ~+ }$ t0 W
button-press        Indicate an ACPI button press to the domain! {) T  G& f2 Y5 E# }" T7 X
vcpu-list           List the VCPUs for all/some domains #显示虚拟cpu4 I: p# @. p* H! m
vcpu-pin            Set which CPUs a VCPU can use, o1 I  D( O4 _! O: k! y' J& Y
vcpu-set            Set the number of active VCPUs allowed for the domain! a4 r: k8 X* `( s
vm-list             List guest domains, excluding dom0, stubdoms, etc.
7 m' P6 X& o, u; o1 G info                Get information about Xen host& P8 K$ u) R7 c+ I: s
sharing             Get information about page sharing3 `  |- \, |  Y. w
sched-credit        Get/set credit scheduler parameters; M. a+ i1 {+ k/ Y
sched-credit2       Get/set credit2 scheduler parameters; f8 c& l  J4 v; x  W! o% i
sched-rtds          Get/set rtds scheduler parameters5 H; [& |5 X0 }3 ~: T
domid               Convert a domain name to domain id0 O2 [9 F% k: z0 L% ~+ i" e  t
domname             Convert a domain id to domain name
1 e0 k+ R% }  \ rename              Rename a domain #重命名
) j, T4 I" M: h2 n, { trigger             Send a trigger to a domain
6 }) }- D6 B' [% m" P* S5 V sysrq               Send a sysrq to a domain: n$ B2 C% @! p  ?& _4 {, s
debug-keys          Send debug keys to Xen9 @+ k# c  M" t2 i. _
dmesg               Read and/or clear dmesg buffer #虚拟机启动时的引导信息
( w& p% H# M/ T' ]5 C5 _ top                 Monitor a host and the domains in real time
5 s& E& t' L% C- `8 ]7 m- B7 O/ T network-attach      Create a new virtual network device
. h9 p: ?9 C5 g* Q, | network-list        List virtual network interfaces for a domain, B& o, O, h( ]% W( I; R9 o' M
network-detach      Destroy a domain's virtual network device8 Y* Z1 J' k) i1 W8 [8 i0 L) p( W5 J) ^. Y
channel-list        List virtual channel devices for a domain
" `( r$ w- T: [1 Y block-attach        Create a new virtual block device #增加一块硬盘4 r) _) L: ^  K; t" ?8 N$ ~
block-list          List virtual block devices for a domain#查看硬盘
0 h/ l6 k/ K  N block-detach        Destroy a domain's virtual block device #删除一块硬盘
% W1 \* g; Z9 W: k) Z( [/ f vtpm-attach         Create a new virtual TPM device: q  J& A" W% d' }" X6 u
vtpm-list           List virtual TPM devices for a domain
6 v$ l+ J" E$ d% I vtpm-detach         Destroy a domain's virtual TPM device
. o' g  s& K% |) ^- C' N1 T uptime              Print uptime for all/some domains
0 R9 D+ s8 E% }! l& L/ Y claims              List outstanding claim information about all domains7 _) s- r# ^' m
tmem-list           List tmem pools
' z4 T( F6 j" x: R$ t/ t, I. ^, Q  y; |5 H tmem-freeze         Freeze tmem pools
% g/ \' Z+ e7 g tmem-thaw           Thaw tmem pools
" L2 ^, Z+ i" N2 ]# i  b* q- i- L tmem-set            Change tmem settings, {" Q1 _5 D  K( b
tmem-shared-auth    De/authenticate shared tmem pool
$ d/ x& r; A7 a+ ]0 ^+ e  R tmem-freeable       Get information about how much freeable memory (MB) is in-use by tmem; D: n+ T; l+ @+ l
cpupool-create      Create a new CPU pool
' O; x+ x. d9 h. t. x cpupool-list        List CPU pools on host
( L. R/ B# y. Q" x- a5 E cpupool-destroy     Deactivates a CPU pool
1 b& z4 m1 v$ S% m cpupool-rename      Renames a CPU pool+ ~- P3 c% B3 e, M
cpupool-cpu-add     Adds a CPU to a CPU pool9 E" {, |; L# \+ ?" P2 C
cpupool-cpu-remove  Removes a CPU from a CPU pool4 H  x, T, M+ _. M! Y3 G
cpupool-migrate     Moves a domain into a CPU pool% z$ v' Q3 K+ B7 Z, q7 F
cpupool-numa-split  Splits up the machine into one CPU pool per NUMA node
; x: y. L5 e  Q- M getenforce          Returns the current enforcing mode of the Flask Xen security module  \3 G( G7 {$ }! ^
setenforce          Sets the current enforcing mode of the Flask Xen security module
) u  l. @: ]8 D9 ~; S6 S3 e- e loadpolicy          Loads a new policy int the Flask Xen security module7 Z7 S, X) ?+ y1 ^! T* D. t, P
remus               Enable Remus HA for domain
3 r$ I  A; C0 M- r; h' p3 E* u devd                Daemon that listens for devices and launches backends9 J4 I& K( q& g) c
psr-hwinfo          Show hardware information for Platform Shared Resource) v" C7 W" ^, z4 [
psr-cmt-attach      Attach Cache Monitoring Technology service to a domain
3 G. c( ~  O, w- b/ h psr-cmt-detach      Detach Cache Monitoring Technology service from a domain
" ^: f' g/ D1 {( s5 C psr-cmt-show        Show Cache Monitoring Technology information
$ f( T4 d; m6 M% D psr-cat-cbm-set     Set cache capacity bitmasks(CBM) for a domain9 T- M; Q. m* o$ {/ m6 ~+ j
psr-cat-show        Show Cache Allocation Technology information
  _- ?# `/ X$ L- B5 o
) z: I) h+ f  Y6 v3 I8 H  q- s$ R" ^$ g
1)xl list  显示Domain的相关信息
* ^" h1 J9 g6 V7 \) J5 J) x2 Y; f$ p3 Q# G- c/ x; O. {/ ?# [8 s( I
[root@BAIYU_175 ~]# xl list
2 c8 X  u( i3 _* VName                                        ID   Mem VCPUs        State        Time(s)  运行时间7 j. j' u7 b2 i
Domain-0                                     0  1024     2     r-----      65.2+ e0 n5 l& q% Y5 [. z
1.
6 g5 ?6 z. \7 ~8 ~* N9 M0 U2.
. q$ g% D: \& V" Z5 C. r- Z, w3.& w  V. T: V+ ~
xen虚拟机状态:4 ^  H# N" d& `

0 \  S* o% X5 o2 Q% gr: running
( d! G: b  ^1 U1 O! N) M' A- J9 t$ N( Y# o
b: 阻塞- R% E4 g7 s' B3 g- T' v

/ Y5 C+ M0 a( V/ V+ Y. g+ T, Bp: 暂停    #并不等同挂起,数据都在内存中没有保存在磁盘中5 P" e" N3 F5 Z! e) f
4 v, V( z( U# x% i! \9 ]5 @
s: 停止     #& d& R+ p7 [! Q0 k7 C
1 m: m- R3 m9 b7 M( C% @' ]) _
c: 崩溃- i* {! b; u, i  [* Y
% d  R" n/ t7 [. Y1 ]2 C) U: Z( S
d: dying, 正在关闭的过程中) ?, _# J& o, O1 _0 L
9 k2 t) W8 \0 q

$ E, i( d4 u/ {; O' P
) `# K6 v* u4 b9 g/ M% f5 v
' R: m/ g% E) N6 _* O" wxl的其它常用命令7 P8 ]. x3 H$ [2 \" h7 W& T1 k  R

) w5 Z+ Q& W1 W4 M* Fshutdown: 关机
6 G0 M. w8 f# p# I9 b8 f
! q) Y" a" v. P2 _reboot:重启; h6 p, [; e- R/ q2 H, d3 k

! l4 a& l( m6 Hpause: 暂停
7 a1 R( R) I4 U1 e+ `( ]( e: h, q8 n0 M  h
unpause: 解除暂停; X4 k( R4 m0 W! j5 a2 N
' D* ]* Y( v, ?. ^$ [% L; H+ m
[root@BAIYU_175 ~]# xl pause -h/ k: B" S7 V& g& ~$ Y! A
Usage: xl [-vf] pause <Domain>
) V. \, k. E4 P: B+ h$ u4 C6 q$ G. Z/ H8 J' k6 M
Pause execution of a domain.. `7 G% z9 W% V  G

5 d! y" N3 L  N- e2 O2 s[root@BAIYU_175 ~]# xl pause --help  K/ c: I8 t; W  j
Usage: xl [-vf] pause <Domain>. f( {0 n* e( i& x
& e* S% a: N! L8 a) H% V3 g
Pause execution of a domain." A5 b7 q0 ?  t% t4 R4 ~

3 n3 w0 v& J0 t. H6 f4 U8 ~: A) ][root@BAIYU_175 ~]# xl pause  anyfish-0014 d* X7 g* a. [
[root@BAIYU_175 ~]# xl list
  W, j: M" [3 JName                                        ID   Mem VCPUs        State        Time(s)0 M% |+ {, t4 b/ ]" {
Domain-0                                     0  1024     2     r-----     125.8
8 `, z( l! R, O  D6 u3 a: g/ E+ nanyfish-001                                 10   256     2     --p---       4.2
! {/ O# ]7 }% o6 G/ qanyfish-002                                 12   256     2     -b----       8.7' P* x' {7 J$ |! ]$ _& i

9 ~$ I8 }& V  N/ ^0 Q$ F* F" @4 l+ R6 \8 t# \2 o
. O+ c. }7 s  ]) @! K) {. M
save: 将DomU的内存中的数据转存至指定的磁盘文件中;: F$ v: v. H6 ~

+ @* b) b; H+ H0 J/ Q4 }7 Q1 exl [-vf] save [options] <Domain> <CheckpointFile> [<ConfigFile>]  z# K1 {. E8 q
9 I0 m& C& S3 u: Y, [; b
restore: 从指定的磁盘文件中恢复DomU内存数据;
6 s% O9 m0 X5 J4 E0 U# q* v; k7 `" a9 e# i9 |% B! i) [
xl [-vf] restore [options] [<ConfigFile>] <CheckpointFile>
2 W! i+ X. j9 S7 D+ u: d0 E7 s  I% L* Z+ k* R
[root@BAIYU_175 ~]# xl save help# b* m5 R# h0 W% I& K8 x
'xl save' requires at least 2 arguments.8 }3 }, j5 ]* O3 d9 g& B: ?/ f
, q& k/ L  \; F4 o4 S
Usage: xl [-vf] save [options] <Domain> <CheckpointFile> [<ConfigFile>]
- ~# P% e& S  t" L4 Y
" O) y' z( c" L2 P0 k, ?+ a8 MSave a domain state to restore later.4 E- F# j4 b3 G6 x0 b# p
& _2 i! l, |6 f7 Y$ ^9 Y
Options:
$ E. D8 D/ F8 E+ I, G  ]$ W9 E: q% [2 `
-h  Print this help.3 j5 N+ c' b  {' M- l; B; ~
-c  Leave domain running after creating the snapshot.& C- Y  U# t, L( u7 X+ d, q
-p  Leave domain paused after creating the snapshot.; W+ v1 J8 P& K
' M$ Q5 l/ ~; C% G) E3 h
[root@BAIYU_175 ~]# xl save anyfish-002 /tmp/anyfish-002     , k% V5 i/ _3 N8 i: U% i$ K1 Y" _
Saving to /tmp/anyfish-002 new xl format (info 0x3/0x0/1024)2 Y* F# n5 v/ p8 H3 ^4 L( D- {% B
xc: info: Saving domain 12, type x86 PV
7 O, K: [* x& Ixc: Frames: 65536/65536  100%
/ m) Q) F- [  }xc: End of stream: 0/0    0%: s( V( o/ g+ I* R- c$ i5 M
- K' i; B8 Q: T
[root@BAIYU_175 ~]# xl restore /tmp/anyfish-002   * G; k) h, Q9 \2 k
Loading new save file /tmp/anyfish-002 (new xl fmt info 0x3/0x0/1024)
% S- `7 [' T3 \, S" G6 |0 g. Z' M) e Savefile contains xl domain config in JSON format
8 u9 s# y. Q# |8 q4 I) J9 }0 {Parsing config from <saved>* C$ O! {4 l" H; J0 H% O: W. s
xc: info: Found x86 PV domain from Xen 4.6
$ _$ w4 w9 ^+ b8 f' nxc: info: Restoring domain
7 V% d  k6 a, J  w" u) c7 n, Nxc: info: Restore successful1 ^& ^( h0 a: C. x6 B4 W! r
xc: info: XenStore: mfn 0x22a3a, dom 0, evt 1
; ~2 o8 m; k9 n# ~! lxc: info: Console: mfn 0x22a39, dom 0, evt 2  g+ W. i8 ^4 [

2 D5 r* E+ r; @4 U3 T( x( _
0 S' D2 Y- H0 S) s: u# v
" x2 `2 r" t- e. avcpu-list  列出虚拟cpu
  c- S1 B; ?0 Z8 F( o6 B. T
2 z2 R) @1 M) ]vcpu-pin  把虚拟cpu固定在物理核心上
) ]* R$ w6 e9 M& E0 f# b- v" @* k& t3 m- P7 O& \5 K
vcpu-set  设置虚拟机的活跃vcpu的个数
, }" {* `' q. D& a5 L9 Q* \8 F+ H9 A* Z  K
[root@BAIYU_175 ~]# xl vcpu-list -h
. s8 d9 E* U; A; X9 W  ^) H' \Usage: xl [-v] vcpu-list [Domain, ...]/ C4 m7 o) ?) h$ {, L; W6 p
2 r# u0 \$ d) }
List the VCPUs for all/some domains.
+ M  a  w+ q0 Y" h
: k& r  m7 G+ b' z, r3 N! R3 W( q[root@BAIYU_175 ~]# xl vcpu-list , Y3 a- B; I. q* }  w, Q! }
Name                                ID  VCPU   CPU State   Time(s) Affinity(亲和) (Hard / Soft)( H6 {* ]% g8 M1 P5 Z
Domain-0                             0     0    0   -b-     236.4  0 / all
4 ~# A- G" V: y& Z( D6 aDomain-0                             0     1    1   r--     310.0  1 / all, W0 y4 X" A! h+ C* g; F1 G3 T
anyfish-002                         17     0    2   -b-       8.9  all / all
$ v+ f4 J0 N% h" w, R5 v9 b4 Manyfish-002                         17     1    0   -b-      10.5  all / all% M4 d( R) g* _4 Q) A5 D" ?- e
anyfish-001                         18     0    3   -b-      10.1  all / all, e4 {- p) m6 c, b7 Q
anyfish-001                         18     1    2   -b-      10.8  all / all
' j3 W1 u8 Z) h$ l% @9 x) J                                              #运行在哪个物理核心上) G) m- C& Y! ?3 K
6 H) ?# n2 W4 r- E) D9 \

& K, e6 d1 h9 s* W$ P; \. n1 K3 I2 a* K

! L7 o. h5 e/ E" L1 t) N% _/ dinfo: 当前xen hypervisor的摘要信息. c7 x) G0 z/ L+ j

$ N  E2 I% Y1 L6 ?domid
4 G7 f7 ]/ y5 ?) d- N
& P  ~; E$ u9 t' T2 u& M4 u* Edomname
, S' l- V4 ]2 e" N9 ?
. J! `) u' P( \9 L6 b' e) d: ]
, |' A! C( K- |" c5 v. G
" k7 \4 W, r# f+ rtop: 查看domain资源占用排序状态的命令9 O6 O1 H6 C' {( z

6 ^! p4 x3 @8 x
# r6 p" J' W0 Y6 X9 P  @5 k- S) W  u. x/ O+ S9 z+ S9 Q
network-list: 查看指定域使用网络及接口;
$ {" d) a3 @# B' Y6 p6 ~; H. ^0 V, ^8 y( Z" A5 ]1 K. |
network-attach:热插
- K9 D9 o$ _2 |. w6 G+ J9 q6 b( @& o" D+ ?  g
network-detach:热拔
- N- Q4 c7 A8 ?: A/ j5 L* M
$ y9 R/ ]4 q# v0 m% {4 f# ]
% @& {* G0 s9 v9 M; |) o! t* y8 p
. p/ N$ W4 M4 Nblock-list: 查看指定域使用的块设备的列表;
6 o1 h. X  G: ], ~9 l  n1 x) W5 A  C: q6 T
block-attach
$ v; n2 w9 q9 F" ]( p7 E& V; C6 x) C/ ?) u3 U* c
block-detach
' ^( O. |* }! W6 ~8 @: x/ r; M- }5 h9 c( e/ h
2 K: X# R' Z! F" [0 T
- A2 R$ C; O9 P  M& d
uptime: 运行时长
4 A, `4 M1 E7 w1 h+ u
: K; b; w1 c1 b) y4 O5 r2 A0 d3 p( p5 ~
# n/ }' D0 g" c8 O' V- a/ L' L
三、如何创建xen pv模式
4 A6 B6 E, j, r% U  m) n/ L$ i. V. |+ y( ~( g+ b/ w
1)kernel                          #DomU的内核文件可以放在Dom0中也可以放在DomU中
/ g  f, p1 N5 u* t0 m
3 N. N7 o8 N  o) E6 _, w$ H 2)initrd或initramfs         $ H- H, m' p, z9 \3 A# G* V: [

  H9 b! _0 D* h+ E9 ?8 Z! X' O' l 3)DomU内核模块; X1 \) s. |9 u; e1 p3 Q" X

, s% b# Z+ G; _1 I! v5 d 4)根文件系统8 Z$ Q) k1 K! [2 ^
! e/ o* Y) R% [& n! L
5)swap设备
8 a* L6 X0 l3 B. ^  d1 q. i, y" ^) D
将上述内容定义在DomU的配置文件
5 u- X: e' K( t% C) N
$ Z: L( f5 B  [' u: B注意:xm与xl启动DomU使用的配置文件略有不同;8 V( J; `7 ~& J5 J5 v7 N
$ A2 O5 n: h7 [0 o
         xl.conf是xl命令的通用配置文件9 R. b/ c' i5 n: R

4 J3 B" P" F) b         xl.cfg是启动某个DomU虚拟机的配置文件
. p/ h# I" C$ X2 `" p. q) z8 g6 @$ [! a/ J# E) ^$ W
对于xl而言,其创建DomU使用的配置指令可通过“man xl.cfg”获取' x1 l0 L& f. Y: P

, S( r+ L9 T% z; i  r常用指令:+ G5 x, U9 Q7 |

% w* R/ ~; H4 I+ Y  E, }# pname: 域惟一的名称
' k2 L: _) f1 Q: N5 Q% ?5 k1 u# L9 E" f: f& m' c5 V
builder:指明虚拟机的类型,generic表示pv,hvm表示hvm
5 f2 K& [0 Y: K7 n; a  u
. h& {0 W- N  N/ x7 b) v: |( ]        vcpus:虚拟cpu个数;
/ j  L& S0 A% N7 V& q6 j6 X4 g' s" O6 S! p# P6 C# F+ i. @, [5 P0 D3 m
maxcpus:最大虚拟cpu个数
7 o$ H4 w$ v6 u+ T! L" ]  Y& |* T4 g' X' g" \, b4 U/ l
cpus:vcpu可运行于其上物理CPU列表) z4 {% Z/ A6 l% r8 S

0 s5 t" x7 K! K- m3 Nmemory=MBYTES: 内存大小
5 a  ^4 T* O% {! M! ]$ c0 O
2 ]' T, A+ ]7 f7 ^3 x4 {maxmem=MBYTES:可以使用的最大内存空间
! |0 K% w' o+ r7 \7 v/ l) C, H1 p2 Y8 W7 u0 W6 c6 A9 o
on_poweroff:指明关机时采取的action' p" y# m7 p6 i) A( F1 n# H3 R& Z

1 A+ B- B3 i/ ^  U3 [# F+ Mdestroy 断电, restart 重启, preserve 保留域( I1 X, H6 l. P0 G

7 j% C8 Z% D" I& y! r8 ]on_reboot="ACTION": 指明“重启”DomU时采取的action" q& C5 l; I. L6 k. i

+ w. U4 d" }- |0 qon_crash="ACTION":虚拟机意外崩溃时采取的action
3 \, m" I+ ~# u% p! A1 ?0 P; F1 E
uuid:DomU的惟一标识;     #不是必选项
' B& x, k2 n: [, {- U+ e. P7 [5 |3 @8 u; ~
disk=[ "DISK_SPEC_STRING", "DISK_SPEC_STRING", ...]: 指明磁盘设备,列表,
) m. D1 n, O! k, j- H3 t+ t+ D8 k5 x* O7 V
vif=[ "NET_SPEC_STRING", "NET_SPEC_STRING", ...]:指明网络接口,列表,
8 i% a5 u  `9 ]
/ T% d8 q3 [3 S6 ~9 ?. ~vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...]:指明virtual frame buffer(显示设备),列表;                             
! k0 w; o3 y! A% X6 j3 z7 \) L; q" O( X$ v8 \
pci=[ "PCI_SPEC_STRING", "PCI_SPEC_STRING", ... ]: pci设备的列表
3 I2 u- ?! g; Q6 B# l& Z
: U6 [$ y& \$ h: b7 ^! }) }$ s1 d, z, t) n  @

; d6 g- i4 C2 m. V0 O4 x4 @5 t8 |PV模式专用指令:8 E3 P: k- m% P3 y6 t

9 D0 }$ O6 D/ c4 Akernel="PATHNAME":内核文件路径,此为Dom0中的路径;
5 V# ~$ H3 E" p4 o4 j5 a2 E
- @  C1 |7 ?6 R& uramdisk="PATHNAME":为kernel指定内核提供的ramdisk文件路径;
0 F& s% M2 [; H+ {  }- [% a% Y  E& h5 d. R) k
root="STRING":指明根文件系统;3 K5 p2 }  d; V& ^' @8 n( I

4 I: ~5 d( R* a8 K5 ~2 textra="STRING":额外传递给内核引导时使用的参数;0 j( V, H4 ?7 e3 l& V( ]" N
" m! X+ y- p3 W! a1 U* i
7 S; `  [* ?1 j1 E8 V9 M* h% S- H: k
: X$ e  j' B& J- \6 E
  bootloader="PROGRAM":如果DomU使用自己的kernel及ramdisk,此时需要一个Dom0中的应用程序来实现其bootloader功能;
" b8 @7 Y" e7 u( P" [# f+ S- l1 E  f; k; \9 }% Q, D( u: R

$ _* |4 k8 R( H$ \( e3 x3 ~$ |
/ A$ t* g8 s- }3 L( j' L磁盘参数指定方式:+ l+ x) z& i4 g& }+ f6 k3 ?
: |; l3 ]7 e5 D/ E3 Z- h/ f& o
官方文档:http://xenbits.xen.org/docs/unst ... k-configuration.txt* |3 i0 Y& G- `/ [) I' x9 K
6 P# w4 Z& C2 G# O6 q; c
[<target>, [<format>, [<vdev>, [<access>]]]]
+ R  O9 ]$ b5 B: \2 |$ U' P4 S" {$ M) }0 Y
<target>表示磁盘映像文件或设备文件路径:/p_w_picpaths/xen/linux.img,/dev/myvg/linux2 G) @6 \& c% l) p7 f: p  c
0 O& F( e; r9 h- r, S1 X
<format>表示磁盘格式,如果映像文件,有多种格式,例如raw, qcow, qcow2
$ |" r- n$ Q6 D8 c4 X1 _- J6 a* R2 {$ R, f' N5 L
vdev: 此设备在DomU被识别为硬件设备类型,支持hd[x], xvd[x], sd[x]
! C* T/ f! b/ m  l4 K8 y/ q
$ z( H# _+ J3 j: }8 Zaccess: 访问权限,
5 W) k) W, K$ s$ F/ \
- R, {) X$ R& Qro, r: 只读3 ]7 Y0 E; S' x/ A

5 ?2 P% @8 J' g3 x; w5 K3 Hrw, w: 读写2 C9 Q, c4 w* v2 [3 ~
1 {- [  Y5 t( Y( a! ?; {, X: L
例如:7 t' P( b, K# K. u

. N+ [! S6 w0 B3 c- N- Ldisk=[ "/p_w_picpaths/xen/linux.img,raw,xvda,rw", ]
% M. E6 v# M! `8 M/ ]; ^; z2 Z& V  ]. H7 v3 H) p$ D8 N
, C1 k7 ~5 @6 D/ n

, M; M$ b# w+ l. E使用qemu-img管理磁盘映像:
$ u5 [7 d/ |7 z% g' V' E& O
8 v1 c# F0 m& \. _create [-f fmt] [-o options] filename [size]! G' e: c# {- O1 A: a
4 b7 y+ |7 ^# s& T
                    -f 指明创建磁盘的格式- ?) G9 ?$ U7 d' P! R

+ u- C+ F$ {) p( h$ j6 M0 m  b* c                    -o 特定格式支持的选项9 @" e7 b1 V; z9 g$ Y* g

- F3 w8 |$ G2 p可创建sparse格式的磁盘映像文件,慢慢扩展到指定的大小0 ?2 C8 d8 D0 S/ v8 Z: ~, B
! u2 S. m8 d' }: r: I# A( r3 L

' r0 G' h( D- k- \$ I7 a# d( p+ k% k# U, i3 L- v0 Y8 f( B
2、创建一个pv格式的vm% @) y7 t" }+ ], l/ _

1 C1 [' H2 l6 f! w* U(1) 准备磁盘文件( T/ l8 S8 n* K, F2 J# h% C

* Z3 Z: n0 n% v6 K* e8 l       qemu-img create -f raw -o size=2G /p_w_picpaths/xen/busybox.img
. _/ {- _! y3 E' K/ _
6 d+ Q' t0 a, m0 J  n9 P       mke2fs -t ext2 /p_w_picpaths/xen/busybox.img* h2 Y: Z- l5 S8 `

0 a% O: b) G  O; D" z[root@BAIYU_175 ~]# mkdir /p_w_picpaths/xen/busybox.img -pv
" _% ?( J2 W- a% \$ Mmkdir: 已创建目录 "/p_w_picpaths", I! H. O8 S1 _) k: V
mkdir: 已创建目录 "/p_w_picpaths/xen"7 ^1 {* L: c$ t2 u; k( L, ]
mkdir: 已创建目录 "/p_w_picpaths/xen/busybox.img". R9 f) z( ?. P
[root@BAIYU_175 ~]# qemu-img create -f raw -o size=2G /p_w_picpaths/xen/busybox.img
. Y8 [5 I9 f! o& {Formatting '/p_w_picpaths/xen/busybox.img', fmt=raw size=2147483648
/ _; h) {1 U4 W6 f4 b( J[root@BAIYU_175 ~]# ls /p_w_picpaths/xen/
+ g' f6 D1 l9 v7 A( ?busybox.img" i; h. w8 d/ ^9 U+ Y
[root@BAIYU_175 ~]# ll /p_w_picpaths/xen/$ e+ o2 A, k% Z! q6 f
总用量 0( p1 `& G4 H9 ]' b6 \" R& F
-rw-r--r-- 1 root root 2147483648 7月  14 23:52 busybox.img6 {0 E5 ^1 r8 E/ `$ w, W& }
: F7 {, Y8 \. J$ }9 a; T8 I/ v
1 l2 I1 ]: E% N; S6 x  `4 {9 x

3 ^6 i, o8 V0 ~( M[root@BAIYU_175 xen]# mke2fs -t ext2 busybox.img   #为什么要用ext2格式?7 z% E7 A* M. d/ g$ ]4 I
+ l% S9 p9 X' e2 [. Y" ^; Y- f
[root@BAIYU_175 xen]# du -sh busybox.img
$ m+ E- S6 c: s" A& W. J, G97M        busybox.img
. l! C  d2 X# p: P7 g( n3 r
8 c5 b9 E) U  \; j! w3 b& Z
: u0 a; Y6 D- A, t4 j* M0 h* `1 p
[root@BAIYU_175 xen]# mount -o loop /p_w_picpaths/xen/busybox.img /mnt
' z4 q" p5 `+ v5 D1 M$ ][root@BAIYU_175 xen]# ls /mnt
" t' y1 T! [/ S- R, dlost+found) a. _# _5 O: Q* X/ V! Q

$ F6 Q. B; i) l1 ?
3 \" R7 [& D. x8 K% z/ F. c
  B+ d9 f( j4 F5 I% S(2) 提供根文件系统' X1 V! g+ ~* I7 F+ g

# k, i* R& q" Y9 k" N编译busybox,并复制到busybox.img映像中
( p/ P8 J, N% {8 c- L) _" }8 Z& x3 y! {
cp -a $BUSYBOX/_install/* /mnt
6 m, y! H1 O; o- \5 W& M/ W  v" @8 _: r
mkdir /mnt/{proc,sys,dev,var}
2 Q0 Y+ e2 |1 C+ Q) i& m4 _- j2 c
1 G" Q2 ~0 P$ c4 F[root@BAIYU_175 busybox-1.22.1]# yum groupinstall "Development tools" "Server Platform Development"      #安装编译过程中可以用到的包
) ~, N2 M) b- [) H; s& f9 c[root@BAIYU_175 busybox-1.22.1]# yum install glibc-static   #为了方便移植busybox,把busybox编译成静态链接格式,不让它依赖额外的其它库,需要依赖这个包7 X0 ?. v0 _3 q. l( I2 I, V0 z! ~
[root@BAIYU_175 busybox-1.22.1]# make menuconfig
5 [7 [5 l0 n. r% L1.
! x9 Z, n! j" }3 k/ r' z6 Y3 y( y2.) Y; Y; {" H4 \
3.' t; O; c* s' y+ ]& J
  H7 Z; w/ Y+ S' ^& g8 W5 P9 n  }

4 [! ~  [3 m. B2 G- [勾选编译成静态链接格式
& n( m3 y! G% v0 O4 i# \6 l
, G8 ]. K( f- F6 _- H[root@BAIYU_175 busybox-1.22.1]# make
/ @& E! T" Z; a) `2 b% D[root@BAIYU_175 busybox-1.22.1]# make install
# L' c' e+ l! V3 i6 R: P" h  w: `3 P6 [0 Z* J3 T2 [4 b
[root@BAIYU_175 busybox-1.22.1]# ls
& f' S: M4 g: \* Z9 t8 vAUTHORS          Makefile.flags  applets        busybox_unstripped      debianutils  include     miscutils   scripts
0 ?7 t9 Z$ @4 e% k0 |, F& yConfig.in        Makefile.help   applets_sh     busybox_unstripped.map  docs         init        modutils    selinux- ^1 y; m5 V7 D
INSTALL          README          arch           busybox_unstripped.out  e2fsprogs    libbb       networking  shell
- x# [; V' g5 I2 dLICENSE          TODO            archival       configs                 editors      libpwdgrp   printutils  sysklogd
% C5 B; w# q' R) \; x8 H# @: ~Makefile         TODO_unicode    busybox        console-tools           examples     loginutils  procps      testsuite5 P+ a/ ~, R2 m: d! S8 n0 C
Makefile.custom  _install        busybox.links  coreutils               findutils    mailutils   runit       util-linux
/ w0 g& {$ \% l7 c* Y: [/ {- j1 J[root@BAIYU_175 busybox-1.22.1]# ls _install/     #默认安装的目录
' ~, @' ^% t. c" L1 cbin  linuxrc  sbin  usr1 L  {- _6 U3 M7 ~& G0 v  R( B

6 B4 h# }+ @4 O2 _' d0 y7 L( N% Q' x( ^7 E8 M
复制文件到/mnt目录下
. M  D. D, s: s; t/ J8 @5 F/ c9 S( z
[root@BAIYU_175 busybox-1.22.1]# cp -a _install/* /mnt$ ]) B7 Y' I# |- H# r( ?2 v
[root@BAIYU_175 busybox-1.22.1]# ls /mnt; W; ~7 H" U2 M3 g- s- ?  G
bin  linuxrc  lost+found  sbin  usr
4 _/ b! D; p1 h% O# v[root@BAIYU_175 busybox-1.22.1]# cd /mnt8 T- v  U8 |: i$ C
[root@BAIYU_175 mnt]# mkdir proc sys dev etc var boot home
9 {- Y/ b4 G8 P7 C- x[root@BAIYU_175 mnt]# ll; @2 I5 \) L' r/ D, r
total 56
" ]4 U; V$ F6 N( Udrwxr-xr-x 2 root root  4096 Jul 15 12:22 bin
- C1 f3 _+ n4 T5 ~! m% ^! Hdrwxr-xr-x 2 root root  4096 Jul 15 12:25 boot8 ^% r, J4 S4 p& g
drwxr-xr-x 2 root root  4096 Jul 15 12:25 dev          #一定需要
& _5 |, J) }! \, o! W4 Jdrwxr-xr-x 2 root root  4096 Jul 15 12:25 etc          #一定需要
8 U7 J& b- O. |9 ?6 Wdrwxr-xr-x 2 root root  4096 Jul 15 12:25 home# I4 n8 w! k  p% C2 I8 Z/ y2 q
lrwxrwxrwx 1 root root    11 Jul 15 12:22 linuxrc -> bin/busybox+ P4 r6 d7 f. ^7 W2 L8 m( @
drwx------ 2 root root 16384 Jul 15 11:01 lost+found
4 T! v5 P) d  Hdrwxr-xr-x 2 root root  4096 Jul 15 12:25 proc         #一定需要
2 g2 \8 s+ j) j7 \4 i" Vdrwxr-xr-x 2 root root  4096 Jul 15 12:22 sbin
9 v+ C( B  U5 D3 adrwxr-xr-x 2 root root  4096 Jul 15 12:25 sys          #一定需要
4 v' s* d/ D% P$ Edrwxr-xr-x 4 root root  4096 Jul 15 12:22 usr
- S& }4 o9 [- e3 X& {$ b9 Sdrwxr-xr-x 2 root root  4096 Jul 15 12:25 var
+ E- p& h5 k& D) O7 Y
8 K. e- i6 t  M+ _5 p" ^; @" ][root@BAIYU_175 mnt]# chroot /mnt /bin/sh
( L) @1 L! {6 Y, j0 e+ k/ # ls: \3 ^4 w' M5 R% a$ T. m* L- ~" y3 X
bin         dev         home        lost+found  sbin        usr
0 w9 X+ Q. j+ C1 J( p5 dboot        etc         linuxrc     proc        sys         var
- k  l* a2 V4 u& M/ # ls boot/
; H( d; s& A( R- P  X/ # ls dev
8 x, d: b3 p% E# b  J6 s# z0 F; Y/ # exit                   #能正常使用说明这个根文件系统创建成功
4 B% n1 z  ?# j/ H/ i+ J" t4 _% M
' x2 K  K* T, g* f9 ^$ h
' J1 S  K1 _  H6 G6 d* ~
(3) 提供配置DomU配置文件: W% _- y# a7 y8 ]/ v" O
5 u" D8 {' l$ ~0 M6 D
name = "busybox-001"
  ]7 ]$ F8 v( ^( l( x. e2 ~( @( w) Y0 M
kernel = "/boot/vmlinuz", w) o2 b) d& B4 r( p8 c

; i, J5 b$ I. l) U: Cramdisk = "/boot/initramfs.img") m7 ^, f- k! m# b- f
! q) p3 N: f4 l6 K
extra = "selinux=0 init=/bin/sh"
& }4 k+ e2 X! c) r
, R  j1 k1 U  e# {; D* X9 \$ Wmemory = 2564 `' g. k  M& A. i$ d' C

* P& P4 `, K, B6 H" O0 _& _5 i$ Evcpus = 25 a5 _3 D- Z+ E7 s8 Z' J: X9 {; m
9 c* ~( h6 p9 F& K
disk = [ '/p_w_picpaths/xen/busybox.img,raw,xvda,rw' ]
+ `/ Q, J1 b  D% a2 D" J9 Q5 n& D' q) z! l- j3 X
root = "/dev/xvda ro"7 F- Q5 G* X0 L  p9 }
: s) ?4 i% l' Z4 e0 C7 m
[root@BAIYU_175 ~]# cd /boot/ v) v/ P9 @6 e$ X  v+ E
[root@BAIYU_175 boot]# ll& l, o* }) b* L* Y" B9 _$ c
total 764563 B- u5 M: z# e, I$ p
-rw-r--r--. 1 root root  2585052 Jul 24  2015 System.map-2.6.32-573.el6.x86_64
8 ^  A3 r; s: {7 S& J-rw-r--r--  1 root root  3208657 May 27 20:18 System.map-3.18.34-20.el6.x86_643 Q1 P: m9 B: G% F
-rw-r--r--. 1 root root   107134 Jul 24  2015 config-2.6.32-573.el6.x86_64% ~" F  D1 Z, v) R1 O. N
-rw-r--r--  1 root root   155205 May 27 20:18 config-3.18.34-20.el6.x86_640 r. g3 _# N1 h- n
drwxr-xr-x. 3 root root     4096 Oct 24  2015 efi: K4 T, d1 d% H) d( m; O
drwxr-xr-x. 2 root root     4096 Jul 14 23:47 grub8 M. B+ V. @3 ?% U" Y. W$ z
-rw-------. 1 root root 27609239 Oct 24  2015 initramfs-2.6.32-573.el6.x86_64.img
9 z5 F+ i9 \# H+ J( G+ M/ r+ G-rw-------  1 root root 29366666 Jul 14 18:07 initramfs-3.18.34-20.el6.x86_64.img
' J- h& H$ N. P-rw-------  1 root root  4330884 Jan  2  2016 initrd-2.6.32-573.el6.x86_64kdump.img1 `4 t/ B: e" V6 X8 a4 F% Z  r1 e
drwx------. 2 root root    16384 Oct 24  2015 lost+found
4 J+ x0 l8 M: ~! w3 w2 R" j-rw-r--r--. 1 root root   205998 Jul 24  2015 symvers-2.6.32-573.el6.x86_64.gz; v- g0 P; G4 o& h2 D
-rw-r--r--  1 root root   285315 May 27 20:18 symvers-3.18.34-20.el6.x86_64.gz
- v, u+ i* z/ A9 k; r( q-rwxr-xr-x. 1 root root  4220560 Jul 24  2015 vmlinuz-2.6.32-573.el6.x86_64
1 r7 R: P  @8 f; [+ c  ]/ m-rwxr-xr-x  1 root root  5267744 May 27 20:18 vmlinuz-3.18.34-20.el6.x86_64+ {& K4 Q' H9 d
-rw-r--r--  1 root root   893598 May 26 18:58 xen-4.6.1-11.el6.gz
- T; T" L- i$ r: U4 d: R6 {) vlrwxrwxrwx  1 root root       19 Jul 14 18:06 xen-4.6.gz -> xen-4.6.1-11.el6.gz
( ^" d' b4 m( v' B, flrwxrwxrwx  1 root root       19 Jul 14 18:06 xen.gz -> xen-4.6.1-11.el6.gz5 t0 q, X- g7 K0 u; a5 M  ]
[root@BAIYU_175 boot]# ln -sv vmlinuz-2.6.32-573.el6.x86_64 vmlinuz3 n7 h' d, G1 F( N1 ]
`vmlinuz' -> `vmlinuz-2.6.32-573.el6.x86_64'
* E  C! _7 U3 f" }: n[root@BAIYU_175 boot]# ln -sv initramfs-2.6.32-573.el6.x86_64.img  initramfs.img
  G( u8 @: ~6 g# K* d6 H# v$ d/ c`initramfs.img' -> `initramfs-2.6.32-573.el6.x86_64.img'
9 u0 f! Y+ T) c! v/ @3 l[root@BAIYU_175 boot]# ll9 H* `3 o. l9 U, [9 {# x& \7 b# x1 r
total 76456. P3 x* e" b: J  o, D1 @6 P4 e
-rw-r--r--. 1 root root  2585052 Jul 24  2015 System.map-2.6.32-573.el6.x86_649 _: c' D) Y0 e+ ?! J7 G; |* L  ~4 V( w
-rw-r--r--  1 root root  3208657 May 27 20:18 System.map-3.18.34-20.el6.x86_64
/ s* M3 S$ t1 Z" m9 h' D* V-rw-r--r--. 1 root root   107134 Jul 24  2015 config-2.6.32-573.el6.x86_64) @8 Z; c* G! l! u' w& L
-rw-r--r--  1 root root   155205 May 27 20:18 config-3.18.34-20.el6.x86_64) s1 l" _4 F9 E& Y3 n
drwxr-xr-x. 3 root root     4096 Oct 24  2015 efi
0 H( ]- t6 s$ j2 g; _1 `9 h; Gdrwxr-xr-x. 2 root root     4096 Jul 15 13:57 grub
  V4 l1 l) s- i5 ?6 v3 Y; B-rw-------. 1 root root 27609239 Oct 24  2015 initramfs-2.6.32-573.el6.x86_64.img0 y$ ]- `1 K* Q$ W
-rw-------  1 root root 29366666 Jul 14 18:07 initramfs-3.18.34-20.el6.x86_64.img4 v+ U: G* [( b2 @" j2 X4 H
lrwxrwxrwx  1 root root       35 Jul 15 13:59 initramfs.img -> initramfs-2.6.32-573.el6.x86_64.img0 M) Y; C$ M* u1 u. v% T4 J
-rw-------  1 root root  4330884 Jan  2  2016 initrd-2.6.32-573.el6.x86_64kdump.img- E& L3 K, x+ n) y* o) J
drwx------. 2 root root    16384 Oct 24  2015 lost+found
7 ?* F/ ~, s" c-rw-r--r--. 1 root root   205998 Jul 24  2015 symvers-2.6.32-573.el6.x86_64.gz
3 u, I7 D& o' s  t-rw-r--r--  1 root root   285315 May 27 20:18 symvers-3.18.34-20.el6.x86_64.gz: H4 f( d+ N) l
lrwxrwxrwx  1 root root       29 Jul 15 13:57 vmlinuz -> vmlinuz-2.6.32-573.el6.x86_648 P! m0 \- }/ d% Y
-rwxr-xr-x. 1 root root  4220560 Jul 24  2015 vmlinuz-2.6.32-573.el6.x86_64
" |$ M0 l$ ^; ^2 D" |: E2 l-rwxr-xr-x  1 root root  5267744 May 27 20:18 vmlinuz-3.18.34-20.el6.x86_64
9 y# c) e' S2 I* o& \) d9 a8 m/ j-rw-r--r--  1 root root   893598 May 26 18:58 xen-4.6.1-11.el6.gz
& [1 i6 O& Q: Z: C2 O. e9 ~lrwxrwxrwx  1 root root       19 Jul 14 18:06 xen-4.6.gz -> xen-4.6.1-11.el6.gz
! X, o" x0 T( i7 _lrwxrwxrwx  1 root root       19 Jul 14 18:06 xen.gz -> xen-4.6.1-11.el6.gz
) E# K  m- P$ D7 i! e( a4 M/ p9 P& r
8 P: T9 U6 X) n4 M1 g+ d
0 o9 d5 E2 b9 P3 i5 N( w根据xen给定的pv示例配置文件修改:9 P3 b/ A, F( S' J: v- V5 N& m2 \. K+ Q- ~
6 E8 R3 Y: L% S6 x! o+ w
[root@BAIYU_175 boot]# cd /etc/xen/
( z/ \4 g, ~% x0 ]; M[root@BAIYU_175 xen]# ls3 H; C/ G; r  r2 _
auto  cpupool  scripts  xl.conf  xlexample.hvm  xlexample.pvlinux/ k* f& W. @2 N5 w
[root@BAIYU_175 xen]# cp xlexample.pvlinux busybox
" t4 C& o+ \( x9 ^7 k9 D0 d# _0 h- h& v, q7 d) A/ a/ Z
[root@BAIYU_175 xen]# grep -v '^#\|^$' busybox      #修改后的配置参数
, U. U( O$ \8 t( i" g5 y8 Aname = "anyfish-001"
8 {( E' D) N" H7 W6 d. okernel = "/boot/vmlinuz"! I* X4 m: f( v1 ~
ramdisk = "/boot/initramfs.img"
& U/ h- \7 z5 J! F- p) ~0 uextra = "selinux=0 init=/bin/sh"
- W. x' ?" ?' d  umemory = 521- {8 H& [3 C2 A& H$ C* \
vcpus = 2+ m3 \( P6 b% V7 F; c
vif = [ '' ]
# w: `* Q( [  W4 O5 U2 x$ G+ odisk = [ '/p_w_picpaths/xen/busybox.img,raw,xvda,rw' ]
; X' B, x0 j8 G' h) X) t1 Croot = "/dev/xvda ro"6 g/ I, {+ e6 i* R+ R7 k1 B
8 z9 @' e1 k! G+ b- c. g
* x  r6 N, G; z! s7 [
(4) 启动实例5 N! I3 K( Q/ o* l

) F; A" }' `* q$ @" ^/ gxl [-v] create <DomU_Config_file> -n' A. I' G+ s" X( b, [1 g. P1 S+ `* [
3 R9 Q; o! ?3 x3 b% C" E9 V
xl create <DomU_Config_file> -c
1 ^) O! ?+ b5 ]. T* ]
. U0 d. m/ ]- N% F: ~9 y0 a[root@BAIYU_175 xen]# xl help create
' h0 x3 T( X5 b! XUsage: xl [-vfN] create <ConfigFile> [options] [vars]
! ^( E7 O2 Y" {8 _  T7 X, _#-v 表示详细信息,( r5 e4 e$ }7 R6 T1 A' |
-f 指定xl命令的配置文件% G4 V# u& n5 v' [( `" j$ |, e( z. d5 Z
ConfigFile  是DomU的配置文件
7 M  B# D6 X! _Create a domain from config file <filename>.
. S5 ]) I) G, U. z! M4 q6 D2 o
3 [* ]4 r- w* K( k( H+ T1 ?Options:
- i' ~) J+ P) k  U6 _" y. ]2 w
3 F# V5 o) Q) E) E4 v. ^2 w8 A# M-h                      Print this help.5 Q1 Y: [6 R! j) S
-p                      Leave the domain paused after it is created.$ ^/ o) g5 n, h( k- q
-c                      Connect to the console after the domain is created.
, j+ N7 w; p. ]8 }) G# `+ K) A-f FILE, --defconfig=FILE; x" A* h  c$ r! `1 y3 {
                     Use the given configuration file.
1 g/ X: M( k* _6 q# a6 B. ?-q, --quiet             Quiet.
0 o- m: J; h( h: b" ~1 ?2 }-n, --dryrun            Dry run - prints the resulting configuration   #并不真正创建虚拟机,只是空跑一遍,就是测试咯,
- x9 d( c: g8 N/ G% ]                         (deprecated in favour of global -N option).  C/ y, `0 h; S( A7 G' _. n$ E
-d                      Enable debug messages.        
4 n4 ~8 r, a  u, Y8 {-F                      Run in foreground until death of the domain.
& `1 \" R- D  D! c-e                      Do not wait in the background for the death of the domain.; V) x, L3 }4 d* i
-V, --vncviewer         Connect to the VNC display after the domain is created.
3 P4 I9 l( p7 R4 P$ T- F8 v6 v8 u-A, --vncviewer-autopass, f8 K; {9 [  v1 M6 w
                        Pass VNC password to viewer via stdin.0 j& W% ^' C6 ~! Y
+ Q0 f' e! [( u1 v* i# r
[root@BAIYU_175 ~]# umount /mnt   
' F& U8 {) t; p4 _, d[root@BAIYU_175 xen]# xl -v create /etc/xen/busybox  / T  p7 A5 W& j. {" D
[root@BAIYU_175 xen]# xl list0 s3 A  w6 h; ~# Z+ s5 j
Name                                        ID   Mem VCPUs        State        Time(s)$ R  a7 A8 |3 c$ h
Domain-0                                     0  1024     2     r-----      85.7
; w$ w$ o6 T- P' j- B! a1 S, }anyfish-001                                 24   256     2     -b----       1.4
% ~4 a4 B  V5 L- e! d4 D( z$ w: ]5 M[root@BAIYU_175 xen]# xl console anyfish-001    #连接虚拟控制台
& U5 P% j  W5 z( Q8 B- v3 z/ # ls
1 J5 c9 X) \$ ]. Sbin         dev         home        lost+found  sbin        usr! n3 o7 t# Q" h; r' K2 h# H
boot        etc         linuxrc     proc        sys         var             按crtl + ]退回到Dom0,输入exit会删除掉anyfish-001这个虚拟机% l6 _# X; I. I; L
9 ^* U0 V( c7 _7 E( R/ j# ^* L1 M
0 v7 Q/ Z- }1 |. H
(5)添加网卡3 @& S1 U3 c' {- H$ S& h$ T4 S

/ _7 E4 I/ Z5 I) J$ ?如何配置网络接口?
+ o& M  w/ m1 O. P, ~" Z
0 l2 |4 C( x3 g/ ~vif = [ '<vifspec>', '<vifspec>', ... ]
. u1 `' E5 X$ y9 \+ L5 M
+ A4 G2 A- p2 R; R. i/ w, X. yvifspec:  [<key>=<value>|<flag>,]
/ t7 X! m% R7 _, ^3 z/ v! D: k4 o1 m/ W& K9 [
常用的key:7 s7 \7 n8 L6 x3 |

; }& S" n7 F4 s5 \. S" p0 |# amac=:指定mac地址,要以“00:16:3e”开头;! h* M  H- L9 J: l8 o5 V6 R  c
- N# }0 X. B  S6 `
bridge=<bridge>:指定此网络接口在Dom0被关联至哪个桥设备上;( r& w* v9 D% L; P$ g
4 X+ K, t& a5 W6 Z1 \! _* @" e
model=<MODEL>:
6 o7 v8 b/ U3 k+ g  ^. S; _. H0 n9 K1 R* ~( {! F7 x  r
        vifname=: 接口名称,在Dom0中显示的名称;
+ v6 g2 ]1 v$ M& S+ s
5 v5 r/ q1 J- {script=:执行的脚本;7 X; L6 w" S& R. ]: A
( H- e0 M6 h, }! |
ip=:指定ip地址,会注入到DomU中;
1 I- K, c6 w% E  h5 C2 h/ ^
4 W* ?0 i+ S& h3 hrate=: 指明设备传输速率,通常为"#UNIT/s"格式: d) {8 V2 k% E5 }" J5 a0 a

; E) B4 T: D# i0 B9 \4 a1 K8 T% xUNIT: GB, MB, KB, B for bytes.- O& U, w5 m, c) Y- \
: b0 E. B1 c8 N
  Gb, Mb, Kb, b for bits.
0 U' h  L  ], E4 R; c6 t5 t$ S$ x/ T8 e/ ?; m# N: [
1)创建xenbr0
0 T0 O1 U' p( n) Y2 I8 v% l, k9 S
* L) d; ?# Q0 |$ s  V
4 Z& c: \, e6 Z0 Q! P5 u$ q# brctl addbr br05 e( `! g; S- y7 a) U, x1 C3 u
8 R8 m6 n' H: s. o, }
# brctl stp br0 on
0 c3 }/ H! b: _0 |! H: L! U6 A' c
; k* A% o1 {% }" ^2 L* i# ifconfig eth0 0 up5 @6 U7 F7 u+ @! l8 Y
( P$ k0 Q" n+ f/ f( L% @
# brctl addif br0 eth0( G1 F' |' N( Q# ?8 }

8 P5 I# S2 P7 z- Z0 o% t/ `' M+ u9 t# ifconfig br0 IP/NETMASK up+ e* s# }3 C7 T  Y. S: v$ R

6 T: u+ o- y% E- N: @# route add default gw GW
. u. j/ ~" M( O# M$ h+ b; g# u( |7 d1 g/ P2 W$ e: W/ M
[root@BAIYU_175 ~]# brctl show
; W4 K1 H  U% A0 H; sbridge name        bridge id                STP enabled        interfaces' h3 W3 E" }6 @
xenbr0                8000.000c29efbbd4        yes                eth0
* L8 C! p0 g. i; A% m+ J  d( ~#在这步后,系统死机了,可能3.18的内核bridge功能有bug,用3.7.4版本的内核没问题
- x( {7 V# A$ ], f3 ^  Q1.
: F& U: i+ O% X/ ~* A2.
% d/ h; |( R0 a5 y3.9 t4 @% N1 z. B- _& D. ^
4.8 y! t4 @6 `+ J6 i# A( T
2)在配置文件/etc/xen/busybox中添天网卡相关配置,并复制驱动程序到DomU中* c- M' I6 c4 q2 @

  w4 @7 p& |0 U9 p/ @( }3 Dvif = [ 'bridge=xenbr0' ]
, j1 Q' J# g) l9 X1.
0 H- P% ]; Z& ]3 Z( ]  l[root@BAIYU_175 ~]# cd /lib/modules/2.6.32-573.el6.x86_64/kernel/drivers/  #驱动文件的路径
! A, ?% y7 o2 H[root@BAIYU_175 drivers]# ls
: C1 y3 P- c( U( b5 C( racpi        char      gpio        infiniband  mfd      platform   serial   vhost6 D9 B* ~8 M  T7 O% T1 z  s1 `
ata         cpufreq   gpu         input       misc     power      ssb      video( T& D9 @4 n# N% d8 w9 Y, K( N
atm         crypto    hid         isdn        mmc      powercap   staging  virtio% X% ?1 d" ?9 ^0 Q5 v
auxdisplay  dca       hv          leds        mtd      pps        target   watchdog7 L" x) Q% ^2 U+ ]
bcma        dma       hwmon       md          net      ptp        thermal  xen
2 m& r9 z0 |) O- wblock       edac      i2c         media       parport  regulator  uio& @$ t9 L, s% O( O( C
bluetooth   firewire  idle        memstick    pci      rtc        usb
5 U! n) D; a9 S" Mcdrom       firmware  ieee802154  message     pcmcia   scsi       uwb
. e4 l3 d3 z8 L6 @; `; g[root@BAIYU_175 drivers]# cd net/
9 A+ j8 @0 J7 B: B2 a# B[root@BAIYU_175 net]# ls2 r8 j7 s- m  k7 e2 c
3c59x.ko     cnic.ko       ifb.ko         netxen          r6040.ko       tg3.ko( ]8 i* |3 h' D; c
8139cp.ko    cxgb3         igb            niu.ko          r8169.ko       tlan.ko
, J5 \4 O" X7 F0 q& r* w8 d" ?8139too.ko   cxgb4         igbvf          ns83820.ko      s2io.ko        tulip) Y3 I# i, V8 Y) e7 U! a" [* E
8390.ko      cxgb4vf       ipg.ko         pch_gbe         sc92031.ko     tun.ko
4 n. _) {/ @; n  w7 ?( U! Yacenic.ko    dl2k.ko       ixgb           pcmcia          sfc            typhoon.ko
" U) ~  P0 h0 Y8 B: Zamd8111e.ko  dnet.ko       ixgbe          pcnet32.ko      sis190.ko      usb
5 [1 e8 S2 H7 n6 y5 I/ q1 ~' xatl1c        dummy.ko      ixgbevf        phy             sis900.ko      veth.ko  H0 A% T$ h# ~: s
atl1e        e1000         jme.ko         ppp_async.ko    skge.ko        via-rhine.ko
) w! z; z& X/ n6 Gatlx         e1000e        macvlan.ko     ppp_deflate.ko  sky2.ko        via-velocity.ko% k7 N- r7 X( t
b44.ko       e100.ko       macvtap.ko     ppp_generic.ko  slhc.ko        virtio_net.ko
4 k( ~+ P" `& M* ]; Ibenet        enic          mdio.ko        ppp_mppe.ko     slip.ko        vmxnet3
' b& c7 ^: q) B# ?5 K6 h4 Vbna          epic100.ko    mii.ko         pppoe.ko        smsc9420.ko    vxge
9 h5 m! x5 p* ibnx2.ko      ethoc.ko      mlx4           pppol2tp.ko     starfire.ko    vxlan.ko
) g7 N  G4 d! Zbnx2x        fealnx.ko     mlx5           pppox.ko        sundance.ko    wan. M# U* L4 P2 g. T
bonding      forcedeth.ko  myri10ge       ppp_synctty.ko  sungem.ko      wimax2 d$ _& G& Q- j" X( B
can          hyperv        natsemi.ko     qla3xxx.ko      sungem_phy.ko  wireless
' E2 W5 P6 x3 X9 p  f. u3 J. A- kcassini.ko   i40e          ne2k-pci.ko    qlcnic          sunhme.ko      xen-netfront.ko
5 y$ b+ `4 G$ t( ^; R4 i4 bchelsio      i40evf        netconsole.ko  qlge            tehuti.ko
1 M) q  b% j( t$ Z' ?[root@BAIYU_175 net]# modinfo xen-netfront.ko  
  y6 U7 P2 }2 ?filename:       xen-netfront.ko
% x3 C( w* h* A; ?( d( J' palias:          xennet( k* ~1 @1 N& F* X3 I
alias:          xen:vif
4 n6 M+ s8 s4 ylicense:        GPL
8 Q  N6 ]1 a9 E0 ~0 ~* ^4 Pdescription:    Xen virtual network device frontend( s/ w. z  l: q1 e8 o  b& ?
srcversion:     5C6FC78BC365D9AF8135201
9 [( b. i2 \" X3 q( @6 V0 xdepends:           #查看此模块依赖的模块,如果有要一起复制过去- C% J! O! C  h$ s/ q. h9 U9 E
vermagic:       2.6.32-573.el6.x86_64 SMP mod_unload modversions + E( K$ \2 P1 Q5 v) o
[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/l
: m) L. q6 f. n" Klinuxrc     lost+found/
2 ]  a4 P* P7 j% }6 ~4 F1 e[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/l
" R, x# o. |/ y4 P7 \, d, Mlinuxrc     lost+found/
! c9 v. h) E* w2 W2 n[root@BAIYU_175 net]# mkdir -pv /mnt/lib/modules  S! [) A7 ?' R, M0 E2 X
mkdir: 已创建目录 "/mnt/lib"
% z# T% t# E  h' G8 }2 B( Umkdir: 已创建目录 "/mnt/lib/modules"
6 }3 j# ?8 L2 y7 u* N  T8 n+ L[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/lib/modules
# ]4 G8 W( S' n( d) @mkdir: 已创建目录 "/mnt/lib/modules"
3 B& K5 A( r$ L  a0 M' v[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/lib/modules
. }- f) B: x+ Z# M" A6 S[root@BAIYU_175 net]# umount /mnt
& [7 D9 ~  F" c& l[root@BAIYU_175 net]# xl create /etc/xen/busybox -c
( ^2 e+ x1 u$ T( i4 A/ # insmod /lib/modules/xen-netfront.ko                  #手动装载驱动程序& n( X3 j/ T# ]4 G& p
Initialising Xen virtual ethernet driver.8 u8 a3 L! j4 Q( ?5 R
/ # ifconfig( Z7 S+ f" _, ]
/ # ifconfig -a9 A, S. N' H/ O/ n: P' [- N$ F9 V$ D
eth0      Link encap:Ethernet  HWaddr 00:16:3E:50:D3:20  + A; B$ e+ R9 o( S  M5 r1 D' g
          BROADCAST MULTICAST  MTU:1500  Metric:19 O. v, e1 t, p% I# k- Q4 ^
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
! \; K2 t4 R: B; s# O9 J1 D2 v4 G          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0* X5 B. f# k" ~' M  o; i
          collisions:0 txqueuelen:1000
( ?' I3 C' X; s0 `* {$ I- B          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B); r6 q; V$ S6 i1 V/ V& i& G
          Interrupt:18
. ]; _, g$ q6 w' c# p) R0 j3 z) f8 O% L
lo        Link encap:Local Loopback  ( V" u2 [+ _0 ~6 ^
          LOOPBACK  MTU:65536  Metric:1" v# H# b& i5 X' x- A% b
          RX packets:0 errors:0 dropped:0 overruns:0 frame:08 }8 a: q: G; a9 i; f! s  |
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:06 _9 y8 L6 P0 D. R  u
          collisions:0 txqueuelen:0 9 K0 ~, k( D) z  V1 I" }
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
; a+ e. M- T! K0 z' y' F
) w0 m- s' I) A( _& d; @, g0 \/ j# w! s+ V" o: S2 {
此时在Dom0上也可以看到虚拟机网卡的后半段
6 ]7 E3 o7 j/ R- i0 f+ d8 L( l( l% G- ?- l" L
[root@BAIYU_175 ~]# xl list5 O1 T- d4 n; E8 D
Name                                        ID   Mem VCPUs        State        Time(s): y4 ]! ]: m- |7 N# c
Domain-0                                     0  1024     2     r-----      78.6
/ H, Y0 Z  w8 ?2 y. aanyfish-001                                  9   256     2     -b----       3.0, Q7 K: x6 Y9 I! a: |2 J: Z+ U2 q
[root@BAIYU_175 ~]# brctl show! `( S9 }; Q- G0 Q4 i4 v6 o! X/ g8 V
bridge name        bridge id                STP enabled        interfaces
+ M8 Q# ?) m5 Lxenbr0                8000.000c29efbbd4        yes                eth0
% }' n/ V& Y8 x0 j5 U                                                        vif9.0- u+ B0 N  y6 Y6 a  M: G" s
[root@BAIYU_175 ~]# ifconfig% s5 _2 M7 z- q) }& o
eth0      Link encap:Ethernet  HWaddr 00:0C:29:EF:BB:D4  , U' k1 ^" W' o* I) r! p0 s
          inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link
* m1 k% B% ^& L. u' C          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1* K7 D4 _2 `+ i+ L
          RX packets:20797 errors:0 dropped:0 overruns:0 frame:0
5 {9 K8 t1 C6 M" e1 d) G% r- Z  |          TX packets:563 errors:0 dropped:0 overruns:0 carrier:0
" e$ }- j- v+ k& a( n( A          collisions:0 txqueuelen:1000
8 A- Q  e7 _" r" d5 }          RX bytes:1332243 (1.2 MiB)  TX bytes:62352 (60.8 KiB)
1 y) `) I" y9 {4 n
, f: s+ c) z0 p5 Jeth1      Link encap:Ethernet  HWaddr 00:0C:29:EF:BB:DE  
; I+ ^; d- p) B' Y          inet addr:172.16.11.199  Bcast:172.16.11.255  Mask:255.255.255.0" `' h" `/ i1 G
          inet6 addr: fe80::20c:29ff:feef:bbde/64 Scope:Link
9 h- r) Y. o/ q" x8 G/ m          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
5 v5 u/ K0 ]) u, a8 I          RX packets:26507 errors:0 dropped:0 overruns:0 frame:07 d/ d* H( d" v! X3 z9 q( X8 O
          TX packets:3142 errors:0 dropped:0 overruns:0 carrier:0# R$ P+ K8 N1 O/ X1 q( \
          collisions:0 txqueuelen:1000 5 e7 U% c# \4 I3 A; o& M2 b
          RX bytes:2899642 (2.7 MiB)  TX bytes:457705 (446.9 KiB)% j1 ?1 v' Q. M. k+ R9 s

8 X* ?4 `$ H8 tlo        Link encap:Local Loopback  
5 k; \5 `" M& a, ^: V          inet addr:127.0.0.1  Mask:255.0.0.0
4 U7 M6 N! c2 x% ?          inet6 addr: ::1/128 Scope:Host
1 E) x" P/ d& w: y9 l6 b8 S          UP LOOPBACK RUNNING  MTU:65536  Metric:1' h8 }  u( k" ]" M* {' W
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
2 |7 z& d6 P! d          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0. c' N% d# l% H$ y0 U1 k
          collisions:0 txqueuelen:0
2 C1 z0 p. q! T3 K6 A          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)0 S( g! `9 `# h3 D

/ O; v1 F. H7 a$ L: {( Fvif9.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF    #9是虚拟机的ID号,.0表示第一块网卡, F4 [3 a) U6 t& W) @( K6 Y
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link" f0 A3 c; {' Y% R+ L1 {# E
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
' Q# C4 E' V0 i& @- [9 Y          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
' E) s. ^6 _. p: e          TX packets:46 errors:0 dropped:0 overruns:0 carrier:0+ f+ x! k' y2 ]* n
          collisions:0 txqueuelen:32 2 S* K( }2 f6 r9 m. Q1 r* m
          RX bytes:0 (0.0 b)  TX bytes:2548 (2.4 KiB)
. N/ W8 s0 M! S4 j2 W4 m) Y
; a: x; B0 U; t2 s: |9 {6 ^xenbr0    Link encap:Ethernet  HWaddr 00:0C:29:EF:BB:D4  $ s" p7 [$ ]. P: I7 L' G; c# g
          inet addr:192.168.100.175  Bcast:192.168.100.255  Mask:255.255.255.0  @# [/ F% `- w- @! O5 G- o
          inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link6 l" X( u+ N+ D8 [- ~2 f' B' z
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
& ]' V- \5 A$ B- b- ~          RX packets:727 errors:0 dropped:0 overruns:0 frame:0
1 z1 Y, L6 K, v, F2 s* I4 ^2 T          TX packets:292 errors:0 dropped:0 overruns:0 carrier:0
' e# [; ~1 Q* I; T          collisions:0 txqueuelen:0
/ Y) I' s- [5 {5 M# V, c5 A/ ~6 C          RX bytes:55541 (54.2 KiB)  TX bytes:18796 (18.3 KiB): |4 h2 v; }4 ^4 A/ |  ~  q
# H( b) h2 F+ M3 [' [) L
#DomU上,# E! i, k( V% }( D( ^) j2 q4 m, [
/ # ping 192.168.100.180
9 ]3 R. o' U) V: h4 \0 pPING 192.168.100.180 (192.168.100.180): 56 data bytes3 R& y  c9 A/ n+ ]0 V
ping: sendto: Network is unreachable
$ A  m5 H. v5 v; w/ # ifconfig eth0 192.168.100.181/ {8 Y8 U( H+ [& }8 P/ v8 r- z# `
/ # ping 192.168.100.180
; h5 y4 G/ u4 _1 n# }PING 192.168.100.180 (192.168.100.180): 56 data bytes& ^" G! c! `$ I) M3 n7 A& O/ j
64 bytes from 192.168.100.180: seq=0 ttl=64 time=16.589 ms
+ R  \; G. P. H) c) i64 bytes from 192.168.100.180: seq=1 ttl=64 time=0.912 ms
, m/ u, R6 n4 X5 }6 X, M9 l+ g" {1 X: M6 v" |3 I& {4 x. h
. ^# R* v5 t4 A; ?
上面这种方式创建的网卡是桥接,那我们怎么创建一个虚拟通道呢(相当于VMware Workstation网卡设置中的VMnet1,...VMnet19)?" x# m! N' w, p5 m% n* @7 H3 D
% G1 l& l6 U% p; K2 |
[root@BAIYU_175 ~]# xl list( j2 U: s  z% }7 I6 Q/ ^
Name                                        ID   Mem VCPUs        State        Time(s)6 r: Q& I$ l% [2 R+ ?
Domain-0                                     0  1024     2     r-----     100.7
+ F& R" `2 U7 D. k' aanyfish-001                                  9   256     2     -b----      12.5
! q2 k7 a. G* \; V- C% M[root@BAIYU_175 ~]# xl destroy anyfish-001  #立即终止域,相当于拔电源
! x! S( f" u$ V4 {) Q[root@BAIYU_175 ~]# xl list
# K. l$ q2 M& R$ k! i4 W  JName                                        ID   Mem VCPUs        State        Time(s)% f+ x, e) e! W, M
Domain-0                                     0  1024     2     r-----     101.4( O$ ^  n! {% I) k& O
[root@BAIYU_175 ~]# cp /p_w_picpaths/xen/busybox.img /p_w_picpaths/xen/busybox2.img 0 C  P1 P$ }; ?) _; m9 y
[root@BAIYU_175 ~]# ls /etc/xen/5 f7 @0 O8 L& f8 x+ v) v3 d1 Q
auto     busybox.orig  scripts  vm2.orig  xlexample.hvm2 K8 v% M2 m3 d9 R& }
busybox  cpupool       vm2      xl.conf   xlexample.pvlinux
/ Q" ]- N0 s7 ~# w[root@BAIYU_175 ~]# brctl add xenbr1& c: a4 P# q  a8 t
[root@BAIYU_175 ~]# ifconfig xenbr1 up
" y8 y7 z. H. I* m, g2 `# j[root@BAIYU_175 ~]# ifconfig  _# Y# Q- x) W; l) F; A
eth0      Link encap:Ethernet  HWaddr 00:0C:29:EF:BB:D4  $ Y/ G" Y6 R" _6 U: c
          inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link1 x; t- |" ]. _, ?) t. ]
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1- J/ T- P$ {( N% E
          RX packets:30305 errors:0 dropped:0 overruns:0 frame:0, [" u; S; p2 n* {& v# p& L4 @
          TX packets:4219 errors:0 dropped:0 overruns:0 carrier:0# U! h% M0 z' z( b. S0 [" i
          collisions:0 txqueuelen:1000
7 P% _: h; B* k. E8 S" j* V  C          RX bytes:2008392 (1.9 MiB)  TX bytes:387507 (378.4 KiB)
5 F' B; l) M2 q
1 H* k. d2 [6 v. U1 Ceth1      Link encap:Ethernet  HWaddr 00:0C:29:EF:BB:DE  
, h; @, d+ X# W. Q8 Q          inet addr:172.16.11.199  Bcast:172.16.11.255  Mask:255.255.255.0
+ B3 ]* K  _* i: ^/ Q# u2 u6 g          inet6 addr: fe80::20c:29ff:feef:bbde/64 Scope:Link
4 P7 |' H: l5 J& V  V          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
4 k* @$ K' J) W! v          RX packets:34311 errors:0 dropped:0 overruns:0 frame:0$ S/ s4 z, Z8 k* X3 r2 h
          TX packets:3552 errors:0 dropped:0 overruns:0 carrier:0
, Z/ R' i* {4 x/ |0 ^9 R& `% E, I          collisions:0 txqueuelen:1000 / c# a& ~- v( q+ B
          RX bytes:3744076 (3.5 MiB)  TX bytes:501793 (490.0 KiB)& H2 X, v2 r7 Y. k

& D$ X) @, f1 e8 Z, ]$ R+ u  Alo        Link encap:Local Loopback  , ?" m2 O$ I: M( p' q2 w' u% N
          inet addr:127.0.0.1  Mask:255.0.0.0
' O5 b4 B, R& r6 V          inet6 addr: ::1/128 Scope:Host
: X6 \9 T7 l' R" [          UP LOOPBACK RUNNING  MTU:65536  Metric:19 ]- b( ^% ^7 L: ?; }( X
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
2 E) K) G) m" N! T# X          TX packets:0 errors:0 dropped:0 overruns:0 carrier:00 q, q" D) e9 K  y/ [
          collisions:0 txqueuelen:0
  {/ D# [8 K* ^          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b): [) S- n9 F8 h$ S. c0 c

' ?% `: Y$ x6 I. Uxenbr0    Link encap:Ethernet  HWaddr 00:0C:29:EF:BB:D4  + m" a5 c; o' V; o4 |
          inet addr:192.168.100.175  Bcast:192.168.100.255  Mask:255.255.255.0
; [6 B; e* t9 P* T" }! ^" L          inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link
- z+ p2 p1 h# Y7 D3 p  w2 O9 a          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
. Z  H# s; t$ a          RX packets:2656 errors:0 dropped:0 overruns:0 frame:0
8 N4 L0 S8 M( M9 ?" X7 V. \          TX packets:994 errors:0 dropped:0 overruns:0 carrier:0
/ L% H) q. C1 V. P- T          collisions:0 txqueuelen:0 $ q; s8 x' x) i" Q+ }
          RX bytes:163430 (159.5 KiB)  TX bytes:111633 (109.0 KiB)
7 T  r, ^' n1 S9 m* w' G) z+ R" ^
1 X7 k( p3 m& h3 S7 D% x4 ^6 b& {) Cxenbr1    Link encap:Ethernet  HWaddr 42:5B:43:45:2B:D2  
% p6 P& s  g6 ]! X$ ?  O5 e$ M) g- R          inet6 addr: fe80::405b:43ff:fe45:2bd2/64 Scope:Link# b# S0 W7 j4 U: W: P7 o( J/ u8 t
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1) h+ V6 [, ^6 W% v+ _1 L
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
5 c- _! m" [2 ?, o          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0+ s& Q: {6 y/ Q
          collisions:0 txqueuelen:0
' V4 E0 X  @# o* h4 L" D4 d          RX bytes:0 (0.0 b)  TX bytes:168 (168.0 b)( V( s- ]2 F! C4 B0 E( {0 m$ V

$ @$ c( A) k1 U- A% {( A( p8 J7 \[root@BAIYU_175 ~]# cp /etc/xen/busybox /etc/xen/busybox2/ A, o& b) a" t8 N1 o7 u% D
[root@BAIYU_175 xen]# vi busybox' W9 o; {. Z6 a, N) d  F: Q
[root@BAIYU_175 xen]# grep -v '^#\|^$' busybox: g0 x  T% s* F3 o. |7 N9 j
name = "anyfish-001"3 m4 H. `; T/ R8 a* E, w0 r: x
kernel = "/boot/vmlinuz"9 C1 I+ P  B3 U/ w. m! ~! |
ramdisk = "/boot/initramfs.img"
; s$ m7 E- F: r" ]6 C6 }extra = "selinux=0 init=/bin/sh"
6 a/ [9 I% u% g+ {memory = 256, {; A5 x7 i  t% @: p  O$ D& r
vcpus = 2" T; ^& k" P2 J8 D, h; Y8 a
vif = [ 'bridge=xenbr1' ]* Q+ ?# A. U: T7 x& |
disk = [ '/p_w_picpaths/xen/busybox.img,raw,xvda,rw' ]. N# ?1 k0 F2 b' W  o1 B
root = "/dev/xvda ro"
" `, Y. H3 S" h& Z+ d, M[root@BAIYU_175 xen]# vi busybox20 L- S* h5 c* w: ~5 b  A
[root@BAIYU_175 xen]# grep -v '^#\|^$' busybox2
$ s: w+ d  G2 o- \* e/ n' x' M( [name = "anyfish-002"3 }5 j( T- ?6 Q. S: q1 x5 _
kernel = "/boot/vmlinuz"
' w9 a; y' Y/ e2 Bramdisk = "/boot/initramfs.img"+ p/ S5 t  Q- p8 N3 h
extra = "selinux=0 init=/bin/sh": p. U6 a9 w' h* C/ m3 D
memory = 2565 q* L& p* k4 k( S/ @* R2 T! o
vcpus = 2
  P% ]. N6 s- {vif = [ 'bridge=xenbr1' ]
/ O5 D) J6 ]& w$ B4 \) s7 O5 u% Ydisk = [ '/p_w_picpaths/xen/busybox2.img,raw,xvda,rw' ]
( |( S) x9 i( W9 e# \root = "/dev/xvda ro"  
0 x% v" U7 D; r/ C5 ~0 _  C[root@BAIYU_175 xen]# xl create /etc/xen/busybox+ J/ B  e, ]0 q& J6 @
Parsing config from /etc/xen/busybox. m, g- T2 }/ w5 X0 q+ w: V4 ]; a
[root@BAIYU_175 xen]# xl create /etc/xen/busybox2
/ I1 [4 u9 P$ c3 p& @Parsing config from /etc/xen/busybox2" t5 b* m/ K: V" g9 _' @
[root@BAIYU_175 xen]# xl list& Q3 M) ~. l% ~) Y, K& x
Name                                        ID   Mem VCPUs        State        Time(s)
' _# R; ~, b  YDomain-0                                     0  1024     2     r-----     112.8) T+ n/ ]$ u% r$ ~! J2 E/ @7 J
anyfish-001                                 10   256     2     -b----       1.2
; b) R1 |2 O5 P: g6 T1 R. j3 danyfish-002                                 12  256     2     -b----       1.2    ; ~9 f5 W9 ~* e! }! d% x

$ _) C  r# o6 [- @. X# X% M[root@BAIYU_175 xen]# xl console anyfish-001- e) t  i$ k' u- V2 S
# ifconfig -a. J1 t5 H4 C" C+ Z
lo        Link encap:Local Loopback  5 L8 `& }, M  g+ I' y
          LOOPBACK  MTU:65536  Metric:1  j7 r2 }* P; t& f5 y- F( \
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
9 L; |7 n7 H7 C          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0. s8 q& c* Z/ [9 i4 _# {0 {! |
          collisions:0 txqueuelen:0 1 |& p! g* I. l
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
: B( v2 l# ~$ ~0 C: S; ]
- O; _$ g) W8 Y) @9 @( V+ Y/ # insmod /lib/modules/xen-netfront.ko   A" Y$ ^2 S6 ~: O- P
Initialising Xen virtual ethernet driver.
2 _$ V/ ]" ?4 e1 j: q" o/ # ifconfig -a2 ~* o& L: W# _: B( |  F  j$ v
eth0      Link encap:Ethernet  HWaddr 00:16:3E:7C:8B:F0  % d4 r9 W1 I, J  U% o' H
          BROADCAST MULTICAST  MTU:1500  Metric:1! j2 b5 A( ]8 J( V$ a7 A- _
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
! q6 v0 G8 k1 o          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0- @" {' Z9 t3 W0 U" N5 @) \
          collisions:0 txqueuelen:1000
* t) }' m$ a( g- o; {6 {9 p          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)- R* Z: l9 n- y5 ~
          Interrupt:18 $ a; i5 \; N" W0 \+ z& H5 ~
( b- ~5 D: C; X
lo        Link encap:Local Loopback  % l- W% M: x6 O0 g
          LOOPBACK  MTU:65536  Metric:1
1 R& ]2 O( ^% ^) _          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
4 P! K8 B; O# U) I( [8 ?          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0* [: S1 M0 K( J4 H
          collisions:0 txqueuelen:0
# K1 k8 h+ R, M) {/ j" f' x7 x          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
: P3 ~, A7 `2 q% G& \9 G% r0 Y0 X7 T
/ T$ a/ k+ M4 ]1 h/ # ifconfig eth0 192.168.100.181 up
( g( J  G% t% Y# Q2 s7 ]/ # ifconfig8 B8 V0 ?5 c5 S4 ~1 N
eth0      Link encap:Ethernet  HWaddr 00:16:3E:7C:8B:F0  
2 f' H& b! i. e          inet addr:192.168.100.181  Bcast:192.168.100.255  Mask:255.255.255.0
" Y. b& N: r% a5 w6 D9 Z! n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
7 X8 U/ ~4 m$ ]- M          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
8 X+ h! x# P  p% d+ q          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
; A1 [5 b3 N! q! O          collisions:0 txqueuelen:1000   @# }$ T' x! E3 e4 e0 b' G
          RX bytes:384 (384.0 B)  TX bytes:0 (0.0 B)
. H6 ]; Y6 S* f5 j          Interrupt:18 ! F" t* S" k' ^9 W+ m
0 \& F0 m5 X1 W
/ # ifconfig -a2 x. \' C6 g- j: g% d$ s5 `
eth0      Link encap:Ethernet  HWaddr 00:16:3E:7C:8B:F0  8 X! F: t2 f! r# Z+ z# W# T
          inet addr:192.168.100.181  Bcast:192.168.100.255  Mask:255.255.255.0
5 ?& V; ^  ?; s- Q+ ?          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
7 y( i5 \0 ^" `$ j$ ^- `0 _6 N3 D7 ~          RX packets:6 errors:0 dropped:0 overruns:0 frame:0, n. ]$ f( w; h& I, t( E# P
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0! x# W& N+ A) c0 n3 G) o" `8 t' T
          collisions:0 txqueuelen:1000
) S9 K* f5 w1 w9 d) M          RX bytes:384 (384.0 B)  TX bytes:0 (0.0 B)
" a) e$ ]" D7 }  M% ^          Interrupt:18
; N- L1 F' a9 q& m5 u1 i
; ?6 ?* u0 j  D' ?% [lo        Link encap:Local Loopback  ( Y6 Y! k1 o1 T
          LOOPBACK  MTU:65536  Metric:1) q8 b% B8 x* R' O: m: Y
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
! I  s! O! [6 Z5 \3 }          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
+ b7 z* i8 V& H) J1 h# b+ v          collisions:0 txqueuelen:0 2 {" s6 K- X9 l% L4 L: C2 L* Y& S7 D
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
2 a9 f) H, R2 [+ E- s* x4 b( M' F4 ]8 c( r$ F
/ # ifconfig
" u; F5 o/ V3 n3 E$ Q' Z) meth0      Link encap:Ethernet  HWaddr 00:16:3E:7C:8B:F0  * \" h1 E  |( ^& d4 a
          inet addr:192.168.100.181  Bcast:192.168.100.255  Mask:255.255.255.0* O' z: U& T$ D7 J% U% W6 P
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1# L- D- B; @; J2 Q; n$ c
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
1 T) B# ~- \8 t# T# x) Z          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0' U- c; O6 G0 C, V+ g. f% C1 q
          collisions:0 txqueuelen:1000 ; ~4 J8 i3 ]; h4 r/ t, D0 Q" w; Q. U
          RX bytes:384 (384.0 B)  TX bytes:0 (0.0 B)5 I% _+ Y2 C3 M7 l6 [0 |
          Interrupt:18 6 W; I) r1 j  b# E  s" e

6 s2 m' d# _$ x& T9 u( h0 b[root@BAIYU_175 ~]# xl console anyfish-002          8 U; F" U( r! P0 }+ w3 E
/ # insmod /lib/modules/xen-netfront.ko
7 H) t  ?4 o- m1 u! y0 v" U$ G' c6 NInitialising Xen virtual ethernet driver.
5 L; h" F% @) V/ B4 _; @0 p/ # ifcofnig eth0 192.168.100.1829 x$ o$ c- E8 F  Z* z
/bin/sh: ifcofnig: not found- E. c8 y% u# `: v/ j0 x+ S# R
/ # ifconfig eth0 192.168.100.182 up) I- B8 G; n/ _9 R2 Y
/ # ping 192.168.100.181
% n% }1 C3 @. D. a4 h% nPING 192.168.100.181 (192.168.100.181): 56 data bytes
) {2 F+ D: j) Q  c. n, n# K) h1 _64 bytes from 192.168.100.181: seq=0 ttl=64 time=3.144 ms
$ ~3 V2 O( H% p' c! V  U64 bytes from 192.168.100.181: seq=1 ttl=64 time=0.567 ms
$ `' |& J* ^" M& e! M7 P$ X  V! s$ r+ O9 |+ g5 R2 i
此时虚拟通道创建完成,虚拟机之间可以互相通信,而虚拟机不能和物理机及外界通信* U" H3 `7 G: g' ?4 ?
* p$ a  d% p. ]& o
5 @0 ]* C, Y5 Q# }0 s, h: z9 q
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-9 07:13 , Processed in 0.082424 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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