⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xen 初学者指南.htm

📁 linuxSir 网站的精华文章
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      tools</CODE></DIV>
      <P></P>
      <P>我们解压xen-3.0.1-src.tgz 
      后,进入解压目录,会看到以上的文件或文件夹。patches是内核的补丁包,linux-2.6-xen-sparse是支持Xen的内核目录树,值得注意的是内核的配置文件就在这个目录中;</P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost xen-3.0.1]# ls 
      linux-2.6-xen-sparse/arch/xen/configs/<BR>xen0_defconfig_ia64 
      xen0_defconfig_x86_64 xenU_defconfig_x86_32 
      xen_defconfig_x86_32<BR>xen0_defconfig_x86_32 xenU_defconfig_ia64 
      xenU_defconfig_x86_64 xen_defconfig_x86_64</CODE></DIV>
      <P></P>
      <P>看到上面所列出的内核配置文件了吧,我们可能会发现文件名带有xen0字样的和xenU字样的两类文件。在这两类内核中,我们大多会修改的内核配置文件是运行xen的操作系统的内核配置文件,另一个是用于虚拟操作系统的内核配置文件;</P>
      <P>xen0字样的就是我们一般是用于我们运行xen的操作系统的内核 
      ,而xenU字样的就是为虚拟操作系统所提供的内核。另外还有x86_32和x86_64之分,这表示CPU的架构。</P>
      <P>比如我们用的是x86架构32位的CPU,我们在编译内核的时候就要用到 xen0_defconfig_x86_32 
      和xenU_defconfig_x86_32 配置文件。</P>
      <P><B>举个例子:</B>比如我的机器架构是x86_32位的,我安装xen的操作系统是Slackware,我想在Slackware 
      虚拟Debian 、Gentoo、Fedora等操作系统。这时编译虚拟平台Slackware所用的内核的配置文件就是 
      xen0_defconfig_x86_32 ,而被虚拟平台(Debian 、Gentoo、Fedora等操作系统)所用的内核就是 
      xenU_defconfig_x86_32 。</P>
      <P>弄明白内核配置文件有何用?我们能明白xen在编译过程中用了哪些内核配置文件,目的是我们在编译过程中可以根据自己的需要来修改它,以编译出适合我们需要的内核。</P>
      <P>比如我们想让Slackware 支持xen,并且还要支持NTFS文件系统;所以我们就要修改 
      xen0_defconfig_x86_32这个文件。找出如下一行;</P>
      <P>
      <DIV class=codeblock><CODE># CONFIG_NTFS_FS is not set</CODE></DIV>
      <P></P>
      <P>改为</P>
      <P>
      <DIV class=codeblock><CODE>CONFIG_NTFS_FS=m</CODE></DIV>
      <P></P>
      <P>如果您想让被虚拟的操作系统(Debian 、Gentoo、Fedora等)也支持NTFS文件系统,所以要在 
      xenU_defconfig_x86_32找出如下一行;</P>
      <P>
      <DIV class=codeblock><CODE># CONFIG_NTFS_FS is not set</CODE></DIV>
      <P></P>
      <P>改为</P>
      <P>
      <DIV class=codeblock><CODE>CONFIG_NTFS_FS=m</CODE></DIV>
      <P></P>
      <P><B>第二步:配置内核;</B></P>
      <P>这一步有两种方法,一个是直接修改内核配置文件,另一个是内核配置界面来配置;</P>
      <P><B>方法一:通过修改内核配置文件;</B></P>
      <P>Xen所带的内核配置文件位于解压目录中的linux-2.6-xen-sparse/arch/xen/configs 
      。我们前面已经提到了相关配置文件的用途。请仔细看前一步的说明;</P>
      <P><B>方法二:通过内核配置界面来配置;</B></P>
      <P>[root@localhost xen-3.0.1]# make linux-2.6-xen0-config 
      CONFIGMODE=menuconfig</P>
      <P><B>第三步:编译和安装Xen;</B></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost xen-3.0.1]# 
      make<BR>[root@localhost xen-3.0.1]# make install</CODE></DIV>
      <P></P>
      <P><FONT id=3.43 size=2><B><BR>3.43 创建initrd文件;<BR></B></FONT></P>
      <P>有的系统需要initrd-XXXX.img或initrd.gz文件才能引导起来,如果您的系统用了支持xen的支持引导不起来,就要创建一个initrd-XXXX.img或initrd.gz的文件;<B>请参考:</B> 
      <A href="http://www.linuxsir.org/main/doc/Xen3man/" target=_blank>《Xen 
      v3.0 用户手册》</A></P>
      <P><FONT id=3.44 size=2><B><BR>3.44 关于xen0和xenU内核说明;<BR></B></FONT></P>
      <P>一般的情况下会在/boot目录中有两个与xen相关的内核,有的文件名带有vmlinuz-XXXX-xen0字样的,有的带有vmlinuz-XXXX-xenU字样的;比如:</P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost xen-3.0.1]# ls -la 
      /boot/vmlinuz*xen*<BR>lrwxrwxrwx 1 root root 21 2006-04-12 07:42 
      /boot/vmlinuz-2.6-xen0 -&gt; vmlinuz-2.6.12.6-xen0<BR>lrwxrwxrwx 1 root 
      root 21 2006-04-12 07:49 /boot/vmlinuz-2.6-xenU -&gt; 
      vmlinuz-2.6.12.6-xenU<BR>lrwxrwxrwx 1 root root 21 2006-04-12 07:42 
      /boot/vmlinuz-2.6.12-xen0 -&gt; vmlinuz-2.6.12.6-xen0<BR>lrwxrwxrwx 1 root 
      root 21 2006-04-12 07:49 /boot/vmlinuz-2.6.12-xenU -&gt; 
      vmlinuz-2.6.12.6-xenU<BR>-rw-r--r-- 1 root root 2180524 2006-04-12 07:42 
      /boot/vmlinuz-2.6.12.6-xen0<BR>-rw-r--r-- 1 root root 1129950 2006-04-12 
      07:49 /boot/vmlinuz-2.6.12.6-xenU</CODE></DIV>
      <P></P>
      <P>其实就是两个与xen相关的内核,其它的都是这两个内核文件的链接;也就是vmlinuz-2.6.12.6-xen0和vmlinuz-2.6.12.6-xenU。vmlinuz-2.6.12.6-xen0是用来引导虚拟平台的,比如我们在Slackware上安装Xen,那Slackware就是虚拟平台;所以如果要让Slackware的xen能运行起来,必须用xen相关的内核 
      ,也就是vmlinuz-2.6.12.6-xen0这个内核。 而XenU字样这个内核,是用来引导虚拟操作系统用的,我们在以后会提到它。</P>
      <P><FONT id=4 size=4><B><BR>4、引导XenLinux的GRUB配置;<BR></B></FONT></P>
      <P>一旦我们在Linux操作系统安装好Xen后,这样的系统应该被称为XenLinux。如何才能引导拥有Xen的Linux呢?这时我们要用到GRUB系统引导管理器。我们修改一下GRUB的配置文件menu.lst或grub.conf就行了。此文件位于/boot/grub目录中;</P>
      <P><FONT id=4.1 size=3><B><BR>4.1 判断系统所在的分区;<BR></B></FONT></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# df -h<BR>Filesystem 容量 已用 
      可用 已用% 挂载点<BR>/dev/hda6 12G 6.9G 4.9G 59% /</CODE></DIV>
      <P></P>
      <P><FONT id=4.2 size=3><B><BR>4.2 查看/boot目录中xen相关的配置文件;<BR></B></FONT></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# ls /boot</CODE></DIV>
      <P></P>
      <P><B>注意:</B>我们前面已经说过了,xen提供了两个内核,一个是虚拟平台用的,也就是文件名带有xen0字样的;另一个带有xenU字样的,这是用于引导和支持虚拟操作系统用的。</P>
      <P>什么虚拟平台,比如我们想用Slackware 的Xen虚拟Fedora、Gentoo .... 
      。那么Slackware就是虚拟平台,而Fedora、Gentoo... .. 
      是被虚拟的操作系统。Slackware是一个真实安装在您的机器上的操作系统,它提供的是一个运行xen的环境。为了让Slackware能支持xen 
      ,所以必须用于支持Xen的内核,也就是在/boot中有xen0字样的文件。</P>
      <P>如果您安装了Xen,会在/boot中有两个文件vmlinuz-2.6.12.6-xen0和vmlinuz-2.6.12.6-xenU,</P>
      <P><FONT id=4.3 size=3><B><BR>4.3 禁掉 TLS Libraries ;<BR></B></FONT></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]#mv /lib/tls 
      /lib/tls.disabled</CODE></DIV>
      <P></P>
      <P><B>禁掉的理由,请查看:</B> <A href="http://www.linuxsir.org/main/doc/Xen3man/" 
      target=_blank>《Xen v3.0 用户手册》</A></P>
      <P><FONT id=4.4 size=3><B><BR>4.4 引导XenLinux的GRUB内容;<BR></B></FONT></P>
      <P>
      <DIV class=codeblock><CODE>title SlackXen<BR>kernel 
      /boot/xen-3.0.gz<BR>module /boot/vmlinuz-2.6-xen0 root=/dev/hda6 ro 
      console=tty0</CODE></DIV>
      <P></P>
      <P>如果有inintrd-2.xxxx-xen.img或initrd.gz之类的文件才能引导起来系统,还要加一行;要以/boot中的initrd相关的文件为准;</P>
      <P>
      <DIV class=codeblock><CODE>modules /boot/initrd.gz</CODE></DIV>
      <P></P>
      <P><B>有关GRUB的文档:</B><A 
      href="http://www.linuxsir.org/main/?q=node/129">《系统引导管理器GRUB,为初学者指南》</A></P>
      <P><FONT color=red><B>注意:</B></FONT>与传统GRUB的定义有点不同,就是kernel 
      是用来定义Xen的,而Linux的内核及initrd映像是通过module 指令定义的;要仔细看好; </P>
      <P><FONT id=5 size=4><B><BR>5、Xen的配置和管理工具;<BR></B></FONT></P>
      <P><FONT id=5.1 size=3><B><BR>5.1 Xen的相关文件存放位置;<BR></B></FONT></P>
      <P>xen安装后,文件放在什么地方了呢?主要放在以下几个目录;</P>
      <P><FONT id=5.11 size=2><B><BR>5.11 内核及xen自身存放于 /boot<BR></B></FONT></P>
      <P>安装有xen的操作系统下的/boot目录中,存放xen本身及支持xen的内核文件。比如文件名带有xen0和xenU相关的文件; </P>
      <P><FONT id=5.12 size=2><B><BR>5.12 内核模块存放于 
