Linux下利用Xen创制设想机,5下安装使用Xen的点子

2019-07-19 作者:yzc216亚洲城   |   浏览(156)

随着硬件性能越来越高,虚拟化技术的应用也越来越普及。

Centos 5.5安装使用Xen

虚拟化类型分为三种,全虚拟化,半虚拟化,硬件虚拟化,全虚拟化产品的典型代表是Vmware workstation产品,今天尝试用Linux系统自带的XEN搭建虚拟化环境创建虚拟机。

 

本身也没有空闲的机器,还是选择用VirtualBox创建个Xen虚拟机,这里我用的是CentOS 5.5版本的安装盘进行安装的,安装的组件包括

 Xen是主流虚拟机中性能损耗最小的(但是不支持windows平台),目前可以运行在x86系统上,并正在向x86_64、IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。  

Editors
legacy software development
development libraries
development tools
administration tools
system tools
base
virtualization

1.安装支持Xen的Linux内核和 Xen

系统装好以后可以使用xm list查看现有虚拟机状态
默认存在一个名为Domain-0的虚拟机可以认为是宿主机,因为并不是安装在真实机器上的,环境是半虚拟化的,在硬件虚拟机化环境中,可以通过ISO文件、CD-ROM来安装虚拟机,在半虚拟化环境里,可以通过下面3中方法安装虚拟机:

1

1、用nfs,http,ftp的方式安装系统。
2、直接挂载被虚拟的磁盘,然后像创建LFS一样将系统文件、引导文件都存入虚拟磁盘中。
3、从网上下载他人制作好的迷你系统镜像。
这里我选择ftp的方式安装。

yum -y install xen kernel-xen xen-lib virt-manager python-virtinst

