<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>meisw's blog</title>
		<link>http://meisw.wdlinux.cn//</link>
		<description>工作,学习,生活,这里将会有一些记录.     备用域名:http://meisw.wdlinux.cn</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Sun, 20 Sep 2026 23:57:19 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://meisw.wdlinux.cn//show-627-1.html</guid>
			<title>把物理系统搬入OpenVZ中</title>
			<author>admin</author>
			<description><![CDATA[<p>OpenVZ真的非常好用，配合上GUI的图形管理很方便，效率也相当好。使用时间长了，一直有个问题困扰着我，就是如何把一些部署在物理服务器上的系统（简称物理系统）搬入OpenVZ中呢？<br />
&nbsp;&nbsp;&nbsp;&nbsp; OpenVZ默认只提供了几个简单的centos、fedora的模板，虽然官方网站上也提供了大量precreated（预创建）的各种系统模板供使用，但毕竟这些template（模板）都是别人创建的。以前，我就曾写过：<a href="http://www.linuxfly.org/post/199/" target="_blank"><font color="#71bbe3">[原]创建VPS OS模板</font></a>的文章，告诉大家如何创建自己的模板。但这还不能满足我的要求，试想想，如果物理系统上已经部署了大量的应用，重新在VPS里面部署、迁移数据，这工作量将是非常庞大的。OpenVZ本身似乎没有提供这样的迁移工具。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 经过查询相关资料，我终于实现了从物理系统到VPS的迁移工作。<span style="color: #ff0000">以下步骤，适用于部署在实际物理服务器上，或VMware、VirtualBox、Xen等虚拟环境中，而物理系统为红旗DC Server 5.0/Asianux 3.0，Centos/RedHat 4.0/5.0，Fedora 7.0/8.0/9.0等操作系统的环境。</span>其余发行版也可参考类似的步骤进行，但因各发行版对配置文件的定义有所差异，需要根据各自的情况进行改动。Debian系列的系统，可以参考底下附录部分的文章处理。<a name="entrymore"></a><br />
<br />
<strong><span style="color: #4169e1">一、准备工作</span></strong><br />
系统环境：</p>
<div class="quote">
<div class="quote-title">引用</div>
<div class="quote-content">server1：红旗 DC Server 5.0 192.168.228.99（被迁移系统）<br />
server2：红旗 DC Server 5.0 + OpenVZ 2.6.9-023stab048.4&nbsp;&nbsp; 192.168.228.90（虚拟机HW）</div>
</div>
<p><br />
这里，我希望把server1上的物理系统迁移到server2的其中一个VPS中。迁移前，确认：</p>
<div class="quote">
<div class="quote-title">引用</div>
<div class="quote-content">1、server1上的物理系统可正常运行；<br />
2、server2提供的VPS环境可以支持原server1的操作系统运行，例如核心为2.6.9以上；<br />
3、server1与server2的操作系统应为同一平台，即都为x86或x86_64；<br />
4、server2上已经搭建好OpenVZ环境，最好也把Vtonf等GUI管理配置好；<br />
5、确保server2上有足够的空间供vz使用，建议把/vz作为一个单独分区划分，方便控制磁盘配额等资源。</div>
</div>
<p><br />
<strong><span style="color: #4169e1">二、迁移数据</span></strong><br />
<strong>1、创建VPS环境</strong><br />
可以用vzctl create借助模板创建一个VPS环境，然后清空/vz/private/$veid目录。也可以手动创建：</p>
<div class="code"># mkdir /vz/root/101 /vz/private/101<br />
# cat /etc/vz/conf/ve-vtonf.512MB.conf-sample &gt; /etc/vz/conf/101.conf</div>
<p><br />
<strong>2、准备拷贝环境</strong><br />
迁移数据的方法有好多，tar、dd、rsync等都可以。我这里使用rsync，所以需要做到：</p>
<div class="quote">
<div class="quote-title">引用</div>
<div class="quote-content">1、server1和server2两边都已经安装rsync软件包；<br />
2、server1上需提供网络和sshd远程访问；<br />
3、若server1部署了比较多的应用，建议暂时全部停掉；我的做法是，把server1切换到init 1模式，然后启动网络和sshd服务；</div>
</div>
<p><br />
<strong>3、迁移数据</strong><br />
从server1拷贝数据到server2上：</p>
<div class="code"># rsync -arvpz --numeric-ids --exclude lost+found --exclude /dev --exclude /mnt --exclude /tmp --exclude /proc --exclude /sys --exclude /usr/src --exclude /boot -e &quot;ssh -l root@192.168.228.99&quot; root@192.168.228.99:/ /vz/private/101/</div>
<p><br />
<strong><span style="color: #ff0000">※ 注意，原物理系统上有些目录对于VPS来说是没用的，甚至是有害的，拷贝时请把他们排除</span></strong><br />
<strong>4、设置VPS参数</strong><br />
前面若使用OpenVZ提供的sample配置文件，则还需要对该VPS设置，在server2上执行：</p>
<div class="code"># vzctl set 101 --ostemplate centos-4-i386-default --save<br />
# vzctl set 101 --onboot yes --save<br />
# vzctl set 101 --hostname 101.linuxfly.cn --save<br />
# vzctl set 101 --ipadd 192.168.228.101 --save<br />
# vzctl set 101 --numothersock 120 --save<br />
# vzctl set 101 --nameserver 202.96.134.133 --nameserver 202.96.128.86 --save<br />
# vzctl set 101 --diskspace 10000000:11000000 --save<br />
# vzcpucheck<br />
# vzctl set 101 --cpuunits 40000 --save</div>
<p><br />
这部分的工作，实际是根据今后该VPS运行的情况而设置的，可以参考原来物理系统的配置进行。注意，若修改了网络等参数的话，今后启动VPS后，记得也要修改应用上的设定咯。<br />
<br />
<span style="color: #4169e1"><strong>三、调整VPS环境</strong></span><br />
物理系统上的启动与VPS中启动有不少地方是有差异，或冲突的。<span style="color: #ff0000">这也是最重要改动的地方：</span><br />
<strong>1、修改etc/inittab文件</strong></p>
<div class="code"># sed -i -e '/getty/d' /vz/private/101/etc/inittab</div>
<p><br />
<strong>2、修改etc/mtab文件</strong></p>
<div class="code"># rm -f /vz/private/101/etc/mtab<br />
# ln -s /proc/mounts /vz/private/101/etc/mtab</div>
<p><br />
<strong>3、修改etc/fstab文件</strong><br />
仅保留挂载/dev/pts的哪行：</p>
<div class="code"># cp /vz/private/101/etc/fstab /vz/private/101/etc/fstab.old<br />
# grep devpts /vz/private/101/etc/fstab.old &gt; /vz/private/101/etc/fstab<br />
# rm -f /vz/private/101/etc/fstab.old</div>
<p><br />
<strong>4、修改etc/rc.d/rc.sysinit文件</strong><br />
把运行/sbin/start_udev的一行删除或注释掉：</p>
<div class="code"># sed -i -e '/udev/d' /vz/private/101/etc/rc.d/rc.sysinit</div>
<p><br />
<strong>5、创建device设备符号</strong></p>
<div class="code"># cd 101<br />
# mkdir dev<br />
# mknod -m 666 dev/ptmx c 5 2<br />
# mkdir dev/pts<br />
# /sbin/MAKEDEV -d /vz/private/101/dev ttyp ptyp<br />
# chmod 660 /vz/private/101/dev/ttyp*<br />
# chmod 660 /vz/private/101/dev/ptyp*<br />
# mknod -m 666 dev/null c 1 3<br />
# mknod -m 666 dev/random c 1 8<br />
# mknod -m 444 dev/urandom c 1 9</div>
<p><br />
<strong>6、删除网卡配置文件</strong><br />
因VPS使用虚拟网卡，不再需要启动物理网卡了。你可以修改配置文件中的ONBOOT为no，或直接删掉：</p>
<div class="code"># rm -f /vz/private/101/etc/sysconfig/network-scripts/ifcfg-eth0<br />
# cat /dev/null &gt; /vz/private/101/etc/sysconfig/network</div>
<p><br />
<strong>7、创建缺省目录</strong></p>
<div class="code"># mkdir /vz/private/101/proc<br />
# mkdir /vz/private/101/tmp<br />
# chmod 1777 /vz/private/101/tmp</div>
<p><br />
<span style="color: #4169e1"><strong>四、启动VPS</strong></span><br />
启动：</p>
<div class="quote">
<div class="quote-title">引用</div>
<div class="quote-content"># vzctl start 101<br />
Starting container ...<br />
Container is mounted<br />
Adding IP address(es): 192.168.228.101<br />
Setting CPU limit: 0<br />
Setting CPU units: 1000<br />
Configure meminfo: 32768<br />
Set hostname: 101.linuxfly.cn<br />
File resolv.conf was modified<br />
Setting quota ugidlimit: 0<br />
Container start in progress...<br />
# vzctl enter 101<br />
entered into CT 101</div>
</div>
<p><br />
至此，迁移工作全部完成。<br />
您可以进入VPS中看看应用运行是否正常。由于VPS与物理系统环境仍存在一点差异，可能会导致应用启动失败，这需要逐一分析日志解决。最常见的是，提供给VPS的资源不足问题。因物理系统可完全独立获得全部系统资源，而在VPS中，受HW控制资源的分配，这可通过在VPS中：</p>
<div class="code"># cat /proc/user_beancounters</div>
<p><br />
查看failcnt列的信息来判断。然后根据实际情况增加资源即可。<br />
<br />
<strong><span style="color: #4169e1">五、参考资料</span></strong><br />
<a href="http://www.howtoforge.com/how-to-convert-physical-systems-and-xen-vms-into-openvz-containers-debian-etch" target="_blank"><font color="#71bbe3">How To Convert Physical Systems And Xen VMs Into OpenVZ Containers (Debian Etch)</font></a><br />
<a href="http://wiki.openvz.org/Creating_a_CentOS_5.0_Template" target="_blank"><font color="#71bbe3">Creating a CentOS 5.0 Template</font></a></p>]]></description>
			<link>http://meisw.wdlinux.cn//show-627-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2012-01-07 14:33</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-583-1.html</guid>
			<title>设置 XEN 的多网卡(3网卡4网卡..)桥接</title>
			<author>admin</author>
			<description><![CDATA[<p>我有种机器，有 4 个网卡，想在上面整 4 个虚拟机。所以让不同的虚拟机，使用不同的网卡。这样来做桥接设备。方便使用。记录一下方法，如下。</p>
<p><strong>1.安装 xen 虚拟化</strong></p>
<p>最开始当然得使用软件源来安装虚拟化。用 163 的吧，速度不错。&nbsp;</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">perl -i -pe 's/mirror.centos.org/mirrors.163.com/g;s/^#baseurl/baseurl/g;s/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
yum -y groupinstall Virtualization</pre>
</div>
</div>
<p>我们计划的设置如下<br />
eth0 &ndash; xenbr0 &ndash; Dom0, DomN<br />
eth1 &ndash; xenbr1 &ndash; DomX+1<br />
eth2 &ndash; xenbr2 &ndash; DomX+2 <br />
eth3 &ndash; xenbr3 &ndash; DomX+3</p>
<p>4个网卡，分别桥接，然后让三个虚拟机分别接到三个机器上</p>
<p>&nbsp;</p>
<p><strong>2. 修改 xend 的配置文件，让它支持多个网卡，不使用默认的脚本</strong></p>
<p>在 /etc/xen/xend-config.sxp 文件中的 (network-script network-bridge) 修改成 (network-script php-oa-network-multi-bridge).这样启用我们自己的脚本来生成桥接的设备</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">perl -i -pe 's/\(network-script network-bridge\)/#\(network-script network-bridge\)\n\(network-script php-oa-network-multi-bridge\)/g' /etc/xen/xend-config.sxp</pre>
</div>
</div>
<p>&nbsp;</p>
<p><strong>3. 写自己自定的脚本 ，来生成自己所需要的网卡数量和绑定的位置，如上面的计划中</strong>&nbsp;<br />
&nbsp;</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">perl -le 'for $num (0 .. 3){print &quot;/etc/xen/scripts/network-bridge \&quot;\$@\&quot; vifnum=$num netdev=eth$num bridge=xenbr$num&quot; }' &gt; /etc/xen/scripts/php-oa-network-multi-bridge
chmod u+x /etc/xen/scripts/php-oa-network-multi-bridge</pre>
</div>
</div>
<p>这样会生成一个 /etc/xen/scripts/php-oa-network-multi-bridge 内包含如下的内容。$@ 是用来接收 shell 命令中的 start,stop,status 的命令的。记的要加执行的权限，可一定不能忘记.</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">/etc/xen/scripts/network-bridge &quot;$@&quot; vifnum=0 netdev=eth0 bridge=xenbr0
/etc/xen/scripts/network-bridge &quot;$@&quot; vifnum=1 netdev=eth1 bridge=xenbr1
/etc/xen/scripts/network-bridge &quot;$@&quot; vifnum=2 netdev=eth2 bridge=xenbr2
/etc/xen/scripts/network-bridge &quot;$@&quot; vifnum=3 netdev=eth3 bridge=xenbr3</pre>
</div>
</div>
<p>&nbsp;</p>
<p><strong>4.配置物理网卡，让开机就能启动</strong></p>
<p>好了，在使用上面的脚本成前面，我们需要保证这几个网卡配置是能正常启动的。<br />
所以我们要修改二个地方 ，ONBOOT=yes 和 BOOTPROTO=static 这二个，网卡才能正常的启动.&nbsp;</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">perl -i -pe &quot;s/ONBOOT=no/ONBOOT=yes/g;s/BOOTPROTO=dhcp/BOOTPROTO=static/g&quot; /etc/sysconfig/network-scripts/ifcfg-eth{1,2,3}</pre>
</div>
</div>
<p>&nbsp;<strong><br />
</strong></p>
<p><strong>5. 测试桥接</strong>&nbsp;</p>
<p>下面的命令就不用解释了，还可以用 ifconfig 检查&nbsp;</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">/etc/xen/scripts/ChinaCache-network-multi-bridge start
/etc/xen/scripts/ChinaCache-network-multi-bridge status
/etc/xen/scripts/ChinaCache-network-multi-bridge stop</pre>
</div>
</div>
<p>&nbsp;</p>
<p><strong>6. 安装第一个虚拟机</strong></p>
<p>下面的命令是用来安装第一个虚拟机的,其它的虚拟机直接 copy 出来就行。然后只要修改其它机器的配置文件就行了。</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">/usr/sbin/virt-install -p --paravirt --name=node1 -s 5 --ram=8192 --vcpus=2 --file=/xen/node1 --location=nfs:123.125.162.7:/mnt --extra-args=&quot;ip=123.125.162.45 netmask=255.255.255.192 gateway=123.125.162.1 dns=202.106.0.20&quot; --network bridge=xenbr0 noipv6</pre>
</div>
</div>
<p>&nbsp;</p>
<p>以上参数中<br />
&ndash;extra-args 这个是传送给启动时的内核用的。<br />
&ndash;network 是设置网络的连接方法，还有桥接到那个设备<br />
-s 生成的文件大小 G 为单位<br />
&ndash;ram 内存设置<br />
&ndash;file 系统文件存放的位置</p>
<p>&nbsp;</p>
<p><strong>7. 设置自动启动</strong></p>
<p>当主系统启动时，虚拟机启动,自己有几个 虚拟机设置几个</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">virsh autostart node1</pre>
</div>
</div>
<p>&nbsp;</p>
<p><strong>8. 其它虚拟机的安装</strong></p>
<p>其它的虚拟机安装比较容易，直接 copy 上面的 /xen/node1 这个操作系统的文件叫别的名字，另外新建几个其它机器的配置文件</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">cp /etc/xen/node1 /etc/xen/node{1,2,3}</pre>
</div>
</div>
<p>并修改其中几个参数</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">name = &quot;node1&quot;
disk = [ &quot;tap:aio:/xen/node1,xvda,w&quot; ]
vif = [ &quot;mac=00:16:36:7b:c9:e3,bridge=xenbr0,script=vif-bridge&quot; ]</pre>
</div>
</div>
<p>如上几个参数 ，disk 指向其它的参数。vif 是指本机的 MAC 地址，xenbr0 &ndash; xenbr3 是可以桥接的设备<br />
如果要新加硬盘，可以使用下面的语法，来加入物理硬盘</p>
<div class="wp_syntax">
<div class="code">
<pre style="font-family: monospace" class="shell">disk = [ &quot;tap:aio:/xen/node1,xvda,w&quot;,
&quot;phy:/dev/sdb,ioemu:sdb,w&quot;,
&quot;phy:/dev/sdc,ioemu:sdc,w&quot;,
]</pre>
</div>
</div>
<p>&nbsp;</p>
<p>以下经验参考： http://www.cnblogs.com/yangyh/archive/2010/07/16/1778516.html</p>
<p>xenbr0 是会连接vif0.0,vifN.0 (N 表示 xm list 中的 id 号，表示第几个 id 的虚拟主机）<br />
peth0 可以将peth0看作etho的别名<br />
vif0.0表示dom0接口,vif1.0表示dom ID=1的接口(重启或新建几个domain,ID更改后你会发现vif1.0变成vif2.0..3.0了)</p>
<p>如果在xenbr0中删除vif0.0,则在domain中无法ping通本机,但能ping通通过eth0连接的机器,比如本机连接的路由器<br />
如果在xenbr0中删除vif1.0,则在domain中就没有网卡了(相应的vif1.1表示ID为1的DOMAIN的第二块网卡)<br />
如果在xenbr0中删除peth0,则能ping能本机,而无法ping通路由器或局域网其它机器</p>
<p>转</p>
<!-- Start of add bookmark buttons created by wp_addbookmarks. Plugin by http://www.thinkagain.cn/ -->]]></description>
			<link>http://meisw.wdlinux.cn//show-583-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2011-08-03 10:08</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-582-1.html</guid>
			<title>KVM Network Bridge Setup</title>
			<author>admin</author>
			<description><![CDATA[<p>http://wiki.solusvm.com/index.php/KVM_Network_Bridge_Setup</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-582-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2011-08-03 08:43</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-581-1.html</guid>
			<title>Xen bridge network trouble shooting tip</title>
			<author>admin</author>
			<description><![CDATA[<h3>
<p><font color="#807d7a">Xen桥接网络</font>非常灵活，然而逻辑和管理方面也还算简单</p>
</h3>
<h3>桥接设备</h3>
<ul style="z-index: 30">
    <li>bridge, 网桥；一般起名为：xenbr0, xenbr1, etc.</li>
    <li>vif, 虚拟网络接口；一般起名为：vif0.0,vif0.1, etc.</li>
    <li>veth/eth, 虚拟网络设备；一般起名为：eth0, etc.</li>
</ul>
<h3>桥接工具</h3>
<ul style="z-index: 20">
    <li>/etc/xen/script/network-bridge, 网桥操作脚本</li>
    <li>/etc/xen/script/vif-bridge, 虚拟接口操作脚本</li>
    <li>brctl 工具，事实上以上两个脚本均调用了它</li>
</ul>
<h3>排查步骤</h3>
<ul style="z-index: 10">
    <li>brctl show; 再看桥接是否OK。&nbsp;</li>
    <li>ethtool peth; 先看物理网卡通不通。</li>
    <li>ifconfig vif; 看各虚拟接口是否正常。</li>
    <li>ifconfig eth/veth; 看看虚拟网络设备是否正常。</li>
</ul>
<p><a href="http://wiki.xensource.com/xenwiki/XenNetworking">http://wiki.xensource.com/xenwiki/XenNetworking</a></p>]]></description>
			<link>http://meisw.wdlinux.cn//show-581-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2011-08-03 08:42</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-580-1.html</guid>
			<title>Xen bridge network and Xen Networking(转)</title>
			<author>admin</author>
			<description><![CDATA[<p>本文介绍了Xen桥接网络及出故障时可采用的工具和方法：</p>
<p>Xen桥接网络非常灵活，然而逻辑和管理方面也还算简单<span style="text-decoration: underline">。</span></p>
<p>&nbsp;</p>
<p><strong>桥接设备</strong></p>
<ul>
    <li>bridge, 网桥；一般起名为：xenbr0, xenbr1, etc.</li>
    <li>vif, 虚拟网络接口；一般起名为：vif0.0,vif0.1, etc.</li>
    <li>veth/eth, 虚拟网络设备；一般起名为：eth0, etc.</li>
</ul>
<p><strong>桥接工具</strong></p>
<ul>
    <li>/etc/xen/script/network-bridge, 网桥操作脚本</li>
    <li>/etc/xen/script/vif-bridge, 虚拟接口操作脚本</li>
    <li>brctl 工具，事实上以上两个脚本均调用了它</li>
</ul>
<p><strong>排查步骤</strong></p>
<ul>
    <li>brctl show; 再看桥接是否OK。&nbsp;</li>
    <li>ethtool peth; 先看物理网卡通不通。</li>
    <li>ifconfig vif; 看各虚拟接口是否正常。</li>
    <li>ifconfig eth/veth; 看看虚拟网络设备是否正常。</li>
</ul>
<p><strong>链接</strong></p>
<ul>
    <li>Xen Networking</li>
</ul>
<p><strong>Xen网络联接方式</strong></p>
<div class="storycontent">
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Xen 提供了 3 种虚拟网络模型来供客户机访问物理设备&mdash;&mdash;桥接、路由和 NAT。在桥接模式中，虚拟网络接口（vif）在外部局域网是可见的，在路由模型中，vif 在外部局域网是不可见的，但是 IP 是可见的。在 NAT 模型中，vif 在外部局域网不可见，它也没有一个外部可见的 IP 地址。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在<span style="color: #ff0000"><strong>桥接模式</strong></span>下， brctl 工具被用来创建软件方式的桥接接口，一个物理网络接口然后附加到桥上。Xen 客户机域的后端 vif 能被附加到这个桥上。当桥接口接收到来自物理接口的包时，物理网络接口将依据各域的虚拟网卡的 MAC 地址转发它们到不同的域上。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在<span style="color: #00ff00"><strong>路由模型</strong></span>下将使用 iptables 机制来进行路由。由物理接口所收到的所有的包将被驱动域的网络 IP 层所处理。驱动域（dom0）查找路由表条目并将包转发到不同的客户机 IP 地址。在路由模式下，驱动域连接 2 个不同的网段：内部由客户机使用的网段和连接外部网络的网段。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在驱动域作为一个 <strong><span style="color: #0000ff">NAT 网关</span></strong>时，驱动域仍然作为一个路由器，但是更进一步映射一个它自己的 IP 地址和端口到一个客户机的 IP 地址和端口。客户机的 IP 地址隐藏在驱动域后面对外部网络不可见。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #800000">Linux 防火墙提供了 iptables </span>，而 <span style="color: #800080">bridge-utils 则提供了 etables</span> 来进行基本的 MAC 地址过滤。也可以指定一个物理网卡给一个域使用。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; Xen网络结构相当灵活，适当配置可以&ldquo;轻松&rdquo;实现dom0/domU与物理网络三者之间的复杂拓扑。</p>
<p><strong>桥接模式</strong></p>
<p><br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图一、Xen 桥接模式示意图</p>
<p><em><strong><span style="color: #000080">下图是个桥接的例子。</span></strong></em><br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000080">veth0、vif0.0 是 dom0 的网络接口</span>。<span style="color: #800000">veth0 被重命名为 eth0</span>。<span style="color: #993300">xenbr0 接口是软桥接接口</span>。<span style="color: #003366">vif1.0 是运行的客户机的后端网络接口</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #ff0000">peth0、xenbr0、vif0.0、vif1.0</span> 都共享同样的 MAC 地址 FE:FF:FF:FF:FF:FF，它是以太网的广播地址。这意味着实际的网络接口、dom0 的回环接口、客户机的后端接口都向 xenbr0 广播。当物理网卡接收到包时，它直接发送到桥接接口 xenbr0，这个桥接接口通过包的 MAC 地址决定将包转发到哪个域的后端接口。因此 peth0 不需要 IP，只需要 MAC 地址。物理接口的原先 IP 已经被告知给 eth0&mdash;&mdash;驱动域的虚拟前端接口。&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xenbr0 通过 MAC 地址是 00:11:25:F6:15:22 或者是 00:16:3e:45:e7:12 来决定包转发到 eth0 或者 vif1.0。客户域相应的前端接口被命名为 eth0。从 dom0 的角度看，客户机中 eth0 实际是 vif1.0。<br />
brctl 命令的显示：</p>
<div id="code0">
<ol>
    <li>[user@Dom0]# brctl show</li>
    <li>bridge name&nbsp; &nbsp;&nbsp;&nbsp;bridge id&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;STP enabled&nbsp; &nbsp; interfaces</li>
    <li>xenbr0&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 8000.feffffffffff&nbsp; &nbsp;&nbsp; &nbsp; no&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; vif1.0</li>
    <li>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; peth0</li>
    <li>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; vif0.0</li>
</ol>
</div>
</div>]]></description>
			<link>http://meisw.wdlinux.cn//show-580-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2011-08-03 08:39</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-391-1.html</guid>
			<title>在centos 5 上利用 xen 安装 Windows Server 2003</title>
			<author>admin</author>
			<description><![CDATA[<p>启动命令：virt-manager<br />
XEN确实是不一个不错的虚拟软件，并且RedHat也做了很好的工作，不过还是走了不少弯路。正常安装的过程应该还是比较容易的。还有人建议用xen专门为RHEL 5编译的内核，但是个人觉得没有必要。<br />
1. 在安装时选择虚拟化组件。这样将会看上去安装xen和相应的系统内核。<br />
2. 在计算机的BIOS中打开虚拟功能支持。在Xen上安装Windows需要完全虚拟化，这样需要硬件支持。<br />
在BIOS中打开虚拟功能之后，执行/usr/bin/xm info时应该包含如下信息：<br />
xen_caps : xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64<br />
3. 虚拟光驱的设置。<br />
如果使用virt-manager启动管理程序，然后点击New新建虚拟机，则它指定的虚拟光驱ISO文件并不会保存在配置文件中。<br />
手工添加该文件的方法为：<br />
disk = [ &lsquo;phy:/dev/VolGroup01/Win2k3_01,hda,w&rsquo;, &lsquo;file:/opt/soft/cd1.iso,hdc:cdrom,r&rsquo; ]<br />
4. 设置从光盘启动的方法：<br />
boot=&rdquo;d&rdquo;<br />
5. 在安装时，在&ldquo;Setup is starting&rdquo;时死机。这个问题折腾了我很长时间，甚至把系统都重新安装了好几次，换成32位版，后来又折腾回x64版。<br />
关键步骤是如下设置：<br />
acpi=0</p>
<p>----------------</p>
<p>在安装重起后找不到CD,要在virt-manager里设定ISO文件即可</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-391-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2011-03-24 13:48</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-373-1.html</guid>
			<title>Xen 支持的虚拟机类型</title>
			<author>admin</author>
			<description><![CDATA[<p>我们都知道 Xen 支持两种虚拟机类型：半虚拟化（paravirtualization）和全虚拟化（full virtualization），我们也知道 Xen 支持32位的和64位的虚拟机。决定 Xen 服务器是否能支持半虚拟化、全虚拟化、32位和64位的关键因素是处理器，即 CPU 的类型。</p>
<p>当 Xen 虚拟机运行在不支持虚拟化的硬件上的时候（CPU 不支持虚拟化），所有的内核和虚拟机（domains）都必须使用相同类型内存模型和指令大小。比如，如果使用的是 64位的 hypervisor 和 domain0，那么上面所有的 domainU 都必须是64位的或32位 PAE 的；同样，如果使用的是32位（带 PAE 内存扩展）的 xen 内核的话，那么所有在上面运行的 domainU 也都必须是32位（带 PAE 内存扩展）的。</p>
<p>当 Xen 虚拟机运行在支持虚拟化的硬件上、有了硬件的支持的时候（CPU 支持虚拟化），上面的限制就变得宽松多了，可支持的虚拟机类型范围要大多了。1个32位带 PAE 支持的 Xen 内核可以在上面运行1个不带 PAE 支持、全虚拟出来的 domainU；1个64位的 Xen 系统可以运行任何32位的 Linux domainU（包括半虚拟的 domainU 和全虚拟的 domainU）；但是1个32位的 Xen 系统可以运行32位半虚拟的 domainU 而不能运行64位半虚拟的 domainU 了。所以 Xen 是向前兼容的，64位的 Xen 内核可以兼容运行32位PAE、纯32位的 domainU，但是不能反过来，32位的 Xen 内核不能运行64位的 domainU 等。</p>
<p>如果觉得上面的文字说明看得有点头昏，VPSee 整理了一个表格：</p>
<table class="data" border="0" cellspacing="0" cellpadding="2" width="100%">
    <colgroup span="3"></colgroup><colgroup span="4" align="right"></colgroup>
    <thead>
        <tr>
            <th>Hypervisor</th>
            <th>domain0</th>
            <th>domainU (PV)</th>
            <th>domainU (HVM)</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>32bit</td>
            <td>32bit</td>
            <td>32bit</td>
            <td>32bit</td>
        </tr>
        <tr>
            <td>32bit PAE</td>
            <td>32bit PAE</td>
            <td>32bit PAE</td>
            <td>32bit or 32bit PAE</td>
        </tr>
        <tr>
            <td>64bit</td>
            <td>64bit</td>
            <td>64bit or 32bit PAE</td>
            <td>32bit, 32bit PAE or 64bit</td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>Intel VT（Virtualization Technology）和 AMD SVM（Secure Virtual Machine）是两大处理器生产商为了迎合虚拟化发展的趋势而在自己的处理器里直接增加对虚拟化技术的硬件支持。辨别自己的 CPU 是否支持虚拟技术很简单，只需要检查 cpuinfo 里面是否带有虚拟化标志，如果使用的是 Intel CPU，那么 flags 里应该有 vms 字样；如果使用 AMD CPU，那么 flags 里应该可以找到 svm，下面是 VPSee 在一台 SUN Fire X2100 服务器上打印的结果：</p>
<pre class="code"># cat /proc/cpuinfo | grep flags
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm
3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm
3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy</pre>
<p>注意：如果已经启动到 Xen 系统中， cat /proc/cpuinfo | grep flags 将在默认情况下不会显示 vmx 或 svm 标志位，只有在安装 Xen 前的纯 Linux 内核下才可以看到。还有就是，确定 BIOS 中打开了 Intel VT 或 AMD SVM 虚拟化的支持。</p>
<p>通常安装完 Xen 后，Xen 就能自动识别出系统支持哪几种虚拟机类型。只需要简单打印出 Xen 虚拟机的兼容名单就可以看出来：</p>
<pre class="code"># cat /sys/hypervisor/properties/capabilities
xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64</pre>
<p>上面打印出来的内容表示这个系统可以运行 64位 domains（xen-3.0-x86_64）、32位带 PAE 的 domains（xen-3.0-x86_32p）、32位全虚拟化 domains（hvm-3.0-x86_32）、32位带 PAE 全虚拟化 domains（hvm-3.0-x86_32p）、64位全虚拟化 domains（hvm-3.0-x86_64）.</p>
<p>在普通 Linux 下面的 /proc 里包含了一些运行时的 Linux 内核参数可以查看和修改，和 /proc 的作用类似，在 Xen 里面 /sys 里包含了 xen hypervisor 的一些参数。如果在你的 Xen 系统上没有发现 /sys/hypervisor，多半时因为在配置 Xen 内核的时候没有选择上 XEN_SYSFS，重新配置、编译和安装 带 Xen 的 Linux 内核就可以了。</p>
<p>在自己的 IT 环境里部署 Xen 虚拟化前需要了解一下自身 IT 环境的一些特点，比如：用户的使用类型（将在虚拟机上干什么？），需要运行的应用（是否某应用程序必须运行在老的32位的系统上？）等，这样方便选购服务器、迁移平台和应用以及部署虚拟化。</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-373-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2011-01-10 17:44</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-366-1.html</guid>
			<title>openVz 安装及应用,入门</title>
			<author>admin</author>
			<description><![CDATA[<p><span style="font-family: Arial">OpenVZ 是采用修改过的 Linux 内核在操作系统层进行虚拟化的技术，它让一台实体服务器能够执行多个被隔离、名为容器、虚拟私人服务器（VPS）或虚拟环境（VE）的实例。现时「容器」是最流行的名称。容器有时会被比拟为 chroot 或 jail 类的环境，但容器其实在隔离、安全性、功能、及资源管理方面都更优胜。</span></p>
<p><span style="font-family: Arial">OpenVZ 包括一个特制的 Linux 内核（由 OpenVZ 计划提供）及一些用户级的工具。OpenVZ 的可?性非常高，它并不依赖 CPU 内的 VT 支持，因此它可供 x86、x86-64、IA-64、PowerPC 及 SPARC 等中央处理器系列所应用。</span></p>
<p><span style="font-family: Arial">操作系统层的虚拟化与 VMware Server、Parallels Workstation、VirtualBox, QEMU、KVM、及 Xen 等以机器／硬件进行虚拟化的产品有颇大分别，这就是在 OpenVZ 下你只能在 Linux 上将 Linux 虚拟化。</span></p>
<p><span style="font-family: Arial">OpenVZ 修改 Linux 内核将高级的容器化功能加入其中，藉此容许隔离了的进程组别在一个 init 的旗下执行，附带的还有二十多个控制容器资源应用方法的动态资源管理参数。OpenVZ 计划维护着三个稳定的内核分支： <br />
本于 RHEL4／CentOS4 的 2.6.9 <br />
本于 RHEL5／CentOS 5 的 2.6.18 <br />
本于原装的 2.6.18</span></p>
<p><span style="font-family: Arial">此外还有数个不稳定的分支本于较新版的 Linux 内核，它们也许会渐渐达至稳定的状态。</span></p>
<p><span style="font-family: Arial">为何采用 OpenVZ？</span></p>
<p><span style="font-family: Arial">由于它较为轻省，相比起机器／硬件级虚拟化，操作系统级虚拟化提供了不少优点： <br />
它的效率较高 <br />
它的扩展性较高 <br />
它提供较高的机器密度 <br />
它提供较多的资源管理参数 <br />
采用动态资源管理，因此无须重新引导容器</span></p>
<p><span style="font-family: Arial">OpenVZ 能够取得较优越的效率（与原生效率接近至很难量度）、扩展性及密度是由于只有单一个 Linux 内核在实体主机上执行，至于每个容器只占用当中的进程／服务所需的资源，而不必耗用整个操作系统的额外资源。一个基本的容器在主机上也许会是 8 至 14 个额外的进程。只要配合适切的资源管理设置，OpenVZ 亦能处理更高级的程序，例如拥有数百个进程／线程的巨型 Java 应用程序。</span></p>
<p><span style="font-family: Arial">OpenVZ 的另一个优点就是它提供了广泛的动态资源管理参数，包括内存使用量、进程的数目、处理器使用量、磁盘空间使用量等等&hellip;&hellip;它们全都可以在容器运行时被修改。OpenVZ 在容器内亦支持容器的磁盘配额，及（选择性地）支持用户和群组的磁盘配额。</span></p>
<p><span style="font-family: Arial">OpenVZ 提供数项高级的功能，包括「检查点」及将容器由一台主机「迁移」到另一台。迁移共有两种方式：</span></p>
<p><span style="font-family: Arial">即时迁移减少停机的时间（只须数秒），并且保持机器的运行时间及网络连接。 <br />
脱机迁移就是将机器停止，迁移它，然后重新打开它。 <br />
OpenVZ 的迁移功能「并不」须要一个共享的存储方案，而是利用 rsync 将容器的目录整全地由一台实体主机复制到另一台。</span></p>
<p><span style="font-family: Arial">何时不要用操作系统级虚拟化</span></p>
<p><span style="font-family: Arial">虽然在很多应用案例下你都可以考虑使用操作系统级虚拟化，在某些情形下操作系统级虚拟化并不合适，而机器／硬件级虚拟化会是较好的选择：</span></p>
<p><span style="font-family: Arial">当你想执行非 Linux 的操作系统 <br />
当你想执行多个内核版本 <br />
当你需要一个多方面自定的内核</span></p>
<p><span style="font-family: Arial">OpenVZ 的历史</span></p>
<p><span style="font-family: Arial">SWsoft（现称为 Parallels）在 2001 年针对 Linux 发行了一个名叫 Virtuozzo 的产品。他们的现有产品名叫 Parallels Virtuozzo Containers。微软 Windows 版的 Virtuozzo 在 2005 年被发行。同样在 2005 年，SWsoft 成立了 OpenVZ 计划，以 GPL 2 授权方式公开 Virtuozzo 背底后的技术。</span></p>
<p><span style="font-family: Arial">纵使操作系统级虚拟化在媒体里所获的关注不及某些新兴的机器／硬件级虚拟化产品般多，自 2001 年（Virtuozzo）及 2005 年（OpenVZ）的发行，它们在环球数万台服务器上已证明了自已效率高、稳定、安全及耐用。时至今日，Linux 的操作系统级虚拟化（包括了 Linux-VServer）可算是历史最悠久和最广泛部署的 Linux 虚拟化平台。</span></p>
<p><span style="font-family: Arial">操作系统级虚拟化与 OpenVZ 的未来</span></p>
<p><span style="font-family: Arial">在数个于 2007 及 2008 年发表、关于 Linux 内核的未来的简报里，Andrew Morton 认定容器是他唯一能肯定会在 Linux 内核出现的东西，因为有数位利益关系人如 IBM、Google 及 OpenVZ 计划等都正在研究它。</span></p>
<p><span style="font-family: Arial">容器的功能自 2.6.24 版内核开始出现于主线的内核中，更多功能将会在其后的版本相继被加入。这些功能普遍被称为 control groups（简称为 cgroups），而数个内核子系统（如调度器、内存管理器等）已获修改来支持 cgroup。现时亦未知主线 Linux 内核中的 cgroup 支持仍需多久才会功能全备、稳定、及被广泛采用&hellip;&hellip;因此 OpenVZ 似乎仍会逗留一段日子。</span></p>
<p><span style="font-family: Arial">还有一个针对 Linux 的操作系统级虚拟化产品名叫 Linux-Vserver。Linux-VServer 同样是一个高质素的产品／计划，但它与 OpenVZ 之间有数个分别。Parallels／OpenVZ 正在与主线 Linux 内核的开发者合作，为要将容器的功能加进主线 Linux 内核里。Linux-VServer 的开发者以独立型式运作，并决定在可见的未来保持 Linux-VServer 为树干以外的修正。这并不是说 OpenVZ 将会直接被放进主线的内核里，因为事情并非如此。cgroup 方面的努力来自所有利益关系人的共识。不过明显地 OpenVZ 计划在主直插式核里已经贡献了很多源代码。</span></p>
<p><span style="font-family: Arial">安装 OpenVZ</span></p>
<p><span style="font-family: Arial">OpenVZ 计划的网页（www.openvz.org）内备很多高质素的文档，包括一份用户指南 PDF、一份快速安装指南、及 wiki 内丰富的教学及排除疑难文章。这篇文章会简短地涵盖安装的过程。在下面所有步骤中你都须要是 root 用户。</span></p>
<p><span style="font-family: Arial">添加 OpenVZ 的 yum 软件库</span></p>
<p><span style="font-family: Arial">在一台 CentOS 4 或 CentOS 5 的主机上安装 OpenVZ 很简单，因为 OpenVZ 计划提供了 openvz.repo 供 yum 使用。你只须下载 openvz.repo 这个文件并将它放置在 /etc/yum.repos.d/ 这个目录内。请查看 openvz.repo 这个文件，因为它收录了数个软件库的定义，其中两个缺省是被启用的：（一）以 RHEL5 为基础的内核及（二）OpenVZ 的工具。请编辑它来乎合你的需要。</span></p>
<p><span style="font-family: Arial">输入 OpenVZ 的金钥</span></p>
<p><span style="font-family: Arial">rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ 安装 OpenVZ 内核</span></p>
<p><span style="font-family: Arial">视乎你需要哪一种内核结构，你可简单地执行： <br />
yum install ovzkernel.i386 或 <br />
yum install ovzkernel.x86_64</span></p>
<p><span style="font-family: Arial">OpenVZ 内核安装完成后便是时候重新开机，但在开机前仍有些额外的细节须要处理： <br />
查看 /etc/grub.conf 来确定已缺省所需的内核， <br />
编辑 /etc/sysctl.conf 来启用 OpenVZ 所需的某些内核功能和确定 SELINUX 已被停用。<br />
&nbsp;<br />
我不会涵盖如何编辑 /etc/grub.conf，因为这是项很普遍、非 OpenVZ 专用的工作。</span></p>
<p><span style="font-family: Arial">编辑 /etc/sysctl.conf</span></p>
<p><span style="font-family: Arial">你喜欢的话，请将原装的 sysctl.conf 文件备份（cp /etc/sysctl.conf /etc/sysctl.conf.original）。请利用你喜欢的文字编辑器修改 /etc/sysctl.conf 这个文件并加入以下内容： <br />
# 在硬件节点上我们普遍需要<br />
# 启用封包转发及停用代理 arp<br />
net.ipv4.ip_forward = 1<br />
net.ipv4.conf.default.proxy_arp = 0<br />
# 启用来源路由检验<br />
net.ipv4.conf.all.rp_filter = 1<br />
# 启用 magic-sysrq<br />
kernel.sysrq = 1<br />
# TCP Explict Congestion Notification<br />
# net.ipv4.tcp_ecn = 0<br />
# 我们不想所有网络界面送出转递<br />
net.ipv4.conf.default.send_redirects = 1<br />
net.ipv4.conf.all.send_redirects = 0 停用 SELINUX</span></p>
<p><span style="font-family: Arial">很不幸 SELINUX 不能与 OpenVZ 内核兼容，亦不包含在其中。要停用 SELINUX，请利用你喜欢的文字编辑器修改 /etc/sysconfig/selinux 这个配置文件并将它设置为停用：</span></p>
<p><span style="font-family: Arial">SELINUX=disabled 现在是时候重新引导你的计算机进入 OpenVZ 内核。</span></p>
<p><span style="font-family: Arial">安装工具</span></p>
<p><span style="font-family: Arial">要安装 OpenVZ 的工具程序，请简单地执行：</span></p>
<p><span style="font-family: Arial">yum install vzctl vzquota 当你安装了 vzctl 后，你便要这样做来引导 OpenVZ 这个服务：</span></p>
<p><span style="font-family: Arial">service vz start vz 这个服务应该已经被设置为自动引导，但你可随意用以下方法来检查：</span></p>
<p><span style="font-family: Arial">chkconfig --list vz</span></p>
<p><span style="font-family: Arial">现在 OpenVZ 的安装已经完成，而你亦准备好创建你的首个容器，但你首先要取得所需 Linux 发行版本的安装媒体。</span></p>
<p><span style="font-family: Arial">利用 OpenVZ</span></p>
<p><span style="font-family: Arial">操作系统范本 &mdash;&mdash; Linux 发行版本的安装媒体</span></p>
<p><span style="font-family: Arial">vzctl 这个指命是用来创建及设置 OpenVZ 容器。在你创建一个容器之前，你须要拥有你想安装的 Linux 发行版本的安装媒体。OpenVZ 不能应用 CD／DVD 安装媒体（又或者 .iso 光盘映像档）。OpenVZ 需要它称为操作系统范本旳东西来为某个 Linux 发行版本创建一个容器。你可以从 OpenVZ 的网页下载一些预制的操作系统范本。这是推荐给新 OpenVZ 用户的途径。当你对 OpenVZ 更为熟识，你或许会想按照 OpenVZ wiki 上的众多方法从头创建你个人的操作系统范本。你可以这些地方找由 OpenVZ 划计提供的预制操作系统范本： <br />
<a href="http://download.openvz.org/template/precreated/">http://download.openvz.org/template/precreated/</a> &nbsp;</span></p>
<p><span style="font-family: Arial">你亦可以在这里找到由社区所贡献的操作系统范本： <br />
<a href="http://download.openvz.org/contrib/template/precreated/">http://download.openvz.org/contrib/template/precreated/</a> &nbsp;</span></p>
<p><span style="font-family: Arial">请下载所需的操作系统范本并将它放在你的 CentOS 5 主机内的 /vz/template/cache 目录。</span></p>
<p><span style="font-family: Arial">创建你的首个容器</span></p>
<p><span style="font-family: Arial">要创建一个容器，请采用 vzctl 这个指令，连同 create 选项及数个参数。你须要选择一个独特的容器标识码（CTID）。你也须要一些额外的数据：你想从哪个操作系统范本进行安装？它会拥有哪个 IP 位置？你想给它什么主机名称？你初步想将什么资源赋予它（取自配置文件）？这一切都可以通过以下参数来设置： <br />
--ostemplate {范本名称}<br />
--conf {配置文件名称}<br />
--ipadd {nn.nn.nn.nn}<br />
--hostname {完整域名} 这里有一个完整的样例：</span></p>
<p><span style="font-family: Arial">
<p><br />
vzctl create 101 \<br />
--ostemplate centos-5-i386-default \<br />
--conf vps.basic \<br />
--ipadd 199.199.199.199 \<br />
--hostname mynew.container.com</p>
<p>** 上面这个会提示找不到 ve-vps.basic.conf-sample</p>
<p>** 下面这个例子比较好,新版本openvz已带的一个模板是 ve-basic.conf-sample , 对应 conf basic</p>
<p>vzctl create 101 \<br />
--ostemplate centos-5-i386-default \<br />
--conf&nbsp; basic \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
--ipadd 199.199.199.199 \<br />
--hostname mynew.container.com</p>
<p>&nbsp;</p>
<p>这样便会创建一个名叫 /vz/private/{容器标识码} 的目录并将操作系统范本解压到其中。它也会复制指定的文件到 /etc/vz/conf/{容器标识码}.conf 作为该容器的配置文件。请留意 --ostemplate 及 --conf 的值与操作系统范本名称或文件名称并不吻合&hellip;&hellip;它们较为简短。</p>
<p>vps.basic 这个配置文件正如其名，是十分基本&hellip;&hellip;它配置给容器的资源亦比较保守。你若果想查阅与资源相关参数及它们的值，请看看位于 /etc/vz/conf 这个目录内的配置文件。你可以利用 vzsplit 这个指令（man vzsplit）来创建自定的样例配置文件（不限数量），或者复制现有的配置文件到新的文件来进行编辑。</p>
<p>当你创建了一台机器后，你需利用 vzctl set 这个指令来设置数个额外的参数。下面是一个例子： <br />
vzctl set 101 \<br />
--name mynew \<br />
--nameserver &quot;205.171.2.65 205.171.3.65&quot; \<br />
--diskspace 10G:10G \<br />
--save</p>
<p>这样做会更新你的容器的配置文件（在这个样例中是 /etc/vz/conf/101.conf）。当你执行 vzctl set 这个指令时不包含 --save 这个参数时，它便不会将改动存储到你的配置文件内&hellip;&hellip;不过假若该容器正在运作中，它会为该工作阶段动态地更改这些参数。你基本上会经常为 vzctl set 这个指令加入 --save 作为最后一个参数。</p>
<p>引导你的新容器</p>
<p>你只需执行以下的指令来引导你的新容器： <br />
vzctl start {容器标识码} 或者在我们的样例里： <br />
vzctl start 101</p>
<p>你应该会看见一则信息关于容器正在引导中。若果你没有打错任何参数，它应该立即运行。</p>
<p>一如你所期望，stop 及 restart 这些关键字都会如你预料般运作。假若一个容器没有运行，你可以 destroy 它来删除它的配置文件及从主机的文件系统删除它的目录结构（/vz/private/{容器标识码}）。</p>
<p>进入你的新容器</p>
<p>当你的容器已在运作时，它应该如同一部实体的服务器般可以在网络上被访问。但由于你位于主机上，你可以利用 vzctl 这个捷径直接进入容器而不须 root 的凭证。</p>
<p>vzctl enter {容器标识码} 在我们的样例中这是</p>
<p>vzctl enter 101 你应该在新的容器内取得一个新的指命符号。你多数会想利用 passwd 这个指令来设置 root 的密码，或者在主机上执行以下指令：</p>
<p>vzctl set {容器标识码} --userpasswd {user}:{password} --save 这里假设你是一个不错的 Linux 系统管理员而且不害怕命令行。请到处看看你的新系统。它在外观及行动上都应该与一台实体的机器无异。你可以安装软件（见下文关于 yum 的部份）、创建户口、新增系统服务及修改它们的设置。</p>
<p>你可以查阅一个容器的 /proc/user_beancounters 文件来查看有多少资源被配置给它。你可以查阅主机上的 /proc/user_beancounters 来查看每个容器的所有参数。资源管理已经超越了这篇文章的范畴，因此详情请参阅 vzctl 的使用手册或 PDF 版的用户指南 。</p>
<p>假若 yum 不在我的容器里，怎样办？</p>
<p>在 2009 年 1 月前，OpenVZ 计划所提供的预制操作系统范本并未安装 yum，而这导致很多用户生气。原因是某些 OpenVZ 系统管理员较喜欢在主机上应用一个名叫 vzyum 的工具，它能在容器里进行类似 yum 的操作。为什么它们喜欢这样做？因为假若每个容器都各自利用 yum，yum 的数据库及高速缓冲文件有时可以占用大量的磁盘空间（及带宽）。在主机上应用 vzyum，只有一个 yum 数据库／高速缓冲会存在，而每个组件只须下载一次。</p>
<p>在 2009 年 1 月 OpenVZ 计划为发行了更新版的预制 CentOS 操作系统范本，当中包含了 yum，因此这个问题已经不再存在。官方的操作系统范本大约每个月更新一次，故此你没有理由采用未安装 yum 的旧版操作系统范本。如果你的 CentOS 操作系统范本并不包含 yum，它要不是旧过 2009 年 1 月，就是来自 OpenVZ 计划以外的源头。</p>
<p>如果你仍然在应用一个未安装 yum 的 CentOS 容器，OpenVZ 的 wiki 有一页解释如何在容器内安装 yum。基本上你要下载 yum 所须的一切 rpm 组件然后利用 rpm 安装它们。盼望这个问题已经成为过去。</p>
<p>结语</p>
<p>这篇文章只处理了 OpenVZ 的最基本部份。未涵盖的主题包括监测容器、资源管理、编辑／创建配置文件（参阅 vzsplit 使用手册）、容器文件系统、与及要成为一位有效率的 OpenVZ 系统管理员的所有额外工序。另外也请留意 OpenVZ 拥有两款网络适配器，而这里只处理了基本／缺省的 venet 类型。veth 这款网络适配器拥有更多元化的功能。</p>
<p>OpenVZ 计划所提供的文档质素很高，数量亦多。请切记阅读 PDF 版的用户指南作为最全面的文档。不过这份指南有一点过时，因为它是在 veth 网络设备、检查点及迁移功能被加入前写成的。还有就是不同指令的使用手册。当你需要迁移容器时，务请阅读 vzmigrate 的使用手册。</p>
<p>我们鼓励你参予及投身在 OpenVZ 计划，方法包括浏览 OpenVZ 网站、应用论坛和 IRC 频道（Freenode IRC 网络上的 #openvz）、与及在 http://bugzilla.openvz.org 汇报你碰到的错误。请让自己熟悉 OpenVZ 的网站，因为它收藏了很多材料。</p>
</span></p>]]></description>
			<link>http://meisw.wdlinux.cn//show-366-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-28 12:13</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-365-1.html</guid>
			<title>XEN installation failing with hg command not found</title>
			<author>admin</author>
			<description><![CDATA[<p>select-repository: <a style="position: static; text-decoration: underline !important" id="KonaLink1" class="kLink" href="#" target="undefined"><font style="position: static; font-family: Verdana, Arial, Helvetica, sans-serif; color: blue !important; font-size: 10pt; font-weight: 400" color="#0000ff"><span style="position: relative; font-family: Verdana, Arial, Helvetica, sans-serif; color: blue !important; font-size: 10pt; font-weight: 400" class="kLink">Searching</span></font></a> `.:..' for linux-2.6.18-xen.hg<br />
select-repository: Ignoring `.'<br />
buildconfigs/select-repository: line 35: hg: command not found<br />
select-repository: Unable to determine Xen repository parent.<br />
make[3]: *** [linux-2.6.18-xen.hg/.valid-src] Error 1<br />
make[3]: Leaving directory `/xen-3.2.0'<br />
make[2]: *** [linux-2.6-xen-install] Error 2<br />
make[2]: Leaving directory `/xen-3.2.0'<br />
make[1]: *** [install-kernels] Error 1<br />
make[1]: Leaving directory `/xen-3.2.0'<br />
make: *** [world] Error 2</p>
<p>yum install mercurial</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-365-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-26 13:41</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-363-1.html</guid>
			<title>xen半虚拟化与全虚拟化</title>
			<author>admin</author>
			<description><![CDATA[<p>本文只涉及到如何实现xen的全虚拟化与半虚拟化，也就是linux下安装linux，与linux下安装windows。</p>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">原理性的东西，以及优化，本人还在研究中。<br />
</span></font>
<div>环境centos 5.2 64bit</div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">安装时候已经包含虚拟化，所以启动系统后已经是带xen的内核，已经安装好xen相关软件。</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">xen虚拟机的存储有多种方式，根据官方手册上说的有files，lvm，nfs等。我选择了files作为xen虚拟机的存储，因为这样比较简单，当然会有弱点，后面会说到。</span></font></div>
<div>先说如何实现半虚拟化：</div>
<div>检查cpu的指令集是否包含pae，这个应该不成问题，我小黑的cpu是T2370都支持。</div>
<div>1.先dd出一个img文件作为虚拟机的安装空间</div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">&nbsp;&nbsp;dd if=/dev/zero of=/xen/image/xen1.img bs=1M count=30720 数值大小可以根据自己需要调整。</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">2.接着就是安装虚拟机了，安装方式跟宿主机安装一样，可以采取光驱，网络，由于我已经建好了ks的源，方便</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">&nbsp;&nbsp;期间我就采用ks来安装虚拟机的系统。</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">&nbsp;&nbsp;执行如下命令：</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 13px" class="Apple-style-span">virt-install -n xen1 -r 256 -p --nographic -f /xen/images/xen1.img &nbsp;-l http://192.168.32.132/centos32bit -x &quot;ip=192.168.32.31 netmask=255.255.255.0 gateway=192.168.32.1 ks=http://192.168.32.132/centos32bit/ksxen.cfg&quot;</span></font></div>
<div>成功的话就会自动安装完系统，直到重启进入系统。ks文件就不贴了，和宿主机的配置文件基本一样需要做调整的是分区的名字，宿主机是类似sda的形式，而虚拟机是类似xvda的形式。</div>
<div>那些控制xen的基本命令也不说了，网上一大堆，建议看下官方的xen+man.pdf这本书，很详细。</div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span"><br />
</span></font></div>
<div>接着说全虚拟化：</div>
<div>linux安装windows前，我有个误区，想windows是图形的，linux不装图形界面怎么装啊，后来才明白过来，是通过vnc连接，即可以看到图形界面。安装vnc配置vnc也不再叙述，配置下很简单，客户端通过vnc连接到linux的时候一定要输入ip:number（number=1，2...）只输入ip就只能看到一片白的屏幕，什么都没有。</div>
<div>然后先传个iso到宿主机上去，这里要说明下了，网上关于全虚拟化有各种说法，说什么要修改配置文件，修改启动项目，我照着做试了好几遍都不行，后来突然之间找到了个方法解决。</div>
<div>照样dd出img文件，</div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 13px" class="Apple-style-span">执行 virt-install -n win2003 -r 512 --vcpus=2 --file=/xen/image/win2003.img --vnc -v -c /root/windows2003_sp2.iso &nbsp;--vnc --vncport=5902 &nbsp;--os-type='windows'</span></font></div>
<div>然后会自动生成win2003的配置文件。</div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">接着通过vnc可以安装系统，（说明下，当时看到蓝底白字的图像时候，很兴奋啊）</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">当windows复制完需要的文件时候，重启，这时候会出问题了。屏幕是会提示一个错误，安装程序不会继续下去了，这时候删除那个在/etc/xen目录下关于win2003的配置文件，再执行上述命令，再自动生成win2003的配置文件，通过vnc查看，安装程序顺利进行。直到重新启动系统，顺利进去win2003系统，这时候安全起见注意开启win2003的远程桌面，关闭宿主机的vnc服务。</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">以后通过远程桌面管理win2003.</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span">上述简单的说明了下如何实现半虚拟化与全虚拟化的步骤，行文不是很好，希望大家可以看懂。</span></font></div>
<div><font class="Apple-style-span" size="3"><span style="font-size: 12px" class="Apple-style-span"><br />
</span></font></div>
<div>&nbsp;</div>
<div>补充下，采用files作为xen虚拟机的存储，io速度会很慢，基本是宿主机的一半，所以用在生产机器上会有严重问题。听说采取lvm的虚拟分区效果不错，正打算有时间去测试下。</div>
</div>]]></description>
			<link>http://meisw.wdlinux.cn//show-363-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-24 12:13</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-360-1.html</guid>
			<title>使用xen-shell来管理xen vps</title>
			<author>admin</author>
			<description><![CDATA[<div>XEN&nbsp;的强大管理工具&nbsp;XEN-SHELL，用他来管理XEN的虚拟机，简直是太方便了。太强大了，支持系统重装，VPS&nbsp;启动、重启、关机、暂停，连接控制台。</div>
<div>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: 16px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 4px; font-family: Verdana, 宋体; color: rgb(0,0,0); font-size: 10pt; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px">wget http:<font color="#008000">//xen-tools.org/software/xen-shell/xen-shell-1.9.tar.gz</font><br />
tar zxvf xen-shell-1.9.tar.gz<br />
cd xen-shell<br />
make<br />
make install</div>
</div>
<p>&nbsp;</p>
<div>1.建立连接VPS的用户与密码</div>
<div>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: 16px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 4px; font-family: Verdana, 宋体; color: rgb(0,0,0); font-size: 10pt; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px">useradd eric<br />
passwd eric<br />
useradd yangzi<br />
passwd yangzi</div>
</div>
<p>&nbsp;</p>
<div>2.给用户&nbsp;sudo&nbsp;的命令权限,和登录shell</div>
<div>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: 16px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 4px; font-family: Verdana, 宋体; color: rgb(0,0,0); font-size: 10pt; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px">User_Alias&nbsp;&nbsp;&nbsp;&nbsp; XENUSERS = eric,yangzi<br />
Cmnd_Alias&nbsp;&nbsp;&nbsp;&nbsp; XEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= /usr/sbin/xm<br />
Cmnd_Alias&nbsp;&nbsp;&nbsp;&nbsp; XENIMG&nbsp;&nbsp;&nbsp;&nbsp;= /usr/bin/xen-create-image<br />
XENUSERS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= NOPASSWD: XEN,XENIMG</div>
</div>
<p>&nbsp;</p>
<div>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: 16px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 4px; font-family: Verdana, 宋体; color: rgb(0,0,0); font-size: 10pt; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px">chsh -s /usr/local/bin/xen-login-shell eric<br />
chsh -s /usr/local/bin/xen-login-shell yangzi</div>
</div>
<p>&nbsp;</p>
<div>3.修改xen&nbsp;虚拟机的配置文件，加入</div>
<div>
<div>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: 16px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 4px; font-family: Verdana, 宋体; color: rgb(0,0,0); font-size: 10pt; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px">xen_shell = <font color="#800000">&quot;eric&quot;</font></div>
</div>
</div>
<div>例如：</div>
<div>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: 16px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 4px; font-family: Verdana, 宋体; color: rgb(0,0,0); font-size: 10pt; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px">kernel = <font color="#800000">&quot;/boot/vmlinuz-2.6.24-28-xen&quot;</font><br />
ramdisk = <font color="#800000">&quot;/boot/initrd.img-2.6.24-28-xen&quot;</font><br />
memory = <font color="#800000">&quot;64&quot;</font><br />
name = <font color="#800000">&quot;xenyang&quot;</font><br />
xen_shell = <font color="#800000">&quot;eric&quot;</font><br />
disk = ['phy:/dev/md0,sda1,w']<br />
root = <font color="#800000">&quot;/dev/sda1 ro&quot;</font><br />
on_poweroff = 'destroy'<br />
on_reboot = 'restart'<br />
on_crash = 'restart'<br />
vcpus&nbsp;&nbsp;&nbsp;&nbsp; = '2'<br />
extra = 'xencons=tty1'<br />
vif = [ '' ]</div>
</div>
<p>&nbsp;</p>
<div>4.(可选)如果你需要用xen-shell&nbsp;来重装系统的话,就做这步</div>
<div>在eric&nbsp;的home&nbsp;目录下新建image.sh</div>
<div>
<div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; line-height: 16px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 4px; font-family: Verdana, 宋体; color: rgb(0,0,0); font-size: 10pt; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px">#!/bin/sh<br />
/usr/bin/sudo /usr/bin/xen-create-image --hostname=yang \<br />
--size=1.5Gb \<br />
--ide \<br />
--ip=192.168.6.36 \<br />
--netmask=255.255.255.0 \<br />
--gateway=192.168.6.1 \<br />
--force&nbsp;&nbsp;&nbsp;&nbsp;\<br />
--kernel=/boot/vmlinuz-2.6.24-28-xen \<br />
--dist=hardy \<br />
--mirror=http:<font color="#008000">//mirrors.163.com/ubuntu/ \</font><br />
--arch=i386 \<br />
--passwd \<br />
--dir=/home/yangzi</div>
</div>]]></description>
			<link>http://meisw.wdlinux.cn//show-360-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-23 14:03</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-359-1.html</guid>
			<title>Xen-Shell命令详解</title>
			<author>admin</author>
			<description><![CDATA[<h3>什么是Xen-shell?</h3>
<p>Xen shell 是Xen虚拟机的一部分，它是Xen的一个外部的虚拟操作平台，能够更好的帮助你管理你的虚拟机。当你的虚拟机出现问题无法登陆时，我们可以通过它来执行启动，暂停，停止，重启等命令。如果你还不明白，在参考了我们的教程后，你就明白那有多简单了。</p>
<p>Xen-Shell命令详解：<br />
boot：启动VPS。此命令仅在系统处于关闭状态时有效。<br />
console:连接到VPS控制台，相当于登录到VPS上的系统。按下&ldquo;ctrl + ]&rdquo;可以退出VPS控制台并返回到Xen-Shell。<br />
exit:退出Xen-Shell。<br />
help:显示帮助。可以用命令名称做为help的参数，显示此命令的详细使用方法。如果不附带任何参数，刚列出所有命令以及简单的说明。<br />
passwd:修改登录到Xen-Shell所使用的密码。<br />
pause:停止VPS。注意停止并不是关闭，停止后可以使用unpause使VPS立即处于运行状态，而不需要启动过程。<br />
quit：同exit，退出Xen-Shell。<br />
reboot：重新启动VPS。<br />
serial：同console ，连接到VPS控制台。<br />
shutdown：关闭VPS。<br />
status：显示VPS的当前状态。<br />
sysreq：向VPS发送sysreq命令。<br />
top：显示服务器当前资源的使用情况。因为会显示其他的客户信息，我们已经屏蔽此命令。<br />
unpause：启动VPS。此命令仅当VPS处于pause状态时有效。<br />
uptime：显示母服务器系统以及VPS系统的uptime（已经运行的时间）。<br />
version：显示Xen-Shell的版本。<br />
whoami：当前登录到Xen-Shell所使用的帐号。</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-359-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-23 14:02</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-340-1.html</guid>
			<title>虚拟化之Openvz 配置初步</title>
			<author>admin</author>
			<description><![CDATA[<p>OpenVZ是基于Linux内核和系统的操作系统级虚拟化技术，OpenVZ允许物理服务器运行多个操作系统，被称虚拟专用服务器（VPS，Virtual Private Server）或虚拟环境（VE, Virtual Environment），更详细的信息可以参照：http://zh.wikipedia.org/zh/OpenVZ；下面来简要的介绍下openvz的安装和虚拟机的部署：<br />
<br />
[root@localhost ~]# cd /etc/yum.repos.d/<br />
[root@localhost yum.repos.d]# wget http://download.openvz.org/openvz.repo<br />
[root@localhost yum.repos.d]# yum -y install ovzkernel.x86_64&nbsp; ovzkernel-devel.x86_64 vzctl.x86_64&nbsp; vzquota.x86_64&nbsp;&nbsp; //安装openvz内核和客户端工具<br />
<br />
[root@localhost ~]# grep -v '^#' /etc/grub.conf&nbsp;&nbsp; //确认下次启动时以openvz核启动<br />
default=0<br />
timeout=5<br />
splashimage=(hd0,0)/grub/splash.xpm.gz<br />
hiddenmenu<br />
title Red Hat Enterprise Linux Server (2.6.18-194.3.1.el5.028stab069.5)<br />
root (hd0,0)<br />
kernel /vmlinuz-2.6.18-194.3.1.el5.028stab069.5 ro root=LABEL=/1 rhgb quiet<br />
initrd /initrd-2.6.18-194.3.1.el5.028stab069.5.img<br />
title Red Hat Enterprise Linux Server (2.6.18-164.el5)<br />
root (hd0,0)<br />
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/1 rhgb quiet<br />
initrd /initrd-2.6.18-164.el5.img<br />
<br />
<br />
[root@localhost ~]# uname&nbsp; -r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //重启并确定当前内核为openvz内核<br />
2.6.18-194.3.1.el5.028stab069.5<br />
<br />
<br />
[root@localhost ~]# service vz status&nbsp; //启动vz服务<br />
OpenVZ is running...<br />
<br />
[root@localhost ~]# ls /vz/&nbsp; <br />
dump&nbsp; lock&nbsp; private&nbsp; root&nbsp; template<br />
<br />
openvz默认的工作目录为/vz，如何修改这个目录还有待研究，dump目录应该是存放虚拟机备份文件的位置，private和root都是存放当前虚拟机系统文件的目录，template是存放虚拟机模板的目录，lock目录何用，也需要继续研究&hellip;<br />
<br />
openvz支持的guest操作系统版本模板下载地址：<br />
http://download.openvz.org/template/precreated/<br />
[root@localhost ~]# ls /vz/template/cache/*.gz&nbsp;&nbsp;&nbsp;&nbsp; //下载相应的模板并移动的这个目录<br />
/vz/template/cache/centos-5-i386-afull.tar.gz<br />
/vz/template/cache/centos-5-i386-hostinabox576.tar.gz<br />
<br />
[root@localhost ~]# vzctl create 101 --ostemplate centos-5-i386-afull&nbsp;&nbsp; //创建虚拟机，101为ID号，从100开始，需要注意的是只能写模板文件的名称去掉后缀（.tar.gz）的部分，否则会报错<br />
Creating container private area (centos-5-i386-afull)<br />
Performing postcreate actions<br />
Container private area was created<br />
<br />
[root@localhost ~]# vzctl set 101 --ipadd 192.168.50.249 --save&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设定虚拟机的ip参数，并保存<br />
Adding IP address(es): 192.168.50.249<br />
Saved parameters for CT 101<br />
<br />
[root@localhost ~]# vzctl start 101&nbsp;&nbsp;&nbsp;&nbsp; //启动虚拟机101<br />
Starting container ...<br />
Container is mounted<br />
Adding IP address(es): 192.168.50.249<br />
Setting CPU units: 1000<br />
Configure meminfo: 49152<br />
Container start in progress...<br />
<br />
[root@localhost ~]# vzctl enter 101&nbsp;&nbsp; //进入虚拟机<br />
entered into CT 101<br />
<br />
[root@localhost /]# ifconfig |grep 'inet addr'&nbsp;&nbsp;&nbsp; //查看虚拟机网卡信息<br />
inet addr:127.0.0.1&nbsp; Mask:255.0.0.0<br />
inet addr:127.0.0.1&nbsp; P-t-P:127.0.0.1&nbsp; Bcast:0.0.0.0&nbsp; Mask:255.255.255.255<br />
inet addr:192.168.50.249&nbsp; P-t-P:192.168.50.249&nbsp; Bcast:192.168.50.249&nbsp; Mask:255.255.255.255<br />
<br />
[root@localhost /]# df -h&nbsp;&nbsp;&nbsp;&nbsp; //查看虚拟机磁盘信息，可以看到，其实所有的虚拟机都是共享/vz目录，因而在生产环境中使用openvz的时候，最好要独立划出/vz分区，并做lvm<br />
Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size&nbsp; Used Avail Use% Mounted on<br />
/dev/simfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 23G&nbsp; 501M&nbsp;&nbsp; 21G&nbsp;&nbsp; 3% /<br />
none&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 96M&nbsp; 4.0K&nbsp;&nbsp; 96M&nbsp;&nbsp; 1% /dev<br />
<br />
[root@localhost /]# free&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //同样，共享系统内存和cpu<br />
total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp; shared&nbsp;&nbsp;&nbsp; buffers&nbsp;&nbsp;&nbsp;&nbsp; cached<br />
Mem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 196608&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15568&nbsp;&nbsp;&nbsp;&nbsp; 181040&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
-/+ buffers/cache:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15568&nbsp;&nbsp;&nbsp;&nbsp; 181040<br />
Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br />
<br />
[root@localhost /]# cat /proc/cpuinfo&nbsp; |less<br />
processor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 0<br />
vendor_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : GenuineIntel<br />
cpu family&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 6<br />
model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 15<br />
model name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Intel(R) Xeon(R) CPU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5110&nbsp; @ 1.60GHz<br />
stepping&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 6<br />
&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;&hellip;<br />
<br />
[root@localhost /]# exit&nbsp;&nbsp;&nbsp;&nbsp; //退出虚拟机101<br />
exited from CT 101<br />
<br />
<br />
[root@localhost ~]# cat /vz/root/101/etc/sysconfig/network-scripts/ifcfg-venet0:1&nbsp; //也可以直接编辑/vz/root下的文件修改虚拟机相关参数<br />
DEVICE=venet0:1<br />
ONBOOT=yes<br />
IPADDR=192.168.50.249<br />
NETMASK=255.255.255.255<br />
<br />
[root@localhost ~]# ls /vz/root/<br />
101&nbsp; 102&nbsp; 103&nbsp; 104&nbsp; 105&nbsp; 106<br />
[root@localhost ~]# ls /vz/private/<br />
101&nbsp; 102&nbsp; 103&nbsp; 104&nbsp; 105&nbsp; 106<br />
<br />
<br />
总结：<br />
1:openvz是一款独树一帜的虚拟机，同传统的虚拟机，例如xen，kvm，MS hypev-v,VMWARE等相比，安装虚拟机操作系统变的相当的容易，且快速，这些传统的虚拟机安装都需要和真实机安装操作系统的方式一样（这里排除了使用克隆和dd的方式），openvz则使用模板这种方式，从安装上变的高效；<br />
<br />
2:默认openvz有一张venet0网卡，虚拟机的网段和物理机的网段通过这个网卡桥接在一起，并没有提供其他的虚拟网卡，这个也有待进一步研究;<br />
<br />
3:另外，openvz支持多种方式的管理，例如：hypervm,vtonf等...<br />
<br />
4：对硬件没有特殊的要求，kvm需要cpu vt技术的支持，xen装windows也需要vt支持</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-340-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-14 01:24</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-339-1.html</guid>
			<title>openvz 安装配置</title>
			<author>admin</author>
			<description><![CDATA[<p>系统环境：ubuntu server 9.04</p>
<p>1、openvz简介 <br />
OpenVZ是基于Linux内核和作业系统的操作系统级虚拟化技术。OpenVZ允许物理服务器运行多个操作系统，被称虚拟专用服务器（VPS，Virtual Private Server）或虚拟环境（VE, Virtual Environment）。 <br />
与VMware这种虚拟机和Xen这种半虚拟化技术相比，OpenVZ的host OS和guest OS都必需是Linux（虽然在不同的虚拟环境里可以用不同的Linux发行版）。但是，OpenVZ声称这样做有性能上的优势。根据OpenVZ网站的说法，使用OpenVZ与使用独立的服务器相比，性能只会有1-3%的损失。 <br />
OpenVZ是SWsoft, Inc.公司开发的专有软件Virtuozzo的基础。OpenVZ的授权为GPLv2。</p>
<p>2、安装前准备 <br />
删除apparmor(apparmor是一个安全软件，但是与openvz内核配合不太好)</p>
<p>Java代码 <br />
sudo /etc/init.d/apparmor stop&nbsp;&nbsp;&nbsp; <br />
sudo update-rc.d -f apparmor remove&nbsp;&nbsp;&nbsp; <br />
sudo apt-get remove apparmor apparmor-utils&nbsp; <br />
sudo /etc/init.d/apparmor stop<br />
sudo update-rc.d -f apparmor remove<br />
sudo apt-get remove apparmor apparmor-utils<br />
更新源列表sources.list，找到有linux-openvz的源。可以用命令查看是否有linux-openvz：</p>
<p>Java代码 <br />
sudo apt-get update&nbsp;&nbsp;&nbsp; <br />
sudo apt-cache search openvz&nbsp; <br />
sudo apt-get update<br />
sudo apt-cache search openvz</p>
<p>3、安装openvz及基本配置 <br />
linux-openvz：有openvz的linux内核补丁 <br />
vztcl：openvz管理工具 <br />
vzquota：openvz限额管理工具</p>
<p>Java代码 <br />
sudo apt-get install linux-openvz vzctl vzquota&nbsp; <br />
sudo apt-get install linux-openvz vzctl vzquota<br />
内核参数调整：</p>
<p>Java代码 <br />
sudo vi /etc/sysctl.conf&nbsp;&nbsp;&nbsp; <br />
#确认有如下几项&nbsp;&nbsp;&nbsp; <br />
net.ipv4.conf.all.rp_filter=1&nbsp;&nbsp; <br />
net.ipv4.icmp_echo_ignore_broadcasts=1&nbsp;&nbsp; <br />
net.ipv4.conf.default.forwarding=1&nbsp;&nbsp; <br />
net.ipv4.conf.default.proxy_arp = 0&nbsp;&nbsp; <br />
net.ipv4.ip_forward=1&nbsp;&nbsp; <br />
kernel.sysrq = 1&nbsp;&nbsp; <br />
net.ipv4.conf.default.send_redirects = 1&nbsp;&nbsp; <br />
net.ipv4.conf.all.send_redirects = 0&nbsp;&nbsp; <br />
net.ipv4.conf.eth0.proxy_arp=1&nbsp;&nbsp; <br />
#保存退出&nbsp;&nbsp;&nbsp; <br />
sudo sysctl -p&nbsp; <br />
sudo vi /etc/sysctl.conf<br />
#确认有如下几项<br />
net.ipv4.conf.all.rp_filter=1<br />
net.ipv4.icmp_echo_ignore_broadcasts=1<br />
net.ipv4.conf.default.forwarding=1<br />
net.ipv4.conf.default.proxy_arp = 0<br />
net.ipv4.ip_forward=1<br />
kernel.sysrq = 1<br />
net.ipv4.conf.default.send_redirects = 1<br />
net.ipv4.conf.all.send_redirects = 0<br />
net.ipv4.conf.eth0.proxy_arp=1<br />
#保存退出<br />
sudo sysctl -p<br />
修改openvz全局配置文件/etc/vz/vz.conf。选项NEIGHBOUR_DEVS定义VE使用的网卡。</p>
<p>Java代码 <br />
sudo vi /etc/vz/vz.conf&nbsp;&nbsp;&nbsp; <br />
NEIGHBOUR_DEVS=all&nbsp; <br />
sudo vi /etc/vz/vz.conf<br />
NEIGHBOUR_DEVS=all<br />
修改vps.basic配置文件，默认OpenVz创建VE时会复制/etc/vz/conf/ve-vps.basic.conf-sample的内容为新VE配置文件。修改此文件可以避免每次创建VE时重复修改配置文件。大部分是限额调整，可以根据实际情况调整。这里在末尾加一行打开部分功能。</p>
<p>Java代码 <br />
sudo vi /etc/vz/conf/ve-vps.basic.conf-sample&nbsp;&nbsp;&nbsp; <br />
#加入以下&nbsp;&nbsp;&nbsp; <br />
CAPABILITY=&quot;CHOWN:on DAC_READ_SEARCH:on SETGID:on SETUID:on NET_BIND_SERVICE:on NET_ADMIN:on SYS_CHROOT:on SYS_NICE:on&quot;&nbsp; <br />
sudo vi /etc/vz/conf/ve-vps.basic.conf-sample<br />
#加入以下<br />
CAPABILITY=&quot;CHOWN:on DAC_READ_SEARCH:on SETGID:on SETUID:on NET_BIND_SERVICE:on NET_ADMIN:on SYS_CHROOT:on SYS_NICE:on&quot;<br />
修改引导文件，默认启动进入openvz内核。然后重启，用 uname -a 查看是否进入openvz的内核。</p>
<p>Java代码 <br />
sudo vi /boot/grub/menu.lst&nbsp;&nbsp;&nbsp; <br />
#修改default&nbsp; <br />
sudo vi /boot/grub/menu.lst<br />
#修改default</p>
<p>4、openvz基本操作 <br />
openvz创建ve十分简单，只需下载官方的模板放到/var/lib/vz/template/cache里，用vzctl工具创建后稍加修改即可。 <br />
模板下载地址：<a href="http://download.openvz.org/template/precreated/">http://download.openvz.org/template/precreated/</a></p>
<p>Java代码 <br />
wget <a href="http://download.openvz.org/template/precreated/old/ubuntu-8.04-i386-minimal.tar.gz">http://download.openvz.org/template/precreated/old/ubuntu-8.04-i386-minimal.tar.gz</a>&nbsp;&nbsp;&nbsp; <br />
sudo mv ubuntu-8.04-i386-minimal.tar.gz /var/lib/vz/template/cache/&nbsp;&nbsp;&nbsp; <br />
sudo vzctl create 101 --ostemplate ubuntu-8.04-i386-minimal&nbsp; <br />
wget <a href="http://download.openvz.org/template/precreated/old/ubuntu-8.04-i386-minimal.tar.gz">http://download.openvz.org/template/precreated/old/ubuntu-8.04-i386-minimal.tar.gz</a><br />
sudo mv ubuntu-8.04-i386-minimal.tar.gz /var/lib/vz/template/cache/<br />
sudo vzctl create 101 --ostemplate ubuntu-8.04-i386-minimal<br />
运行vzctl creat命令后会生成101（VE的ID，简称VEID，必须设置成100以上）VE的配置文件/etc/vz/conf/101.conf。101VE的根目录被默认放到/var/lib/vz/private/101。 <br />
5、VE管理与vzctl的使用 <br />
常用命令：</p>
<p>Java代码 <br />
#启动VE&nbsp;&nbsp;&nbsp; <br />
sudo vzctl start 101&nbsp;&nbsp; <br />
#关闭VE&nbsp;&nbsp;&nbsp; <br />
sudo vzctl stop 101&nbsp;&nbsp; <br />
#进入VE与退出VE&nbsp;&nbsp;&nbsp; <br />
sudo vzctl enter 101&nbsp;&nbsp; <br />
exit&nbsp;&nbsp;&nbsp; <br />
#删除VE&nbsp;&nbsp;&nbsp; <br />
sudo vzctl destroy 101&nbsp;&nbsp; <br />
#设置主机名&nbsp;&nbsp;&nbsp; <br />
sudo vzctl set 101 --hostname test --save&nbsp;&nbsp;&nbsp; <br />
#在VE中执行命令&nbsp;&nbsp;&nbsp; <br />
sudo vzctl exec 101 ps -aux&nbsp; <br />
#启动VE<br />
sudo vzctl start 101<br />
#关闭VE<br />
sudo vzctl stop 101<br />
#进入VE与退出VE<br />
sudo vzctl enter 101<br />
exit<br />
#删除VE<br />
sudo vzctl destroy 101<br />
#设置主机名<br />
sudo vzctl set 101 --hostname test --save<br />
#在VE中执行命令<br />
sudo vzctl exec 101 ps -aux<br />
更多关于vzctl的配置命令可以参考官方的openvvz文档。</p>
<p>6、其他 <br />
VE的限制资源使用情况可以在VE里运行命令查看：more /proc/user_beancounters <br />
其中held是正在使用的资源数，maxheld是做大使用资源数。failcnt是超过限制的资源数。可以根据failcnt和maxheld调整VE的资源限制（UBC）。</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-339-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-14 01:21</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-338-1.html</guid>
			<title>使用OpenVZ构建Linux虚拟化解决方案</title>
			<author>admin</author>
			<description><![CDATA[<p>现在多数的主机虚拟系统是基于管理程序的（hypervisor-based），而基于容器的虚拟化（container-based）技术提供了另外一种虚拟化的途径。通过在一台物理机上创建并运行多个独立的容器，所有的容器都运行在预先安装的主操作系统之上，管理员可以在容器中创建虚拟机 （VM）。每个虚拟机的运行都是独立于其他容器中的虚拟机，通过这样的方式保障虚拟机的安全性。开源程序OpenVZ使用的就是这种虚拟机技术。下面我就来给大家讲一讲使用openvz构建linux虚拟化的解决方案。</p>
<p>&nbsp;</p>
<p>OpenVZ实现虚拟化的方式完全不同于其他的开源虚拟化产品（如Xen和KVM）。跟其他虚拟化技术相比而言，OpenVZ有一点限制要求： 宿主机（host）和子系统（guest）都必须运行Linux，子系统可以支持不同版本的Linux。基于容器虚拟化技术的商业化产品 Parallels Virtuozzo Containers就是在OpenVZ的原理基础上实现的。</p>
<p>这种实现方式最大的优势就是它的性能。在OpenVZ中，所有通讯都是在Linux系统之间完成的，因此不需要复杂的翻译和转化过程。同时，它的安装方式也从根本上保证了高安全性，因为在不同的容器之间实现了完全的独立性。</p>
<p>&nbsp;</p>
<p><strong>安装</strong></p>
<p>OpenVZ可以运行在Red Hat 和 Debian等主流Linux操作系统之上，目前还不支持Ubuntu。如下的安装过程是OpenVZ在Red Hat Linux系统下实现的。在64位操作系统中，安装过程支持通过Yum或RPM安装包的方式来完成。</p>
<p>1. 下载OpenVZ安装包：在开始安装前，下载库源文件（repository file），并把下载的文件放在&rdquo;/etc/yum.repos.d&rdquo;目录下。您可以使用如下的wget命令来下载库源文件。</p>
<p>wget http://download.openvz.org/openvz.repo</p>
<p>使用下面这条命令，您可以加载库源文件中的GPG key 校验码：</p>
<p>rpm &ndash;import http://download.openvz.org/RPM-GPG-Key-OpenVZ</p>
<p>2. 安装OpenVZ内核。OpneVZ提供了不同的内核方式供选择，选择哪种内核取决于您的硬件条件及您将要创建的容器数量。首先是SMP内核，用于对称式 多处理器环境。支持高达到4GB的RAM及10到20个容器。第二种是&rdquo;entnosplit&rdquo; 内核，这种内核支持PAE （Physical Address Extension）技术，可以支持到高达64GB的RAM及10到30个容器。最后一种是Enterprise内核，这种方式同时支持SMP和PAE， 是多容器环境的最佳配置，最多可以同时运行20到30个容器。当在32位操作系统中安装OpenVZ时，选择合适内核形式对您而言是非常重要的。</p>
<p>如果您是在64位操作系统环境中安装，选择SMP内核就可以满足所有的需求。因为在64位的系统中不存在操作系统只能支持4GB缓存的限制（PAE技术本身就是为了解决缓存限制的问题）。如果您使用的64位操作系统，通过如下命令来安装内核：</p>
<p>yum install ovzkernel-smp</p>
<p>现在，OpenVZ内核已经安装并被自动加载到GRUB配置中。重启之后，OpenVZ内核会自动加载运行。</p>
<p>3. 在重启之前，您需要设置几个sysctl参数。请确保在列表1中设计涉及的所有参数设置都已经保存在&rdquo;/etc/sysctl.conf&rdquo;文件中</p>
<p>列表1 :. 在 /etc/sysctl.conf文件中需要设置的参数：</p>
<p>net.ipv4.ip_forward = 1<br />
net.ipv6.conf.default.forwarding = 1<br />
net.ipv6.conf.all.forwarding = 1<br />
net.ipv4.conf.default.proxy_arp = 0<br />
net.ipv4.conf.all.rp_filter = 1<br />
kernel.sysrq = 1<br />
net.ipv4.conf.default.send_redirects = 1<br />
net.ipv4.conf.all.send_redirects = 0</p>
<p>4. 确保SELinux选项是关闭的。您可以通过在&rdquo;/etc/sysconfig/selinux&rdquo;文件中设置如下的值来关闭该选项：</p>
<p>SELINUX=disabled</p>
<p>5. 安装OpenVZ工具。用如下命令来实现：</p>
<p>yum install vzctl vzquota</p>
<p>6. 编辑&rdquo;/etc/vz.conf&rdquo;文件。如果您计划在虚拟机中使用的IP地址和宿主机的IP地址不在一个地址段中，就需要确保该文件包含如下参数：</p>
<p>NEIGHBOUR_DEVS=all</p>
<p>7. 重启系统，OpenVZ内核将激活。</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-338-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-14 00:51</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-337-1.html</guid>
			<title>openvz相关配置</title>
			<author>admin</author>
			<description><![CDATA[<p>缩主机与VPS的IP不同段时</p>
<p>#NEIGHBOUR_DEVS=detect<br />
NEIGHBOUR_DEVS=all</p>]]></description>
			<link>http://meisw.wdlinux.cn//show-337-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-14 00:51</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-336-1.html</guid>
			<title>Xen与OpenVZ技术性能测试及选购</title>
			<author>admin</author>
			<description><![CDATA[<p>下面的这篇翻译自hostingfu.com，Observer进行了翻译，本人进一步加了注释。</p>
<p>一、Openvz和Xen的技术规格分析</p>
<p>1.Xen与Openvz的区别</p>
<p>Xen和Openvz同样是虚拟化主机技术，区别在于Xen是半虚拟化技术，它并不是一个真正的虚拟机，而是相当于自己运行了一个内核的实例，可以自由的加载内核模块，虚拟的内存和IO，稳定而且可预测。Openvz则是操作系统级别的虚拟化技术，是底层操作系统上的一层应用，这意味着易于理解和低权重开销，一般来说也意味着更优的性能。</p>
<p>这里有一个问题，可以看到实际上openvz因为免去了大量的公共开销，理论上来说性能会比xen更好。为什么大家都会认为openvz过分压榨性能呢？我认为是因为openvz配置起来比较灵活，给黑心 openvz服务商改低限制的机会。</p>
<p>比如mediatemple，号称512M内存的dv方案，kmemsize才12M，不了解的人看了512M觉得很哈皮啊，可是使用的时候一般这512M能分到你手里一半就不错了。此消彼长，所以才会有xen 能更好地利用机器性能的错觉。</p>
<p><br />
2.Openvz的内核模型</p>
<p>首先当OpenVZ的主机说&rdquo;256MB的保证&rdquo;，它实际上意味着约232MB的&rdquo;privvmpages&rdquo;，14M的&rdquo;kmemsize&rdquo;和其他杂项资源。当应用程序调用 malloc（）分配的内存将被添加到&rdquo;privvmpages&rdquo;。</p>
<p>当&rdquo;privvmpages&rdquo;超过限制，malloc（）将失败并返回一个NULL。当主机服务器内存用光了，然后虚拟环境下的进程超过 &ldquo;oomguarpages&rdquo;的将被终止。</p>
<p>OpenVZ的内存管理方法既有问题也有优势。最大的问题之一是内存容量的应用程序使用的内存和应用程序实际上分配到的内存是不同的，不同的应用程序他们的差别可能会很大。以Java为例，它通常分配一大块的内存，但是，它可能只使用一小部分分配的内存。如果privvmpages受限，java会立即停止运行。调整参数可以解决一部分问题，但它处理得绝对没有Xen来得干净利落。事实上，几乎所有使用内存分配的应用程序都会受OpenVZ这个问题的影响。</p>
<p>/proc/meminfo 本身也有问题。虽然OpenVZ的已经为内存进行了虚拟，但是用&rdquo;free&rdquo;命令依然会返回主机的内存。这样就会使小内存的openvz的vps无法运行诸如java或者gcc编译这样的程序。</p>
<p>OpenVZ的内存模型的优点是， 它容易理解： 你几乎就只有privvmpages受限。与专用的服务器或Xen的服务器不一样的是，你的磁盘高速缓存和页面缓存并不计入您的总内存使用情况。因此，在一个没有过度销售的openvz主机上，由于拥有较大冗余的公共资源，它实际上可能会比同类规格的Xen的VPS表现更佳。</p>
<p>3.Xen的内存模型</p>
<p>Xen的系统模型更容易解释。256MB的Xen的VPS是就像一个256MB的专用服务器-该内存段是预留作VPS专用，没有其他VPS能够使用这部分内存，这就像一个真正的专用服务器。</p>
<p>此外，当内存不足时，VPS会使用Swap。一般每个VPS带有两倍大小的交换分区，当您的应用需要更多的内存，不常使用的页面从内存中被换出到交换分区，从而腾出使更多的房间。因此，256MB的Xen的VPS系统实际上共有768MB内存（256MB内存+ 512MB的交换空间），请相信我，交换空间是非常有用的，特别是处理突发的需求高峰时。</p>
<p>这么说来，Xen是永远远优于OpenVZ？不然，你的256MB的VPS理论可以使用高达768MB内存，而实际上内核，高速缓存，缓冲，他们都占用内存。这部分系统开销也是可观的。另外，Swap会严重降低性能。</p>
<p>4.稳定性和可预测性</p>
<p>当内存耗尽时，xen和openvz表现大相径庭。xen会把不常用的内存页面换入Swap，这将大大降低性能，当Swap也用尽，那么xen的系统会响应得越来越慢，就像一台真实的服务器一样。</p>
<p>而openvz一旦内存用尽，则会突然死亡：开不出新的程序，只能等待系统资源可用。更有甚者，本来运行的好好的程序也可能因为不断增长而超过限制，然后突然死亡。这就像开车开到70码，然后突然撞墙上了，一般会死得很惨。</p>
<p>毫无疑问这点上我倾向于xen技术，可预测，稳定。</p>
<p>5.结论</p>
<p>如果xen和openvz一样贵，我肯定选xen，因为可预测性，即使openvz打8折，我还是追求稳定。</p>
<p>上面的话总结一下，得出几个结论：</p>
<p>1、XEN比openvz主机对买家更有利，比如分配给你512M内存后，这一部分内存就从服务器上专门划给你了，别人将无法使用，而openvz则是共用内存，比如分配给你512M内存是指最大你能使用512M内存，比如你占用了200M内存，那么就只从物体内存中分配200M给你，所以卖家非常容易在服务器上面超卖！</p>
<p>2、openvz更高效，xen是硬件底层虚拟，更接近真实服务器，而openvz是操作系统虚拟，虚拟服务自身占用内存少，同样的程序执行效率更高！</p>
<p>3、如果购买openvz应看卖家是否会超卖，应选择良好声誉明确申明不会超卖的</p>
<p>4、如果购买xen主机，应同时关注swap大小</p>
<p>5、测试VPS主机性能使用Unixbench（很多人不知道），国外非常流行这个东西！</p>
<p>这是它的一些参数说明：</p>
<p>dhry2reg 内存的register性能<br />
whetstone-double 双精度浮点性能<br />
execl execl call性能<br />
fstime 文件系统性能<br />
fsbuffer 文件系统性能<br />
fsdisk 文件系统性能<br />
pipe 管道（pipe）的性能<br />
context1 管道上下文切换的性能<br />
spawn 创建进程的性能<br />
shell shell并发性能<br />
syscall 系统调用性能</p>
<p>6、VPS用途：服务器、软交换、代理和反向代理、离线BT下载等等</p>
<p>7、通常一般的使用条件下，两者性能应该相差不大。</p>
<p>同时VM类似openvz，共用内存，超卖的情况很是严重，在安全和性能的稳定方面要比xen的差一些，选购的时候这些一定要注意的，要相信在这个世界上，一分价钱一分货的道理在那都是通用的。</p>
<p>VPS推荐：</p>
<p>Openvz：</p>
<p>ramhost.us 介于牛A和牛C之间的一家VPS提供商，价格非常便宜，速度飞快，不过经常卖完了买不到，唯一一家在自家网站上提供服务器状态的厂家</p>
<p>Xen：</p>
<p>Hellohost 国内的一家，口碑不错，同时提供Openvz和Xen的VPS，512M 内存20G 硬盘1000G 月流量2 个 IP 地址OpenVZ 虚拟化只要49，虽然Xen主机只有一款512M 内存5000M 硬盘1000G 月流量1 个 IP 地址Xen主机也只要109，最重要的swap达到1G（你可以理解为有1.5G内存，尽管这么理解是不对的），Xen是不能超卖的，所以绝对的物美价廉！</p>
<p>英文原文：<a href="http://hostingfu.com/article/xen-or-openvz">http://hostingfu.com/article/xen-or-openvz</a></p>]]></description>
			<link>http://meisw.wdlinux.cn//show-336-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-14 00:13</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-335-1.html</guid>
			<title>HyperVM安装手记 OpenVZ篇</title>
			<author>admin</author>
			<description><![CDATA[<p>首先要说一说OpenVZ的安装<br />
cd /etc/yum.repos.d<br />
wget <a href="http://download.openvz.org/openvz.repo">http://download.openvz.org/openvz.repo</a><br />
yum install ovzkernel<br />
即可完成安装。重启后，从<a href="http://download.lxlabs.com/?software=hypervm">http://download.lxlabs.com/?software=hypervm</a>选择下载需要的安装脚本（master的地址为<a href="http://download.lxlabs.com/download/hypervm/production/hypervm-install-master.sh">http://download.lxlabs.com/download/hypervm/production/hypervm-install-master.sh</a>），在服务器上运行sh ./hypervm-install-master.sh &ndash;-virtualization-type=openvz<br />
安装过程是会自动完成的，安装完HyperVM后init 6重启，然后通过浏览器访问<a href="http://&lt;server">http://&lt;server</a> address&gt;:8888就能操作虚拟机了。</p>
<p>最后，推荐个关于OpenVZ安装的页面<a href="http://linux.chinaunix.net/docs/2006-11-13/3187.shtml">http://linux.chinaunix.net/docs/2006-11-13/3187.shtml</a></p>]]></description>
			<link>http://meisw.wdlinux.cn//show-335-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-13 16:26</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-334-1.html</guid>
			<title>OpenVZ安装</title>
			<author>admin</author>
			<description><![CDATA[<p>OpenVZ 是唯一可用于unibilling生产用的服务器虚拟技术。目前全球有多套unibilling运行于OpenVZ container。经过3年多的VOIP连续运营生产，证实绝对可靠稳定。</p>
<p>在新的服务器上用如下步骤安装openVZ:</p>
<p><strong>导入 OpenVZ yum源</strong></p>
<p>cd /etc/yum.repos.d<br />
wget http://download.openvz.org/openvz.repo<br />
rpm &ndash;import&nbsp; http://download.openvz.org/RPM-GPG-Key-OpenVZ</p>
<p><strong>下载openVZ内核及头文件安装包</strong></p>
<p>mkdir -p /usr/src/files</p>
<p>cd /usr/src/files</p>
<p>wget http://download.openvz.org/kernel/branches/rhel5-2.6.18/028stab068.3/ovzkernel-2.6.18-164.11.1.el5.028stab068.3.i686.rpm</p>
<p>wget http://download.openvz.org/kernel/branches/rhel5-2.6.18/028stab068.3/ovzkernel-devel-2.6.18-164.11.1.el5.028stab068.3.i686.rpm</p>
<p><strong>安装openVZ内核及头文件</strong></p>
<p>rpm -ihv ovzkernel*.rpm</p>
<p><strong>配置boot loader确保使用openVZ的内核启动</strong></p>
<p>vi /etc/grub.conf</p>
<p><strong>配置 sysctl</strong></p>
<p>确保 /etc/sysctl.conf 文件中包含如下信息:</p>
<pre># On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.default.proxy_arp = 0

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# We do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

编辑完毕保存，运行如下命令使之生效：

sysctl -p

<strong>禁用 SELinux</strong>

修改 <code>/etc/sysconfig/selinux</code> 文件，使其包含信息：
<pre>SELINUX=disabled

<strong>重新启动linux</strong>

shutdown -r now

机器重新启动后，运行 uname -r检查是否已经是openVZ的内核<strong>

安装openvz工具集</strong>

yum install vzquota
yum install vzctl-lib
yum install vzctl
yum install vzyum
yum install vzpkg
yum install vzrpm43-python
yum install vzrpm44-python</pre>
<p><strong>启动OpenVZ服务</strong></p>
<p>/sbin/service vz start<strong> </strong></p>
<p><strong>安装操作系统模板文件</strong></p>
<p>查找系统中可用的操作系统模板<br />
yum search vztmpl<br />
[root@tpd620 /]# yum search vztmpl<br />
Loaded plugins: fastestmirror<br />
Loading mirror speeds from cached hostfile<br />
* addons: mirror.ii.uib.no<br />
* base: mirror.ii.uib.no<br />
* extras: mirror.ii.uib.no<br />
* openvz-kernel-rhel5: openvz.proserve.nl<br />
* openvz-utils: openvz.proserve.nl<br />
* updates: mirror.ii.uib.no<br />
====================== Matched: vztmpl =======================<br />
vztmpl-centos-4.i386 : OpenVZ template metadata for centos-4 i386.<br />
vztmpl-fedora-7.i386 : OpenVZ template metadata for fedora-7 i386.<br />
vztmpl-fedora-core-3.i386 : OpenVZ template metadata for fedora-core-3 i386.<br />
vztmpl-fedora-core-4.i386 : OpenVZ template metadata for fedora-core-4 i386.<br />
vztmpl-fedora-core-5.i386 : OpenVZ template metadata for fedora-core-5 i386.<br />
vztmpl-fedora-core-6.i386 : OpenVZ template metadata for fedora-core-6 i386.<br />
[root@tpd620 /]#</p>
<p>安装centos linux操作系统模板<br />
yum install vztmpl-centos-4<strong> </strong><br />
<strong>为操作系统模板建立缓存</strong><br />
vzpkgcache</p>
<p>该命令将建立 centos-4-i386-minimal.tar.gz 和 centos-4-i386-default.tar.gz<br />
vzpkgcache centos-4-i386-minimal 将只建立 centos-4-i386-minimal.tar.gz<br />
vzpkgcache centos-4-i386-default 将只建立 centos-4-i386-default.tar.gz <strong> </strong></p>
<p><strong>查看系统中存在的操作系统缓存：</strong><br />
[root@c8 ~]# vzpkgls<br />
centos-4-i386-default<br />
centos-4-i386-minimal<br />
<strong>建立OpenVZ节点container</strong></p>
<p><strong>准备配置文件</strong><br />
为方便起见，平分Host机器的内存和CPU<br />
cd /etc/sysconfig/vz-scripts/<br />
vzsplit -n 3 -f vps.mytest</p>
<p>上述命令将均分系统资源为3等份，产生一个例子配置文件<br />
验证该文件的有效性：vzcfgvalidate ve-vps.mytest.conf-sample<br />
<strong>创建节点VPS</strong><br />
vzctl create 112 --ostemplate centos-4-i386-minimal --config vps.mytest<br />
<strong>配置该VPS</strong><br />
vzctl set 112 --hostname unibillingsrv1 --save<br />
vzctl set 112 --ipadd 207.182.xxx.xxx --save<br />
vzctl set 112 --userpasswd root:xxxxxxxxx<br />
vzctl set 112 --nameserver 209.190.xxx.xxx --save<br />
vzctl set 112 --onboot yes --save<br />
vzctl start 112<br />
vzctl exec 112 service sshd start<br />
vzctl enter 112<br />
vzctl stop 112<br />
<strong>配置VPS硬盘容量等参数</strong><br />
grep DISK_QUOTA /etc/sysconfig/vz<br />
df /vz<br />
vi /etc/sysconfig/vz-scripts/112.conf</p>
<p>在该文件中添加 DISK_QUOTA=no<br />
grep DISK_QUOTA /etc/sysconfig/vz-scripts/112.conf<br />
vzctl stop 112</p>
<p>vzctl start 112<br />
vzctl exec 112 df</p>
<p>vzctl set 112 --diskinodes 75000000:79000000 --save</p>
<p>vzctl set 112 --quotatime 600 --save</p>
<p>vzctl exec 112 df</p>
<p>vzctl exec 112 stat -f /</p>
<p>vzctl set 112 --quotaugidlimit 100 --save<br />
vzctl stop 112<br />
vzctl start 112</p>
<p>vzctl exec 112 rpm -q quota</p>
<p>vzyum 112 install quota</p>
<p>vzquota stat 112 -t<br />
<strong>向新建的vps中安装yum等工具</strong><br />
vzyum 112 install yum</p>
<p>vzyum 112 install diffutils<br />
<strong>错误处理</strong><br />
若vzctl enter进入节点时出现错误，或ssh无法进入节点，需要运行如下命令：<br />
vzctl exec 112 &quot;cd /dev; /sbin/MAKEDEV pty; /sbin/MAKEDEV tty; /sbin/MAKEDEV generic&quot;</p>
</pre>]]></description>
			<link>http://meisw.wdlinux.cn//show-334-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-13 16:13</pubDate>
		</item>
		<item>
			<guid>http://meisw.wdlinux.cn//show-333-1.html</guid>
			<title>ntfsprogs</title>
			<author>admin</author>
			<description><![CDATA[<p>http://packages.sw.be/ntfsprogs/<br />
<br />
<a href="http://packages.sw.be/ntfsprogs/ntfsprogs-1.13.1-1.el5.rf.x86_64.rpm">http://packages.sw.be/ntfsprogs/ntfsprogs-1.13.1-1.el5.rf.x86_64.rpm</a></p>]]></description>
			<link>http://meisw.wdlinux.cn//show-333-1.html</link>
			<category domain="http://meisw.wdlinux.cn//category-31-1.html">虚拟化</category>
			<pubDate>2010-12-10 16:15</pubDate>
		</item>
	</channel>
</rss>
