CentOS5.3下xen虚拟机的配置笔记

CentOS5.3下xen虚拟机的配置笔记
(本人二次修改)2010-01-12 20:31最近想入手VPS了,赶紧转了一篇使用说明过来,这里就先谢谢作者啦~

以下操作都是ssh远程进行的,首先登陆上你的服务器
好了,不管其他的,先换源,默认源太慢了,我用的163的源,很快的

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
vim CentOS-Base.repo

加入以下内容

[base]
name=CentOS-$releasever – Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#released updates

[updates]
name=CentOS-$releasever – Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever – Addons
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=0
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

ok,先更新吧

yum update

然后安装xen以及xen内核

yum install xen kernel-xen

然后修改启动文件使用xen内核启动

vi /etc/grub.conf

将文件中的default改为0,然后reboot重启机器

这样xen就装好了,我是懒人,不想自己装系统,直接下载一个centos的xen镜像好了

http://mirrors.esited.com/stacklet/

各种操作系统的XEN镜像

http://mirrors.esited.com/stacklet/centos/centos.5-4.x86.20091105.img.tar.bz2

wget http://mirrors.esited.com/stacklet/centos/centos.5-3.x86-64.20090606.img.tar.bz2
tar jxf centos.5-3.x86-64.20090606.img.tar.bz2
mkdir /data/mv/xen01/ -p
cp centos.5-3.x86-64.img /data/mv/xen01/centos01.img
cp centos.5-3.x86-64.xen3.pygrub.cfg /data/mv/xen01/xen01.cfg

cp centos.5-4.x86.img /data/mv/xen01/centos01.img
cp centos.5-4.x86.xen3.cfg /data/mv/xen01/xen01.cfg

现在创建一个swap交换扇区给虚拟机用,我创建了个512M的

dd if=/dev/zero of=swap.img bs=1M count=1 seek=512
mkswap swap.img

修改配置文件加入swap镜像

vi xen01.cfg
bootloader = “/usr/bin/pygrub”
memory = 512
name = “centos01″
vif = [ '' ]
disk = ['file:/data/mv/xen01/centos01.img,sda1,w','file:/data/mv/xen01/swap.img,sda2,w']
root = “/dev/sda1″
extra = “fastboot”

配置文件很简单,memory就是给虚拟机设定的内存大小,因为我的xen版本还是老的3.0.3,所以disk这里还是以file:开始的,新的版本就不是这样的了
好了,现在启动吧

xm create -c xen01.cfg

默认的用户名密码是:root/password
现在你应该可以进入系统了,默认应该是没有加入swap的,我们来给他加上,虚拟机默认应该没有vi,那就用nano好了

nano /etc/fstab

在最上面加上这样一行

/dev/sda2 swap swap defaults,noatime 0 0

重启虚拟机就行了,free看看,是不是已经有swap了?
现在我们来配置一下网络,我这里的情况是这样的:
4个ip,2个电信,2个网通,主机有2张网卡,eth0绑定1个电信,eth1绑定了1个网通,现在剩下2个ip可以分配
在主机brctl show查看现有的网络桥,看看是否有xenbr0或xenbr1,这里的xenbr0默认应该是和eth0绑定,xenbr1则绑定的eth1
如果两个都没有,那么手动来创建

/etc/xen/scripts/network-bridge start bridge=xenbr0 netdev=eth0 vifnum=0
/etc/xen/scripts/network-bridge start bridge=xenbr1 netdev=eth1 vifnum=1

进入虚拟机,ifconfig先记录下虚拟机的mac地址,然后编辑你的虚拟机的配置文件

00:16:3E:16:80:3A

vi xen01.cfg
bootloader = “/usr/bin/pygrub”
memory = 512
name = “centos01″
vif = [ 'mac=00:16:3E:xx:xx:xx,bridge=xenbr0,ip=61.160.xx.xx' ]
dhcp = “off”
disk = ['file:/data/mv/xen02/centos.img,sda1,w','file:/data/mv/xen02/swap.img,sda2,w']
root = “/dev/sda1″
extra = “fastboot”

这里,我设定的bridge使用的是主机绑电信ip的网卡,那么虚拟机的ip也必须是电信的ip,否则将不能使用
关闭你的虚拟机,然后再启动,进入虚拟机进行剩下的设定
首先编辑网络配置文件

nano /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=61.160.x.x
TYPE=Ethernet
DEVICE=eth0
HWADDR=00:16:3E:xx:xx:xx
BOOTPROTO=none
NETMASK=255.255.255.x
IPADDR=61.160.xx.xx
ONBOOT=yes
USERCTL=no
IPV6INIT=yes
PEERDNS=yes

这里的相关设置除了HWADDR和IPADDR,其他的直接复制主机的eth0配置即可
然后编辑/etc/resolv.conf 加入nameserver 211.x.x.x,或者修改现有的,这是dns,也用主机的就行了
重启网卡,基本上这虚拟机就配置好了

