热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

在CentOS系统上安装和配置Xen虚拟机

现在实验室Masters都配有1台PC和1台笔记本,但是Honours只配有1台PC,1台机器做项目很不方便,开发经常会用到多系统,比如有的人做的是手机VoIP的相关项目,手机客户端界面要在Windows平台上做,VoIP服务器端要用到Linux,所以要用虚拟机虚拟一

现在实验室 Masters 都配有1台 PC 和 1台笔记本,但是 Honours 只配有1台 PC,1台机器做项目很不方便,开发经常会用到多系统,比如有的人做的是手机 VoIP 的相关项目,手机客户端界面要在 Windows 平台上做,VoIP 服务器端要用到 Linux,所以要用虚拟机虚拟一个 Linux 出来,如果这些都跑在一台物理机器上会很慢。现在给 Honours 配置的 PC 只有 1G 的内存,如果运行 Windows + 手机模拟器 + Elipse IDE(需要 Java)+ VMware(VMware 上再跑个 Linux + Asterisk + MySQL),然后开个客户端收邮件、开几个浏览器看资料就会很困难。

所以 VPSee 打算把自己在用的1台 SUN 服务器捐出来做成 Xen 服务器,给每个 Honours 分一个虚拟系统,省下他们自己装虚拟机的时间和资源,VPSee 成了免费的 Xen VPS provider 了:)。SUN 服务器上同时运行16个 Xen 虚拟系统实例,每个配 256 MB 内存,4GB 硬盘,不开 GUI。下面的安装步骤和配置过程是基于 CentOS 5.3 版本,Ubuntu 版本可以参看:在Ubuntu 上安装和配置Xen,Debian 版本参看:在 Debian 上安装和配置 Xen ,OpenSolaris 版本参看:在 OpenSolaris 上安装和配置 Xen .

安装 Xen
安装支持 Xen 的 Linux 内核 和 Xen:

$ yum install kernel-xen xen
安装成功后,可以看到 xen.gz-2.6.18-128.2.1.el5 内核已经装好,修改 default 的值默认启动 Xen 内核。

# vi /etc/grub.conf

default=0
timeout=2
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.2.1.el5xen)
 root (hd0,0)
 kernel /xen.gz-2.6.18-128.2.1.el5
 module /vmlinuz-2.6.18-128.2.1.el5xen ro root=/dev/VolGroup00/LogVol00
 module /initrd-2.6.18-128.2.1.el5xen.img
title CentOS (2.6.18-128.1.16.el5)
 root (hd0,0)
 kernel /vmlinuz-2.6.18-128.1.16.el5 ro root=/dev/VolGroup00/LogVol00
 initrd /initrd-2.6.18-128.1.16.el5.img

重启系统后检查一下是否是 Xen 的内核:

# uname -r
2.6.18-128.2.1.el5xen
再检查一下 Xen 是否已经启动:

# /usr/sbin/xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     1220     2 r-----   3214.1
创建和安装 guest
如果把正在运行的 Xen 内核的操作系统看成 host 的话,那么运行在 host 上面的操作系统就可以看成 guest。先建一个目录用来存放所有的 guest 操作系统的 image,vm01.img,vm02.img,等等,1个 guest 对应1个 image。

# mkdir /vm
# cd /vm

# virt-install

What is the name of your virtual machine? <-- vm01
How much RAM should be allocated (in megabytes)? <-- 256
What would you like to use as the disk (path)? <-- /vm/vm01.img
How large would you like the disk (/vm/vm01.img) to be (in gigabytes)? <-- 4
Would you like to enable graphics support? (yes or no) <-- no
What is the install location? <-- http://127.0.0.1/centos
或者可以把上面简化成1条命令:

# virt-install -n vm01 -r 256 -f /vm/vm01.img -s 4 --nographics -p
-l http://127.0.0.1/centos
需要注意的是上面如果是 -p(paravirtualized)的话就不能直接从 iso 文件安装,必须把 iso 文件解出来后放到一个 http/ftp 服务器上安装,只有 fully virtualized 的才可以从 iso 文件、CD-ROM 等安装。还要注意的是,paravirtualized 需要修改过的操作系统内核,所以不能安装 Windows, fully virtualized 可以用来安装 Windows 只要 CPU 支持 Virtualization(Intel VT or AMD V)。所以这里需要先安装和配置一个 web 服务器,然后把 iso 文件解压到 web 服务器能访问的目录下(http://127.0.0.1/centos)。如果网速够快,可以从 Internet 上直接安装,把 http://127.0.0.1/centos 换成 http://mirrors.kernel.org/centos/5.3/os/i386

按照 CentOS 的安装程序完成 CentOS 操作系统(guest)的安装后,看看 guest 的配置文件:

# cat /etc/xen/vm01
name = "vm01"
uuid = "b4910b6d-b205-6f86-c145-3c0895cb20c5"
maxmem = 256
memory = 256
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [  ]
disk = [ "tap:aio:/vm/vm01.img,xvda,w" ]
vif = [ "mac=00:16:d2:0a:66:6d,bridge=xenbr0" ]
看看 guest 是否启动:

# /usr/sbin/xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     1220     2 r-----   4691.3
vm01                                       9      255     1 -b----      16.9
进入 guest
安装成功后就可以登录 guest 了,

# /usr/sbin/xm console vm01
如果要退出 guest 的话,用 Ctrl + ],就会回到 host。

如果想每次启动 host 时自动启动 guest 的话:

# ln -s /etc/xen/vm01 /etc/xen/auto
更懒的办法
如果觉得安装 guest 操作系统太麻烦,可以到 http://stacklet.com/ 下载一个已经装好的镜像文件,然后在 host 下启动 guest 镜像就可以了。下载和启动 Ubuntu 9.04 的镜像:

# wget http://stacklet.com/sites/default/files/ubuntu/
ubuntu.9-04.x86.20090514.img.tar.bz2

# tar jxvf ubuntu.9-04.x86.20090514.img.tar.bz2
# mv ubuntu.9-04.x86.xen3.pygrub.cfg /etc/xen/ubuntu.9-04.cfg
# mv ubuntu.9-04.x86.img /vm/ubuntu.9-04.img

# /usr/sbin/xm create -f ubuntu.9-04.cfg
# /usr/sbin/xm list
# /usr/sbin/xm console ubuntu.9-04
从 http://stacklet.com/ 下载的镜像文件的初始用户名和密码为:root/password

增加 swap
如果是从 http://stacklet.com/ 下载的操作系统镜像,可能没有设置 swap,需要自己添加 swap 分区,可以做个 swap 镜像文件当作 swap 分区用。Xen 与 OpenVZ 相比有个好处就是 Xen 可以有自己的 swap 分区,甚至 guest 可以自己设置 swap. 先建个 512MB(524288B,1GB = 1048576B)大小的文件,转化成 swap 格式:

# dd if=/dev/zero of=ubuntu.9-04.swap bs=1024 count=524288

# /sbin/mkswap ubuntu.9-04.swap
修改 /etc/xen/ubuntu.9-04,修改 disk 这一行:

# vi /etc/xen/ubuntu.9-04.cfg
disk = ['file:/vm/ubuntu.9-04.img,sda1,w','file:/vm/ubuntu.9-04.swap,sda2,w']
启动 guest 系统,登录后修改 /etc/fstab,重启后用 top 看看 Swap 分区有没有被激活:

# vi /etc/fstab
/dev/sda2            swap          swap     defaults,noatime           0 0

# shutdown -r now

# top
...
Mem:    262284k total,    46480k used,   215804k free,     3176k buffers
Swap:   524280k total,        0k used,   524280k free,    17196k cached
常用 Xen 命令
xm create -c /path/to/config - Start a virtual machine.
xm shutdown - Stop a virtual machine.
xm destroy - Stop a virtual machine immediately without shutting it down. It's as if you switch off the power button.
xm list - List all running systems.
xm console - Log in on a virtual machine.
xm help - List of all commands.


推荐阅读
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 如何将CentOS8转换为CentOSStream
    CentOS Stream是一个持续交付的Linux发行版,它在RHEL之前处于领先地位。它将具有滚动发布,即不断进行更改。CentOS将成为一个上游版本,它将具有测试补丁和更新。 ... [详细]
  • 系统安装Debian系统的安装方式和Ubuntu系统的安装方式几乎是一样的,毕竟Ubuntu系统是基于Debian的,就如同CentOS基于Redhat ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
名将箱包_714
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有