iSCSI
목요일 3월 26, 2009
iSCSI
In computing, iSCSI
is Internet SCSI (Small Computer System Interface), an Internet Protocol
(IP)-based storage networking standard for linking data storage facilities. By
carrying SCSI commands over IP networks, iSCSI is used to facilitate data transfers
over intranets and to manage storage over long distances. iSCSI can be used to
transmit data over local area networks (LANs), wide area networks (WANs), or
the Internet and can enable location-independent data storage and retrieval.
(for "Internet SCSI") protocol allows clients (called initiators)
to send SCSI commands (CDBs) to SCSI storage devices (targets) on
remote servers. It is a popular Storage Area Network (SAN) protocol, allowing
organizations to consolidate storage into data center storage arrays while
providing hosts (such as database and web servers) with the illusion of
locally-attached disks. Unlike traditional Fibre
Channel, which requires special-purpose cabling, iSCSI can be run over long
distances using existing network infrastructure.
1. Functionality
iSCSI uses
TCP/IP (typically TCP ports 860 and 3260). In essence, iSCSI simply
allows two hosts to negotiate and then exchange SCSI commands using IP
networks. By doing this, iSCSI takes a popular high-performance local storage
bus and emulates it over wide-area networks, creating a storage area network (SAN). Unlike some SAN
protocols, iSCSI requires no dedicated cabling; it can be run over existing
switching and IP infrastructure. As a result, iSCSI is often seen as a low-cost
alternative to Fibre Channel, which requires dedicated
infrastructure.
Although iSCSI
can communicate with arbitrary types of SCSI devices, system administrators
almost always use it to allow server computers (such as database servers) to
access disk volumes on storage arrays. iSCSI SANs often have one of two
objectives:
Storage
consolidation
Organizations move disparate storage resources from servers around their
network to central locations, often in data centers; this allows for more
efficiency in the allocation of storage. In a SAN environment, a server can be
allocated a new disk volume without any change to hardware or cabling.
Disaster
recovery
Organizations mirror storage resources from one data center to a remote
data center, which can serve as a hot standby in the event of a prolonged
outage. In particular, iSCSI SANs allow entire disk arrays to be migrated
across a WAN with minimal configuration changes, in effect making storage
"routable" in the same manner as network traffic.
2.
Storage Area Network (SAN)
In the context
of computer storage, a SAN system allows a machine to
use a network protocol to connect to remote storage resources such as disks and tape drives
on an IP network for block level I/O. From the point of view of the class
drivers and application software, the devices appear as locally attached
devices.
One should
distinguish a SAN device from a network-attached storage (NAS) device,
where computers access resources through a file-based interface rather than
through a low-level device interface. A NAS server arbitrates access from
multiple clients, thus allowing the arbitrary addition of consumers for its
resources. With iSCSI, the burden of synchronizing access to shared resources
generally belongs to the initiator (network client) rather than with the target
(network server). Sharing low-level device interfaces is a requirement of computer
clusters which use specialized cluster software to manage the use of shared
resources.
3. Concepts
3.1 Initiator
An initiator
functions as an iSCSI client. An initiator typically serves the same purpose to
a computer as a SCSI bus adapter would, except that instead of physically
cabling SCSI devices (like hard drives and tape changers), an iSCSI initiator
sends SCSI commands over an IP network. An initiator falls into two broad
types:
Software
initiator :
A software initiator uses code to implement iSCSI. Typically, this
happens in a kernel-resident device driver that uses
the existing NIC and network
stack to emulate SCSI devices for a computer by speaking the iSCSI
protocol. Software initiators are available for most mainstream operating
systems, and this type is the most common mode of deploying iSCSI on computers.
Hardware
initiator :
A hardware initiator uses dedicated hardware, typically in combination
with software (firmware)
running on that hardware, to implement iSCSI. A hardware initiator mitigates
the overhead of iSCSI and TCP processing and Ethernet
interrupts, and therefore may improve the performance of servers that use
iSCSI.
3.1.1. Host Bus Adapter
(HBA)
An iSCSI host
bus adapter (more commonly, "HBA") implements a hardware
initiator. A typical HBA is packaged as a combination of a Gigabit (or 10
Gigabit) Ethernet NIC, some kind of TCP/IP offload
technology (TOE) and a SCSI bus adapter, which is how it appears to the
operating system.
An iSCSI HBA can include PCI option ROM
to allow booting
from an iSCSI target.
3.1.2. TCP Offload Engine (TOE)
A TCP Offload Engine, or "TOE
Card", offers an alternative to a full iSCSI HBA. A TOE
"offloads" the TCP/IP operations for this particular network interface
from the host processor, freeing up CPU cycles for the main host applications.
When a TOE is used rather than an HBA, the host processor still has to perform
the processing of the iSCSI protocol layer itself, but the CPU overhead for
that task is low.
iSCSI HBAs or TOEs are used when the
additional performance enhancement justifies the additional expense of using an
HBA for iSCSI, rather than using a Software-based iSCSI Client (initiator).
3.2. Target
iSCSI refers
to a storage resource located on an iSCSI server (more generally, one of
potentially many instances of iSCSI running on that server) as a
"target". An iSCSI target usually represents hard disk storage. As
with initiators, software to provide an iSCSI target is available for most
mainstream operating systems.
Common
deployment scenarios for an iSCSI target include:
Storage
array
In a data center or enterprise environment, an iSCSI target often
resides in a large storage array, such as a NetApp
filer or an EMC Corporation NS-series computer appliance. A storage array usually
provides distinct iSCSI targets for numerous clients.[1]
Software
target
In a smaller or more specialized setting, mainstream server operating
systems (like Linux,
Solaris or Windows Server 2008) and some specific-purpose
operating systems (like NexentaStor, StarWind
iSCSI SAN, FreeNAS,
iStorage
Server, OpenFiler
or FreeSiOS)
can provide iSCSI target's functionality.
[edit] Logical Unit Number (LUN)
3.3.
Logical Unit Number
In SCSI terminology, LUN stands for logical unit number. A
LUN represents an individually addressable (logical) SCSI device that is part
of a physical SCSI device (target). In an iSCSI environment, LUNs are
essentially numbered disk drives. An initiator negotiates with a target to
establish connectivity to a LUN; the result is an iSCSI connection that
emulates a connection to a SCSI hard disk. Initiators treat iSCSI LUNs the same
way as they would a raw SCSI or IDE hard drive; for instance, rather than
mounting remote directories as would be done in NFS or CIFS environments,
iSCSI systems format and directly manage filesystems on iSCSI LUNs.
In enterprise
deployments, LUNs usually represent slices of large RAID disk arrays, often
allocated one per client. iSCSI imposes no rules or restrictions on multiple
computers sharing individual LUNs; it leaves shared access to a single
underlying filesystem as a task for the operating system.
3.4. Addressing
Special names
refer to both iSCSI initiators and targets. iSCSI provides three name-formats:
iSCSI
Qualified Name (IQN)
Format: iqn.yyyy-mm.{reversed domain name} (e.g. iqn.2001-04.com.acme:storage.tape.sys1.xyz) (Note: there is an
optional colon with arbitrary text afterwards. This text is there to help you
better organize/label your resources.)
Extended
Unique Identifier (EUI)
Format: eui.{EUI-64 bit address} (e.g. eui.02004567A425678D)
T11
Network Address Authority (NAA)
Format: naa.{NAA 64 or 128 bit identifier} (e.g. naa.52004567BA64678D)
IQN format
addresses occur most commonly. They are qualified by a date (yyyy-mm) because
domain names can expire or be acquired by another entity.
The IEEE
Registration authority provides EUI in accordance with the EUI-64 standard. NAA
is part OUI which is provided by the IEEE Registration Authority. NAA name
formats were added to iSCSI in RFC 3980, to provide
compatibility with naming conventions used in Fibre
Channel and SAS storage technologies.
One can
usually define an iSCSI participant by three or four fields:
Hostname or IP Address
(e.g., "iscsi.example.com")
Port Number (e.g., 3260)
iSCSI Name (e.g., the IQN
"iqn.2003-01.com.ibm:00.fcd0ab21.shark128")
An optional CHAP Secret (e.g.,
"secretsarefun")
3.5. iSNS
iSCSI initiators
can locate appropriate storage resources using the Internet Storage Name Service (iSNS)
protocol. In theory, iSNS provides iSCSI SANs with the same management model as
dedicated Fibre Channel SANs. In practice, administrators can
satisfy many deployment goals for iSCSI without using iSNS.










