博客首页
注册
建议与交流
排行榜
加入友情链接
推荐
投诉
搜索:
帮助
东风楼
认真学习,开心生活
xiegang112.cublog.cn
管理博客
发表文章
留言
收藏夹
博客圈
音乐
相册
文章
· Algorithm
· Assembly
· diary
· Jave
· JXME
· JXTA
· Linux
}
· Driver
}
· net
· pci
· scsi
· Kernel
}
· memory
· net
· Linux-I/O-SCSI
· Solaris
· unresolved
· Web
首页
关于作者
||
<<
>>
||
我的分类
最新文章
·
auto sense
·
Linux iSCSI stacks and ..
·
Linux SCSI命令dump工具
·
Which I/O controller is..
·
不疯魔不成活
最新留言
最新评论
·
一个专为操作系统开发者與..
·
工具很好,我毕业设计需要..
·
好文! 希望交流一下IO方面..
·
好文,这样的资料真的难找
·
我的环境是这样,lvm+devi..
最新收藏
·
四川大学蓝色星空
·
麻麻渝的blog
统计信息
·
总访问量:45120
·
文章个数:58
·
评论条数:13
·
留言条数:0
·
网友推荐:
auto sense
<div>各人理解,AUTO SENSE是指OS SCSI layer无需执行REQUEST SENSE命令就能获得sense data.这儿的auto应该是针对OS SCSI layer而言的。</div><div>比如在LSILOGIC 53C8XX的驱动中,驱动会在发现check condition后,自己发送一个request sense来获得sense data。这对于OS SCSI layer来说是AUTO的。</div><div>而在ISCSI中,sense data是在SCSI命令的response中,和执行状态一起返回的。也就是该iSCSI的response即包含了命令执行状态(check condition),又包含了sense data。从而实现了auto sense。但是,如此一来,target端还需要实现re……
查看全文
发表于:2009-07-15 ┆
阅读(189)
┆
评论(0)
Linux iSCSI stacks and multiple initiators per tar
<span class="Apple-style-span" style="font-family: Verdana; font-size: 11px; color: rgb(102, 102, 102); "><h2 style="font-size: 16px; line-height: 20px; color: rgb(0, 116, 158); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a href="http://www.meta.net.nz/~daniel/blog/2008/06/05/linux-iscsi-stacks-and-multiple-initiators-per-target-lun/" rel="bookmark" title="Permanent Link: Linux iSCSI st……
查看全文
发表于:2009-07-08 ┆
阅读(250)
┆
评论(0)
Linux SCSI命令dump工具
为了方便观察Linux的scsi命令,写了个小工具来dump scsi命令。该工具主要是通过hook scsi host的queue_command方法,截取scsi命令,然后dump出来。该工具并不会影响scsi命令的执行。在dump完scsi命令之后,会调用原来的queue_command方法。<div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 12px;">另外,在该工具中,添加了过滤器功能。能通过设置过滤的rule和scsi命令代码来过滤所需要dump的scsi命令。</span></font></div><div><font class="Apple-style-span" size="3"><span clas……
查看全文
发表于:2009-06-17 ┆
阅读(365)
┆
评论(1)
Which I/O controller is the fairest of them all?
<DIV> <DIV class=PageHeadline> <H1>Which I/O controller is the fairest of them all?</H1></DIV> <DIV class=ArticleText> <DIV class=FeatureByline>By <B>Jonathan Corbet</B><BR>May 12, 2009 </DIV>An I/O controller is a system component intended to arbitrate access to block storage devices; it should ensure that different groups of processes get specific levels of access according to a policy defined by the system administrator. In other words, it prevents I/O-intensive processes from hogging the……
查看全文
发表于:2009-05-27 ┆
阅读(207)
┆
评论(1)
不疯魔不成活
这几年,实习工作,成都,上海,北京四处晃荡,一直为这自己理想和爱好不断追寻。虽然现在的工作并不是自己喜欢做的,但是正因为有着那份追求,所以一直坚持到现在。在工作之余,继续研究linux,关注开源社区。希望能通过自己的努力,干上自己喜欢做的事情。但是最近这段时间,感觉特别迷茫。感觉似乎我怎么努力,都无法敲开梦想的大门。直到一个好友的一个电话,让我明白,只要持之以恒,没有什么做不到的。<div>那位朋友一直是MS的fans,也曾经在MS的开发大赛中获得过奖,去MS一直是他的心愿。但是由于他算法方面并不是很优秀,因此毕业……
查看全文
发表于:2009-05-24 ┆
阅读(575)
┆
评论(2)
Further Oops Insights
<DIV><STRONG>From: Al Viro <viro@...></STRONG><BR>Subject: <A title="Click to view this message in the linux-kernel mail archive." href="http://kerneltrap.org/mailarchive/linux-kernel/2008/1/14/567425"><FONT color=#0000ff>[oops report analysis] hfs_bnode_split() one (Arjan's #2753)<BR></FONT></A>Date: Jan 14, 3:41 pm 2008<BR><BR>[summary for folks who want to skip blow-by-blow: it's missing check for<BR>hfs_bnode_find() returning ERR_PTR(), there are 2 more places like that<BR>in fs/hfs/* ……
查看全文
发表于:2009-05-13 ┆
阅读(175)
┆
评论(1)
Linux Barrier I/O 实现分析笔记
<DIV> <P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"><FONT size=3><SPAN lang=ZH-CN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">一直以来,</SPAN><FONT face=Calibri>I/O</FONT><SPAN lang=ZH-CN style="FONT-FAMILY: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体……
查看全文
发表于:2009-05-11 ┆
阅读(592)
┆
评论(0)
Linux scsi 异步扫描分析笔记
<DIV>最近发现SUSE10在重启后,Lun的设备文件名会出现交错的情况。比如,主机上有两个qlogic的HBA,分别连到阵列。在重启后,/dev下lun对应的设备文件可能出现如下情况:<BR>HBA0: /dev/sda /dev/sdd<BR>HBA1:/dev/sdb /dev/sdc<BR>设备文件名的生成,是在sd_probe中进行(参见“<A href="http://blog.chinaunix.net/u/15278/showart.php?id=1895861" target=_blank><FONT color=#006699>linux scsi sd设备文件名的生成</FONT></A>”),而设备文件,如/dev/sda,一般则是udev根据/sys/block下的块设备,也就是sd_probe中生成……
查看全文
发表于:2009-04-27 ┆
阅读(443)
┆
评论(0)
Linux 2.6.16 qla2xxx驱动scsi异步扫描
<DIV>用suse10(2.6.16)通过两个qla的SCSI<BR>hba卡连接阵列。现在遇到这样的情况,在生成lun的sd设备文件时,会出现交错情况。比如在hba1下的lun的sd设备文件为/dev/sdb /dev/sdc,而在hba2下的为/dev/sda /dev/sdd。</DIV> <DIV> </DIV> <DIV>在qla2xxx_probe_one中,只调用了scsi_add_host,没有调用scsi_scan_host。qla究竟是怎么扫描lun的呢?是在qla2x00_do_dpc thread中做的吗?它又是怎么和scsi middle layer交互的呢?</DIV>
查看全文
发表于:2009-04-24 ┆
阅读(274)
┆
评论(1)
Notes from the LSF storage track
<DIV> <TABLE> <TBODY> <TR> <TD class=MidColumn> <DIV class=PageHeadline> <H1>Notes from the LSF storage track</H1> <DIV class=Byline>[Posted April 13, 2009 by corbet] <P></P></DIV></DIV></TD></TR></TBODY></TABLE><!-- endpage --> <TABLE class=Page> <TBODY> <TR> <TD> <TABLE> <TBODY> <TR> <TD class=MidColumn> <DIV class=Printable> <DIV class=ArticleText>[<B>Editor's note</B>: our recent coverage from the 2009 Linux Storage and Filesystem Workshop (<A href="http://lwn.net/Articles……
查看全文
发表于:2009-04-17 ┆
阅读(230)
┆
评论(0)
Linux Barrier I/O
<DIV>I/O barrier请求用来保证I/O请求的顺序。其主要是针对那些需要保证顺序的写请求,比如日志的checkpoint。在请求队列中,那些排在barrier请求前的请求,必须在barrier请求开始之前完成。(这里所说的完成指数据写入物理介质,而不是保存在OS或者设备缓存中)。而那些排在barrier请求后的请求,只有在barrier请求完成后才能开始(这儿所说的完成,同样是指barrier请求的捎带数据写入物理介质)。</DIV> <DIV>总的来说, I/O barrier请求拥有一下两个性质:<BR>1.请求顺序<BR>非barrier请求不能跨越barrier请求。barrier请求之前的请求……
查看全文
发表于:2009-04-15 ┆
阅读(325)
┆
评论(0)
Barriers and journaling filesystems
<DIV>Journaling filesystems come with a big promise: they free system administrators from the need to worry about disk corruption resulting from system crashes. It is, in fact, not even necessary to run a filesystem integrity checker in such situations. The real world, of course, is a little messier than that. As a recent discussion shows, it may be even messier than many of us thought, with the integrity promises of journaling filesystems being traded off against performance. <!-- LWNRightSideA……
查看全文
发表于:2009-04-12 ┆
阅读(297)
┆
评论(0)
linux device mapper multipath 驱动的路径聚合
<DIV>为了尝试一下device mapper的 multipath驱动 ,于是在vmware中添加了两块scsi硬盘。想通过device mapper的multipath driver来管理这两块磁盘(当然,每个设备只有一个path)。但是在配置好multipath以后, 运行multipath –v2,输出:<BR>Error calling out /sbin/scsi_id -g –u –s /dev/sda<BR>查了一下,发现是scsi_id的问题。他没有返回scsi device的标识。于是跟踪scsi_id代码,发现他通过sg发送一个standard inquery,获得verndor id等。然后发送一个Supported vital product data pages(pag……
查看全文
发表于:2009-04-10 ┆
阅读(721)
┆
评论(0)
linux scsi sd设备文件名的生成
<DIV>scsi sd设备的设备文件名,如sda等,是在sd驱动加载时自动生成的。他在生成设备文件时,有一套文件名的生成规则。具体生成算法总的来说就是首先向系统申请一个ida,也就是唯一id。然后把id映射成设备文件名sdxxx。在设备释放时,该ida会被释放,以便以后使用。由于ida是由系统维护的全局量,所以可以保证生成的设备名的唯一性。<BR>具体生成是在scsi sd设备被探测到后,调用sd_probe函数时进行的。首先获得一个可用的ida(sd驱动维护一个自己全局ida:static DEFINE_IDA(sd_index_ida)):<BR>error = ida_get_new(&sd_index_ida……
查看全文
发表于:2009-04-09 ┆
阅读(554)
┆
评论(0)
多路径下实现i/o顺序很难
<DIV>突然想明白,其实要在多路径下实现i/o顺序很难。<BR>因为顺序i/o的发起者是文件系统,一般式文件系统的日志模块。在文件系统和多路径驱动之间往往会有一层volume manager。volume manager可能会把文件系统i/o分散到多个设备,而每个设备又可能存在多个路径。<BR>假设文件系统写了数据块b1,b2,b3,然后提交日志l1。如果volume manager做了条带化,b1, b2,b3可能被分发到两个设备。这儿假设volume manager能识别设备多路径,b1 被分发到lun1, b2,b3被分发到lun2。而由于每个lun存在多路径,b2,b3被分发都lun2所对应的两条路径上,比如/……
查看全文
发表于:2009-04-08 ┆
阅读(330)
┆
评论(1)
Linux 内核中的 Device Mapper 机制
<DIV> <P>Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图 1。</P><BR><A name=N1003B><B>图1 Device Mapper的内核体系架构</B></A><BR><IMG height=353 alt="图1 Device Mapper的内核体系架构" src="http://www.ibm.com/developerworks/cn/linux/l-devmapper/images/image002.gif" width=554 border=0> <BR> <P>在内核中它通过一个一个模块化的 target driver 插件实现对 IO 请求的过滤或者重新定向等工作,当前已经实现的 target driv……
查看全文
发表于:2009-03-31 ┆
阅读(348)
┆
评论(0)
Linux Anticipatory (预测)I/O 调度算法分析笔记
<P align=justify>as_add_reques是调度算法的入口。AS和Deadline比较类似,都是先把request加入sector 排序的红黑树,然后再把requst加入fifo。只不过AS因为加入了预测,需要在加入requst时,调用as_update_rq来更新当前算法所维护的状态。此外,二者不同之处是,Deadline是以读写来区分request的方向,而AS是以是否同步来区分方向:data_dir = rq_is_sync(rq); AS把读和同步写都归为一个方向:sync(也就是read)进行处理。这个是合理的,因为AS是基于进程进行预测的。相同的进程较可能具有相同的同异步读写方式。此外,把async/sync rea……
查看全文
发表于:2009-03-18 ┆
阅读(569)
┆
评论(1)
Range Minimum Query and Lowest Common Ancestor
<DIV><BR> <A href="http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor#Introduction"><FONT color=#0000ff>Introduction</FONT></A><BR> <A href="http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor#Notations"><FONT color=#0000ff>Notations</FONT></A><BR> <A href="http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor#Range_Minimum_Query_(RMQ)"><FONT color=#0000ff>Range Minimum Query (RMQ)……
查看全文
发表于:2009-03-18 ┆
阅读(344)
┆
评论(0)
Kernel space: Toward better direct I/O scalability
<DIV> <P class=MsoNormal style="MARGIN: 0.75pt 0cm 2.25pt; mso-line-height-alt: 12.0pt; mso-outline-level: 2"><SPAN style="FONT-SIZE: 20.5pt; COLOR: #830707; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-font-kerning: 18.0pt">Kernel space: Toward better direct I/O scalability<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-outline-level:……
查看全文
发表于:2009-03-02 ┆
阅读(373)
┆
评论(0)
VFS 文件读写结构图
<DIV align=center><IMG src="http://blogimg.chinaunix.net/blog/upfile2/090225213323.jpg" onload="javascript:if(this.width>500)this.width=500;" border=0></DIV> <DIV align=center> </DIV> <DIV align=left>注意:图中主要分buffer读写和direct读写。但在direct i/o中,实际上是先同步buffer的数据,然后通过dio提交bio。dio有待进一步分析。</DIV>
查看全文
发表于:2009-02-25 ┆
阅读(335)
┆
评论(0)