<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Proguru &#124; IT tech,review and news &#187; VirtualBox</title>
	<atom:link href="http://blog.pcware.cn/category/it/vbox/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.pcware.cn</link>
	<description>Just for Freedom</description>
	<lastBuildDate>Thu, 29 Jul 2010 06:35:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>VirtualBox主机(host)I/O负载过重导致客户机数据破坏(corruption)</title>
		<link>http://blog.pcware.cn/it/vbox/client_data_corrupt.html</link>
		<comments>http://blog.pcware.cn/it/vbox/client_data_corrupt.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 05:03:04 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=620</guid>
		<description><![CDATA[先说一下主机和客户机配置
主机：4颗双核AMD 8218HE CPU,16G内存,windows 2003 R2 server x86
客户机：单颗CPU,1500MB内存,debian lenny amd64
最近经常能遇到客户机运行迟缓(lag)，无法正常提供服务的情况，客户机的控制台一般有这样的提示：
end_request: I/O error,dev hda,sector xxxxxxxx(扇区号)
Buffer I/O error on device hda6,logical block  xxx(块号)
&#8230;
日志文件/var/log/messages中有这样的消息：
Nov 16 10:54:06 debian kernel: [255938.816139] hda: dma_timer_expiry: dma status == 0&#215;21
Nov 16 10:54:16 debian kernel: [255948.816121] hda: DMA timeout error
Nov 16 10:54:16 debian kernel: [255948.816174] hda: dma timeout error: status=0&#215;48 { DriveReady DataRequest }
Nov [...]]]></description>
			<content:encoded><![CDATA[<p>先说一下主机和客户机配置<br />
主机：4颗双核AMD 8218HE CPU,16G内存,windows 2003 R2 server x86<br />
客户机：单颗CPU,1500MB内存,debian lenny amd64</p>
<p>最近经常能遇到客户机运行迟缓(lag)，无法正常提供服务的情况，客户机的控制台一般有这样的提示：<br />
end_request: I/O error,dev hda,sector xxxxxxxx(扇区号)<br />
Buffer I/O error on device hda6,logical block  xxx(块号)<br />
&#8230;<br />
日志文件/var/log/messages中有这样的消息：<br />
Nov 16 10:54:06 debian kernel: [255938.816139] hda: dma_timer_expiry: dma status == 0&#215;21<br />
Nov 16 10:54:16 debian kernel: [255948.816121] hda: DMA timeout error<br />
Nov 16 10:54:16 debian kernel: [255948.816174] hda: dma timeout error: status=0&#215;48 { DriveReady DataRequest }<br />
Nov 16 10:54:16 debian kernel: [255948.816183] ide: failed opcode was: unknown<br />
Nov 16 10:54:16 debian kernel: [255948.816199] hda: DMA disabled<br />
Nov 16 10:54:16 debian kernel: [255948.965023] ide0: reset: master: error (0&#215;00?)<br />
<span id="more-620"></span><br />
最早出现这个问题的时候客户机使用的是SATA硬盘，本来以为是这个接口还不成熟，就又换回了最原始的IDE(PIIX4)，但是问题依旧。隔一段时间客户机仍然会崩溃，而且错误提示基本一样，可以排除是硬盘接口层的问题。<br />
每次出现这种问题基本上都是在主机进行大文件拷贝的时候，host有一个脚本，定期拷贝大约120G的数据,每个文件大约30G。<br />
经过搜索，发现virtualbox官方打开了一个<a href="http://www.virtualbox.org/ticket/2524">ticket(#2524)</a>就是描述的这个问题，看来这是virtualbox的一个bug无疑了。<br />
这个bug在最新的virtualbox 3.0.10上仍然存在，看来只有祈祷了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/vbox/client_data_corrupt.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VirtualBox虚拟硬盘VDI扩展容量(resize/expand capacity)</title>
		<link>http://blog.pcware.cn/it/vbox/virtualbox_vdi_resize.html</link>
		<comments>http://blog.pcware.cn/it/vbox/virtualbox_vdi_resize.html#comments</comments>
		<pubDate>Sat, 11 Jul 2009 14:52:28 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=339</guid>
		<description><![CDATA[虽然VirtualBox支持虚拟硬盘的动态扩展,也就是VDI文件的大小随着guest使用的容量而增大，但是动态扩展的上限就是你最初指定的虚拟硬盘的大小值。也许是因为心理的原因，这个值你指定的过小了，你使用了一段时间才会发现这个问题。我就是这样:(。但是很不幸，现在VirtualBox还没有提供改变虚拟硬盘大小上限的功能。其实安装guest时完全可以指定一个很大的值，毕竟它不会占用多余的硬盘空间，仅仅占用guest真正利用到的空间而已。但是问题已经出现了，重新来过显然太过麻烦了，办法还是有的。

最简单的办法也许就是给guest增加一块虚拟硬盘吧，这样最省时省力了。但是我真的不想再搞出一块硬盘来，虚拟机还是越简单越好。
那怎么办呢？答案就是用一块更大容量的虚拟硬盘来替换原来的虚拟硬盘，把原来的内容完整的clone到新的虚拟硬盘上来。这次不要吝啬了，把虚拟硬盘设置的大一点吧。resize之前记得备份一下guest,如果搞坏了别怪我没告诉你:) 下面就说一说具体的步骤。

为你的guest新增一块大容量的虚拟硬盘，并在guest的HDD设置里面把它挂在IDE的primary slave接口上，原来的硬盘一般应该在primary master上面，当然你也可以随便挂，但会影响到后面的硬盘编号。
从http://gparted.sourceforge.net/下载GParted LiveCD,将下载的ISO文件挂载到guest的光驱上面，并且从光驱启动。简单的回车默认启动就可以了。
因为新硬盘是空的，必须将旧硬盘的MBR拷贝过来，这样才能正常启动。从虚拟机桌面上点击terminal启动X终端模拟器,可以输入fdisk -l来查看一下你的硬盘设备号，按上面的设置，旧硬盘应该是hda,而新硬盘是hdb。
dd if=/dev/hda of=/dev/hdb bs=512 count=1
切记不要搞反了，否则旧硬盘的MBR就成空白了。dd是dataset definition的缩写,此命令来源于古老的IBM JCL(作业控制语言)，是一个底层I/O facility。MBR里面包含有分区表信息，这样拷贝以后新硬盘里面也有了一个和旧硬盘一般大小的分区，这是我们不需要的，删除掉先。
fdisk /dev/hdb,然后输入fdisk命令d也就是在Command (m for help):后面输入d就可以删除掉这个分区，然后输入fdisk命令w把改变写回硬盘，然后q退出。
启动GParted程序。GParted会扫描到这两个硬盘。在旧硬盘hda的分区(我的是主分区hda1)上面右击选择copy,然后选择新硬盘hdb,在其上右击选择paste,并把目的分区拖到最大，起码我的guest只要一个主分区就可以了,如下图所示。最后点击apply进行真正的拷贝动作。耐心的等待一段时间。
在新硬盘的主分区hdb1上右击选择&#8221;manage flags&#8221;,为此分区添加boot标志，以便从该分区启动。
从虚拟机设置里面为guest去掉cd rom，去掉旧的虚拟硬盘，把新虚拟硬盘挂载到IDE的Primary master上面，启动guest。第一次用新硬盘启动可能会遇到磁盘检查。
到此应该就OK了,以后新建guest的时候一定要把虚拟硬盘搞大一点，省的这么麻烦。
&#8212;&#8212;&#8212;&#8211;
最后是广告时间：
GNU牌GParted Live CD实在是您居家旅行,打家劫舍,杀人越货之必备佳品:)
]]></description>
			<content:encoded><![CDATA[<p>虽然VirtualBox支持虚拟硬盘的动态扩展,也就是VDI文件的大小随着guest使用的容量而增大，但是动态扩展的上限就是你最初指定的虚拟硬盘的大小值。也许是因为心理的原因，这个值你指定的过小了，你使用了一段时间才会发现这个问题。我就是这样:(。但是很不幸，现在VirtualBox还没有提供改变虚拟硬盘大小上限的功能。其实安装guest时完全可以指定一个很大的值，毕竟它不会占用多余的硬盘空间，仅仅占用guest真正利用到的空间而已。但是问题已经出现了，重新来过显然太过麻烦了，办法还是有的。</p>
<p><span id="more-339"></span><br />
最简单的办法也许就是给guest增加一块虚拟硬盘吧，这样最省时省力了。但是我真的不想再搞出一块硬盘来，虚拟机还是越简单越好。<br />
那怎么办呢？答案就是用一块更大容量的虚拟硬盘来替换原来的虚拟硬盘，把原来的内容完整的clone到新的虚拟硬盘上来。这次不要吝啬了，把虚拟硬盘设置的大一点吧。resize之前记得备份一下guest,如果搞坏了别怪我没告诉你:) 下面就说一说具体的步骤。</p>
<ol>
<li>为你的guest新增一块大容量的虚拟硬盘，并在guest的HDD设置里面把它挂在IDE的primary slave接口上，原来的硬盘一般应该在primary master上面，当然你也可以随便挂，但会影响到后面的硬盘编号。</li>
<li>从<a href="http://gparted.sourceforge.net/">http://gparted.sourceforge.net/</a>下载GParted LiveCD,将下载的ISO文件挂载到guest的光驱上面，并且从光驱启动。简单的回车默认启动就可以了。</li>
<li>因为新硬盘是空的，必须将旧硬盘的MBR拷贝过来，这样才能正常启动。从虚拟机桌面上点击terminal启动X终端模拟器,可以输入fdisk -l来查看一下你的硬盘设备号，按上面的设置，旧硬盘应该是hda,而新硬盘是hdb。<br />
dd if=/dev/hda of=/dev/hdb bs=512 count=1<br />
切记不要搞反了，否则旧硬盘的MBR就成空白了。dd是dataset definition的缩写,此命令来源于古老的IBM JCL(作业控制语言)，是一个底层I/O facility。MBR里面包含有分区表信息，这样拷贝以后新硬盘里面也有了一个和旧硬盘一般大小的分区，这是我们不需要的，删除掉先。<br />
fdisk /dev/hdb,然后输入fdisk命令d也就是在Command (m for help):后面输入d就可以删除掉这个分区，然后输入fdisk命令w把改变写回硬盘，然后q退出。</li>
<li>启动GParted程序。GParted会扫描到这两个硬盘。在旧硬盘hda的分区(我的是主分区hda1)上面右击选择copy,然后选择新硬盘hdb,在其上右击选择paste,并把目的分区拖到最大，起码我的guest只要一个主分区就可以了,如下图所示。最后点击apply进行真正的拷贝动作。耐心的等待一段时间。<a href="http://blog.pcware.cn/wp-content/uploads/2009/07/gparted.png" rel="lightbox[339]"><img src="http://blog.pcware.cn/wp-content/uploads/2009/07/gparted-300x206.png" alt="gparted" title="gparted" width="300" height="206" class="aligncenter size-medium wp-image-341" /></a></li>
<li>在新硬盘的主分区hdb1上右击选择&#8221;manage flags&#8221;,为此分区添加boot标志，以便从该分区启动。</li>
<li>从虚拟机设置里面为guest去掉cd rom，去掉旧的虚拟硬盘，把新虚拟硬盘挂载到IDE的Primary master上面，启动guest。第一次用新硬盘启动可能会遇到磁盘检查。</li>
<p>到此应该就OK了,以后新建guest的时候一定要把虚拟硬盘搞大一点，省的这么麻烦。<br />
&#8212;&#8212;&#8212;&#8211;<br />
最后是广告时间：<br />
GNU牌GParted Live CD实在是您居家旅行,打家劫舍,杀人越货之必备佳品:)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/vbox/virtualbox_vdi_resize.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VirtualBox:客户机FreeBSD 7.2时间严重漂移、跑慢问题</title>
		<link>http://blog.pcware.cn/it/freebsd/virtualbox_freebsd_timekeeping.html</link>
		<comments>http://blog.pcware.cn/it/freebsd/virtualbox_freebsd_timekeeping.html#comments</comments>
		<pubDate>Tue, 23 Jun 2009 11:54:54 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=209</guid>
		<description><![CDATA[一直琢磨着抽空再玩玩FreeBSD,第一次接触FreeBSD是6.0-Release,距现在时间不短了。
前几天有点儿时间，在windows 2003 R2 x86服务器上的VirualBox 2.2.4里面开始安装最新的FreeBSD 7.2 AMD64 Release。安装也还算顺利，毕竟原来接触过，熟悉了他的分区规则概念slice和partition就没啥大的障碍了。这次装FreeBSD要好好的研究一下，以后在FreeBSD里面host个网站，FreeBSD毕竟是TCP/IP的发源地，其稳定性也是有目共睹的。
因为有在VirtualBox里面安装Debian的经验，特别关注了一下客户机的时间，果然客户机的时间走的特别慢，没多久就与Host差了几分钟，而且可以看到时间差在明显的拉大。系统时间的准确性对于服务器来讲还是比较重要的，cron守护程序，网络日志等都严重依赖于系统时间。因为在客户机Debian使用的ntpd来校对系统时间，运行很正常，也在这里如法炮制吧，在运行ntpd之前也用ntpdate同步了几次时间。但是，为什么又是&#8221;但是&#8221;。
ntpd看样子很正常，但是Guest系统时间依旧比Host慢一拍,差距眼看着在拉大。当时实在是搞不清怎么回事了，google了一下也没找到满意答案，就暂时放下了。
今天连上FreeBSD一看，晕，时间都慢了一天多了，看来不解决时间是不行了。去google英文站搜，经过几轮筛选总算发现了一个有价值的信息：在FreeBSD的/boot/loader.conf文件里面增加一句kern.hz=100。赶快试验了一下，还真是这样,记得要重启一下guest。不用开ntpd时间也跑的很准确了。当然如果你要求很高可以继续开着ntpd。kern=100这几话怎么讲呢，官方说是降低客户化FreeBSD的CPU使用率，难道是因为CPU使用率高导致部分时钟中断丢失造成时间跑慢吗？我还没想明白，谁明白这个原理给我留言解释一下吧，谢谢。
]]></description>
			<content:encoded><![CDATA[<p>一直琢磨着抽空再玩玩FreeBSD,第一次接触FreeBSD是6.0-Release,距现在时间不短了。</p>
<p>前几天有点儿时间，在windows 2003 R2 x86服务器上的VirualBox 2.2.4里面开始安装最新的FreeBSD 7.2 AMD64 Release。安装也还算顺利，毕竟原来接触过，熟悉了他的分区规则概念slice和partition就没啥大的障碍了。这次装FreeBSD要好好的研究一下，以后在FreeBSD里面host个网站，FreeBSD毕竟是TCP/IP的发源地，其稳定性也是有目共睹的。</p>
<p>因为有在VirtualBox里面安装Debian的经验，特别关注了一下客户机的时间，果然客户机的时间走的特别慢，没多久就与Host差了几分钟，而且可以看到时间差在明显的拉大。系统时间的准确性对于服务器来讲还是比较重要的，cron守护程序，网络日志等都严重依赖于系统时间。因为在客户机Debian使用的ntpd来校对系统时间，运行很正常，也在这里如法炮制吧，在运行ntpd之前也用ntpdate同步了几次时间。但是，为什么又是&#8221;但是&#8221;。<br />
ntpd看样子很正常，但是Guest系统时间依旧比Host慢一拍,差距眼看着在拉大。当时实在是搞不清怎么回事了，google了一下也没找到满意答案，就暂时放下了。</p>
<p>今天连上FreeBSD一看，晕，时间都慢了一天多了，看来不解决时间是不行了。去google英文站搜，经过几轮筛选总算发现了一个有价值的信息：在FreeBSD的/boot/loader.conf文件里面增加一句kern.hz=100。赶快试验了一下，还真是这样,记得要重启一下guest。不用开ntpd时间也跑的很准确了。当然如果你要求很高可以继续开着ntpd。kern=100这几话怎么讲呢，<a href="http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/virtualization-guest.html">官方</a>说是降低客户化FreeBSD的CPU使用率，难道是因为CPU使用率高导致部分时钟中断丢失造成时间跑慢吗？我还没想明白，谁明白这个原理给我留言解释一下吧，谢谢。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/freebsd/virtualbox_freebsd_timekeeping.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
