实验环境

ubuntu-14.04.1-desktop-amd64.iso

Recommended reference:

https://help.ubuntu.com/community/Xen

http://www.xenproject.org/downloads/xen-archives.html
http://www.xenproject.org/downloads/xen-archives/xen-44-series/xen-441.html

Xen的安装

sudo apt-get install xen-hypervisor

apt-get将提示选择合适的版本,如在本次实验的64位ubuntu-14.04.1上,则应安装xen-hypervisor-4.4-amd64。If you do this on a 32-bits Ubuntu14.04, it can only get amd64-version too. So it is recommended to install a 64-bits Ubuntu.

由于现在Linux内核完全支持Xen以及安装Xen的时候自动修改启动菜单,所以用上面的命令安装完成之后重启即可,不需要像以前那样去下载内核、手动更改启动菜单等。

重启之后,在启动菜单上将会显示多了2个启动项,是从原来的Ubuntu正常启动和修复启动两个模式上增加Xen得到的,我们选择带有Xen hypervisor的正常启动模式,进入系统后在终端输入sudo xl list,如果能看到Domain-0则说明Xen安装成功并能正常运行。另外,使用以下命令将后续需要的工具一并安装。

sudo apt-get install virtinst virt-viewer virt-manager 

xl list #查看各个域状态
xl shutdown xentest #关闭xentest这个虚拟机
xl start xentest #启动xentest这个虚拟机
xl console xentest 连接xentest控制台,连接到虚拟机上面可以用组合键 ctrl + ] 键切换到物理机
xl destroy - Stop a virtual machine immediately without shutting it down. It's as if you switch off the power button.

网络配置

网络配置容易忽略,起初就因此而造成安装客户机失败。配置过程比较简单,就是做一个桥接。

sudo stop network-manager
sudo gedit /etc/network/interfaces

将其中的内容修改为如下:

auto lo
iface lo inet loopback auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0 auto eth0
iface eth0 inet manual

修改完成以后,用以下命令停用、启用网卡使得刚才的配置立即生效。

sudo start network-manager
sudo ifdown eth0 && sudo ifup xenbr0 && sudo ifup eth0

命令brctl show 可以查看所有网桥状态

本地Http站点搭建和系统安装镜像的挂载

在Ubuntu上搭建Http站点只需要一条命令:sudo apt-get install apache2,安装完成后即可访问localhost。

要挂载系统安装镜像,使用以下命令,然后访问localhost/os即可看到所挂载的镜像内的文件。

sudo mkdir /var/www/os
sudo mount -o loop '/media/manhua/Backup/OS/Ubuntu/CentOS-6.5-x86_64-bin-DVD1.iso' /var/www/html/os/

创建客户机

1. 使用配置文件和已有镜像创建

http://stacklet.com/ or http://jailtime.org/上提供了多种虚拟器的操作系统镜像,比如我下载了ubuntu.10-04.x86-64.20141003.img.tar.bz2,解压后可以得到两个文件,一个是img镜像文件,另一个是cfg启动配置文件:

将配置文件复制到/etc/xen下,并进行修改,指定bootloader和disk文件所在位置

配置好配置文件以后就可以创建客户机create -f ***.cfg,创建成功后将会自动启动,在xl list下可以看到除了Domain-0外还列出了新创建的客户机,而客户机的状态是b,即正在启动。使用xl console <客户机名>可以接入客户机。

启动完成后,就可以看到熟悉的登录提示,成功登录后就可以进行操作,比如列出文件、查看当前操作系统等。

从 http://stacklet.com/ 下载的镜像文件的初始用户名和密码为:root/passwords

当客户机使用完毕后,可以直接在客户机使用poweroff命令关机,也可以通过Xen来控制

#再次启动则使用下面的代码
sudo xl create -f /etc/xen/ubuntu10..cfg
sudo xl list
sudo xl console ubuntu.-.x86-64.20141003

2. 使用命令创建

创建镜像文件 dd if=/dev/zero of=test.img bs=1M count=10(if/of=input/output file bs一次读写多大 count多少次)

