VMware Cloud Community
vm7user
Enthusiast
Enthusiast

Number Of Disk Stripes Per Object

Hello,

some questions about 2-node vSAN:

1) how data is distributed across disks on host if "Number Of Disk Stripes Per Object"=1?

2) if "Number Of Disk Stripes Per Object">1, is there a minimum value for the size of a file that will be divided into stripes?

0 Kudos
3 Replies
TheBobkin
Champion
Champion

@vm7user 

"1) how data is distributed across disks on host if "Number Of Disk Stripes Per Object"=1?"

So, with default Stripe-Width (1) any data-replica <255GB will be comprised of a single component on 1 disk on each node - if the vmdk is >255GB then the data will be striped across multiple components forming a data-replica on each node, these stripes may be placed on the same or multiple disks on each node.

 

"2) if "Number Of Disk Stripes Per Object">1, is there a minimum value for the size of a file that will be divided into stripes?"

If Stripe-Width is set to 2 or higher, yes data-replicas will be striped for at least that value regardless of size and they will have a anti-affinity placement so that stripes are placed on different capacity-tier disks. 

Hence if you want to do e.g. Stripe-Width=5 then there needs to be at least 5x Capacity-tier disks per node to create an Object with this policy or change the policy to this - one caveat is that this is ignored for the purpose of healing redundancy e.g. if you have SW=5 policy on a vmdk and due to failure only have 4x Capacity-tier disks in one node then it will temporarily place rebuilt data-component on a disk that has another stripe.

0 Kudos
vm7user
Enthusiast
Enthusiast

1) I still do not understand how the data will be placed on multiple disks. everything on one disk, and when it is full, then on the second disk, and so on?

2) what is the stripe size? even a 1KB file will be divided into eight parts?

0 Kudos
TheBobkin
Champion
Champion

@vm7user,
1) If you create (or expand) a disk so that it is >255GB then it will stripe the components - whether these get specifically placed on separate disks (e.g. per-disk/component anti-affinity) depends on whether you have SW=>1 e.g. if you have default SW=1 then they may get placed on same disk, if SW=>1 then multiple disks. It doesn't wait until a component is full, it should place them when the Object is created based on the assigned vmdk storage size.

 

2) So, vSAN stores data on Capacity-tier as 1MB blocks (specifically on 'cold' Capacity-tier - data gets manipulated into many other sizes along the way before it gets there), if you create a vmdk with 800GiB assigned space then each replica will be comprised of 4 ~200GiB components and if you write 1KB to it it will get placed in the first available block in the first component - it *does* do a form of round-robining on this e.g. if you look at the same 800GiB when you have written 100GiB to it it will have ~25GiB in each striped component.

0 Kudos