1. Understanding iSCSI storage
The Internet Small Computer System Interface (iSCSI) protocol is
an industry-standard protocol that enables sharing of block storage
over a TCP/IP network. iSCSI is designed to transmit and receive Small
Computer System Interface (SCSI) commands and data encapsulated as TCP
packets. This enables computers to utilize storage on an iSCSI-based
storage device such as an iSCSI storage area network (SAN) even when
the computers and SAN are located a long distance apart.
A key benefit of iSCSI-based storage is cost. A typical Fibre
Channel SAN can be prohibitively expensive as a storage solution for
a small or midsized business. In contrast with Fibre Channel, iSCSI
technology requires no special-purpose cabling because the storage
can be transmitted and received over a simple Ethernet network. This
enables iSCSI storage to be deployed using an organization’s
existing network infrastructure, which helps keep the cost of this
solution low.
A second advantage of iSCSI-based storage is that it allows
administrators to locate the storage in a datacenter where it can be
centrally managed and easily backed up. From the perspective of the
user on the computer consuming iSCSI storage, however, the storage
appears as a locally installed drive even though the storage is
actually located on an iSCSI SAN or storage server located in a
remote datacenter. Users can thus copy and save files to iSCSI
storage in the same way they would to hard drives installed in their
computers, which leads to the third benefit of iSCSI-based
storage—namely, transparency and ease of use.
Windows Server 2012 now includes a built-in role service
(iSCSI Target Server) and client component (iSCSI Initiator) that
can be used to implement an iSCSI-based storage solution without the
need of deploying a third-party iSCSI SAN. By using these new
features, you can gain the benefits of iSCSI storage without the
need of purchasing any additional hardware or software. Some of the
possible uses of iSCSI storage include
-
Deploying diskless servers that boot from iSCSI virtual
disks over the network. -
Providing block storage to applications that require or
can benefit from it. -
Creating iSCSI storage test environments where you can
validate applications before deploying them onto a third-party
iSCSI SAN.
Because Microsoft iSCSI technologies are based on industry
standards, you can also deploy Microsoft iSCSI storage solutions
together with third-party solutions in a heterogeneous
environment.
Before you can deploy a Microsoft iSCSI storage solution based
on Windows Server 2012 technologies, you first need to understand
the following iSCSI concepts and terminology (which are illustrated
in Figure 1):
-
iSCSI target server This is
the server or device (for example, SAN) that shares the storage
so that users or applications running on a different computer
can consume it. A target server is sometimes called a
target portal or simply a
portal. In Windows Server 2012, a role
service named iSCSI Target Server is used to implement this
functionality. -
iSCSI target This is an
object created on the target server that allows an iSCSI
initiator to establish a connection. The target also keeps track
of the initiators that are allowed to connect to it and any
iSCSI virtual disks that are associated with it. -
iSCSI virtual disk This
refers to storage backed by a virtual hard disk (VHD) file on
the target server. The virtual disk appears as locally attached
storage on the target server. The disk can also be mounted by
the iSCSI initiator on the computer consuming the storage so
that new volumes can be provisioned from it. An iSCSI virtual
disk is sometimes called an iSCSI LUN
(logical unit number) or simply a
LUN. -
iSCSI initiator This is a
service running on a computer that enables users or applications
to consume storage shared by a target server. On Windows Server
2012, a built-in feature named iSCSI Initiator provides this
functionality by a Windows service called the Microsoft iSCSI
Service. -
Connection This is a TCP
connection between an initiator and a target. Connections
transmit and receive control messages, SCSI commands,
parameters, and data. Typically, an initiator can establish a
connection with only one target. This limitation is in place to
prevent multiple simultaneous read/writes from corrupting the
file system on a volume provisioned from a virtual disk
associated with the target. However, in clustering scenarios it
is common for multiple initiators to form connections with the
same target, although only one initiator is allowed to access
the virtual disk at any one time. -
Session This refers to the
collection of TCP connections linking an initiator with a
target. A session can have one or more connections, and you can
add or remove connections from a session. -
IQN The iSCSI Qualified
Name (IQN) is a unique identifier for a target or initiator. In
the Windows Server 2012 implementation of an iSCSI target
server, a target IQN looks like this:
iqn.1991-05.com.microsoft:<target_server_name>-<target-name>-target
For example, if a target named “fabrikam-db” is created on
a target server named HOST7, the IQN for this target would
be
iqn.1991-05.com.microsoft:host7-fabrikam-db-target
Similarly, in the Windows Server 2012 implementation of
iSCSI initiator, an initiator IQN looks like this:
iqn.1991-05.com.microsoft:<initiator_server_FQDN>
For example, if the iSCSI initiator is running on a server
named HOST4.corp.fabrikam.com, the IQN for this initiator would
be
iqn.1991-05.com.microsoft:host4.corp.fabrikam.com
Windows Server 2012 includes the following tools for managing
the built-in iSCSI initiator and the iSCSI Target Server role
services:
-
Server Manager, specifically the File And Storage Services
page and subpages.
-
Windows PowerShell, specifically the cmdlets included in
the following two modules:
-
iscsitarget This module
includes commands for configuring and managing iSCSI target
servers, targets, and virtual disks. -
iscsi This module
includes commands for configuring and managing iSCSI
initiators, connections, and sessions.
You can use the Get-Command –Module
command to display a list of cmdlets for each of these
modules.
Important
Managing heterogeneous environments
Organizations that have previously downloaded and deployed
the free Microsoft iSCSI Software Target 3.3 for Windows Server
2008 R2 need to be aware that if you need to manage a
heterogeneous environment that includes target servers and
initiators for Windows Server 2012 and Windows Server 2008 R2, you
might need to use separate management tools for doing this. For
example, the iSCSI Target MMC snap-in for Windows Server 2008 R2
cannot be used to manage target servers running Windows Server
2012. Furthermore, Windows PowerShell commands and Windows
Management Instrumentation (WMI) scripts used for managing the
Microsoft iSCSI Software Target 3.3 might need to be modified if
you want to use these commands and scripts to manage the iSCSI
Target Server capabilities in Windows Server 2012.
Deployment considerations
Although enabling iSCSI Target Server to provide block storage
for your environment requires no other hardware than your existing
Ethernet network and a server running Windows Server 2012, there are
some additional considerations you need to be aware of:
-
You cannot host iSCSI virtual disks on physical disks that
have been added to a storage pool on the server. In other words,
iSCSI Target Server in Windows Server 2012 is not compatible
with the new Storage Spaces feature of this platform. -
iSCSI virtual disks can be backed only by VHD files and
not the newer VHDX files that are used by default by Hyper-V in
Windows Server 2012. -
You can create new iSCSI virtual disks only on NTFS
volumes, not on volumes formatted using the new Resilient File
System (ReFS) in Windows Server 2012.
|