首先要挂载系统安装镜像,接着就可以使用命令进行安装

sudo mount -o loop '/media/manhua/Backup/OS/Ubuntu/CentOS-6.5-x86_64-bin-DVD1.iso'  /var/www/html/os/

sudo virt-install -n cent65-min2 -r  --vcpus  -f cent65-min.img -s   -l http://localhost/os

-n 指定创建虚拟机的名称
-f 作为磁盘映像使用的文件
-s 磁盘映像的大小,单位为G
-r 指定内存的大小,单位为M
--nographics 表示不安装图形控制台
-l 安装的源

系统安装完成后,其他内容和用挂载方式创建的客户机类似,不再叙述。

3. 使用virt-manager创建


虚拟客户机关闭后内存不能自动回收
sudo xl mem-set 0 mem-value #其中mem-value为大于或等于实际空余内存的值,此时,系统将回收全部可用的内存

 

something: 
1、耐心阅读官方文档
2、有条件尽量要用真机,虚拟机性能太低
3、记得要配置好网桥,这是一个容易忽略的步骤,因为一般习惯装好系统再配置网络
4、不要盲目追求最新版本,次新版本由于经历了一段时间的磨练会更易使用 
 
 

a little about xen on cent
install:

http://mirrors.163.com/centos/6.5/isos/x86_64/
http://www.vpsee.com/2009/07/install-xen-on-centos/
http://www.centoscn.com/image-text/install/2014/0914/3744.html

加入 CentOS 官方 Xen 源: yum install centos-release-xen

安装Xen: yum install xen

执行在/usr/bin/目录下的 “/usr/bin/grub-bootxen.sh”命令,将新条目加到grub.conf中,以便系统能默认启动带有Xen的Linux内核,然后重启系统

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="xen-br0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="192.168.0.50" # Inherited from your current active interface.
PREFIX="24"
GATEWAY="192.168.0.1" # Inherited from your current active interface.
DNS1="8.8.8.8"
DNS2="8.8.4.4"
DEFROUTE="yes"
NAME="Bridge Network br0"

service network restart

[root@localhost xen]# yum install httpd

[root@localhost ~]# service httpd start
[root@localhost xen]# cd /var/www/html/
[root@localhost html]# mkdir tree
[root@localhost ~]# mkdir /data

$ sudo dd if=/dev/zero of=CentOS.img oflag=direct bs=1M count=10240

最新文章

  1. .NET跨平台之旅:将示例站点从ASP.NET 5 Beta7升级至RC1
  2. 如何使用scikit—learn处理文本数据
  3. Ubuntu 用vsftpd 配置FTP服务器
  4. C#操作XML,如何获取指定节点值?
  5. Ceph与OpenStack的Glance相结合
  6. C# TCP实现多个客户端与服务端 数据 与 文件的传输
  7. uva 1471 Defense Lines
  8. 小型Mp3播放器
  9. Git与GitHub学习笔记(七)Windows 配置Github ssh key
  10. C 二叉查找树的基本操作
  11. URL重写中的中文参数问题
  12. 防止xss攻击。
  13. python 线程间事件通知
  14. python练习题-day1
  15. Spark读取配置(转)
  16. CentOS 几种重启方式的区别
  17. php pdo对象使用详解: 连接数据库与exec方法
  18. UE4新手编程之创建空白关卡和添加碰撞体
  19. 将项目安装到Maven本地资源库
  20. oracle数据库查询日期sql语句(范例)、向已经建好的表格中添加一列属性并向该列添加数值、删除某一列的数据(一整列)

热门文章

  1. 【BZOJ1299】巧克力棒(Nim游戏,SG函数)
  2. datalist、repearter、gridview显示行号的三种方法 或者是获取datalist行id
  3. poj 3261 Milk Patterns 后缀数组 + 二分
  4. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---26
  5. Git Base 操作(二)
  6. CodeForces - 16E Fish
  7. 2016北京集训测试赛(九)Problem C: 狂飙突进的幻想乡
  8. Codeforces 535B Tavas and SaDDas 水题一枚
  9. 调参tips
  10. Swagger2接口注释参数使用数组