2010-04-22

今天被xen折磨死了。

我在机器A上装了一套系统,想挪到机器B上去。我在机器B上用xe vm-clone,发现其它都复制了,但是sr还是机器A的那个sr。我所有机器的sr都是用lvm over scsi的方式做的,用的都是本地硬盘。于是我就想把vdi文件用xe vdi-copy的方式复制到本地的sr中来。不料copy总是无法成功,说这个新sr没有pbd。可是怎么可能呢,不仅我用xe sr-param-list看是有的,并且我用xe vdi-create也能在这个sr上创建虚拟盘。折磨了好久,文档少的可怜,xen.org上xen的文档居然还是3.0版本的,xcp的那几本pdf手册里也没有详细说到这个,只是说可以用vdi-copy把一个vdi复制到另外一个sr中。

最后我发现了一个很好用的命令,xe vm-export/vm-import。先装好一个系统,叫mytemplate。我把这个vm导出成一个3G多的文件,然后把原来的vm给destory掉,然后在新的系统上import,vm名字还是原来的名字。然后启动,把IP设置成新的IP。然后把vm的名字从mytemplate改成实际的名字。然后继续import,继续做下面的系统。非常的爽啊!clone一个系统也就是几秒钟的事情,在新机器上import一个也不超过3分钟。非常爽!

但是吧,destory一个vm的时候并不会把它的vdi也给释放掉,也就是说硬盘空间并没有被真的释放出来。而从vdi的参数又看不出它属于哪个vm,只有用xe vbd-list vm="xx"这样把所有的vbd都列出来(这个列表中也包含vdi的uuid),然后destory vm,然后把vdi挨个释放。但是vm很多的时候,要查出哪个vdi是不被任何vm引用的,也挺麻烦的,得自己写个脚本来做。

然后今天在内网建了一个yum repos。主要是为了解决这样的问题:安装系统的时候并不是把所有软件都装上了,之后需要装软件,那么要么用的时候再把光盘挂上,使用yum localinstall去光盘的目录里安装,要么干脆就建一个yum repos,把默认的repos全部都删掉,就留我自己建的这一个。只是我还不明白怎么从外网下更新包然后挪到内网我建的repos里去,但这个不是大问题,应该很快就能解决。不过centos 5.5迟迟没有消息,不知道会不会跳过它支持发6.x。

晚上在邮件列表里看到n900 to meego的status report,大意是说meego在5月会有第二个版本发布,将会采用linux 2.6.33版的kernel,并且马上会有更多的代码被开放出来。而且会提供新的安装方式,更好的支持双启动。

maemo用的是apt/deb,而meego用的是yum/rpm。我决定好好学学yum/rpm。我到现在还分不清这两套系统究竟各有什么优劣,为什么非要用两套。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