设为首页 收藏本站
查看: 1686|回复: 0

[经验分享] ubuntu9.04 (server版) 配置xen虚拟机

[复制链接]

尚未签到

发表于 2016-1-9 15:21:59 | 显示全部楼层 |阅读模式
  

  转载自:http://wells.osall.com/blog/index.php?uid=1&m=content&p=1434#article_content.php%3Fid%3D1434%26uid%3D1%26dt%3DY:pane:N;
BITimE // 咀嚼时光
  前两天买了个Seagate的320G的2.5寸SATA硬盘,真便宜,300多元,差不多每G一元钱了。于是就把原来移动硬盘里的160G的硬盘装在那台ATOM小PC上了。如果大家还没忘记的话,应该还记得我的那个ATOM小PC里面是用的8G的CF转IDE作为硬盘的。现在突然存储设备容量大了20倍,那就让它干更多的活吧。兔子老是跟我说他在他的服务器上装了n多虚拟机,充分利用硬件资源,那我也来试一下吧。
  Linux上有很多虚拟机软件,XEN、KVM、VMWare、VirtualBox,从开源角度和性能角度来考量,当然选XEN啦。XEN性能非常优异,虚拟的主机的性能几乎和原生主机一致,如果主机硬件支持VT (intel)或者SVM (AMD)的技术的话,则可以虚拟任何能在x86架构上运行的操作系统。可惜我的ATOM 330 CPU不支持VT技术,因此只能玩半虚拟模式,虚拟出内核支持XEN的操作系统了。
  换上新硬盘,首先就是安装新的操作系统。我一直用惯了Ubuntu,因此就安装了Ubuntu 9.04 Server Edition 64位版本。安装OS的过程就不多说了,直接说XEN的安装配置吧。
  在XEN虚拟机环境上第一个被启动的操作系统被称为Domain-0,而之后启动的其他虚拟操作系统则被称为Domain-U,每一个Domain就是一台虚拟机。Domain-0除了可以运行应用程序外,还担负着XEN的控制功能,所以也被称为XENHypervisor。在Domain-0上启动了XEN服务后,最重要的一个进程就是xend,这就是XEN的服务进程。
  我们新安装的操作系统如果没有安装XEN软件,则就相当于普通的一个单机使用。如果安装了XEN软件,并且以XEN化的内核启动,则这个操作系统环境就变成了Domain-0,而后在这个环境下安装的其他操作系统则就是Domain-U了,都可以通过Domain-0来进行控制。
DSC0000.png
  

  

  要安装并使用XEN,首先更新软件源的信息。
# sudo apt-get update

  然后安装xen服务器软件和工具。
# sudo apt-get install ubuntu-xen-server# sudo apt-get install ubuntu-xen-desktop

  这时候我们去/boot目录看,可以看到一个xen3.3.gz文件,但是没有供操作系统使用的XEN化的内核,因此此时的操作系统还不是Doamin-0。我找了好久都没找到现成的XEN化内核,于是就只能根据XEN手册自己编译一个内核了。
  下载安装最新的kernel文件。
# sudo apt-get install linux-image-server linux-server

  安装编译所需要的一些工具包。
# sudo apt-get install build-essential libncurses5-dev gawk mercurial

  接下来下载XEN所提供的XEN化的内核的源代码。
# mkdir -p ~/build/linux-2.6.27-xen# cd /usr/src/# sudo hg clone http://xenbits.xensource.com/ext/linux-2.6.27-xen.hg

  配置内核选项。
# cd /usr/src/linux-2.6.27-xen.hg# sudo make O=~/build/linux-2.6.27-xen/ menuconfig

  出现内核参数的配置菜单后,根据如下的选项修改配置。
1。General setup ---> Choose SLAB allocator (SLUB (Unqueued Allocator)) ---> (X) SLAB

2。Processor type and features ---> Subarchitecture Type (PC-compatible) ---> (X) Enable Xen compatible kernel

