Most of today’s organizations use storage subsystems to store data for their users and computers. A storage subsystem is a network device dedicated for storing data and is composed of disk drives and controllers. Many organizations have such devices to provide storage space for their servers. Microsoft Windows Server supports multiple technologies that allows a machine to use logical or physical disks that are part of a storage subsystem. In this article we will talk about the concepts and technologies behind storage devices used with Windows Server Editions:
LUN (Logical unit Number) – is a number used to identify a logical unit that is part of a storage subsystem. A LUN can be represented by a portion of a disk, disk, disk array or a portion of a disk array. A SAN device would provide a LUN for each of the machine’s disk to store their data. A LUN is seen by the Server as a physical disk and must be assigned to a machine before data can be stored and retrieved from it. With Windows Server 2008 and newer editions you can create multiple LUN types, as follows:
Simple – the simple LUN can be used to access only physical drives or potions of physical drives
Spanned – simple LUNs that span multiple physical drives.
Striped – used to improve the I/O operations by writing data on multiple physical disks. Data is written into blocks on all of the disks at the same rate which means that if one of the disks fail, the whole data is lost. This LUN type is used when increased I/O performance is required but remember that stripped LUNs cannot be mirrored, extended and do not offer fault tolerance.
Mirrored – a LUN type that provides fault tolerant technologies by writing the same data on two physical disks. Basically, all read and write operations are made on both drives at the same time. Because data is identically on both disks, if one of them fails than the LUN will use the remaining disk. When the broken disk is replaced, data is automatically written to it and thus the LUN is rebuilt.
Striped with Parity (RAID-5)
– fault-tolerant LUN that uses data stripping with parity to store data. IT can be used with minimum of three disks and the RAID is automatically rebuild if one of the disks fails. Parity information is distirbuted among the disks and in case of a failure “subsequent reads can be calculated from the distributed parity such that no data is lost” (Wikipedia)
Using the Provision Storage Wizard you can create LUNs on Fibre Channels or iSCSI connections on a storage device. Once the LUN has been assigned, it will appear as a normal disk in Computer Management console.
iSCSI – is a communication channel that uses initiators to send SCSI commands to s storage device that communicates using the SCSI protocol. Unlike fibre channel connections which use physical connections, iSCSI connections use targets to specify the IP, port and the credentials with which communication between the server and the storage subsystem is made. The iSCSI initiator establishes a connection with the specified target to access all LUNs assigned to it.
Fibre Channel – a LUN assigned to a server that’s using a fibre channel connected directly to the server or cluster. The LUN is accessed using one or more HBA ports (Host Bus Adapter). These ports can be added from the Storage Manager console.
VDS (Virtual Disk Service) – is a technology which allows you to manage storage disks. With VDS, you can use a single utility to manage storage devices both physical and virtual. The VDS hardware provider must be installed prior to creating LUNs. VDS is composed of two elements: the software and hardware providers. The software component manages the interface used to interact with disks and partitions while the hardware component performs the actual interaction with the storage subsystem.
Multipath I/O (MPIO) – is technology that allows a Windows Server to communicate with a storage device using multiple connection paths. It acts like a balancer between the paths and thus ensuring that the communication is not interrupted in case of a failure. MPIO must be installed if the server will connect using multiple iSCSI or HBA connections to the storage subsystem. Once MPIO is configured on a disk, you can enable one of the following policies:
Fail Over Only – uses a single path that is active all the time, the rest are used onl the main one fails. The rest of the paths are in standby and they become active until the active path is again reactivated.
Least Blocks – this load balancing mechanism calculates the best path by comparing the number of data blocks sent. Let’s say you have two I/O operations sent on path 1 that are 50 bytes and 0 bytes sent on path 2. When the next I/O occurs, data will be sent on path 2
Weighted Paths – this load balancing policy sets a priority (weight) to a given path and based on this number, a path would have a higher or lower priority (the larger the number the lower the priority). Each Device Specific Module (DSM) chooses the best path based on the weight number.
Round Robin – this load balancing policy uses all available paths in a balanced way. Simply put, the DSM will choose the first path to send first data blocks, then the second one and so on.
Round Robin with Subset – this load balancing policy allows applications to use a set of specified paths in round robin fashion. Standby paths can be configured if all the primary paths fail.
Least Queue Depth
– uses the current I/O requests to calculate the best path. Suppose you have two requests sent on path 1 and 1 request on path 2. When the next I/O operation will occur, data will be sent on path 2.
That’s about it for the technologies involved in the communication between Windows Servers and SAN devices. I hope you’ve enjoyed this article, for any misunderstandings don’t hesitate to use my comments section. Wish you a great day and stay tuned for the following articles.