主机与阵列交互过程主要有:扫盘过程、读写过程和任务管理。
详述如下:
一、扫盘过程
相关的SCSI命令序列为:Report Luns(下发两次) --》Inquiry --》 Read Capicity --》Test Unit Ready --》Windows下,建立设备树
1. 启动器要求目标器上报LUN的个数和ID,目标器回复LUN的列表和状态;
2. 查询类命令,包含多个子命令。可查询LUN的固有属性,比如厂商名。目标器回复属性后再回复命令执行结果;
3. 查询某个LUN的大小,目标器回复LUN大小后再回复命令执行结果;
4. 检查设备是否可用;GOOD/CHECK和错误类型
二、读写过程(略)
三、任务管理
通过MODE SENSE和MODE SELECT命令。
整个过程可描述为:
HBA卡载入--》调用scsi_scan_host(在probe中)--》最终调用report_luns--》inquiry--》read_capicity--》mode_sense--》读分区表信息。