3。

Bus options (PCI etc.)  --->
  • PCI support
  •    Xen PCI Frontend[ ]     Xen PCI Frontend Debugging (NEW)
    4。将 <M> 802.1d Ethernet Bridging 修改为 <*> 802.1d Ethernet Bridging:

    Networking support ---> Networking options ---> <*> 802.1d Ethernet Bridging

    5。关闭 10000 Mbit Ethernet 支持(否则可能编译失败):

    Device Drivers --->
  • Network device support ---> [ ] Ethernet (10000 Mbit) --->

    6。在 XEN 选项区中,按照下面选择选项(确认选择 Xen version compatibility (3.0.4 and later) 来取代原来的 Xen version compatibility (3.0.2 and later)):
    Device Drivers  ---> XEN  --->
  • Privileged Guest (domain 0)<*> Backend driver support (NEW)<*>   Block-device backend driver (NEW)<*>   Block-device tap backend driver (NEW)<*>   Network-device backend driver (NEW)(8)     Maximum simultaneous transmit requests (as a power of 2) (NEW)[ ]     Pipelined transmitter (DANGEROUS) (NEW)< >     Network-device loopback driver (NEW)<*>   PCI-device backend driver (NEW)PCI Backend Mode (Virtual PCI)  --->[ ]     PCI Backend Debugging (NEW)< >   TPM-device backend driver (NEW)<M>   SCSI backend driver (NEW)<M> Block-device frontend driver<M> Network-device frontend driver<M>   Network-device frontend driver acceleration for Solarflare NICs (NEW)<M> SCSI frontend driver (NEW)<*> User-space granted page access driver (NEW)<*> Framebuffer-device frontend driver (NEW)<*>   Keyboard-device frontend driver (NEW)
  • Disable serial port drivers (NEW)<*> Export Xen attributes in sysfs (NEW)(256) Number of guest devices (NEW)Xen version compatibility (3.0.4 and later)  --->


      ESC退出并保存完配置后就可以开始编译内核了。
      可能这里要先 make mrproper

    # sudo make O=~/build/linux-2.6.27-xen/
    # sudo make O=~/build/linux-2.6.27-xen/ modules_install install
      通过漫长的等待(我的Atom 330 CPU花了大约3个小时),终于编译完内核了。编译安装完成后,去/boot目录检查,应该可以看到生成了支持xen的2.6.27.5的内核了。
    # ls -l /boot
    total 72697
    -rw-r--r-- 1 root root 525592 2009-04-17 12:05 abi-2.6.28-11-server
    -rw-r--r-- 1 root root 524602 2009-07-25 11:14 abi-2.6.28-14-server
    -rw-r--r-- 1 root root 87448 2009-08-13 19:50 config-2.6.27.5
    -rw-r--r-- 1 root root 90587 2009-04-17 12:05 config-2.6.28-11-server
    -rw-r--r-- 1 root root 90560 2009-07-25 11:14 config-2.6.28-14-server
    drwxr-xr-x 2 root root 1024 2009-08-13 20:04 grub
    -rw-r--r-- 1 root root 8259056 2009-08-14 03:31 initrd.img-2.6.28-11-server
    -rw-r--r-- 1 root root 8272673 2009-08-13 15:02 initrd.img-2.6.28-14-server
    drwxr-xr-x 2 root root 12288 2009-08-14 03:17 lost+found
    -rw-r--r-- 1 root root 128796 2009-03-28 04:12 memtest86+.bin
    -rw-r--r-- 1 root root 1651431 2009-08-13 19:50 System.map-2.6.27.5
    -rw-r--r-- 1 root root 1871187 2009-04-17 12:05 System.map-2.6.28-11-server
    -rw-r--r-- 1 root root 1863183 2009-07-25 11:14 System.map-2.6.28-14-server
    -rw-r--r-- 1 root root 1169 2009-04-17 12:09 vmcoreinfo-2.6.28-11-server
    -rw-r--r-- 1 root root 1169 2009-07-25 11:16 vmcoreinfo-2.6.28-14-server
    -rw-r--r-- 1 root root 3145318 2009-08-13 19:50 vmlinuz-2.6.27.5
    -rw-r--r-- 1 root root 3520832 2009-04-17 12:05 vmlinuz-2.6.28-11-server
    -rw-r--r-- 1 root root 3510496 2009-07-25 11:14 vmlinuz-2.6.28-14-server
    -rw-r--r-- 1 root root 470084 2009-06-18 16:16 xen-3.3.gz
      内核有了,但是还没有initrd.img也就是启动时所需的ramdisk文件,手动来生成一个。
    # sudo depmod 2.6.27.5
    # sudo update-initramfs -c -k 2.6.27.5
      更新grub引导程序。
    # update-grub
      现在XEN的环境基本上都建好了,我们需要来修改一下配置文件了。
      XEN服务的配置文件都在/etc/xen目录下。XEN服务的主配置文件是/etc/xen/xend-config.sxp。打开这个文件,我们要确认的是XEN虚拟服务器的网络连接方式,这是相当重要的。我选择了桥接模式,也就是说,Domain-U虚拟机和Domain-0在同一子网,用Domain-0的物理网卡来进行桥接到虚拟机的虚拟网卡。
    # sudo vi /etc/xen/xend-config.sxp

    确认网络部分是这样配置的:
    (network-script network-bridge)

      下一步要根据你的习惯来修改。你喜欢将虚拟机安装在哪里?是用一个镜像文件来虚拟成磁盘,还是将一个LVM逻辑卷虚拟成磁盘,或者干脆就是将物理磁盘给虚拟机使用?
      对于后两种选择,你可以跳过这一步。但如果你选择了在现有的文件系统中建立一个镜像文件来虚拟成一个虚拟机的物理磁盘,那就要按照下面修改默认配置了。
      由于镜像文件在加载的时候是作为回圈设备(loop device),因此要将操作系统的默认最大回圈设备数量调大,以免出现不必要的问题。
    # sudo vi /etc/modules

    将loop这一行修改为:
    loop max_loop=64

      好啦,重启主机,进入Domain-0的世界!!!
    # sudo shutdown -r now

      重启完成后检查一下kernel版本,是不是XEN化的那个2.6.27.5?
    # uname -r
    2.6.27.5

      现在可以使用XEN的管理命令xm,来看看虚拟机运行状况啦!
    # sudo xm list
    Name ID Mem VCPUs State Time(s)
    Domain-0 0 1473 4 r----- 479.8

      哈哈,可以看到Domain-0正常运行!!!你可以使用xm help来学习如何通过xm来管理虚拟机。
      在State列,看到Domain-0是r的状态,也就是说,这个Domain正在运行中,并有任务在该Domain上运行。虚拟机还有如下几种状态:

    • r :该domain正在消耗CPU资源,任务运行中;
    • b :该domain正被暂时搁置(blockded),一般来说是因为这个domain在闲置中,等待输入或输出(I/O);
    • p :该domain处于暂停状态,通常是因为管理员使用 xm pause 暂停了这个domain。当domain至于暂停状态时,Xen的管理器将不会处理这个domain的任何动作;
    • s :该domain正在关机;
    • c :该domain已经crash了,但是没有关机。一般来说是因为domain的配置文件没有设置 on_crash 动作所致;
    • d :该domain正在死机中,一般来说是因为这个domain无法正确 shutdown/crashed 之故。
      先到这里吧,总算是把XEN安装上了,而且也把Domain-0给顺利启动了。

  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-162269-1-1.html 上篇帖子: xen下NAT网络多IP网段的配置 下篇帖子: 在Xen下安装Windows虚拟机全过程
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表