iSCSI boot multiple Windows clients from the same volume?

sotiris.bos

Explorer
Joined
Jun 12, 2018
Messages
56
Hello, I have multiple Windows computers that are almost identically configured and have almost the same data on them.

Instead of wasting SSD's in each computer, I would like to move all of the storage to FreeNAS and iSCSI boot the computers over the network. That will help with space efficiency tremendously because there will be no need for multiple copies of the OS and data.

Is this something that can be accomplished with the FreeNAS iSCSI service or do I need to invest in a Windows Server?

Here is where I got the idea from: https://docs.microsoft.com/en-us/windows-server/storage/iscsi/iscsi-boot-overview
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
iSCSI provides a block storage service. It doesn't care what you do with it.

However, filesystems such as NTFS are not "cluster-aware" filesystems and typically expect to be the sole consumer of a block store used for a filesystem.

I'm not going to do a deep dive to figure out what Microsoft is doing, because quite frankly it is of about zero interest to me. I read enough of your linked article that I think I have the general idea.

It sounds like the "differencing virtual hard disks" is how Microsoft deals with the localization issues; my best guess is that they have a read-only master image, and then some overlay that allows for local file storage. This would be similar to the unionfs capabilities of the BSD UNIX systems. It works. It probably won't be super-fast.

FreeNAS should be quite happy to do the serving-up of raw block devices. I imagine you need one for the main image and then a small one for each overlay. However, FreeNAS won't help you set up the Windows end, which Windows Server might or might not do for you.

Your best bet is to get an eval version of Windows Server and see what it's doing, then see if that can be replicated without any Windows-specific tools.

Well actually your best bet is to come to the realization that it's 2019 and that SSD is dirt cheap. You shouldn't be needing huge amounts of local storage on a PC -- if you do, you are probably doing something seriously wrong or dangerous. Do not store working files on your local PC. Use NAS. Windows itself, browsers, LibreOffice, and a bunch of tools typically works out to ~50GB of storage. 250GB SSD's (fully five times that target number) are in the $25-$50 range.

Upsides include:

- Hella-fast local storage
- No reliance on the network or some franken-boot setup
- A 1G network can transfer data at ~125MBytes/sec - and just to one client at a time. A SATA SSD can do ~500MBytes/sec.
- A 10G network can transfer data at ~1250MBytes/sec. A NVMe SSD can do ~3000+.
- Loss of a boot server (DHCP server, iSCSI server, etc) can take down all your PC's.
- No significant complexity. What happens when your fancy Microsoft data center strategy goes wrong and you don't have the chops to figure out how it went wrong after some update?

Several decades of doing this stuff professionally and having seen train wrecks, the takeaway lesson convinces me not to do the all-the-eggs-in-one-basket thing.

There are Windows imaging tools that can help deploy your "almost identical" PC's. Or if you're masochistic, you can do scripted installs.

From my perspective, I no longer bother to fix Windows boxes. If I have a problem, I blow them away and start over. There's nothing on them that's particularly meaningful. Data's stored on the network.
 

sotiris.bos

Explorer
Joined
Jun 12, 2018
Messages
56
iSCSI provides a block storage service. It doesn't care what you do with it.

Thanks for the advice, I have some thinking and testing to do.

I also want to ask, is iSCSI single threaded on FreeNAS? I read reports on another forum that it takes ~2min to boot a Windows client off of striped Samsung 840s and a 40GbE link. The OP of the post has a Xeon e5 2628L v4 in his FreeNAS box and suggests that the poor single thread performance is responsible for the long boot times.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
Thanks for the advice, I have some thinking and testing to do.

I also want to ask, is iSCSI single threaded on FreeNAS? I read reports on another forum that it takes ~2min to boot a Windows client off of striped Samsung 840s and a 40GbE link. The OP of the post has a Xeon e5 2628L v4 in his FreeNAS box and suggests that the poor single thread performance is responsible for the long boot times.

iSCSI is a TCP service. Because it's TCP, a single client connection does resemble a "single thread."

This isn't a FreeNAS thing, it's an iSCSI thing. But iSCSI in FreeNAS is a kernel service, and is quite able to deal with a bunch of simultaneous clients very aggressively. If your client is capable of multipath, then it can establish multiple connections and will be able to do more in parallel.

Generally speaking, I find people who put "L" CPU's in gear to be a little suspect because it's usually pretty clear they don't really understand the technology. "L" CPU's are supposed to be used in an environment where thermal dissipation is a controlling design issue. Some people seem to have decided that it means that this is a good way to create a "low power" server. Unfortunately, the "L"'s typically achieve that status by decreasing clock frequency and increasing the core count, and reducing the number of cores that can turbo (or even eliminating turbo).

So the problem is that if you take a fixed processing workload that is single-threaded and put it on an "L" CPU, the workload will need to run for a substantially longer amount of time in order to accomplish the work. This doesn't work well. What does work well on the "L" CPU's is to spin up another thread on another core, and in certain cases this can actually be pretty efficient, and then you may gain the benefits of having massively more silicon. You lower your watts somewhat by spending a crapton of money on pricey specialist CPU.

Unfortunately this use case is basically never what's right for NAS. Dealing with workloads as quickly as you can and getting back to idle is the thing that makes a NAS "fast". And a NAS doesn't generally require a bunch of CPU. I've often suggested low core count, high clock CPU's such as the E5-1650v4 (to keep things in the same generation here).

On the other hand, there's no reason to believe that any of this should take any significant amount of time, and I can't imagine what would take two minutes to boot.

I initated a reboot of a Win10 VM here, closest thing I can easily do to your proposed situation. It took 13 seconds to shut down, and then 19 seconds to boot to the login screen. That's off of cheap RAID1 SSD on a cheap Synology NAS on a cheap dual gigE iSCSI.
 
Top