When sharing a network drive with their computing setup, most NAS owners tend to use the SMB protocol. While it’s not a bad choice by any means, there are times when you might want to switch to another method to transfer files to and from your NAS.

The iSCSI is one such protocol, though its functionality and use cases differ quite a bit from SMB. So, I’ve put together a detailed guide covering everything you need to know about this high-speed protocol.

What is iSCSI?

And when should you use it?

Running TrueNAS Scale on two different devices, with the iSCSI protocol enabled on both

In technical terms, iSCSI, or Internet Small Computer System Interface, is a protocol that grants block-level access to storage devices over a network. As a more evolved form of the SCSI standard, iSCSI converts SCSI commands into TCP/IP packets and sends them to a storage solution via Ethernet. This allows you to access the block storage like a drive connected physically to your PC.

To put it simply, iSCSI provides an easy way to set up a hard drive or an SSD connected to a NAS/SAN server as a local drive on your system. Unlike your average network share protocol like SMB, once you’ve created a virtual drive for your PC using iSCSI, you can’t transfer data to this drive from another device (unless you set up a way for the other systems to access the drives on said PC).

An Aiffro K100 NAS placed on a PC

As such, the iSCSI service isn’t for those who want a simple way to share files between multiple devices connected to their home network. Instead, iSCSI is useful when you want to allocate more storage to a specific device on your local network without compromising the read/write speeds of a storage drive.

For example, I recently used iSCSI to transfer my Steam library to my NAS devices, as SMB just wasn’t good enough to run large games off a NAS. Although the iSCSI hard drive had slightly longer load times in large open-world games, it worked really well for the most part. In fact, assuming there aren’t any bandwidth-related bottlenecks on your Ethernet connection, an iSCSI drive can provide similar (realistically, slightly lower) transfer speeds than a local drive connected to your PC.

How to set up an iSCSI drive on your NAS?

With the basics out of the way, it’s time to create an iSCSI share and connect it to your PC. We’ll go with TrueNAS Scale for this tutorial, but the overall procedure is the same for TrueNAS Core and first-party operating systems you’ll find in pre-built NAS.

Creating (and optimizing) a Zvol volume for iSCSI

Before you can enable the iSCSI service for a drive, you’ll need to create a Zvol block on it using these steps:

  1. Launch the TrueNAS web UI and log into your account.
  2. Assuming you’ve already configured a dataset on your NAS, head to the Datasets tab and tap the Add Zvol button.
    The procedure to create a new Zvol block in TrueNAS Scale
  3. Enter the Zvol name and Size of the block.
    The procedure to set the Zvol name and size in TrueNAS Scale
  4. Set the Sync option to Standard, Compression to lz4, and ZFS Deduplication to Off.
    Setting the Sync, Compression, and ZFS Deduplication options in TrueNAS Scale
  5. With the Read-only mode disabled and Snapdev set to hidden, change the Block size to 128 kb if you want maximum speed at the expense of efficiency.
    The procedure to set the remaining Zvol values in TrueNAS Scale
    Alternatively, you can decrease this value if speed isn't your primary concern.
  6. Finally, press Save to create your Zvol block.
    The procedure to save the Zvol settings in TrueNAS Scale

Configuring the iSCSI service

With the Zvol storage block ready, it’s time to set up an iSCSI share on your NAS.

  1. Navigate to the Shares tab and hit the Wizard button under the Block (iSCSI) Shares Targets header.
    The procedure to set up a new iSCSI Share in TrueNAS Scale
  2. Enter the Name of iSCSI share before picking Device as the Extent Type and selecting the Zvol block you created earlier as the Device.
    The procedure to configure the settings of a new iSCSI Share in TrueNAS Scale
  3. Pick Modern OS as the Sharing Platform, leave the Target setting to Create New, and press Next.
    The procedure to create a new iSCSI Share in TrueNAS Scale
  4. If you’re the only person accessing the NAS, select None as the Discovery Authentication Method and leave Discovery Authentication Group as is.
    The procedure to configure the portal for an iSCSI Share in TrueNAS Scale
  5. Click on the Add button next to IP Address before choosing 0.0.0.0 from the drop-down list and selecting Next.
    The procedure to set the IP Address for the portal for an iSCSI Share in TrueNAS Scale
  6. Press Save under the Initiator section.
    The procedure to save the iSCSI Share settings in TrueNAS Scale
  7. Back on the Shares tab, click on the three dots and select Turn On Service.
    The procedure to enable an iSCSI Share in TrueNAS Scale

Initializing the iSCSI drive on Windows

After you’ve started the iSCSI service, you’ll need to set up the virtual disk on your PC before you can put the storage drive to good use. First, you have to utilize the built-in iSCSI Initiator Properties utility to connect to the iSCSI target.

  1. Right-click on the Start button and choose Run.
  2. Type iscsicpl into the Open bar and press OK.
    The procedure to open the iSCSI Initiator Properties tool on Windows
  3. Navigate to the Discovery tab and click on Discover Portal.
    The procedure to Discover a Portal in the iSCSI Initiator Properties tool on Windows
  4. Enter the IP address of your NAS device and hit OK.
    The procedure to add the IP address of your NAS under the iSCSI Initiator Properties tool on Windows
    You can use a network scanner app like Fing to detect your NAS' IP address.
  5. Head to the Targets tab, click on the Connect button, and hit OK in the pop-up window.
    The procedure to attach an iSCSI drive using the iSCSI Initiator Properties tool on Windows

Once you’ve paired the iSCSI target with your PC, you’re free to add the block storage as a local disk using the Disk Management tool:

  1. Right-click on the Start button and select Disk Management.
  2. With the GPT selected as the partition style, hit OK to initialize the new drive.
    The procedure to initialize an iSCSI volume using the Disk Management utility on Windows
  3. Once you've located the iSCSI drive, right click on it and select New Simple Volume.
    The procedure to create a new volume using the Disk Management utility on Windows
  4. Hit Next at the Welcome screen and enter the Simple volume size.
    The procedure to allocate storage space to a disk in the Disk Management utility on Windows
    Be sure to hit Next after each step.
  5. Next, assign a Drive Letter to the iSCSI volume.
    Assigning a drive letter to a drive via the Disk Management utility
  6. Select the option to Format the drive and leave the rest of the settings at their default values.
    The procedure to format a drive using the Disk Management utility on Windows
  7. Press Finish after double-checking all the options.
    The procedure to set up an iSCSI volume using the Disk Management utility on Windows

If you followed all steps correctly, the drive should show up in the File Manager, and you can start storing all your files in it.

How to extend the iSCSI drive?

Sometimes, you may end up requiring more storage than what you initially allocated to the iSCSI drive. The only problem is that if you try to extend the drive space without following the proper procedure, you may end up corrupting the storage volume, and in the worst-case scenario, it’s possible to lose some or all of your stored data.

As such, the preliminary step is to shut down the PC that’s paired with the iSCSI volume. This is because leaving the system powered on while tinkering with the Zvol settings can lead to issues later down the line. So, you’ll have to switch to another system, or even a smartphone, for this section.

  1. Inside the TrueNAS Scale web UI, open the Shares tab, click on the triple dots, and choose Turn Off Service.
    The procedure to turn off the iSCSI Service
  2. Switch to the Datasets tab and click on Edit Zvol.
    The procedure to edit the Zvol settings in TrueNAS Scale
  3. Enter the new Zvol size and press Save.
    The procedure to change the Zvol size in TrueNAS Scale
  4. Head back to the Shares tab and Turn on the iSCSI service.
  5. Reboot the other PC connected to the iSCSI drive and open the Drive Management utility.
  6. Right-click on the primary partition of the drive and pick Extend volume…
    The procedure to extend an iSCSI volume using the Disk Management utility on Windows
  7. Make sure the amount of space you wish to add to the drive appears under the Selected section and hit Next.
    The procedure to add more space to an existing iSCSI volume using the Disk Management utility on Windows
  8. Tap the Finish button to save the changes made to the storage volume.

Fulfilling all your local storage requirements with iSCSI

Although it’s accessible over a network, an iSCSI drive delivers surprisingly robust performance. When I ran the games off my makeshift HDD NAS and the Aiffro K100, I didn’t encounter any input latency or lag due to the iSCSI protocol. Sure, the boot times weren’t the very best, especially in open-world titles. But in retrospect, I could’ve shortened the time it took to load the assets if I had 10GbE network cards installed on both NAS devices and my PC.

Heck, there are quite a few use cases for this high-speed protocol besides gaming. If you’re into shooting high-resolution videos and have already choked all your internal drives with footage, iSCSI is worth trying out as long as you aren’t limited by Ethernet bandwidth. Likewise, you should consider giving this protocol a shot if you want to set up block storage for all the virtual machines and containers on your Proxmox home server.