iSCSI ( Internet Small Computer System Interface ) is a protocol that is based on TCP / IP and is designed to establish the interaction and management of storage systems , servers and clients.
iSCSI describes:
- A transport protocol for SCSI that runs on top of TCP .
- Encapsulation mechanism for SCSI commands in an IP network.
- A protocol for a new generation of storage systems that will use native TCP / IP.
ISCSI is standardized to RFC 7143 . There are many commercial and non-commercial implementations of this protocol.
ISCSI- based systems can be built on any fast enough physical basis that supports IP, such as Gigabit Ethernet or 10G Ethernet. Using a standard protocol allows the use of standard means of control and flow control, and also significantly reduces the cost of equipment compared to Fiber Channel networks.
Content
General view
In essence, iSCSI allows two hosts to negotiate a connection and then exchange SCSI commands using the Internet Protocol (IP). Thus, iSCSI takes as a basis the widespread high-performance local storage bus and emulates it in a large number of networks, creating a storage area network (SAN). Unlike some SAN protocols, iSCSI does not require a dedicated cable connection: it can be deployed on an existing IP infrastructure. As a result, iSCSI is often used as a cheapened alternative to Fiber Channel, which requires its own, separate infrastructure, with the exception of one of its implementation options (FCoE - Fiber Channel over Ethernet). However, the performance of the ISCSI SAN may drop if it does not use a dedicated network or subnet (LAN, VLAN), due to the use of the limited amount of bandwidth used by the network for different purposes.
Although iSCSI can interact with various types of devices, it is almost always used by the system administrator to allow servers (such as database servers) to access disk volumes in storage arrays. The iSCSI SAN is often used for two purposes:
Consolidate Data Warehouse Volumes
Companies move disparate data from various servers of their network to the main storage, often these are data centers. This approach allows you to more efficiently allocate storage space, as they are no longer tied to a specific server. In a SAN environment, a new disk volume can be allocated to a server without making any changes to the hardware or cable network.
Disaster recovery
Companies mirror the stored data from the local center to the remote data center, which can be used as a hot / standby, in case of long inoperability of the local one. As a special case, the iSCSI SAN allows you to transfer entire disk arrays through the local network with minimal changes, which makes the storage "routable", as well as network traffic
Addressing
iSCSI uses TCP (typically TCP ports 680 and 3260) for the protocol itself, with high-level names used to address objects within the protocol itself. Special names are assigned to both iSCSI initiators and targets. iSCSI provides three name formats:
iSCSI Qualified Name (ISCSI Qualified Name) IQN
Format: IQN is defined in RFC 7143 . Contains fields:
- letter abbreviation iqn
- date (yyyy-mm) when the naming block took control of the domain
- domain name in reverse order (org.example)
- optional ":" serving as a prefix for the repository name specified by the naming block.
| Type | . | date | . | domain name | : | vault name |
|---|---|---|---|---|---|---|
| iqn | . | 2018-12 | . | com.example |
| storage: diskarrays-sn-a1235512 |
| iqn | . | 2018-12 | . | com.example |
| storage: disk2.sys.prof |
Extended Uniq Identifier EUI
Format: eui. {EUI-64 bit address} (note eui.02004567A425678D)
T11 Network Address Authority NAA
Format: naa. {NAA 64 or 128 bit identifier} (approx. Naa.52004567BA64678D)
Names of the IQN format are used most often, they are determined by the date, because the domain name may expire or it may be acquired by someone else.
The IEEE registration unit uses the EUI in accordance with the EUI-64 standard. The NAA is part of the OUI, which in turn is also provided by the IEEE registration unit. The NAA name format was added to iSCSI in RFC 3980 to ensure compatibility with the naming convention used in Fiber Networks and Serial Attached SCSI (SAS) storage technologies.
Typically, participants in an iSCSI exchange are defined using three or four fields:
- Host name or IP address (approx. Iscsi.example.com)
- Port number
- iSCSI name (in one of 3 formats)
- Optional authentication protocol with indirect negotiation.
Implementation Examples
Initiators (customers)
- For GNU / Linux (there is a package in Debian GNU / Linux) - Open-iSCSI [1]
Present in the standard Linux assembly since version 2.6.16.
- Microsoft iSCSI Software Initiator Version 2.08 (for Windows 2000 / XP / 2003 Server)
- Linux target implementation (allows you to export a device or file as iSCSI target)
- Free target software implementation for Windows Server 2008 R2
- Free iSCSI Initiator Client Software for Windows XP / 7/8 / 8.1
There is also a monolithic project based on BSD - OpenNAS ,
Based on FreeBSD 7.2, FreeNAS is made (it can act both as a target and as an initiator). [one]
An analogue of FreeNAS, but based on Linux, is the Openfiler project (it can also act as a target or initiator). The status of the project is unclear, none of the developers announced its closure, but the version has not been updated since 2008. [2]
Breakaway from FreeNAS (after the last purchase by iXsystems) fork NAS4Free on FreeBSD updated to version 9.1. [3]
Also, the implementation of data warehouses using iSCSI is performed in the products:
- Nexenta (a free version of Nexenta Community Edition is available)
- Open-E DSS.
Terminology
ISCSI terminology is largely based on the terminology used in SCSI:
- initiator - one who establishes a connection with the target. Most often, this node (in the general case) carries out input / output to block devices.
- target - the exported object. Depending on the context, the target is called either the whole exporting node or only the exported object. The object itself can be divided into luns.
- A portal is a group of targets that are announced together. Most often, one storage node - one portal.
- IQN is the full name of the interaction participant. In practice, there is iqn at the initiator and at the target.
- endpoint - the qualified name of the resource, most often includes iqn, LUN number and an indication of a specific method of access to it (for example, connection number, LUN and IP address from which to access the device).
- LUN (Logical Unit Number) - the number of the object inside the target (target). The closest equivalent is a disk partition or a separate volume.
ISCSI Target Comparison
Benefits
- Storage Consolidation
- Data backup
- Server clustering
- Replication
- Disaster Recovery
- Geographical Distribution of SAN
- QoS
- Security