热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu11.10系统使用Xen-tools工具安装虚拟机系统

Ubuntu11.10中可以通过apt-get安装xen-tools,其版本为4.1版本:#apt-getinstall-yxen-tools由于xen-tools是xen的半虚拟化管理工具,所以需要安装修改过的、支持半虚拟化的kernel。在ubuutu11.10中,只需要通过apt安装linux-image-3.0

Ubuntu 11.10中可以通过apt-get安装xen-tools,其版本为4.1版本:

# apt-get install -y xen-tools

由于xen-tools是xen的半虚拟化管理工具,所以需要安装修改过的、支持半虚拟化的kernel。在ubuutu 11.10中,只需要通过apt安装linux-image-3.0.0-1x-virtual的kernel即可:

# apt-get install -y linux-image-3.0.0-12-virtual

安装完后就会在/boot下找到vmlinuz-3.0.0-12-virtual和initrd.img-3.0.0-13-virtual,这是之后半虚拟化的DomU所要使用的kernel。

接下来修改xen-tools的配置文件,配置文件中的值只在创建实例过程中没有指定某个选项时提供默认值:

# vi /etc/xen-tools/xen-tools.conf

需要修改如下几项:

[...]

dir=/home/xen   #用于放置img文件的位置

[...]

lvm=vg0     #如果使用lvm的逻辑卷来做存储,则制定卷组名

[...]

#指定实例的系统版本,xt-guess-suite-and-mirror --suite返回的是宿主机的系统版本

dist=`xt-guess-suite-and-mirror --suite`

[...]

# 指定实例所在网段

gateway =192.168.0.1

netmask =255.255.255.0

broadcast=192.168.0.255

[...]

# 指定实例使用的kernel,这里就使用之前安装的、支持半虚拟化的kernel

kernel= /boot/vmlinuz-3.0.0-12-virtual

initrd=/boot/initrd.img-3.0.0-12-virtual

[...]

serial_device=hvc0   # 指定console名称,使用默认值即可

disk_device=xvda #指定实例的磁盘名称,使用默认值即可

[...]

# 这里指定安装实例的镜像源,xt-guess-suite-and-mirror --mirror返回的是宿主机的镜像源

mirrors=`xt-guess-suite-and-mirror--mirror`

[...]

修改好xen-tools.conf后,就需要创建刚才指定的放置img文件的目录位置:

# mkdir /home/xen

========================创建ubuntu实例=====================

xen-tools创建ubuntu实例采用的是debootstrap,xen-tools.conf中默认采用这种方法。

xen-tools默认支持的最新ubuntu版本是maverick,而11.10的版本是oneiric(现在的12.04是precise),这样我们就要先让xen-tools支持到我们需要的版本。由于所有的ubuntu版本都是karmic.d的符号连接,所以我们只需要再创建一个符号连接即可:

# cd /usr/lib/xen-tools/

# ln -s karmic.d oneiric.d (for ubuntu 11.10)

或者

# ln -s karmic.d precise.d (for ubuntu 12.04)

接下来就可以创建实例了:

# xen-create-image --hostname=ubuntu.example.com --size=4G --swap=1G --memory=1G --ip=192.168.0.101 --arch=amd64 --role=udev

若按照之前所配置的xen-tools.conf,这条命令将创建一个与宿主机系统版本相同的虚拟机实例。

当然,我们也可以修改系统版本,或者修改安装源,或者修改磁盘的类型,只需要增加一些选项和参数,例如:

# xen-create-image --hostname=ubuntu.example.com --size=4G --swap=1G --memory=1G --ip=192.168.0.101 --arch=amd64 --role=udev --scsi --dist maverick --mirror=http://mirrors.163.com/ubuntu

注意:千万别忘记--role=udev

具体有哪些参数可以参见xen-create-image的man page:

# man xen-create-image

