- an iSCSI initiator is the consumer of remote storage.
- an ISCSI target is the provider of remote storage.
- iSCSI initiator on Linux is implemented by Open-iSCSI project.
- iSCSI target on Linux is implemented by LIO project.
- iSCSI is an internet standard with RFC 3720 https://tools.ietf.org/html/rfc3720
1. iSCSI Initiator: Open iSCSI
he Open-iSCSI project is a high-performance, transport independent,
multi-platform implementation of RFC3720 iSCSI.
Open-iSCSI is partitioned into user and kernel parts.
The kernel portion of Open-iSCSI is a from-scratch code
licensed under GPL. The kernel part implements iSCSI data path
(that is, iSCSI Read and iSCSI Write), and consists of three
loadable modules: scsi_transport_iscsi.ko, libiscsi.ko and iscsi_tcp.ko.
User space contains the entire control plane: configuration
manager, iSCSI Discovery, Login and Logout processing,
connection-level error processing, Nop-In and Nop-Out handling,
and (in the future:) Text processing, iSNS, SLP, Radius, etc.
The user space Open-iSCSI consists of a daemon process called
iscsid, and a management utility iscsiadm.
2. Target: LIO
Besides iSCSI,LIO supports other Frontends like FC SCSI. So it's not named "target" instead of "iSCSI target".
LinuxIO (LIO™) is the standard open-source SCSI target in Linux. It supports all prevalent storage fabrics, including Fibre Channel (QLogic, Emulex), FCoE, iEEE 1394, iSCSI (incl. Chelsio offload support), NVMe-OF, iSER (Mellanox InfiniBand), SRP (Mellanox InfiniBand), USB, vHost, etc.
The advanced feature set of LinuxIO has made it the SCSI target of choice for many storage array vendors, for instance allowing them to achieve VMware® Ready certifications. Native support for LIO in QEMU/KVM, libvirt, and OpenStack™ (setup, code) makes it an attractive storage option for cloud deployments.
LIO and targetcli are developed by Datera, Inc., a data storage systems and software company located in Mountain View in the Silicon Valley.
3. Common architecture
- Kernel modules
- initiator: scsi_transport_iscsi.ko, libiscsi.ko and iscsi_tcp.ko
- target: target_core.ko
- daemon for session management
- initiator: iscsid
- target: target
- command line tool for admin
- initiator: iscsiadm
- target: targetcli
No comments:
Post a Comment