分类: LINUX
2015-07-19 21:56:59
先看一个图:
在上图中,以通道卡接PM背板(使用libata-pmp驱动)为例,标注出了ata和scsi各结构的对应关系。
具体说明如下:
1. PCI扫描程序Scan到通道卡时,会注册一个ata host结构;
2. 通道卡上有两个接口,如果都插有PM背板,kernel中就会注册两个ata port结构,在初始化ata port结构时,会申请scsi host,从而很好的将ATA融入到SCSI驱动体系中;
3. 在每个PM背板上有四个接口,可以接四个硬盘;在kernel扫描ata port时,会建立四个ata link结构,ata link直接和scsi channel相关联;
4. 初始化ata link时,会直接在每个link中注册一个ata device结构,此和scsi target、scsi lun相关联;
5. 通过lsscsi命令可以看到同一个背板上scsi channel会变化。
还有一种模式,主板上接通道卡,卡上接其他背板(使用mv64xx/mvsas驱动),与上面不同的地方有:
1. 背板上有八个接口,可以接八个硬盘;kernel扫描ataport时,为每个port创建一个ata link;
2. 初始化ata link时,如果有八块硬盘,会在每个link中注册八个ata device结构;
3. 通过lsscsi命令可以看到同一个背板上scsi target id变化。