执行上述命令后,就会进入实例创建过程。过程中会提示输入密码,作为虚拟机实例的root账户密码。创建完成后,会在之前指定的目录中生成img文件,作为虚拟机实例的存储,并在/etc/xen下生成.cfg文件,作为虚拟机实例启动的配置文件。

接下来,通过xm命令启动实例:

xm create -c ubuntu.example.com.cfg

成功进入实例系统。

==========================创建CentOS实例======================

xen-tools创建CentOS实例采用的是rinse。

在创建CentOS实例之前,需要安装一些依赖包:

#apt-get install -y debootstrap libbeecrypt7 libc6-xen libconfig-inifiles-perl libexpect-perl libio-pty-perl libio-stty-perl librpm2 libterm-readline-gnu-perl libterm-size-perl libtext-template-perl reiserfsprogs rinse rpm screen vnstat

rinse创建实例过程中会下载安装一些rpm包。rinse配置文件中默认的包可能导致实例创建的失败,所以需要加入一些包:

# vi /etc/rinse/centos-x.packages

[...]

#在最后加入以下内容

nss

nspr

python-iniparsel

authconfig

此外,还可以更换CentOS实例的安装源,rinse默认使用的是一个英国的源,比较慢。

# vi /etc/rinse/rinse.conf

[...]

mirror = http://mirrors.163.com/centos/6.2/os/i386/Packages

mirror.amd64 = http://mirrors.163.com/centos/6.2/os/x86_64/Packages

和ubuntu一样,xen-tools支持CentOS的最新版本是5.x版本,如果需要安装6.x的CentOS,则需要创建相应的安装流程。由于无论哪个版本安装流程都相似,所以可以直接复制5.x的安装流程。

# cd /usr/lib/xen-tools/

# cp -a centos-5.d centos-6.d

接下来就可以创建CentOS的实例了,由于更改了安装方法,所以需要在命令中增加相应的选项和参数,同时,--role=udev的参数就不需要了:

# xen-create-image --hostname=centos.example.com --size=4G --swap=1G --memory=1G --ip=192.168.0.102 --dist=centos-6 --install-method=rinse --arch=amd64

创建过程与ubuntu实例类似,创建完成后启动实例:

# xm create -c centos.example.com.cfg

这样就能成功登录CentOS的虚拟机实例。

===========================其他=========================

1. 创建CentOS实例过程中会遇到错误,大概原因是不能读取镜像源,这种情况下要更换有效的镜像源。

2. 在创建和启动虚拟机的过程中可能会遇到没有空余loop的问题,主要原因是开机加载loop内核模块时默认只加载了8个loop,我们可以通过修改/etc/modules来指定开机加载loop的最大数量:

#  vi /etc/modules

[...]

loop max_loop=64

3. xen-tools的log文件在/var/log/xen-tools中,log文件以实例主机名命名,整个创建过程可以通过监控log文件来观察,也可以通过查看log文件来排除相应的错误。


推荐阅读
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 推荐几款高效测量图片像素的工具
    本文介绍了几款适用于Web前端开发的工具,这些工具可以帮助用户在图片上绘制线条并精确测量其像素长度。对于需要进行图像处理或设计工作的开发者来说非常实用。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • CentOS 6.8 上安装 Oracle 10.2.0.1 的常见问题及解决方案
    本文记录了在 CentOS 6.8 系统上安装 Oracle 10.2.0.1 数据库时遇到的问题及解决方法,包括依赖库缺失、操作系统版本不兼容、用户权限不足等问题。 ... [详细]
  • 本文详细介绍了如何在Ubuntu的Enlightenment (E17) 桌面环境中管理和优化桌面图标及根菜单。通过本文,您将了解这些功能的作用及其配置方法。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 深入理解动态链接库及其应用
    本文将探讨动态链接库的基本概念,包括Windows下的动态链接库(DLL)和Linux下的共享库(Shared Library),并详细介绍如何在Linux环境中创建和使用这些库。 ... [详细]
author-avatar
吴小熙1108
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有