/lib/modules<BR></B></FONT></P>
      <P>内核模块包括虚拟平台支持xen的内核xen0的模块,及支持虚拟操作系统所用的xenU的模块,一般的情况下是在 
      /lib/modules下有两个xen相关的目录存放。一个是文件夹名带有xen0字样的,另一个是xenU字样的;</P>
      <P><FONT id=5.13 size=2><B><BR>5.13 xen的配置文件及守护程序的存放位置;<BR></B></FONT></P>
      <P>一般的情况下,Xen的配置文件存放于/etc/xen目录。 比如 
      xend-config.sxp是用于配置网络的,不过我们不必更改,用其默认的就能完成我们的需要。xmexample1 
      xmexample2是两个示例性的配置文件。我们在配置引导被虚拟的操作系统时,这两个文件可供参考;</P>
      <P>Xen的服务器xend和xendomains启动脚本,一般是位于/etc/init.d/目录中,也就是/etc/init.d/xend 
      ;/etc/init.d/xend负责启动xend服务器,而/etc/init.d/xendomains负责第一个虚拟的系统及其它的Domains,也就是Domain 
      0 。</P>
      <P><FONT id=5.14 size=2><B><BR>5.14 可执行命令存放于/usr/sbin<BR></B></FONT></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]#ls 
      /usr/sbin/xen*<BR>/usr/sbin/xen-bugtool /usr/sbin/xenconsoled 
      /usr/sbin/xenmon.py /usr/sbin/xenstored<BR>/usr/sbin/xenbaked 
      /usr/sbin/xend /usr/sbin/xenperf /usr/sbin/xentop<BR>[root@localhost ~]#ls 
      /usr/sbin/xm</CODE></DIV>
      <P></P>
      <P><FONT id=5.2 size=3><B><BR>5.2 Xen服务器的启动;<BR></B></FONT></P>
      <P>xend服务器的启动/停止/重启/状态查询,请用下面的命令;</P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# /etc/init.d/xend start 
      启动xend,如果 xend没有运行)<BR>[root@localhost ~]# /etc/init.d/xend stop 
      停止xend,如果xend正在运行)<BR>[root@localhost ~]# /etc/init.d/xend restart 重启正在运行的 
      xend,如果xend没有运行,则启动<BR>[root@localhost ~]# /etc/init.d/xend status 
      查看xend状态</CODE></DIV>
      <P></P>
      <P>启动xendomains 
      服务器的启动/停止/重启/状态查询,请用下面的命令;一般的情况下,xend服务器启动了,xendomains也会自动启动。所以这个只是掌握一下就行了;</P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# /etc/init.d/xend start 
      启动xend,如果 xend没有运行)<BR>[root@localhost ~]# /etc/init.d/xend stop 
      停止xend,如果xend正在运行)<BR>[root@localhost ~]# /etc/init.d/xend restart 重启正在运行的 
      xend,如果xend没有运行,则启动<BR>[root@localhost ~]# /etc/init.d/xend status 
      查看xend状态</CODE></DIV>
      <P></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# /etc/init.d/xendomains 
      start<BR>[root@localhost ~]# /etc/init.d/xendomains 
      stop<BR>[root@localhost ~]# /etc/init.d/xendomains 
      restart<BR>[root@localhost ~]# /etc/init.d/xendomains status</CODE></DIV>
      <P></P>
      <P><FONT id=5.3 size=3><B><BR>5.3 Xen 管理工具xm;<BR></B></FONT></P>
      <P>我们前面提到Xen的可执行命令中,我们可能看到了一些以xen开头的命令,您不妨尝试一个一个的尝试一下他们是做什么用的;比如xend是服务器的开启运行命令 
      ... .... </P>
      <P>其中xm命令,就是管理Xen的最基本的工具;您可以通过xm --help 来获得帮助;<BR><FONT id=5.31 
      size=2><B><BR>5.31 列出所有正在运行的虚拟操作系统;<BR></B></FONT></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm list <BR>Name 
      ID Mem(MiB) VCPUs State Time(s)<BR>Domain-0 0 450 1 r----- 5377.0<BR>fc5 4 
      256 1 -b---- 0.1</CODE></DIV>
      <P></P>
      <P>列出所有正在运行的虚拟系统(也可以称为虚拟机);我们可以看到,一个名为Domain-0的系统正在运行。Domain-0就是Xen本身,也可以称为虚拟平台内存大小,而Domain-0负责提供其它虚拟操作系统的硬件环境,其它的系统都是基于Domain-0开始的,我们看到他的ID为0就应该知道它的权限是至高无尚的。所占用的内存是450M,不过这个是可以指定的。 
      虚拟的CPU个数是1个,运行状态处于r,也就是run,正在运行中;运行时间是5377秒;</P>
      <P>还有一个虚拟系统fc5,他的id是4,占用内存256M,虚拟CPU个数是1个 ... ... </P>
      <P><FONT id=5.32 size=2><B><BR>5.32 通过配置文件来引导被虚拟的操作系统;<BR></B></FONT></P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm create -c 
      虚拟操作系统的启动配置文件</CODE></DIV>
      <P></P>
      <P>比如我们要启动被虚拟的操作系统Fedora Core 5.0 
      ,我们要写一个启动Fedora的配置文件,比如是fc5vm.cfg。然后就可以通过下面的命令来引导Fedora了;</P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm create -c 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -