csatblogspotdotcom

Sunday, April 20, 2008

读《Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines》[1]

当今操作系统支持各种各样的大量类型的设备,在操作系统中大部分代码都是与设备驱动相关的。新的操作系统尝试两种方法来减少设备驱动代码的量和复杂程度。一种是想办法尽量精简已有的设备驱动模块,另一种是对不同驱动模块尽量重用。本文作者提出了一种驱动程序复用技术,该技术无需修改驱动程序,更重要的是,这种实现方式增强了新操作系统实例相对于被重用驱动的独立性,而驱动程序的相对独立性又增强了系统的可靠性。

二进制驱动程序的重用已经由cohosting实现,就像VMware Workstation所做的一样,作者受启发发明了该方法。这种方法对原有设备驱动进行完全重用,并有着很强的隔离性。这种方法并没有整合驱动代码,而是让所有驱动程序留在它们原有的完全兼容的运行环境,原有的操作系统中。被包在原有操作系统中的设备驱动运行在一个专用的VM中,这样就几乎能保证语义受到保护,而且不兼容性也仅限于由VM复用而导致的时钟行为。现在,作者已经能够成功重用大量的网络、磁盘、和PCI设备驱动。

这种方法有较好的性能:对于网络,吞吐率仍然只占原系统的3-8%;每一个额外增加的虚拟机仅仅只增加0.12%CPU利用率;驱动间的隔离需要额外CPU开销,而这可以通过硬件加速来降低,例如用直接DMA处理进站的包。

新的OS和被重用驱动间的接口组成了极少量的代码,比起旧的驱动程序代码要少多了。

这篇文章主要对虚拟机驱动部分作了优化,使驱动程序重用性提高,同时提高了虚拟机算系统的可靠性,使整个系统的性能有所提高。

参考文献

  1. J. LeVasseur, V. Uhlig, J. Stoess, and S. Gotz. Unmodified device driver reuse and improved system dependability via virtual machines. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation, San Francisco, CA, Dec. 2004.

Labels:

Monday, April 14, 2008

读《Blink: 3D Display Multiplexing for Virtualized Applications》[1]

这篇文章主要介绍了作者研究的针对虚拟化应用的3D显示的多路复用技术。他们开发了一个虚拟机的显示系统:Blink。该系统比传统的C/S模式所需的上下文切换次数要少,能消除冗余的图像缓存的复制与清空。同时Blink也比直接使用物理显卡的设备更安全。

Blink不允许客户端直接操作物理的网卡设备,而是给每个客户端一个虚拟处理器VPVirtual Processor),客户端可以对它进行编程。最后BlinkJIT编译技术和对VP程序的简单静态分析,把它们进行复合。

为了减小开销,Blink使用了Blink存储过程。与运行在GPU上的显示列表不同,一个Blink存储过程就是一个运行在显示服务端CPU上的BlinkGL程序。存储过程就是一系列OpenGL命令,每条命令都包括一个操作码和一个参数集。Blink服务端包括一个JITJust In Time)编译器,这个即时编译器的作用就是把BlinkGL转换为CPU机器码。这一过程很快,因为BlinkGL很简单。

OpenGL来共享显示器有这样一个坏处:针对每一个更新,整个显示器上的图像都要重画。而Blink可以在一定程度上避免这个问题:每一个客户端只能对屏幕的一个子区域进行操作,在规定的区域之外,客户端是无法进行操作的。这样就可以在原来的基础上对系统性能进行提升。



Blink运行在Xen之上。Blink server端运行在Domain0上,它直接操作物理显卡,Blink server实质上是一个普通的OpenGL应用程序;Blink客户端运行在Domain U上,由Blink server上的BlinkGL复用器合成。

相应的性能测试表明,在同样的性能下Blink能支持更多的VM,而在同样的条件下Blink的性能明显好。

最后得出的结论是虚拟机间好的隔离性并非一定要牺牲图形图像处理性能。用JIT编译技术和共享内存协议,服务端和客户端的通信开销减少了。最后让多个应用程序在同一个屏幕上显示而不需要off-screen缓冲区。

参考文献

  1. J. G. Hansen. Blink: 3d display multiplexing for virtualized applications. Technical Report 06/06, DIKU – University of Copenhagen, Jan. 2006. http://www.diku.dk/jacobg/pubs/blink-techreport.pdf.

Labels:

Sunday, April 6, 2008

keyboard shotcuts in bash

1. U K Y
U将光标(不包括)以前的字符删除
K将光标(包括)以后的字符删除
Y将刚才删除的字符粘出来

2. D H
D将光标处的字符删除
H将光标前的一个字符删除

3. A E
A将光标移动到行首
E将光标移动到行尾

4. F B
F将光标向右移动一个字符的位置
B将光标向左移动一个字符的位置

5. N P
N下一个命令
P上一个命令

6. L
L清屏

7. R
R搜索以前输入过的命令

8. T
T替换光标处的字符和光标前一个字符的位置

Labels: ,

Saturday, April 5, 2008

