1

I am trying to build a storage machine for my home network, but I'm running into an issue with understanding how certain things work behind the scenes.

I am hoping to set up a tiered storage system with 4x 240 GB SSDs and 8x 2TB HDDs. This, of course, requires using mirrored Storage Spaces, and I expect to have a single mirrored space encompassing the entirety of the pool.

I am also hoping to set up ISCSI drives using the Windows Server software ISCSI target.

Here is where I get confused. My understanding from everything that I have read implies that the tiering in Storage Spaces is file-oriented. Meaning that it tracks what files are used often, and moves files between the SSD tier and HDD tier appropriately. I further understand that Microsoft’s ISCSI LUNs are virtual hard drive files (VHDX), and that I would have numerous VHDX files residing in my storage space. If my understanding of these two technologies is correct, that implies that the tiering will not actually work, because Storage Spaces will only “see” the VHDX files but not the contents. This further suggests that entire VHDX files may be moved between the SSD and HDD tier, which I suspect is not a great thing considering file size.

Someone I have spoken to IRL expects that the tiering will take place at the block level as opposed to the file level. Sadly, we have no evidence to support the assertion aside from “that’s how it works on other systems”, which I do not find reassuring.

2 Answers 2

0

Although the internal implementation of Storage Spaces does track usage, but this is done at the block level. A storage space "space" (whether mirrored, striped, parity, whatever) is actually surfaced as a disk. So much so that you have to pick a partitioning scheme for it (MBR or GPT), create one or more partitions on it, and format the partition(s) before you can use it.

As an experiment I once created several such "spaces" (let's call them storage space disks) and then set them up as dynamic disks, combining them into one large disk... in parity mode. Performance was not stellar but it worked. :)

The point of this explanation is that we know the Storage Spaces tiering mechanism doesn't work at the file level, because it can't. All file system semantics are gone, absorbed by the file system driver, long before the I/O calls reach the Storage Space "disk". It can no more be aware of file boundaries than an ordinary disk drive is.

So... I've never worked with it, but it does appear that to create an iSCSI LUN you create VHDX files within some disk space on the server. This should work fine on a Storage Space "disk".

3
  • So, if I am understanding you correctly, you are indicating that Storage Spaces functions at the block-level, as my RL associate suggested. Further, you are indicating that, while Microsoft ISCSI LUNs could POSSIBLY be a VHDX file, it is not strictly the case. Thus, the more typical ISCSI-LUN-points-at-a-partition is an option. In the end, you appear to be stating that Tiering will work just fine in that setup. Am I correct?
    – G. Allen
    Mar 25, 2016 at 12:45
  • I've done more reading and edited my answer - I think you can't avoid the VHDX files. But it doesn't matter for your tiering question. The file names, boundaries, aren't visible to the Storage Space driver any more than they are to an ordinary disk driver. It's just in the wrong place in the storage stack for that. Mar 25, 2016 at 12:48
  • I understand, now. In that case, I shall mark this as the answer to my question. Thank you very much for your time!
    – G. Allen
    Mar 25, 2016 at 12:52
1

Microsoft tiering engine doesn't move all the files entirely, it builds so-called "temperature bitmap" and moves chunks or blocks between higher and lower performing tiers. Making long story: you'll be good! There are other issues with Microsoft iSCSI target like f.e. it's not HCL-ed by VMware or Citrix and it doesn't use caching but that's another story.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .