tgtd illustration
Post on 25-Dec-2014
3.651 Views
Preview:
DESCRIPTION
TRANSCRIPT
tgtd illustrationbased on https://github.com/fujita/tgt
1Tuesday, November 8, 11
spc & devices
SCSI
General Arch
Core
target
lu
mgmt
low level drivers
backing stores
epoll
initiator
tgtadm
iSCSI, iSER, FCoE, etc.
bst: aio, rdwr, null, sg, ssc
mmc, osd, sbc, scc, smc, ssc
utils, common
conn
mtask
R&W
2Tuesday, November 8, 11
mtask_handlerHDR_RECVPDU_RECV
If req Len>tgtadm_req
Mgmt Routine
sys_mgmt
target_mgmt
portal_mgmt
device_mgmt
account_mgmt
connection_mgmt
tgt_mgmt
mtask_handlerRSP_SEND
IPC:
tgtadm send commands here
mgmt_task
3Tuesday, November 8, 11
State Transition of Conn
Free
SecuritySecurity
authSecurity
Done
Security login
Security fullLogin Login full
Full Kernel
ScsiCloseExitLogoutProto Error
Network ErrorOnl
y fo
r iSE
R
Ready
Start
Init
4Tuesday, November 8, 11
Cmd rx in iscsid 1OpXX
OP_DATA_OUT
iscsi_task_queueImmediate:
iscsi_task_ececuteOther:
expected SNs:
iscsi_task_executeOthers:
Add to pending listNOOP_OUT/LOGOUT:
Set EPOLLIN|EPOLLOUTSCSI_CMD:
iscsi_scsi_cmd_executeSCSI_TMFUNC:
iscsi_tm_execute
iscsi_task_ececute
all:
Set EPOLLIN|EPOLLOUT
queue:
target_cmd_queue... target.c
target_mgmt_request... target.c
5Tuesday, November 8, 11
Cmd rx in iscsid 2OpXX
OP_DATA_OUT iscsi_data_out_rx_done
FINAL && not pending:
iscsi_scsi_cmd_execute... as in prev page
Do nothing
6Tuesday, November 8, 11
SCSI Cmd ProcessingIn target.c, scsi.c, & devs
cmd_perform ==
scsi_cmd_perfor
scsi_cmd_queuedProcessed later
dev_type_template.ops[op]. cmd_perfor
sbc_rw, sbc_sync_cache
Others processed in sbc.c or spc.c
BS
7Tuesday, November 8, 11
Backing Storagebs_init
Create LU
bs_open
bs_thread_info follows lu
pathname, fd, size
Dev request bs_cmd_submit(cmd)
Destroy LU bs_close, bs_exit
8Tuesday, November 8, 11
That's All.Thanks!
9Tuesday, November 8, 11
top related