ݺߣ

ݺߣShare a Scribd company logo
tgtd illustration
                          based on https://github.com/fujita/tgt




Tuesday, November 8, 11                                            1
General Arch
                     epoll         iSCSI, iSER,                            bst: aio, rdwr,
                                   FCoE, etc.                              null, sg, ssc



                             low level                                backing
           initiator
                              drivers    con                           stores
                                               n
                                                               R &W
                                              target
                                                                           mmc, osd,
                                                   Core                    sbc, scc, smc,
                                                                           ssc
                                                       lu     SC
                                           a  sk                SI
                                         mt
                                                                       spc &
           tgtadm             mgmt
                                                                      devices
                                                     utils,
                                                   common

Tuesday, November 8, 11                                                                      2
Mgmt Routine
                                              If req Len>
                                              tgtadm_req    tgt_mgmt
      tgtadm send
     commands here                  mtask_handler
                                    HDR_RECV                  sys_mgmt
                                    PDU_RECV
                                                              target_mgmt

                          IPC:                      mgmt_task portal_mgmt

                                                              device_mgmt
                                       mtask_handler
                                       RSP_SEND               account_mgmt

                                                              connection_mgmt




Tuesday, November 8, 11                                                         3
State Transition of Conn
                                                             Security           Security
                                      Security                auth               Done


                     Free                        Security
                                                  login

                                                                                Security
                                       Login                 Login full
                                                                                  full
     Only for iSER




                        Init
                       Start
                                                                Full            Kernel
                      Ready              Network Error


                        Proto Error                                    Logout
                                        Exit                Close                Scsi

Tuesday, November 8, 11                                                                    4
Cmd rx in iscsid 1
                                             Immediate:
     OpXX                 iscsi_task_queue   iscsi_task_ececute
                                             Other:
     OP_DATA_OUT                               expected SNs:
                                               iscsi_task_execute
                                               Others:
      iscsi_task_ececute
                                               Add to pending list
                   NOOP_OUT/LOGOUT:
                   Set EPOLLIN|EPOLLOUT         queue:

                   SCSI_CMD:                    target_cmd_queue
                                                                 ... target.c
                   iscsi_scsi_cmd_execute       all:

                   SCSI_TMFUNC:
                                                Set EPOLLIN|EPOLLOUT
                   iscsi_tm_execute          target_mgmt_request
                                                               ... target.c


Tuesday, November 8, 11                                                         5
Cmd rx in iscsid 2
     OpXX

     OP_DATA_OUT               iscsi_data_out_rx_done


                                   Do nothing

                                   FINAL && not pending:
                                   iscsi_scsi_cmd_execute
                                          ... as in prev page



Tuesday, November 8, 11                                         6
SCSI Cmd Processing            In target.c, scsi.c, & devs


                           cmd_perform ==

                           scsi_cmd_perfor

                          scsi_cmd_queued
                              Processed later

                          dev_type_template.ops[op]. cmd_perfor

                                sbc_rw, sbc_sync_cache               BS

                                Others processed in sbc.c or spc.c

Tuesday, November 8, 11                                                       7
Backing Storage
                                 bs_init      bs_thread_info follows lu

                    Create LU

                                 bs_open         pathname, fd, size




                   Dev request       bs_cmd_submit(cmd)

                    Destroy LU       bs_close, bs_exit

Tuesday, November 8, 11                                                   8
That's All.
                             Thanks!




Tuesday, November 8, 11                 9

More Related Content

Tgtd illustration

  • 1. tgtd illustration based on https://github.com/fujita/tgt Tuesday, November 8, 11 1
  • 2. General Arch epoll iSCSI, iSER, bst: aio, rdwr, FCoE, etc. null, sg, ssc low level backing initiator drivers con stores n R &W target mmc, osd, Core sbc, scc, smc, ssc lu SC a sk SI mt spc & tgtadm mgmt devices utils, common Tuesday, November 8, 11 2
  • 3. Mgmt Routine If req Len> tgtadm_req tgt_mgmt tgtadm send commands here mtask_handler HDR_RECV sys_mgmt PDU_RECV target_mgmt IPC: mgmt_task portal_mgmt device_mgmt mtask_handler RSP_SEND account_mgmt connection_mgmt Tuesday, November 8, 11 3
  • 4. State Transition of Conn Security Security Security auth Done Free Security login Security Login Login full full Only for iSER Init Start Full Kernel Ready Network Error Proto Error Logout Exit Close Scsi Tuesday, November 8, 11 4
  • 5. Cmd rx in iscsid 1 Immediate: OpXX iscsi_task_queue iscsi_task_ececute Other: OP_DATA_OUT expected SNs: iscsi_task_execute Others: iscsi_task_ececute Add to pending list NOOP_OUT/LOGOUT: Set EPOLLIN|EPOLLOUT queue: SCSI_CMD: target_cmd_queue ... target.c iscsi_scsi_cmd_execute all: SCSI_TMFUNC: Set EPOLLIN|EPOLLOUT iscsi_tm_execute target_mgmt_request ... target.c Tuesday, November 8, 11 5
  • 6. Cmd rx in iscsid 2 OpXX OP_DATA_OUT iscsi_data_out_rx_done Do nothing FINAL && not pending: iscsi_scsi_cmd_execute ... as in prev page Tuesday, November 8, 11 6
  • 7. SCSI Cmd Processing In target.c, scsi.c, & devs cmd_perform == scsi_cmd_perfor scsi_cmd_queued Processed later dev_type_template.ops[op]. cmd_perfor sbc_rw, sbc_sync_cache BS Others processed in sbc.c or spc.c Tuesday, November 8, 11 7
  • 8. Backing Storage bs_init bs_thread_info follows lu Create LU bs_open pathname, fd, size Dev request bs_cmd_submit(cmd) Destroy LU bs_close, bs_exit Tuesday, November 8, 11 8
  • 9. That's All. Thanks! Tuesday, November 8, 11 9