mhdganji
Enthusiast
Enthusiast

Virtual Disks Performance

Jump to solution

Hi !

Two Question

1- It it really a great difference in performance of thin disks vs thin disks ? one of my friends says thin is slower because it maybe needs growing and this growing every time can reduce speed and performance. is it really that way ?

2- i dont get difference between lazy-zeroed and eager zeroed disks. what does it mean for eager ...., are blocks are written by 0 at the start?

there are some blocks in the disk ok ? so what is the point to write zero in all of them and then change them to the exact data which we want to be on that blocks ? (maybe there are 1 maybe 0)

Thanks So Much

0 Kudos
1 Solution

Accepted Solutions
a_p_
Leadership
Leadership
So I Will Use Zero-eager Thick Disk for my file server (300 users and  million of files) and lazy-zero for Databases, and thin for operating  systems and machines with low I/O load and low changes

I'd recommend eager-zeroed thick especially for databases. It may depend on the workload, however there are different white papers for how to configure databases. With MS-SQL I usually create eager-zeroed virtual disks and follow MS's best practice wit formatting NTFS with a 64kb Cluster size. In case the OS is Windows 2003, don't forget to align the partition! For details see Disk Partition Alignment Best Practices for SQL Server

Since - as you found out - zeroing is mandatory you will definitely benefit from eager-zeroed virtual disks.

When using thin disks, make sure you have the appropriate alarms in place to avoid out-of-diskspace issues!

André

View solution in original post

0 Kudos
14 Replies
weinstein5
Immortal
Immortal

1) only when the disk needs to grow - so if you are copying a large file and the thin disk needs to grow - it will take longer than if you had used a thick disk - but for most reads and writes the performance will nominal to non existant -

2) Yes eager zero means a zero is written to all blocks in teh virtual disk at creation - You eager zero for primarily for security and slight imp[rovement in disk performance during wirtes - lazy zero allows you to deploy a VM quicker because you do not have to zero out the disk while it is being created -

If you find this or any other answer useful please consider awarding points by marking the answer correct or helpful
a_p_
Leadership
Leadership

Regarding Thin vs. Thick you may want to take a look at Performance study of VMware vStorage Thin Provisioning

André

mhdganji
Enthusiast
Enthusiast

Thanks to both of you and specially Andre with another Great Reference

So I Will Use Zero-eager Thick Disk for my file server (300 users and million of files) and lazy-zero for Databases, and thin for operating systems and machines with low I/O load and low changes

is it ok ?

But something is still a question.

i dont see any improvement in performance by zeroing.

it seems that zeroing (as first pages say) is very good for security (ensure that no prior data remains on storage)

so in my opinion it can improve performance just if this zeroing is a mandatory and should be done every time writing to disk. so if it is in this way, it is clear that zeroing all the blocks at the very first time is very useful in performance.

Am i right here ?

I Learned Some Important Notes From The Link Andre put.

Thin And Thick Peroformance is not very much different (if both are in the same phase, zeroing or post-zeroing)

defragmentation does not significantly improve I/O performance

it is slightly better if you do not put thin disk on the same volume as a thick disk

and the last and final result is summarized in this sentence :

performance in thin-provisioned and thick provisioned disks are very closed together in both zeroing and post zeroing


0 Kudos
a_p_
Leadership
Leadership
So I Will Use Zero-eager Thick Disk for my file server (300 users and  million of files) and lazy-zero for Databases, and thin for operating  systems and machines with low I/O load and low changes

I'd recommend eager-zeroed thick especially for databases. It may depend on the workload, however there are different white papers for how to configure databases. With MS-SQL I usually create eager-zeroed virtual disks and follow MS's best practice wit formatting NTFS with a 64kb Cluster size. In case the OS is Windows 2003, don't forget to align the partition! For details see Disk Partition Alignment Best Practices for SQL Server

Since - as you found out - zeroing is mandatory you will definitely benefit from eager-zeroed virtual disks.

When using thin disks, make sure you have the appropriate alarms in place to avoid out-of-diskspace issues!

André

View solution in original post

0 Kudos
mhdganji
Enthusiast
Enthusiast

Thanks Andre ! In Fact I Had Chosen Eager Zeroed For SQL DB Disks.

Another Question :

You Said :

create eager-zeroed virtual disks and follow MS's best practice wit formatting NTFS with a 64kb Cluster size

What this best practise For Cluster Size of Disks in File Servers ? (My File Server has millions of small files) My Windows 2003 has 512 Byte to 4Kb ( maybe it is just because of my condition and partition size or is a windows 2003 limitation ?) of course i will migrate my file server to 2008

and what is chunk size when you are adding a volume or disk to a vm ? is it something similar to NTFS Cluster ?

0 Kudos
a_p_
Leadership
Leadership

What this best practise For Cluster Size of Disks in File Servers ?

To be honest, I can't tell you. I don't know of a best practice guide nor did I do any tests myself. I usually accept the defaults when formatting the disks (except for SQL as mentioned before). However, way more important then the cluster size is the disk alignment in Windows 2003. By default the partition will start at 31.5kB. With Windows Vista/2008 the partitions are aligned to 1MB by default and that is what I recommend for Windows 2003 also, since an upgrade to Windows 2008 will not modify the partition layouts and it would remain unaligned.

and what is chunk size when you are adding a volume or disk to a vm ? is it something similar to NTFS Cluster ?

I assume you are asking for the storage system's chink size. This is also something where I usually accept the defaults to (except there are best practice guides which recommend different settings), because I think the vendors know their systems and will provide a appropriate defaults.

André

0 Kudos
rickardnobel
Champion
Champion

mhdganji wrote:

What this best practise For Cluster Size of Disks in File Servers ? (My File Server has millions of small files) My Windows 2003 has 512 Byte to 4Kb ( maybe it is just because of my condition and partition size or is a windows 2003 limitation ?)

For almost all partition sizes the default cluster size will be 4KB. I do not think there is any performance gains in changing this, but if you have millions of small files as you say, and if the typical size is less than 4 KB then you could save a lot of diskspace by manually setting a low cluster size when formatting. This is most likely what has been done already for the 512 bytes cluster partitions you have.

My VMware blog: www.rickardnobel.se
0 Kudos
mhdganji
Enthusiast
Enthusiast

Thanks Andre !

I Didn't Even Noticed To Alignment

I Got It Very Well From This Link

http://www.blueshiftblog.com/?p=300

But i did not get so much about SQL Databases and concern about the alignment. I assume that they are both the matter mentioned in this link and aligning partitions make databases queries and access faster (just like as file sharing)

My physical file server is w2k3 and i will move the files into my virtual environment and into a w2k8r2 server so i hope there will not be a problem with alignment. i also hope that default chunk size on p2000 volumes, vmfs blocks and w2k8r2 server blocks will match together and let the disk be aligned very well.

and for the file server i should say that it includes about 500k files with average size of 5MB (excel, pdf, doc, ..)

so as you said it is good to use very low cluster size (512 Byte for example) does it ruin my alignment ?

and one thing i dont get, if the chunk and vmfs are 64k and win2k3 ntfs block size is 32k, what is the problem,? every two ntfs block goes under one vmfs block and every vmfs block goes in one chunk. so it will be aligned. what is the problem here (i think alignment is not ok when for example ntfs block size is 96k and vmfs blocks sized at 64k which will cause bad alignment. !!! ?

0 Kudos
a_p_
Leadership
Leadership

and for the file server i should say that it includes about 500k files with average size of 5MB (excel, pdf, doc, ..)

so as you said it is good to use very low cluster size (512 Byte for example) does it ruin my alignment ?

With the 5MB average file size, there's no reason to use a 512 Byte cluster size for NTFS. I'd stay with the default (4 kB)

and one thing i dont get, if the chunk and vmfs are 64k and win2k3 ntfs block size is 32k, what is the problem,?

The mis-alignment occurs due to the start sector of the partition. With Windows 2003 and earlier the OS use 63 blocks (63 * 512 Bytes = 31.5 kB). Event though http://www.vmware.com/pdf/esx3_partition_align.pdf is a little bit out dated, take a look at Figure 1+2 on pages 5+6 to see what I mean.

André

0 Kudos
mhdganji
Enthusiast
Enthusiast

thanks andre

this part made me be misguided

NTFS Alignment

By default Windows 2003 and older will align on 32K which will not be  aligned with the 64K VMFS layer.  Windows 2008 solves this problem by  aligning on a 1024K boundary – this works because 1024K is divisible by  64K.   For example:

  • 32K (NTFS) / 64K (VMFS) = 0.5 = not aligned.
  • 1024K (NTFS) / 64K (VMFS) = 16.0 = aligned.

i dont see anything here about start sector and ,,,

so i thought there will be alignment with w2k3 (32k) and vmfs (64k)

i think there are some little mistakes in this link and above sentences. there is no refering  to start sector and .. it is just about 32k and 64k which may make people confused like me

by the way, are there 4 entities here ? (important in aligning)

1-Chunk

2-VMFS Block

3-NTFS Block

4-Cluster Size ??

for example every ntfs block in w2k8 is built from several clusters ? (which their default sizes are respectly 1024k and 4k)

0 Kudos
a_p_
Leadership
Leadership

Maybe I need another look at the article from which you took the alignment part you mentioned. Anyway, the purpose of aligning is to make sure that access to one data block in the guest OS does not require reading multiple blocks from the disk.

Btw. if you want to see how your partitions are aligned, run msinfo32 and find the partitions under "Components" -> "Storage" -> "Disks". There you will most likely see a "Partition Starting Offest" of 32,256 Bytes which equals 31.5kB (not 32kB).

André

0 Kudos
mhdganji
Enthusiast
Enthusiast

i just checked that with my windows 7 (on my notebook) and it was 32256 byte ?

am i not aligned ?:smileyplain:

links said that this matter is solved within windows 7 and 2008 and 2008 r2

0 Kudos
a_p_
Leadership
Leadership

Has the Notebook been updated or was it a fresh installation (including partitioning)? By default Windows Vista/7/2008 align to 1MB.

André

0 Kudos
mhdganji
Enthusiast
Enthusiast

i bought it with original windows 7 home pro edition on it.

but there was just one drive and i repartitioned it using some 3rd party software

maybe that is the cause

0 Kudos