slow ssh login become quicker

Add "UseDNS no" in /etc/ssh/sshd_conf.
Add your own IP and host name in /etc/hosts.
sudo /etc/init.d/ssh(d) restart

Labels: ,

1st 3 bash scripts

#!/bin/bash
#list using a long listing format
#can't use * when there is a space in a filename
ls -l --color=auto $@
(or ls -l --color=auto $*)

#!/bin/bash
#list all files in a directory
#can't use * when there is a space in a filename
ls -a --color=auto $@
(or ls -a --color=auto $*)

#!/bin/bash
#mv files into ~/.Trash
#can't use * when there is a space in a filename
mv $@ ~/.Trash
(or mv $* ~/.Trash)


后记:
今天又用alias实现了前两个
后面一个在支持mv的-t选项的系统上也行

在 ~/.bash_profile 中加上
alias ll='ls -l'
alias la='ls -a'
而后面一个
alias trash='mv -t ~/.trash/'
但像FreeBSD这样的系统不支持-t选项,这我就没办法了

Labels: ,

Wednesday, April 2, 2008

读《I/O Virtualization Using Mellanox InfiniBand And Channel I/O Virtualization (CIOV) Technology》[1]

这篇文章就是Mellanox公司给它的InfiniBand做的一个介绍,和GbEGigabit Ethernet)与FCFibre Channel)作了比较,阐述了InfiniBand的好处。

Mellanox公司的InfiniBand针对的是服务器虚拟化领域。服务器的虚拟化有以下几点好处:

1. 增加服务器利用率。可以按需动态把应用程序分配到物理机上。

2. 减少机时间,增加可靠性。不健康的物理机服务器可以很容易的在不影响运行在之上的服务的情况下关机维护。这可以通过物理机间的无缝迁移实现。而当服务器修好后,又可以把虚拟机迁移回来。

3. 动态资源分配和负载均衡。按负载需要,可以把新增物理资源动态分配给正在运行的VM,或者开启新的VM。同样,也可以把VM迁移到新的资源相对更多的物理机上。

4. 面向服务的体系结构。以上的几个特性,使得服务器资源的分配可以纯粹的根据应用程序和用户的服务需要进行。

现在,IO虚拟化有3中途径。

1. 全虚拟的,基于软件的IO虚拟化。

2. native IO虚拟化:结合了基于软件的虚拟化和基于硬件的虚拟化。

3. 旁路(pass-through),基于硬件的IO虚拟化。

基于软件的IO虚拟化如图所示。VMM在这种情况下作为VM和物理IO适配器间的桥梁。这样有好处也有坏处。

可以增强对老软件的兼容性和VM及应用程序的稳定性。迁移时间少机时间。更高的服务器利用率。但这样也限制了运行在服务器上VM的数量,同时伴随着更小的IO带宽和更大的IO延迟。

MellanoxInfiniBandCIOVChannel I/O Virtualization)技术能用于基于软件的IO虚拟化,这样不仅可以有软件虚拟化有点,而且可以让网络和存储域网络共享适配器,一个适配器还可以被共享为多个物理适配器。

CIOV用更小的开销实现了更好的性能。文章接着列举了两种方案证实他的观点。



native IO虚拟化解决方案

VM和物理IO适配器间传递的数据绕开了VMM,但控制路径和内存映射功能仍由VMM控制。

IO数据通路的性能有了很大提高;IO数据通路延迟有了很大降低;CPU利用率比软件IO虚拟化时要好得多,一个物理机能支持更多的虚拟机。缺点是,每个VM有了一个新的驱动,需对VM中的应用作重新优化;迁移时需要重启VM,动态负载平衡和减少的机时间,所带来的便利没有了;

MellanoxCIOVVMM层和VM层都有好处:由于绕开了VMMVMM中不需要嵌入虚拟交换机的功能。

接着又用一个案例说明了CIOV用更小的开销实现了更好的性能。



旁路硬件IO虚拟化

完全绕开了VMM,不需要VMM干预。


InfiniBandGbEFC比较有很大优势,单位适配器网络吞吐率、单位适配器SAN吞吐率、购买价格、维护费用、IO功率消耗、兼容性、管理透明性等方面都要强于GbEFCInfiniBandGbE间,与FC间都可以实现互操作,这更增加了InfiniBand的适用面。

[1] http://www.zdnet.com.au/whitepaper/0,2000063328,22445637p-16001293q,00.htm

Labels:

Tuesday, April 1, 2008

care for your eye

使用电脑的朋友,告诉你们一种保护眼睛的好方法: 桌面->右键->属性->外观->高级->项目选择(窗口)、颜色1(L)选择(其它)将色调改为:85。饱和度:123。亮度:205->添加到自定义颜色->在自定义颜色选定点确定->确定 这样所有的文档都不再是刺眼的白底黑字,而是非常柔和的豆沙绿色,这个是色调是眼科专家配置的,开始可能会有一点不适应,但长时间使用会很有效的缓解眼睛疲劳

Labels: