Data Centers

DIY SAN: Windows Server 2012 Storage Spaces and iSCSI target

John Joyner shows you how to use Windows Server 2012 to create an iSCSI target and virtual disk that can be used for storage.

Windows Server 2012 is a jack-of-all-trades when it comes to storage, and it can save you a lot of money. There are exciting and totally new features like Storage Spaces that aggregate storage across drives and disk controllers. Another valuable file server feature is now built into Windows Server 2012 -- that is the ability to define an iSCSI target on the Windows Server, essentially turning the server into a "SAN head". Provisioning a Windows Server 2012 computer with lots of inexpensive storage can be a low cost route to a highly available SAN.

A new option for server-based storage entered the market in April, 2011 when Microsoft made available for free public download a software package that transforms a standard Windows Server 2008 R2 computer into a Windows Storage Server, aka an iSCSI SAN provider. An iSCSI target server and supporting features are now bundled with Windows Server 2012, making it even easier to get the most out of your production, backup, or lab storage resources. Figure A shows the File and iSCSI Services selected in the Windows Server 2012 Add Roles and Features Wizard.

Figure A

Windows Server 2012 File and Storage Services installed via Server Manager

Preparing the iSCSI target server

For production deployments, a dedicated iSCSI network for storage traffic is usually indicated. In enterprise scenarios, prepare a network interface card (NIC) or NIC team to use for iSCSI traffic alone. In demonstration and lab settings, as well as converged networks running at 10GBPS or faster, you can use the same NIC used by the operating system for network traffic.

Of course, the iSCSI Target server should be provisioning with lots of local or direct-attached storage to share out as SAN-based disks to other computers on the iSCSI network. With Windows Server 2012, there is the option to create a Storage Space, a pooled model for managing local and direct attached storage. Storage Spaces maintains the health of these drives and any redundancy selected.

Create a Storage Pool, Virtual Hard Disk, and Volume

The scenario is presenting three (3) 931-GB SATA hard disks over the network in a fault-tolerant manner via iSCSI to a DPM server. The iSCSI client (initiator) feature on the DPM server will view the storage as local or directly attached. DPM can use a volume in this storage for backup of other servers and applications. The business objective is to efficiently use storage that already exists on the network, without for example, growing a conventional SAN.

Follow these steps to create a storage pool and a virtual disk to be used for iSCSI storage:

1.      In the Windows Server 2012 Server Manager, navigate to File and Storage Services | Volumes | Storage Pools. Click Tasks | New Storage Pool. This launches the Storage Pool Wizard. 2.      Name the storage pool and select the group of available raw disks (also known as a primordial pool) to use. Figure B shows the option to select and modify physical disk allocation. Unless you want to manually specify one or more hot spare disks, leave the disk allocation type set to Automatic.

Figure B

Select physical disks to include in the storage pool

3.      Proceed to create virtual disks after completing the Storage Pool Wizard. The New Virtual Disk Wizard will launch.

4.      Select the storage pool created in step 2 and name the volume. In this application, the volume is going to be presented to a System Center Data Protection Manager (DPM) server, so the name "DPM iSCSI Storage" will be used.

5.      Select either Simple, Mirror, or Parity storage layout. Since this storage space in this environment includes three (3) or more hard disks, the parity type is a good choice.

6.      Next select either Thin or Static (Thick) provisioning for the volume. These settings are similar to Dynamic and Fixed virtual hard disks-however this setting is at the aggregate volume level of the storage pool. For DPM, Static provisioning is highly recommended.

7.      Specify the size of the virtual disk. If using thin provisioning, the size can be greater than the free space in the storage pool. For this DPM backup volume application, the option to create the maximum size volume using all the disk space was selected.

8.      Figure C shows the confirm selections page, ready to create the virtual disk inside the storage pool. Click Create to continue.

Figure C

Creating a virtual disk inside the storage pool

9.      Proceed to create a new volume after completing the New Virtual Disk Wizard. The New Volume Wizard will launch.

10.   Confirm the server, select the disk created in step 4, select a volume size, and assign a drive letter (if any) for the new volume. For the DPM backup volume, this demonstration is using all the available space and assigning the drive letter "R:".

11.   Name the volume and as shown in Figure D, optionally enable data deduplication. (Windows Server 2012 data deduplication delivers optimization ratios of 2:1 for general file servers and up to 20:1 for virtualization data.)

12.   Confirm the new volume settings and create the volume.

Figure D

Optionally enable data duplication on the new volume

Create an iSCSI Virtual Disk

Now that a volume is prepared (in this demonstration, a 2.73-TB "R:" drive on the storage server), you can create an iSCSI virtual hard disk (VHD) on the volume and present it to iSCSI clients. Follow these steps to create an iSCSI virtual disk:

  1. In the Windows Server 2012 Server Manager, navigate to File and Storage Services | iSCSI. Click Tasks | New iSCSI Virtual Disk. This launches the New iSCSI Virtual Disk Wizard.
  2. Select the volume created previously ("R:" drive in this demonstration), name the VHD, and select the VHD size, up to the maximum usable space on the volume. Tip: This should be a bit smaller than the volume size to avoid "low disk" alerts.
  3. Select to create a New iSCSI Target and provide a name. This name will be discovered by the iSCSI initiator, and used for the connection.
  4. Add the initiator ID--if the iSCSI client is a Windows Server 2012 computer in the domain, you can query active directory for the initiator query name (IQN). An example IQN is iqn.1991-05.com.microsoft:server.domain.com.
  5. Confirm the new iSCSI virtual disk settings and create the disk.

