Linux SCSI子系统分析(二)发现target的过程
发现过程
发现target的过程比较简单,从复杂的代码中总结出主要的流程如下图。这个流程和命令iscsiadm -m discovery -t st -p 192.168.8.1相对应:
这个发现的流程的代码写的挺复杂,但是总结出的流程还是比较简单的。主要就是iscsiadm这个程序和tgtd这个程序通过socket交互,取得所有的target。从tgtd侧返回的target格式如下:
“TargetName=iqn.2013-07.sds.ginkgo:ws\0TargetAddress=192.168.8.1:3260,1\0”
注意看加红的地方,每个属性都是以字符休止符隔开的
函数调用过程
经过下图的函数调用流程,initiator端就取得到了target端所有的iqn