/etc/init.d/network restart

网通机器类似,不过网通的配置文件需要bridge=xenbr1
默认的镜像文件只有1G,系统占用了不到500M,这肯定是不够用的,那么我们得给这镜像文件加点空间
加多少好呢?现加4G吧,一共5G也差不多够用了。首先关闭你的虚拟机,然后才能加

dd if=/dev/zero of=/tmp/temp_expand bs=1M count=1 seek=4069
cat /tmp/temp_expand >> /data/mv/xen01/centos01.img
resize2fs centos01.img(这里可以提示要先RUN个啥命令如:Please run ‘e2fsck -f centos01.img’ first.,照提示做就行了)

ok了,现在启动虚拟机,进去以后df -h看看,是不是已经变成5G了。

—————————————————————-

5.2 Xen服务器的启动;

xend服务器的启动/停止/重启/状态查询,请用下面的命令;

[root@localhost ~]# /etc/init.d/xend start 启动xend,如果 xend没有运行)
[root@localhost ~]# /etc/init.d/xend stop 停止xend,如果xend正在运行)
[root@localhost ~]# /etc/init.d/xend restart 重启正在运行的 xend,如果xend没有运行,则启动
[root@localhost ~]# /etc/init.d/xend status 查看xend状态

启动xendomains 服务器的启动/停止/重启/状态查询,请用下面的命令;一般的情况下,xend服务器启动了,xendomains也会自动启动。所以这个只是掌握一下就行了;

[root@localhost ~]# /etc/init.d/xend start 启动xend,如果 xend没有运行)
[root@localhost ~]# /etc/init.d/xend stop 停止xend,如果xend正在运行)
[root@localhost ~]# /etc/init.d/xend restart 重启正在运行的 xend,如果xend没有运行,则启动
[root@localhost ~]# /etc/init.d/xend status 查看xend状态

[root@localhost ~]# /etc/init.d/xendomains start
[root@localhost ~]# /etc/init.d/xendomains stop
[root@localhost ~]# /etc/init.d/xendomains restart
[root@localhost ~]# /etc/init.d/xendomains status

5.3 Xen 管理工具xm;

我们前面提到Xen的可执行命令中,我们可能看到了一些以xen开头的命令,您不妨尝试一个一个的尝试一下他们是做什么用的;比如xend是服务器的开启运行命令 … ….

其中xm命令,就是管理Xen的最基本的工具;您可以通过xm –help 来获得帮助;

5.31 列出所有正在运行的虚拟操作系统;

[root@localhost ~]# /usr/sbin/xm list

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 450 1 r—– 5377.0
fc5 4 256 1 -b—- 0.1

列出所有正在运行的虚拟系统(也可以称为虚拟机);我们可以看到,一个名为Domain-0的系统正在运行。Domain-0就是Xen本身,也可 以称为虚拟平台内存大小,而Domain-0负责提供其它虚拟操作系统的硬件环境,其它的系统都是基于Domain-0开始的,我们看到他的ID为0就应 该知道它的权限是至高无尚的。所占用的内存是450M,不过这个是可以指定的。 虚拟的CPU个数是1个,运行状态处于r,也就是run,正在运行中;运行时间是5377秒;

还有一个虚拟系统fc5,他的id是4,占用内存256M,虚拟CPU个数是1个 … …

5.32 通过配置文件来引导被虚拟的操作系统;

[root@localhost ~]# /usr/sbin/xm create -c 虚拟操作系统的启动配置文件

比如我们要启动被虚拟的操作系统Fedora Core 5.0 ,我们要写一个启动Fedora的配置文件,比如是fc5vm.cfg。然后就可以通过下面的命令来引导Fedora了;

[root@localhost ~]# /usr/sbin/xm create -c fc5vm.cfg

5.33 从终端或控制台登录正在运行的虚拟操作系统;

[root@localhost ~]# /usr/sbin/xm console 正在运行的虚拟操作系统的Name或ID;

举例:

[root@localhost ~]# /usr/sbin/xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 512 1 r—– 5561.9
fc5 4 256 1 -b—- 0.2

[root@localhost ~]# /usr/sbin/xm console fc5

5.34 存储正在运行的虚拟操作系统的状态及唤醒虚拟操作系统;

[root@localhost ~]# /usr/sbin/xm save
[root@localhost ~]# /usr/sbin/xm restore

举例:

[root@localhost ~]# /usr/sbin/xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 458 1 r—– 260.3
fc5 2 256 1 —— 6.5

[root@localhost ~]# /usr/sbin/xm save 2 fc5run.save
[root@localhost ~]# /usr/sbin/xm restore fc5run.save
[root@localhost ~]# /usr/sbin/xm console fc5

5.35 停止正在运行的虚拟操作系统/激活停止的虚拟操作系统

[root@localhost ~]# /usr/sbin/xm pause
[root@localhost ~]# /usr/sbin/xm unpause

举例:

[root@localhost ~]# /usr/sbin/xm list

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 458 1 r—– 260.3
fc5 2 256 1 —— 6.5

[root@localhost ~]# /usr/sbin/xm pause 2
[root@localhost ~]# /usr/sbin/xm unpause 2

5.36 调整虚拟平台/虚拟操作系统的占用内存

我们可以调整正在运行中的虚拟平台(Domain-0)所占内存大小及虚拟操作系统所占用的内存大小;

[root@localhost ~]# /usr/sbin/xm mem-set

举例:

[root@localhost ~]# /usr/sbin/xm list

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 458 1 r—– 260.3
fc5 2 256 1 —— 6.5

[root@localhost ~]# /usr/sbin/xm mem-set 2 128

5.37 关闭被虚拟的系统

[root@localhost ~]# /usr/sbin/xm shutdown 虚拟操作系统的Name或DomID
[root@localhost ~]# /usr/sbin/xm destroy 立即停止虚拟的系统 (重要);

举例:

[root@localhost ~]# /usr/sbin/xm list

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 458 1 r—– 260.3
fc5 2 256 1 —— 6.5

[root@localhost ~]# /usr/sbin/xm shutdown fc5

[root@localhost ~]# /usr/sbin/xm shutdown 2

[root@localhost ~]# /usr/sbin/xm destroy 2

5.38 调整虚拟平台及虚拟操作系统的虚拟CPU个数;

[root@localhost ~]# /usr/sbin/xm vcpu-set

举例:

[root@localhost ~]# /usr/sbin/xm list

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 458 1 r—– 260.3
fc5 2 256 1 —— 6.5

[root@localhost ~]# /usr/sbin/xm vcpu-set 2 4

5.39 查看虚拟系统运行的状态;

[root@localhost ~]# xm top

XEN中安装Linux虚拟机 (半虚拟化)

感谢脱壳蜗牛小高,Q_Q~!

xen同linux是一个完美的组合,是目前linux上的最佳的虚拟化解决方案,特别适合于服务器应用,如用于将多个服务器合并到一台物理服务器上,以节省运营成本(机房空间、电力消耗);或者是出于安全角度的考虑,需要将不同的应用进行分区,以便降低安全风险等。

环 境:VMware 6.0安装虚拟机CentOS5.2,在CentOS5.2中安装XEN,在XEN中安装虚拟机CentOS5 .2。

CPU:Intel E2160 (不支持VT)要虚拟WindowsXP必须CPU支持VT才行。

宿主机: CentOS 5/RHEL 5(cdrom加载CentOS5 iso镜像)

关闭SElinux和iptables。

XEN虚拟机:CentOS 5/RHEL 5

1>首先在VM6中建立虚拟机,添加2块磁盘,一块安装宿主机,一块预留安装XEN虚拟机。

2>在宿主机中YUM安装xen包和vsftp包。
[root@localhost ~]# yum -y install xen
[root@localhost ~]# yum -y install vsftpd.i386

3>修改GRUB配置文件,将XEN内核启动改成默认,这样不用手动选择启动项了。
[root@localhost ~]# vi /boot/grub/grub.conf
将 default=1 值改为 0

4>用xm list 命令查看Domain是否已经启动。
[root@localhost ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 778 1 r—– 85.4

5>将cdrom挂载到FTP目录,将ftp匿名用户开启。
[root@localhost ~]# mount /dev/cdrom /var/ftp/pub/
mount: block device /dev/cdrom is write-protected, mounting read-only

6>用xm命令行建立虚拟机
[root@localhost ~]# virt-install
What is the name of your virtual machine?vm1 #虚拟机的名字vm1
How much RAM should be allocated (in megabytes)? 400 #为虚拟机分配内存400M 最低256M
What would you like to use as the disk (file path)? /dev/sdb1 #sdb为第二块硬盘
Would you like to enable graphics support? (yes or no) no #不启用图形化支持
What is the install location? ftp://192.168.10.1/pub/ #填上本机FTP地址,前提是CDROM已经挂载到这个FTP目录,并开启了匿名用户。

可以看到安装文件内核已经开始启动!
Starting install…
Retrieving file .treeinfo… 0 B 00:00
Retrieving file vmlinuz.. 100% |=========================| 2.0 MB 00:00
Retrieving file initrd.im 100% |=========================| 5.0 MB 00:00

接下来安装过程就不用我说了吧,TEXT模式的。
7>xen 一些常用的管理命令
xm list :列出Domain 。
xm console Domain-ID :连接一个虚拟机,可以为虚拟机名称或者是ID号。
xm create :建立一个 Domain-U 的虚拟机,-C 选项为创建并连接虚拟机。
xm reboot Domain-ID :重启一台虚拟机。
xm save Domain-ID:存储虚拟机的状态。
xm restore Domain-ID:还原虚拟机状态。
……

虚拟机和宿主机之间的切换用ctrl+] 即可。

猜你喜欢

转载自lwg2001s.iteye.com/blog/1275335