<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>英特尔® 软件网络博客 - 中文 &#187; 开放源代码</title>
	<atom:link href="http://softwareblogs-zho.intel.com/category/oss/feed/" rel="self" type="application/rss+xml" />
	<link>http://softwareblogs-zho.intel.com</link>
	<description></description>
	<pubDate>Fri, 05 Sep 2008 13:08:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>路在你的手中 OpenedHand</title>
		<link>http://softwareblogs-zho.intel.com/2008/08/31/openedhand/</link>
		<comments>http://softwareblogs-zho.intel.com/2008/08/31/openedhand/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 04:30:37 +0000</pubDate>
		<dc:creator>杜伟 (Intel)</dc:creator>
		
		<category><![CDATA[开放源代码]]></category>

		<category><![CDATA[移动技术]]></category>

		<category><![CDATA[Moblin]]></category>

		<category><![CDATA[开源]]></category>

		<guid isPermaLink="false">http://softwareblogs-zho.intel.com/2008/08/31/openedhand/</guid>
		<description><![CDATA[8月13日，我收到了一份内部邮件，是总部关于英特尔收购OpenedHand的一个说明。这是一个家总部位于英国伦敦的软件开发公司,专事开发Linux移动平台软件与提供相关的服务，所涉及的产品及客户包括诺基亚N系列网络终端、OLPC、Openmoko协议栈和一些GPS相关的设备等。
这一23名雇员的公司将纳入英特尔开源技术中心旗下进行运作。CEO Matthew Allum也同时加入英特尔负责相关的团队整合工作。业界有些优秀的Gnome开发人员就是来自于该公司，所以未来我们应该可以看到对于Moblin以及英特尔的其他开源项目而这是一个好消息。
Moblin对于一个行业来讲，只是刚开始成长的小禾苗，随着Netbook MID以及Nettop等不同类型的硬件终端开始使用Moblin平台，相信这个平台以及相应的软件开发框架也会受到广大软件开发人员以及开源爱好者的关注。英特尔的凌动平台，在过去一年内受到了业界广泛的关注，奥运后，国内外各大厂商纷纷推出基于凌动的产品，这一专门为互联网设备定制的低功耗优化产品系列迫切需要优秀的软件产品和内容服务为其加油。才能充分发挥其民间雅号“阿童木”的十万马力。
我们期待有更多的业内人员关注开源，关注软件和应用。
]]></description>
			<content:encoded><![CDATA[<p>8月13日，我收到了一份内部邮件，是总部关于英特尔收购OpenedHand的一个说明。这是一个家总部位于英国伦敦的软件开发公司,专事开发Linux移动平台软件与提供相关的服务，所涉及的产品及客户包括诺基亚N系列网络终端、OLPC、Openmoko协议栈和一些GPS相关的设备等。<br />
这一23名雇员的公司将纳入英特尔开源技术中心旗下进行运作。CEO Matthew Allum也同时加入英特尔负责相关的团队整合工作。业界有些优秀的Gnome开发人员就是来自于该公司，所以未来我们应该可以看到对于Moblin以及英特尔的其他开源项目而这是一个好消息。<br />
Moblin对于一个行业来讲，只是刚开始成长的小禾苗，随着Netbook MID以及Nettop等不同类型的硬件终端开始使用Moblin平台，相信这个平台以及相应的软件开发框架也会受到广大软件开发人员以及开源爱好者的关注。英特尔的凌动平台，在过去一年内受到了业界广泛的关注，奥运后，国内外各大厂商纷纷推出基于凌动的产品，这一专门为互联网设备定制的低功耗优化产品系列迫切需要优秀的软件产品和内容服务为其加油。才能充分发挥其民间雅号“阿童木”的十万马力。<br />
我们期待有更多的业内人员关注开源，关注软件和应用。</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-zho.intel.com/2008/08/31/openedhand/feed/</wfw:commentRss>
		</item>
		<item>
		<title>linux下简单的自适应CPU利用率的控制（Python实现）</title>
		<link>http://softwareblogs-zho.intel.com/2008/08/25/linuxcpupython/</link>
		<comments>http://softwareblogs-zho.intel.com/2008/08/25/linuxcpupython/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 06:37:21 +0000</pubDate>
		<dc:creator>石剑</dc:creator>
		
		<category><![CDATA[开放源代码]]></category>

		<category><![CDATA[虚拟化技术]]></category>

		<category><![CDATA[CPU]]></category>

		<category><![CDATA[利用率]]></category>

		<category><![CDATA[控制]]></category>

		<guid isPermaLink="false">http://softwareblogs-zho.intel.com/2008/08/25/linuxcpupython/</guid>
		<description><![CDATA[最近在做的是虚拟化相关的一个demo，牵涉到虚拟化环境下的服务器负载均衡。我们用到一个简单的case，就是在负载出现“不平衡”的时候，进行live migration。由于只是demo需要，我们的负载暂时只考虑到cpu的利用率。而实际准备中，由于没有客户端的压力，很难做到CPU利用率的精确控制。这里写了个简单的脚本程序，通过自适应的调节，来达到将服务器CPU利用率控制在一定的范围内，从而为确保在某台服务器CPU过高的时候，会自动将虚拟机live migration到其他CPU利用率低的机器上的测试做了准备。
python实现的脚本如下，这个脚本需要5个数字参数的输入，分别为：
最低CPU利用率，最高CPU利用率，初始线程数量，每次调节的线程数量，每个线程睡眠的时间（毫秒）
当然，很大程度上，由于硬件环境的不同，这些参数带有很强的经验性。
#!/usr/bin/python
import threading
import time
import os
import string
import sys
class ControlThread(threading.Thread):
 
  def __init__(self):
    threading.Thread.__init__(self)
    self.runflag = True #线程运行标示，用于将来减少线程时能够正常结束
  def run(self):
    while self.runflag:
      os.popen('usleep ' + sys.argv[5])
      #time.sleep(string.atof(sys.argv[5]))
#这里使用的是linux下shell里面的usleep，而不是python自带的sleep函数。
#相比之下，usleep还是相当强大的，而python的sleep单位为秒，虽然可以输入浮点数，但还是相对弱了些
  def stop(self):
    self.runflag = False
#让其正常终止循环
threadList=[]
print 'Start Thread Number:' + sys.argv[3] + '\tSleep Time(ms):'+ sys.argv[5]
#初始化一定数量的线程，否则从零开始，可能需要很长的时间才能达到指定范围
for i in range(0,string.atoi(sys.argv[3])):
  thread = ControlThread()
  threadList.append(thread)
  thread.start()
#这里使用sar来抓取cpu利用率，这里指的是总的cpu利用率。然后通过比较，进行自适应调整
while True:
  output = 100 - string.atof(os.popen('sar 1 1 [...]]]></description>
			<content:encoded><![CDATA[<p>最近在做的是虚拟化相关的一个demo，牵涉到虚拟化环境下的服务器负载均衡。我们用到一个简单的case，就是在负载出现“不平衡”的时候，进行live migration。由于只是demo需要，我们的负载暂时只考虑到cpu的利用率。而实际准备中，由于没有客户端的压力，很难做到CPU利用率的精确控制。这里写了个简单的脚本程序，通过自适应的调节，来达到将服务器CPU利用率控制在一定的范围内，从而为确保在某台服务器CPU过高的时候，会自动将虚拟机live migration到其他CPU利用率低的机器上的测试做了准备。</p>
<p>python实现的脚本如下，这个脚本需要5个数字参数的输入，分别为：<br />
最低CPU利用率，最高CPU利用率，初始线程数量，每次调节的线程数量，每个线程睡眠的时间（毫秒）</p>
<p>当然，很大程度上，由于硬件环境的不同，这些参数带有很强的经验性。</p>
<p>#!/usr/bin/python</p>
<p>import threading<br />
import time<br />
import os<br />
import string<br />
import sys<br />
class ControlThread(threading.Thread):<br />
 </p>
<p>  def __init__(self):<br />
    threading.Thread.__init__(self)<br />
    self.runflag = True #线程运行标示，用于将来减少线程时能够正常结束</p>
<p>  def run(self):<br />
    while self.runflag:<br />
      os.popen('usleep ' + sys.argv[5])<br />
      #time.sleep(string.atof(sys.argv[5]))<br />
#这里使用的是linux下shell里面的usleep，而不是python自带的sleep函数。<br />
#相比之下，usleep还是相当强大的，而python的sleep单位为秒，虽然可以输入浮点数，但还是相对弱了些</p>
<p>  def stop(self):<br />
    self.runflag = False<br />
#让其正常终止循环<br />
threadList=[]</p>
<p>print 'Start Thread Number:' + sys.argv[3] + '\tSleep Time(ms):'+ sys.argv[5]</p>
<p>#初始化一定数量的线程，否则从零开始，可能需要很长的时间才能达到指定范围<br />
for i in range(0,string.atoi(sys.argv[3])):<br />
  thread = ControlThread()<br />
  threadList.append(thread)<br />
  thread.start()</p>
<p>#这里使用sar来抓取cpu利用率，这里指的是总的cpu利用率。然后通过比较，进行自适应调整<br />
while True:<br />
  output = 100 - string.atof(os.popen('sar 1 1 | grep ^Average | awk \'{print $8}\'').read())<br />
  print 'CPU Usage:' + str(output) + '\tCurrent Thread Number:' + str(len(threadList))</p>
<p>  if output &lt; string.atoi(sys.argv[1]):#增加线程<br />
   for i in range(0,string.atoi(sys.argv[4])):<br />
    thread = ControlThread()<br />
    thread.start()<br />
    threadList.append(thread)<br />
   print "+++++"<br />
  if output &gt; string.atoi(sys.argv[2]):#减少线程<br />
   for i in range(0,string.atoi(sys.argv[4])):  <br />
    thread = threadList.pop()<br />
    thread.stop()<br />
   print "-----"</p>
<p> </p>
<p>总的来说，这个脚本比较简单，而且在不同的机器上，需要操作人员的经验来初始化才能达到最佳效果。但这毕竟是我第一个python程序，而且也达到了预期的目的。以上只是能运行的核心代码，至于usage，错误处理，退出程序等，就没有给出来了：）</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-zho.intel.com/2008/08/25/linuxcpupython/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SAR --- 性能工具说明（部分）</title>
		<link>http://softwareblogs-zho.intel.com/2008/08/25/sar/</link>
		<comments>http://softwareblogs-zho.intel.com/2008/08/25/sar/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 13:39:10 +0000</pubDate>
		<dc:creator>魏彬</dc:creator>
		
		<category><![CDATA[其他]]></category>

		<category><![CDATA[多核技术]]></category>

		<category><![CDATA[开放源代码]]></category>

		<category><![CDATA[虚拟化技术]]></category>

		<category><![CDATA[sar performance]]></category>

		<guid isPermaLink="false">http://softwareblogs-zho.intel.com/2008/08/25/sar/</guid>
		<description><![CDATA[sar -P ALL cpu使用情况文件访问情况
dirblk/s 定位文件时被目录访问守护进程读取的快（512b）的个数
iget/s i节点查找系统进程被调用次数
lookuppn/s 目录查找进程找到v节点，并获取路径名的次数的活动情况，包括传输、访问、和命中率
bread/s、bwrit/s 块IO操作的数量
lread/s、lwrit/s 逻辑 IO请求的个数
pread/s、pwrit/s 裸设备IO操作数量
%rcache、%rwrit cache命中率，计算共式为：((lreads-breads)/lreads)*100系统调用情况
exec/s、fork/s 调用和执行系统调用总数
sread/s、swrit/s read/writ 系统调用次数
rchar/s、wchar/s 被read/writ系统调用的字符数量
scall/s 系统调用总数内核进程活动情况
kexit/s 中断的内核进程数
kproc-ov/s 由于进程数的限制无法创建内核进程的次数
ksched/s 被作业分派的内核进程数消息队列和信号灯活动情况
msg/s IPC消息队列活动情况
sema/s 信号灯活动情况磁盘读写情况队列统计信息
run-sz 内核线程处于运行队列的平均数
%runocc 最近时间段运行队列占用百分比
swpq-sz 内核线程等待 页面调度的平均数
%swpocc 交换队列最近活动情况页面调度信息
cycle/s 每秒中页面置换次数
fault/s 每秒中page fault次数
slots 在页空间中空闲页数量
odio/s 每秒中不使用页面空间的磁盘io数进程、内核线程、i节点、和文件表 的状态上下文切换次数设备活动情况
canch/s tty输入队列中规范的字符数
mdmin/s tty modem 中断
outch/s 输出队列字符数
rawch/s 输入队列字符数
revin/s tty接收中断
xmtin/s tty传输中断
sar -a
sar -b buffer
sar -c
sar -k
sar -m
sar -d
sar -q
sar -r
sar -v
sar-w
sar -y tty
]]></description>
			<content:encoded><![CDATA[<p><span style="AR-SA;" lang="EN-US">sar -P ALL cpu</span><span style="'Times New Roman';">使用情况</span><span style="'Times New Roman';">文件访问情况</span><span style="AR-SA;" lang="EN-US"><br />
dirblk/s </span><span style="'Times New Roman';">定位文件时被目录访问守护进程读取的快（</span><span style="AR-SA;" lang="EN-US">512b</span><span style="'Times New Roman';">）的个数</span><span style="AR-SA;" lang="EN-US"><br />
iget/s i</span><span style="'Times New Roman';">节点查找系统进程被调用次数</span><span style="AR-SA;" lang="EN-US"><br />
lookuppn/s </span><span style="'Times New Roman';">目录查找进程找到</span><span style="AR-SA;" lang="EN-US">v</span><span style="'Times New Roman';">节点，并获取路径名的次数</span><span style="'Times New Roman';">的活动情况，包括传输、访问、和命中率</span><span style="AR-SA;" lang="EN-US"><br />
bread/s</span><span style="'Times New Roman';">、</span><span style="AR-SA;" lang="EN-US">bwrit/s </span><span style="'Times New Roman';">块</span><span style="AR-SA;" lang="EN-US">IO</span><span style="'Times New Roman';">操作的数量</span><span style="AR-SA;" lang="EN-US"><br />
lread/s</span><span style="'Times New Roman';">、</span><span style="AR-SA;" lang="EN-US">lwrit/s </span><span style="'Times New Roman';">逻辑</span><span style="AR-SA;" lang="EN-US"> IO</span><span style="'Times New Roman';">请求的个数</span><span style="AR-SA;" lang="EN-US"><br />
pread/s</span><span style="'Times New Roman';">、</span><span style="AR-SA;" lang="EN-US">pwrit/s </span><span style="'Times New Roman';">裸设备</span><span style="AR-SA;" lang="EN-US">IO</span><span style="'Times New Roman';">操作数量</span><span style="AR-SA;" lang="EN-US"><br />
%rcache</span><span style="'Times New Roman';">、</span><span style="AR-SA;" lang="EN-US">%rwrit cache</span><span style="'Times New Roman';">命中率，计算共式为：</span><span style="AR-SA;" lang="EN-US">((lreads-breads)/lreads)*100</span><span style="'Times New Roman';">系统调用情况</span><span style="AR-SA;" lang="EN-US"><br />
exec/s</span><span style="'Times New Roman';">、</span><span style="AR-SA;" lang="EN-US">fork/s </span><span style="'Times New Roman';">调用和执行系统调用总数</span><span style="AR-SA;" lang="EN-US"><br />
sread/s</span><span style="'Times New Roman';">、</span><span style="AR-SA;" lang="EN-US">swrit/s read/writ </span><span style="'Times New Roman';">系统调用次数</span><span style="AR-SA;" lang="EN-US"><br />
rchar/s</span><span style="'Times New Roman';">、</span><span style="AR-SA;" lang="EN-US">wchar/s </span><span style="'Times New Roman';">被</span><span style="AR-SA;" lang="EN-US">read/writ</span><span style="'Times New Roman';">系统调用的字符数量</span><span style="AR-SA;" lang="EN-US"><br />
scall/s </span><span style="'Times New Roman';">系统调用总数</span><span style="'Times New Roman';">内核进程活动情况</span><span style="AR-SA;" lang="EN-US"><br />
kexit/s </span><span style="'Times New Roman';">中断的内核进程数</span><span style="AR-SA;" lang="EN-US"><br />
kproc-ov/s </span><span style="'Times New Roman';">由于进程数的限制无法创建内核进程的次数</span><span style="AR-SA;" lang="EN-US"><br />
ksched/s </span><span style="'Times New Roman';">被作业分派的内核进程数</span><span style="'Times New Roman';">消息队列和信号灯活动情况</span><span style="AR-SA;" lang="EN-US"><br />
msg/s IPC</span><span style="'Times New Roman';">消息队列活动情况</span><span style="AR-SA;" lang="EN-US"><br />
sema/s </span><span style="'Times New Roman';">信号灯活动情况</span><span style="'Times New Roman';">磁盘读写情况</span><span style="'Times New Roman';">队列统计信息</span><span style="AR-SA;" lang="EN-US"><br />
run-sz </span><span style="'Times New Roman';">内核线程处于运行队列的平均数</span><span style="AR-SA;" lang="EN-US"><br />
%runocc </span><span style="'Times New Roman';">最近时间段运行队列占用百分比</span><span style="AR-SA;" lang="EN-US"><br />
swpq-sz </span><span style="'Times New Roman';">内核线程等待</span><span style="AR-SA;"> </span><span style="'Times New Roman';">页面调度的平均数</span><span style="AR-SA;" lang="EN-US"><br />
%swpocc </span><span style="'Times New Roman';">交换队列最近活动情况</span><span style="'Times New Roman';">页面调度信息</span><span style="AR-SA;" lang="EN-US"><br />
cycle/s </span><span style="'Times New Roman';">每秒中页面置换次数</span><span style="AR-SA;" lang="EN-US"><br />
fault/s </span><span style="'Times New Roman';">每秒中</span><span style="AR-SA;" lang="EN-US">page fault</span><span style="'Times New Roman';">次数</span><span style="AR-SA;" lang="EN-US"><br />
slots </span><span style="'Times New Roman';">在页空间中空闲页数量</span><span style="AR-SA;" lang="EN-US"><br />
odio/s </span><span style="'Times New Roman';">每秒中不使用页面空间的磁盘</span><span style="AR-SA;" lang="EN-US">io</span><span style="'Times New Roman';">数</span><span style="'Times New Roman';">进程、内核线程、</span><span style="AR-SA;" lang="EN-US">i</span><span style="'Times New Roman';">节点、和文件表</span><span style="AR-SA;"> </span><span style="'Times New Roman';">的状态</span><span style="'Times New Roman';">上下文切换次数</span><span style="'Times New Roman';">设备活动情况</span><span style="AR-SA;" lang="EN-US"><br />
canch/s tty</span><span style="'Times New Roman';">输入队列中规范的字符数</span><span style="AR-SA;" lang="EN-US"><br />
mdmin/s tty modem </span><span style="'Times New Roman';">中断</span><span style="AR-SA;" lang="EN-US"><br />
outch/s </span><span style="'Times New Roman';">输出队列字符数</span><span style="AR-SA;" lang="EN-US"><br />
rawch/s </span><span style="'Times New Roman';">输入队列字符数</span><span style="AR-SA;" lang="EN-US"><br />
revin/s tty</span><span style="'Times New Roman';">接收中断</span><span style="AR-SA;" lang="EN-US"><br />
xmtin/s tty</span><span style="'Times New Roman';">传输中断</span></p>
<p>sar -a</p>
<p>sar -b buffer</p>
<p>sar -c</p>
<p>sar -k</p>
<p>sar -m</p>
<p>sar -d</p>
<p>sar -q</p>
<p>sar -r</p>
<p>sar -v</p>
<p>sar-w</p>
<p>sar -y tty</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-zho.intel.com/2008/08/25/sar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Live Migration (SLES10 SP2 XEN) （2-配置篇）</title>
		<link>http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-2/</link>
		<comments>http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-2/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 13:23:09 +0000</pubDate>
		<dc:creator>魏彬</dc:creator>
		
		<category><![CDATA[开放源代码]]></category>

		<category><![CDATA[虚拟化技术]]></category>

		<category><![CDATA[sles xen virtualization]]></category>

		<guid isPermaLink="false">http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-2/</guid>
		<description><![CDATA[1. 安装SLES10 SP2 XEN Host(HOST1 and HOST2)：
a) 在两台配置相同的服务器上安装SLES10 SP2 XEN Host.
b) 在选择安装的软件包时，选择安装XEN Virtualization Host.
c) 安装好之后，检查两台机器的网络。
2. 配置NFS共享存储(nfsserver)：
a) 检查是否安装了NFS服务。如果没有安装，请先安装。
b) mkdir /home/nfsshare
c) 编辑/etc/exports
/home/nfsshare *(rw,sync,no_root_squash)
d) 重起NFS服务
service nfs start
chkconfig nfs on
e) 在两台host上mount nfs存储。
HOST1 :
mkdir /nfsshare
mount nfsserver:/home/nfsshare /nfsshare
HOST2 :
mkdir /nfsshare
mount nfsserver:/home/nfsshare /nfsshare
分别在两个HOST内运行：df –h 看是否mount成功。
3. 安装SLES10 SP2 虚拟机：
a) 虚拟机的镜像文件存放在共享存储中。
b) 安装时选择全虚拟。
c) 在选择安装的软件包时，寻找关键字为kmp 的rpm安装包，将其去除。
NOTE:
Default安装虚拟机时，这两个安装包是安装的，这两个安装包是用来安装PV Driver的。如果在现在的版本中安装这个PV Driver, 会发现live migration会失败。--可能是个bug. 但本人还不能完全确定，会在以后给大家UPDATE. 如果你发现虚拟机在实时迁移之后死机，要检查一下是否安装了PV Driver，如果有的话请使用rpm –e将这个rpm包卸载。重起虚拟机即可。
d) 将虚拟机配置文件从/etc/xen/vm/转移到共享存储上，同虚拟机的镜像文件放在一起。
4. 配置XEN：
a) [...]]]></description>
			<content:encoded><![CDATA[<p>1. 安装SLES10 SP2 XEN Host(HOST1 and HOST2)：<br />
a) 在两台配置相同的服务器上安装SLES10 SP2 XEN Host.<br />
b) 在选择安装的软件包时，选择安装XEN Virtualization Host.<br />
c) 安装好之后，检查两台机器的网络。<br />
2. 配置NFS共享存储(nfsserver)：<br />
a) 检查是否安装了NFS服务。如果没有安装，请先安装。<br />
b) mkdir /home/nfsshare<br />
c) 编辑/etc/exports<br />
/home/nfsshare *(rw,sync,no_root_squash)<br />
d) 重起NFS服务<br />
service nfs start<br />
chkconfig nfs on<br />
e) 在两台host上mount nfs存储。<br />
HOST1 :<br />
mkdir /nfsshare<br />
mount nfsserver:/home/nfsshare /nfsshare<br />
HOST2 :<br />
mkdir /nfsshare<br />
mount nfsserver:/home/nfsshare /nfsshare<br />
分别在两个HOST内运行：df –h 看是否mount成功。<br />
3. 安装SLES10 SP2 虚拟机：<br />
a) 虚拟机的镜像文件存放在共享存储中。<br />
b) 安装时选择全虚拟。<br />
c) 在选择安装的软件包时，寻找关键字为kmp 的rpm安装包，将其去除。<br />
NOTE:<br />
Default安装虚拟机时，这两个安装包是安装的，这两个安装包是用来安装PV Driver的。如果在现在的版本中安装这个PV Driver, 会发现live migration会失败。--可能是个bug. 但本人还不能完全确定，会在以后给大家UPDATE. 如果你发现虚拟机在实时迁移之后死机，要检查一下是否安装了PV Driver，如果有的话请使用rpm –e将这个rpm包卸载。重起虚拟机即可。<br />
d) 将虚拟机配置文件从/etc/xen/vm/转移到共享存储上，同虚拟机的镜像文件放在一起。<br />
4. 配置XEN：<br />
a) 备份/etc/xen/xend-config.sxp<br />
cp -pr /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.default<br />
b) 修改/etc/xen/xend-config.sxp:<br />
(xend-relocation-server yes)<br />
(xend-relocation-port 8002)<br />
(xend-relocation-address '')<br />
(xend-relocation-hosts-allow '')<br />
#(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')<br />
c) 重起xend服务:<br />
service xend restart<br />
5. 实时迁移：<br />
a) 在HOST1中启动VM: xm cr /PATH/TO/CONFIG/CONFIGFILE.<br />
b) 在HOST1中执行命令 xm migrate -l HOST2</p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Live Migration (SLES10 SP2 XEN) （1-功能篇）</title>
		<link>http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-1/</link>
		<comments>http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-1/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 10:15:24 +0000</pubDate>
		<dc:creator>魏彬</dc:creator>
		
		<category><![CDATA[开放源代码]]></category>

		<category><![CDATA[虚拟化技术]]></category>

		<category><![CDATA[sles xen virtualization]]></category>

		<guid isPermaLink="false">http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-1/</guid>
		<description><![CDATA[功能简介
l         Xen: 一个在Linux社区中得到广泛支持的开源VMM (虚拟机监控器) 。英特尔® 创新的虚拟化技术(VT)使得 操作系统不做修改就可以在Xen上面运行。基于VT技术，我们致力于在Xen中加入各种新的特性功能，例如：虚拟机的保存/恢复和动态迁移。
l         虚拟机保存/恢复（Save/Restore）：将整个虚拟机的运行状态完整保存下来，同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后，虚拟机仍旧平滑运行，用户不会察觉到任何差异。
l         动态迁移(Live Migration)：在毫秒数量级下，将虚拟机快速地从一个硬件平台迁移到另外一个硬件平台，不打断虚拟机内运行的任何程序。在用户看来，正在使用的虚拟机仍在运行，甚至网络连接都不曾中断。动态迁移技术的基础是虚拟机保存/恢复。
 
应用领域
l         计算机共享： 在一些公共场合用户需要共享计算机，但是由于不同的系统配置和软件需要花费大量的时间来配置和恢复。这时使用虚拟机的保存/恢复可以很好地解决这个问题。用户在虚拟机中进行所有工作，需要暂停时就将虚拟机保存到文件中。下次使用时使用原先的文件恢复虚拟机继续工作。
l         数据库备份：对于一些大型、关键的数据库应用，备份是一项重要但复杂的工作。虚拟机的保存/恢复可以将数据库运行在虚拟机中，如需备份就保存虚拟机，这样数据库中的所有数据、状态都做了备份。如果数据库崩溃了，就可以通过恢复虚拟机来恢复整个数据库。
l         环境重现：进行性能测试或程序调试时，都需要重现当时的环境,不仅仅是重启、配置软件，而且常常需要一定的运行时间。使用虚拟机的保存/恢复，将已经重现的环境保存起来，将来测试时只需恢复即可。一个512MB内存的虚拟机仅仅需要一两秒钟就可以保存/恢复，可以大大缩短重现时间。
l         系统硬件维护：当前很多操作系统都能够稳定支持7×24运行，但是硬件却需要定期的进行维护。如果使用虚拟机的动态迁移技术，将虚拟机从需要维护的物理机器迁移到另外一台备用机器，等维护完成后，在将其迁回到原来的物理机器。所有的系统服务和应用程序在恢复后仍旧正常运行，用户不会察觉到由于硬件维护造成的中断。
]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="widow-orphan;" align="left"><span class="bodytextblack1"><span style="黑体;">功能简介</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;" align="left"><span class="bodytextblack1"><span style="Wingdings;" lang="EN-US"><span style="Ignore;"><span style="small;">l</span><span style="7pt &quot;Times New Roman&quot;;">         </span></span></span></span><span style="small;"><span class="bodytextblack1"><span style="Arial;" lang="EN-US">X</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US">en<strong>: </strong></span></span><span class="bodytextblack1"><span style="Arial;">一个在</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">Linux</span></span></span><span class="bodytextblack1"><span style="Arial;">社区中得到广泛支持的开源</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">VMM (</span></span></span><span class="bodytextblack1"><span style="Arial;">虚拟机监控器</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">) </span></span></span><span class="bodytextblack1"><span style="Arial;">。英特尔</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">® </span></span></span><span class="bodytextblack1"><span style="Arial;">创新的虚拟化技术</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">(VT)</span></span></span><span class="bodytextblack1"><span style="Arial;">使得</span></span><span class="bodytextblack1"><span style="10.5pt;"><span style="Arial;"> </span></span></span><span class="bodytextblack1"><span style="Arial;">操作系统不做修改就可以在</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">Xen</span></span></span><span class="bodytextblack1"><span style="Arial;">上面运行。基于</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">VT</span></span></span><span class="bodytextblack1"><span style="Arial;">技术，我们致力于在</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">Xen</span></span></span><span class="bodytextblack1"><span style="Arial;">中加入各种新的特性功能，例如：虚拟机的保存</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">/</span></span></span><span class="bodytextblack1"><span style="Arial;">恢复和动态迁移。</span></span><span class="bodytextblack1"></span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;" align="left"><span class="bodytextblack1"><span style="Wingdings;" lang="EN-US"><span style="Ignore;"><span style="small;">l</span><span style="7pt &quot;Times New Roman&quot;;">         </span></span></span></span><span style="small;"><span class="bodytextblack1"><span style="10.5pt;">虚拟机保存<strong><span lang="EN-US">/</span></strong>恢复（</span></span><span class="bodytextblack1"><strong><span style="10.5pt;" lang="EN-US">S</span></strong></span><span class="bodytextblack1"><strong><span style="Arial;" lang="EN-US">ave/Restore</span></strong></span><span class="bodytextblack1"><span style="10.5pt;">）：</span></span><span style="'Times New Roman';">将整个虚拟机的运行状态完整保存下来，同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后，虚拟机仍旧平滑运行，用户不会察觉到任何差异。</span><span class="bodytextblack1"></span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;" align="left"><span style="Wingdings;" lang="EN-US"><span style="Ignore;"><span style="small;">l</span><span style="7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="small;"><span class="bodytextblack1"><span style="10.5pt;">动态迁移<strong><span lang="EN-US">(</span></strong></span></span><span class="bodytextblack1"><strong><span style="10.5pt;" lang="EN-US">Live Migration</span></strong></span><span class="bodytextblack1"><strong><span style="10.5pt;" lang="EN-US">)</span></strong></span><span class="bodytextblack1"><strong><span style="10.5pt;">：</span></strong></span><span style="'Times New Roman';">在毫秒数量级下，将虚拟机快速地从一个硬件平台迁移到另外一个硬件平台，不打断虚拟机内运行的任何程序。在用户看来，正在使用的虚拟机仍在运行，甚至网络连接都不曾中断</span><span class="bodytextblack1"><span style="Arial;">。动态迁移技术的基础是虚拟机保存</span></span><span class="bodytextblack1"><span style="10.5pt;" lang="EN-US"><span style="Arial;">/</span></span></span><span class="bodytextblack1"><span style="Arial;">恢复</span></span></span><span class="bodytextblack1"><span style="Arial;">。</span></span></p>
<p class="MsoNormal" style="2.0;"><span lang="EN-US"><span style="Times New Roman;"> </span></span></p>
<p class="MsoNormal" style="widow-orphan;" align="left"><span class="bodytextblack1"><span style="黑体;">应用领域</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;" align="left"><span class="bodytextblack1"><span style="Wingdings;" lang="EN-US"><span style="Ignore;">l<span style="7pt &quot;Times New Roman&quot;;">         </span></span></span></span><span class="bodytextblack1"><strong><span style="黑体;">计算机共享</span></strong></span><span class="bodytextblack1"><strong><span style="宋体;">：</span></strong></span><span class="bodytextblack1"><span style="宋体;"> 在一些公共场合用户需要共享计算机，但是由于不同的系统配置和软件需要花费大量的时间来配置和恢复。这时使用虚拟机的保存<span lang="EN-US">/</span>恢复可以很好地解决这个问题。用户在虚拟机中进行所有工作，需要暂停时就将虚拟机保存到文件中。下次使用时使用原先的文件恢复虚拟机继续工作。</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;" align="left"><span class="bodytextblack1"><span style="Wingdings;" lang="EN-US"><span style="Ignore;">l<span style="7pt &quot;Times New Roman&quot;;">         </span></span></span></span><span class="bodytextblack1"><strong><span style="黑体;">数据库备份：</span></strong></span><span class="bodytextblack1"><span style="宋体;">对于一些大型、关键的数据库应用，备份是一项重要但复杂的工作。虚拟机的保存<span lang="EN-US">/</span>恢复可以将数据库运行在虚拟机中，如需备份就保存虚拟机，这样数据库中的所有数据、状态都做了备份。如果数据库崩溃了，就可以通过恢复虚拟机来恢复整个数据库。</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;" align="left"><span class="bodytextblack1"><span style="Wingdings;" lang="EN-US"><span style="Ignore;">l<span style="7pt &quot;Times New Roman&quot;;">         </span></span></span></span><span class="bodytextblack1"><strong><span style="黑体;">环境重现：</span></strong></span><span class="bodytextblack1"><span style="宋体;">进行性能测试或程序调试时，都需要重现当时的环境<span lang="EN-US">,</span>不仅仅是重启、配置软件，而且常常需要一定的运行时间。使用虚拟机的保存<span lang="EN-US">/</span>恢复，将已经重现的环境保存起来，将来测试时只需恢复即可。一个<span lang="EN-US">512MB</span>内存的虚拟机仅仅需要一两秒钟就可以保存<span lang="EN-US">/</span>恢复，可以大大缩短重现时间。</span></span></p>
<p class="MsoNormal" style="l0 level1 lfo1;" align="left"><span style="Wingdings;" lang="EN-US"><span style="Ignore;">l<span style="7pt &quot;Times New Roman&quot;;">         </span></span></span><span class="bodytextblack1"><strong><span style="黑体;">系统硬件维护：</span></strong></span><span class="bodytextblack1"><span style="宋体;">当前很多操作系统都能够稳定支持<span lang="EN-US">7</span>×<span lang="EN-US">24</span>运行，但是硬件却需要定期的进行维护。如果使用虚拟机的动态迁移技术，将虚拟机从需要维护的物理机器迁移到另外一台备用机器，等维护完成后，在将其迁回到原来的物理机器。所有的系统服务和应用程序在恢复后仍旧正常运行，用户不会察觉到由于硬件维护造成的中断。</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://softwareblogs-zho.intel.com/2008/08/25/live-migration-sles10-sp2-xen-1/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