The iSCSI target and virtual disk are ready to use for production or other purposes. With the iSCSI Initiator applet on any networked iSCSI client computer (such as the DPM server this iSCSI disk was prepared for) you can connect to the new iSCSI virtual disk and start using the storage.

About

John Joyner, MCSE, CMSP, MVP Cloud and Datacenter Management, is senior architect at ClearPointe, a cloud provider of systems management services. He is co-author of the "System Center Operations Manager: Unleashed" book series from Sams Publishing, ...

11 comments
brian995
brian995

Does deduplication make a significant difference on block-based volumes (iSCSI in this case)?  We have NetApp storage and dedup on iSCSI/FC LUNs only gets us about 3% space savings, definitely not worth the additional overhead.

davek7
davek7

Now that I have the iSCSI Virtual Drive created how do I begin to use it? I am trying to create a new Virtual Machine and wanted to use the iSCSI VD and it wont let me. How do I mount this drive to being using it? I am a bit lost as what the next steps are. Any help is appreciated.

blahdiblah9898
blahdiblah9898

So Windows Server 2012 can be an iSCSI target and aggregate local storage without a RAID controller, but I don't see where the high availability is. When your Windows 2012 server needs to be rebooted for Windows updates, or blows up then you've got a SAN outage and all your iSCSI initiators are out of luck, right? Even if you have two of them in a cluster they won't be able to see each other's Storage Pools to keep going if one goes down (as far as I can tell)

ascar.omarov
ascar.omarov

Can you share your knowledge and understanding of where the difference is between Windows Storage Server 2012 and any other edition of Windows Server 2012 which includes iSCSI target functionality? I am confused - if there is iSCSI target in the general purpose Win Server what may be the reason to have a separate "Storage" edition? Thanks

AstroCreep
AstroCreep

Nice article, John, but I do have a few questions: 1. In order to use this feature must I create the "Software RAID" in the Storage Pool wizard as shown above, or could I have already created an array with a hardware RAID controller which I will utilize as an iSCSI target? 2. When presenting a disk as an iSCSI target will it always create it as a VHD? I assume that this is to avoid any issues with SCSI reservations, so that the host and the iSCSI consumer don't both try to do things at the file-level, correct? 3. Most commercial iSCSI SAN vendors recommend having iSCSI traffic being on a separate network than production network traffic along with other considerations (jumbo-frames, flow-control, etc). Is there a way to segment the iSCSI traffic on the host presenting the iSCSI targets? Thanks!

John Joyner
John Joyner

Hi Ascar, there is no functional difference between Windows Server 2012 with storage features enabled and Windows 'storage server'. The general edition has the same storage features that are found on a storage appliance. Hardware OEMs may pre-configure servers optimized for storage role and use Windows Storage Server name, read more here: http://technet.microsoft.com/en-us/library/jj643303.aspx

John Joyner
John Joyner

Thanks Astro, here are some thoughts: 1. Storage Spaces works best when each physical disk is presented. Let Storage Spaces do the the RAID work. Only pre-create a RAID volume using the controller if that is the only way to use the controller. In that scenario, create RAID-0 volumes in the controller, one for each physical disk. 2. In this Microsoft solution, the iSCSI volume presented to the Hyper-V host(s)is actually and always a VHD on the iSCSI Target server. 3. Regarding a separate iSCSI network, I covered in this in the article and this is achieved by having a iSCSI NIC or NIC Team on a different subnet than the data network. When you setup the iSCSI client on the host, use the IP address of the iSCSI Target that is on the iSCSI NIC, this keeps the storage traffic on its own NIC. Good luck, John

ascar.omarov
ascar.omarov

Thank you, John, for the clarification. I am even more curious now how the feature limitation of the storage management functionality would be enforced? If I take WinServer 2012 Standard and enable iSCSI target and surrounding functions then I probably will have unlimited number of hard drives supported etc. and if the same storage management function (iSCSI target) gets enabled on a Foundation server or Essentials then I will not be able to access more than 6 drives, set up dedupe and clustering? Windows Storage Server 2012 however can't act as the domain controller and obviously generic Win Server 2012 Standard can. What edition of Windows Server 2012 is then lying under each edition of Storage Server?

jdadrag
jdadrag

Hi John,

I'm wondering why you recommend storage space which is software level raid over a raid card? We have brand new dell servers with 1GB PERC cards. I have a hard time trusting that a software raid is better than this card? Would you mind explaining a little further as to why your recommending this route?

AstroCreep
AstroCreep

Sorry, I read that but it just didn't click with me at the time. Mea culpa. So I would have two NICs/teams on the storage server and only have iSCSI traffic on the one network/vlan. Let's say 10.1.0.0/24 is for my servers' regular traffic and 10.254.1.0/24 is my iSCSI network. Is there a way to prevent a server from connecting to the iSCSI target via 10.1.0.0? I would want to make sure that traffic remains separate from any "Accidental" connections another admin may attempt. With most other MS Server products (DNS, DHCP, Clustering) you can select which IPs should be utilized for this service in the MMC, and I'd figure this is similar, but I'm curious. Thanks again!

John Joyner
John Joyner

Hi Astro - This is simple, when you define the LUN in the iSCSI Client software, connect to the SAN provider's IP address on the storage network. In your example, if you setup the iSCSI client to use the iSCSI Target by IP address on the 10.251.1.0/24 network, and if both client and server have NICs on the 10.251.1.0/24 network, iSCSI traffic will automatically stay on that network due to IP routing.