Hands-On Lab: Scalable Hyper-V Storage with iSCSI, VHDs & Storage Pools

7 min read

Virtual Disks, Storage Pools, and iSCSI – The Hidden Challenges of Hyper-V Storage (And How I Solved Them)

Managing storage in virtualized environments isn’t just about adding disks; it’s about ensuring performance, scalability, and resilience while controlling costs and downtime.

Whether dealing with aging on-prem hardware, hybrid workloads, or budget-sensitive cloud extensions, storage design directly impacts stability and growth.

In this hands-on lab, I walk through how I approached Hyper-V storage design while consolidating multiple workloads, focusing on practical, repeatable steps that scale from lab environments to production.

What This Lab Covers

In this tutorial, you’ll learn how to:

  • Add Virtual Hard Disks (VHD/VHDX) to Hyper-V virtual machines

  • Build Storage Pools for elastic capacity and simplified management

  • Create Virtual Disks with appropriate resiliency settings

  • Configure iSCSI Targets and Initiators for remote, shared storage access

  • Extend Hyper-V storage over Ethernet in a cost-effective and scalable way

Why iSCSI for Hyper-V Storage?

iSCSI (Internet Small Computer Systems Interface) allows servers to access block-level storage over standard TCP/IP networks.

Why it works well with Hyper-V:

  • Reliable over Ethernet

  • Budget-friendly compared to Fibre Channel

  • Scales from homelabs to production

  • Suitable for hybrid designs extending to cloud platforms

Lab Environment Overview

  • Hyper-V Hosts

  • Windows Server (File & Storage Services enabled)

  • iSC

  • iSCSI Initiator (Hyper-V host or access server)

Step 1: Add Virtual Hard Disks to Hyper-V VMs

Open Hyper-V Manager

Select the VM → Settings

Under Hard Drive, click Add

Choose New Virtual Hard Disk

Select the Dynamic disk type

Set disk size and location → Apply

Inside the VM:

  • Open Disk Management
  • Initialize, partition, and format the disk (no reboot required)

🔸 Pro Tip:
Use Dynamic disks unless strict performance baselines require fixed provisioning. Dynamic disks conserve storage and scale efficiently.

Step 2: Create a Storage Pool on the Target Server

Create the Storage Pool

Open Server Manager

Navigate to File and Storage Services → Storage Pools

Click Tasks → New Storage Pool

Name the pool

Select available physical disks

Click Create to finalize the storage pool.

 

Step 3: Create a Virtual Disk from the Storage Pool

In Server Manager, go to File and Storage ServicesStorage Pools

Select your storage pool

Under Virtual Disks, click Tasks → New Virtual Disk

Follow the wizard prompts:

  • Choose the storage pool
  • Name the virtual disk
  • Proceed with storage layout selection.

Assign a Resiliency Type

Within the wizard:

Choose the desired Resiliency Layout:

  • Simple – Stripes data for performance (no redundancy)

  • Mirror – Two-way or three-way replication for Fault tolerance

  • Parity – Balanced performance and redundancy using striping with parity.

Provisioning Type

  • Thin – Allocates space as needed

  • Fixed – Reserves the full disk size upfront.

Set the disk size and complete the wizard to create the virtual disk.

Step 4: Format the Disk and Assign a Drive Letter

Still in Server Manager, after the disk is created, Click Tasks → New Volume

Select the server and virtual disk

Specify the volume size.

Assign a drive letter or mount as a folder.

Choose a file system (e.g., NTFS or ReFS), allocation unit size, and provide a volume label.

📌 Finish the wizard to format and mount the volume.

Result:
Storage can now be expanded logically without adding physical disks, extending infrastructure lifespan.

Step 5: Configure iSCSI Target Server (Storage Provider)

Install iSCSI Target Server Role
  • Open Server Manager
  • Manage → Add Roles and Features
  • Select Role-based or feature-based installation → ClickNext.
  • Select your server → Click Next.
  • Under File and Storage Services → Expand File and iSCSI Services
  • Enable iSCSI Target Server
  • Click Next, then Install.

Create an iSCSI Virtual Disk
  • In Server Manager, go to File and Storage Services and click iSCSI.

  • On the right pane, click “To create an iSCSI virtual disk….”

  • Choose a volume or custom path to store the virtual disk

  • Name the disk → Click Next.

  • Set the disk size and choose the type:

    • Fixed – pre-allocated space.

    • Dynamically Expanding – Grows as needed.

    • Differencing – Tracks changes from a parent disk.

  • Click Next to proceed.

Create an iSCSI Target

  • Choose New iSCSI Target → Click Next.
  • Name the target → Click Next.
  • Click Add to specify access servers:
    • Choose IP Address and enter the initiator server’s IP.
  • (Optional) Enable CHAP authentication for security.
  • Review settings → Click Create.

 

Step 6: Configuring iSCSI Initiator for Remote Storage Access Server

 Steps to Access the Storage Pool from the Access Server
  • Enable iSCSI Initiator on the Access Server.

  • Open iSCSI Initiator Properties 

  • Go to Discovery → Click Discover Portal

  • Enter the IP address of the Target Server and click OK.

  • Go to Targets → Select the discovered targetClick Connect.

  • Open Disk Management

  • Initialize and format the newly connected disk.

Final Steps:
  • Assign a drive letter to the disk.
  • Verify connectivity and storage availability.

Final Result

The virtual disk is now exposed via iSCSI.
The initiator server can access it as if it were local storage, enabling:

  • Centralized storage

  • Easier scaling

  • Improved workload consolidation

Key Takeaway

If you’re running Hyper-V or any hypervisor, storage strategy should be a top priority.

Efficient storage management is foundational for:

  • Virtualization

  • Hybrid cloud workloads

  • Enterprise scalability

  • Performance and resilience

Smart storage decisions today prevent outages and costly redesigns tomorrow.


Discover more from Humble Cloud Tech

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners. View more
Cookies settings
Accept
Decline
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active

Who we are

Suggested text: Our website address is: https://humbletech.cloud.

Comments

Suggested text: When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection. An anonymised string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service Privacy Policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.

Media

Suggested text: If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.

Cookies

Suggested text: If you leave a comment on our site you may opt in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year. If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser. When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed. If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.

Embedded content from other websites

Suggested text: Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website. These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.

Who we share your data with

Suggested text: If you request a password reset, your IP address will be included in the reset email.

How long we retain your data

Suggested text: If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognise and approve any follow-up comments automatically instead of holding them in a moderation queue. For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.

What rights you have over your data

Suggested text: If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.

Where your data is sent

Suggested text: Visitor comments may be checked through an automated spam detection service.
Save settings
Scroll to Top