用vsftp软件搭建ftp环境,ip地址:192.168.56.111
开启匿名登录,挂载光盘或镜像文件mount /dev/cdrom /mnt/cdrom
将光盘中的文件全部拷贝到/var/ftp/pub目录
cp -r /mnt/cdrom/* /var/ftp/pub/

kernel-xen:可以跑 Xen 的 Linux 核心  www.2cto.com  

虚拟磁盘可以由“未使用的物理分区”、“映像文件”、“nfs共享”来担任。
创建映像文件的命令如下
dd if=/dev/zero of=/mnt/xen/vm01.img bs=1M count=20480
bs=1M表示块大小为1M,count=20480代表分配2048块,www.linuxidc.com 即创建一个大小为20G的虚拟磁盘文件。文件名vm01.img

xen:主要的 xen 套件,包括配置文件、启动脚本和一些函数库 

这里我选择一个未使用的磁盘分区
/dev/sdb1

xen-libs:Xen 所需要的函数库 

创建虚拟机的命令
virt-install -n vm001 -b xenbr0 -r 384 -f /dev/sdb1 -l ftp://192.168.56.111/pub

python-virtinst:提供终端安装的软件 

-n创建的虚拟机名,-b用于指定桥接到那块网卡,“xenbr”是桥接模式的网卡,如果启用的网卡为eth0,则桥接模式的网卡为xenbr0,如启用的网卡是eth1,则桥接模式的网卡为xenbr1.
-r用于指定内存大小,
-f用于指定磁盘、分区、块设备文件。
--nographics表示安装虚拟机的系统时采用文本模式。
-l表示安装源。
安装过程和正常安装系统类似,安装完成后,使用xm list命令查看

virt-manager:用于图形界面管理xen  

常用命令:xm list列出所有已知的虚拟机列表。
xm console打开控制台管理虚拟机。
快捷键Ctrl ]切回到主机界面中。

2.修改默认以支持xen的内核启动

遇到的问题:本来是想将光盘直接挂载到/opt/ftp/pub目录下,不用在拷贝到该目录,但挂载后ftp访问不了,不清楚原因出在哪里?

1

参考书籍:构建高可用Linux服务器。

vi /boot/grub/grub.conf

图片 1

default=0

重启系统

1

reboot

检查内核

1

uname -r

2

输出 2.6.18-238.9.1.el5xen

查看xen是否启动

1

xm list

2

输出: Domain-0  

3.在xen中安装操作系统

xen中安装操作系统时,可以支持三种安装源:

NFS :   nfs:主机IP:目录  www.2cto.com  

WWW :  

FTP :   ftp://主机IP/目录

我们采用 WWW 方式(这种方式非常方便,安装源可以是一个包含安装文件的可以访问到的web环境):

制作安装源(将光驱挂载到/mnt/cdrom)

1

mkdir -p /mnt/cdrom

2

mount /dev/cdrom /mnt/cdrom

安装httpd(如果未安装)

1

yum -y install httpd

修改httpd默认目录

1

vi /etc/httpd/conf/httpd.conf

将DocumentRoot "/var/www/html"修改为DocumentRoot "/mnt/cdrom"

将<Directory "/var/www/html">修改为<Directory "/mnt/cdrom">

1

sed -i 's#DocumentRoot "/var/www/html"#DocumentRoot "/mnt/cdrom"#' /etc/httpd/conf/httpd.conf

2

sed -i 's#<Directory "/var/www/html">#<Directory "/mnt/cdrom">#' /etc/httpd/conf/httpd.conf

重启httpd

1

service httpd restart

制作客户机主要磁盘

1

mkdir -p /data/vm

2

dd if=/dev/zero of=/data/vm/web_001.img bs=2k seek=4096k count=1

制作客户机交换磁盘

1

dd if=/dev/zero of=/data/vm/swap.img bs=2k seek=512k count=1

安装操作系统

1

virt-install -n web_001 -r 512 --vcpus=1 --nographic -f /data/vm/web_001.img  -l  www.2cto.com  

# -n :后面接虚拟机名称,配置 /etc/xen 底下

# -r :后面接分配的内存大小,至少需要 256MB 才能夠執行

# --vcpus : 分配多少个cpu

# -f :后面接新建的磁盘文件!

# --nographics :不使用图形化安装;

# -p : 半虚拟化

# -s : 虚拟机的硬盘空间

# -l :后面接安装源。写法为:

#   NFS :   nfs:主机IP:目录

#   WWW :  

#   FTP :   ftp://主机IP/目录

然后根据系统提示安装系统

安装完成后,查看真实机上的虚拟机列表

1

xm list

输出的列表中会包含新建的 web_001 虚拟机

4.附相关操作命令

ls /etc/xen           #xen配置文件目录

xm list               #查看各个域状态

xm shutdown web_001   #关闭web_001这个虚拟机

xm console web_001    连接web_001控制台,连接到虚拟机上面可以用组合键  ctrl ] 键切换到物理机

#如果配置了IP,可以用ssh -l username IP 来连接

xm create web_001     启动web_001

5.真实机开机如何自动启动虚拟机

1

ln -s /etc/xen/web_001 /etc/xen/auto/web_001

#也可以直接把配置文件拷贝到/etc/xen/auto/

1  www.2cto.com  

cp -r /etc/xen/web_001 /etc/xen/auto/

6.XM命令:

    xm create vm1 #其中vm1 为虚拟机的配置文件,位于/etc/xen/vm/vm1

    xm create -c vm1 #如果需要启动控制台,则可以运行命令

    xm list #可以列出所有的虚拟机

    xm console <domid> #可以显示某虚拟机的控制台

    xm reboot|shutdown <domid> #可以重起和关闭id 为domid 的虚拟机

    xm destroy <domid> #可以销毁id 为domid 的虚拟机

    xm console fc5 #从终端或控制台登录正在运行的虚拟操作系统

    xm save <DomId> <File> # 存储正在运行的虚拟操作系统的状态

    xm restore <File> # 唤醒虚拟操作系统

    xm pause <DomId> #停止正在运行的虚拟操作系统

    xm unpause <DomId> #激活停止的虚拟操作系统

    xm mem-set <DomId> <Mem> #调整虚拟平台/虚拟操作系统的占用内存

    xm shutdown 虚拟操作系统的Name或DomID #关闭被虚拟的系统

    xm destroy <DomId> #立即停止虚拟的系统 (重要);

    xm vcpu-set <DomId> <VCPUs> #调整虚拟平台及虚拟操作系统的虚拟CPU个数

    xm top 或 xentop # 查看虚拟系统运行的状态

    xm save VM1 VM1.chk # stop the domain and save its current state into a file called VM1.chk

    xm restore VM1.chk #resume execution of this domain  

7.XEN虚拟机复制

关闭运行中的虚拟机

1

xm shutdown web_001

复制虚拟机的镜像文件和配置文件

1

cp /data/vm/web_001.img /data/vm/web_002.img

2

cp /etc/xen/web_001 /etc/xen/web_002

修改新复制虚拟机的配置文件

1

vi /etc/xen/web_002

原内容为:

01

name = "web_001"

02  www.2cto.com  

uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fa"

03

maxmem = 512

04

memory = 512

05

vcpus = 1

06

bootloader = "/usr/bin/pygrub"

07

on_poweroff = "destroy"

08

on_reboot = "restart"

09

on_crash = "restart"

10

disk = [ "tap:aio:/data/vm/web_001.img,xvda,w" ]

11

vif = [ "mac=00:16:36:64:98:f1,bridge=xenbr0,script=vif-bridge" ]

修改后的内容为:

01

name = "web_002"

02

uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fd"

03

maxmem = 512

04

memory = 512

05

vcpus = 1

06

bootloader = "/usr/bin/pygrub"

07  www.2cto.com  

on_poweroff = "destroy"

08

on_reboot = "restart"

09

on_crash = "restart"

10

disk = [ "tap:aio:/data/vm/web_002.img,xvda,w" ]

11

vif = [ "mac=00:16:36:64:98:f5,bridge=xenbr0,script=vif-bridge" ]

*保证name、uuid、mac的唯一性,还有就是disk路径  

启动并进入新复制的虚拟机

1

xm create -c web_002

修改主机名

1

vi /etc/hosts

将web_001修改为web_002

1

vi /etc/sysconfig/network

将web_001修改为web_002

修改IP

01

vi /etc/sysconfig/network-scripts/ifcfg-eth0

02

# Xen Virtual Ethernet

03

DEVICE=eth0

04

BOOTPROTO=static

05

BROADCAST=192.168.9.255

06

HWADDR=00:16:36:64:98:f5

07  www.2cto.com  

IPADDR=192.168.9.222

08

NETMASK=255.255.255.0

09

NETWORK=192.168.9.0

10

ONBOOT=yes

Q:

bs=2k seek=4096k count=1 参数详细意思

bs=2k:设置读写块的大小为 2k

seek=4096k:从输出文件开头跳过 4096k 个块后再开始复制(通常只有当输出文件是磁盘或磁带时才有效)

count=1:仅拷贝 1 个块(块大小等于 bs 指定的字节数)

 

 

 

作者 雪人

5.5安装使用Xen Xen是主流虚拟机中性能损耗最小的(但是不支持windows平台),目前可以运行在x86系统上,并正在向x86_64、IA64、PPC移植。移植...

本文由yzc216亚洲城发布于yzc216亚洲城,转载请注明出处:Linux下利用Xen创制设想机,5下安装使用Xen的点子

关键词: yzc216亚洲城