locked
Storage Spaces - slabs and columns RRS feed

  • Question

  • Hello,
    caould someone please explain how Storage Spaces hierarchy and data division process. Most of the blogs I have seen rather mystify the workings more according to me. I am confused especially about slab vs column. 

    I taught slab is a thing which is mirrored but from following blog it seems that it's actually interleave what's mirrored:

    http://blog.brodaric.com/?p=2380

    Thank you.

    Pete


    sfs

    Friday, January 12, 2018 11:41 AM

Answers

  • Hi Pete,

    As you said in storage space, storage Spaces starts by dividing the volume into many ‘slabs’, each 256 MB in size. This means our 1 TiB volume has some 4,000 such slabs.

    For each slab, two copies are made and placed on different drives in different servers. This decision is made independently for each slab

    https://blogs.technet.microsoft.com/filecab/2016/11/21/deep-dive-pool-in-spaces-direct/

    For the performance, the NumberOfColumns and Interleave are two important parameters

    In A Two-Column Two-Way Mirror Space,  Storage Spaces writes 256 KB of data to the first column, which is written in duplicate to the first two disks. For the second column of data, Storage Spaces writes 256 KB of data to the second column, which is written in duplicate to the next two disks. The column-to-disk correlation of a two-way mirror is 1:2.

    Please also refer to the article for more details.

    https://dataonsupport.dataonstorage.com/support/solutions/articles/6000015451-what-are-columns-and-how-does-storage-spaces-decide-how-many-to-use-

    Please Note: Since the web site is not hosted by Microsoft, the link may change without notice. Microsoft does not guarantee the accuracy of this information.

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    • Marked as answer by fandango71 Monday, January 15, 2018 11:58 AM
    Monday, January 15, 2018 4:57 AM

All replies

  • this is my prespective:

    Lets consider 2 servers, each with 4 disks, configured with 2 columns and 256kB interleave. We will try to write
    8MB (8192kB) file. FS is NTFS.

    1) NTFS sees 4kB clusters and will do nothing just allocate LBA address and necessary dataruns, consider volume is optimized so only one datarun is in place - i.e for 8MB file it will be 1 datarun with 2048 continuous clusters
    2) Directly under formatted volume is Storage Spaces where everything happens:
        1) When NTFS sends data to disk, SS takes this one write IO and sends IO to second server (mirror),
            on both servers following occurs independently:
        2) SS checks the interleave value - value is 256kB to SS divides 8192kB IO to 32 pieces
        3) SS check number of columns - value is 2 columns so 1st of 32 pieces is written to disk number 1 to some
           (which?) slab, 2nd is written to disk number 2 to some (which?) slab, 3rd is again writtento disk number 1
            and so on

    Is this correct?
    What if NTFS send more IOs for one file because it's fragmented? Does it means it will be written also to disks 3 and 4?

    Thanks.

    Pete


    sfs

    Friday, January 12, 2018 12:18 PM
  • Hi Pete,

    As you said in storage space, storage Spaces starts by dividing the volume into many ‘slabs’, each 256 MB in size. This means our 1 TiB volume has some 4,000 such slabs.

    For each slab, two copies are made and placed on different drives in different servers. This decision is made independently for each slab

    https://blogs.technet.microsoft.com/filecab/2016/11/21/deep-dive-pool-in-spaces-direct/

    For the performance, the NumberOfColumns and Interleave are two important parameters

    In A Two-Column Two-Way Mirror Space,  Storage Spaces writes 256 KB of data to the first column, which is written in duplicate to the first two disks. For the second column of data, Storage Spaces writes 256 KB of data to the second column, which is written in duplicate to the next two disks. The column-to-disk correlation of a two-way mirror is 1:2.

    Please also refer to the article for more details.

    https://dataonsupport.dataonstorage.com/support/solutions/articles/6000015451-what-are-columns-and-how-does-storage-spaces-decide-how-many-to-use-

    Please Note: Since the web site is not hosted by Microsoft, the link may change without notice. Microsoft does not guarantee the accuracy of this information.

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    • Marked as answer by fandango71 Monday, January 15, 2018 11:58 AM
    Monday, January 15, 2018 4:57 AM
  • Hi Mary, 
    few more questions please. As far as I understand "max. stripe bytes = number of colums X interleave bytes"
    Ok, here are the questions:

    1) What if current stripe in cache is less than max. stripe? Does SS (or S2D) wait to write in a most optimal way - i.e. write full stripe every time? I mean let's say I have 384kB file transformed to 384kB IO and stripe has 512kB (2x 256kB), this means IO will be split to 1x 256kB IO + 1x 128kB IO and written.
    Or do SS (S2D) wait for another, let's say 128kB IO to fill the stripe?

    2) Do SS (S2D) + ReFS have some kind of compations - i.e. not writing zero blocks from IOs but rather point to the same zero block every time these block are to be written?

    3) I did not see any advice for filesystem cluster size with SS. Is it best to have cluster size same as interleave size?

    4) Considering questions above, are there any feature/performance and of course price comparison to other virtual storages like NetApp?

    5) Regarding ReFS - I have read in many blogposts that integrity streams are way slow for services like Hyper-V storage which would discriminate SS/S2D from being a serious storage (usually we expect some kind of scrubbing). Can be this issue somehow solved or does MS have some recommendation?

    Thank you.

    Pete


    sfs



    • Edited by fandango71 Monday, January 15, 2018 1:55 PM
    Monday, January 15, 2018 1:35 PM
  • Hi Pete,

    According to the Microsoft, to maximize performance, need to ensure that the interleave value used by the storage space is at least as large as the I/Os of your workload. I/Os that exceed the interleave size are split into multiple stripes, turning one write into multiple writes, reducing performance.

    Please also check article below to get more information about Performance for Storage space.

    https://social.technet.microsoft.com/wiki/contents/articles/15200.storage-spaces-designing-for-performance.aspx

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help.
    If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    Tuesday, January 16, 2018 2:23 AM