How do thick and thin provisioning affect all-flash storage array performance? What are the relative benefits of each?
No performance implications. Its just a provisioning strategy...
In thick provisioning, If I need 1GB, I provision 1 GB, even of only 10MB is being used. In thin provisioning, I initially provision 10MB and as the need for more storage grows, I grow the volume with it to the max of 1 GB...
Most everyone uses the provisioning unless there’s a specific reason not to you
Option 1). Thick provisioning is "provisioning storage space(100GB) now"
Option 2). Thin provisioning is" provisioning storage space(100GB) on demand"
For 1). Disk space of 100GB will be immediately reduced from storage/back-end disk
If your data now is 1 GB and you can go max by 3 year is 50GB then you are putting unnecessary I/O load on back-end storage as it will read/write as of 100GB from the day-one.However, the 100GB is already formatted and provisioned.
For 2). Disk space of 100GB will be provisioned from front-end but not immediately be reduced from storage/back-end disk. Instead it will be used/filled up when required.
If your data now is 1 GB and you can go max by 3 year at 50GB then I/O load on back-end storage will read/write as of 50GB after 3 years.
However, the 100GB is not formatted from the back-end/storage but only provisioned at front end/host; so whenever the new block/cell read/write request is initiated, it will also request the storage system to format the required new block/cell; this will end to an extra I/O to and from the storage system.
Option 2). is better for "If your data now is 1 GB and you can go max by 3 year is 50GB"
No benefit of Thin provisioning if you need 100GB to use that all of it now.
Not recommending to use Thin provisioning for databases. Only use where you are sure that you will get additional back-end space later-on.
For all flash storage systems use Build-in compression de-duplication instead. Thin provisioning should be use only for less/non-critical applications.
Thin provisioning is actually making you lazy to correctly provision your storage system.
Lets take it with an example
Suppose i have 100GB of storage in my array and if customer requested for 150GB of lun/volume, we can provision 150GB using thin provisioning , but we can provision only upto 100GB or less using thick provisioning. Of course we have to keep 10% free space for IO and system operations.
There is no concept called over provisioning in Thick, but in thin there we may get over provisioning if we provision more space than available. In some cases we have to monitor carefully for storage in case of thin provisioning overly provisioned. We should keep an eye on utilization...
@Krishnamohan Velpuri interesting. Thanks!
With thick provisioning, the allocated space is reserved completely. The provided capacity is immediately subtracted from the total capacity of the storage and is therefore no longer available.
With thin provisioning, the set size is displayed, but the storage is only ever used as much capacity as was actually used.
This makes over provisioning possible, the capacity of the storage can be better utilized.
Thick and thin provisioning it's a service related configuration, simply as an example you should use the thick option when you are creating it to hold a storage of database to let the virtual hard disk be ready for heavy writing to don't affect the transaction during the partition expansion. And thin you should use it when you are aiming to hold a file server data like imaging as the delay of creating the virtual hard disk file will never impacting the data writing.
For heavily data writing its more suitable to use thick provisioning.
For heavily data reading no problem to use the thin provisioning.
I hope my answer to help you...
Applications require shared block storage to be provisioned. The provisioning is by capacity per LUN (logical unit number) or volume. Thick provisioning means all of the capacity allocated is owned and tied up by that application whether it's used or not. Unused capacity is not sharable by other applications. Thin provisioning essentially virtualizes the provisioning so the application thinks it has a certain amount of exclusive capacity when in reality, it's shared. This makes the capacity more flexible and reduces over provisioning.
First thing first. You have to think about what is your target. as the other colleagues mentioned when you use thick provisioning in the first place - all of the capacity is used once! when you start with thin provisioned systems, the system will allocate just that capacity which is needed.
Unfortunately, Storage systems with low intelligence features, react like a dumb system - you are the admin - you have to know how much you need. When you use thick provisioning, there might be no place for the system left to swing data from the used space in an empty array for example to pack blocks together because they match and the system can gain performance from such actions. And when there is no capacity left what happens? Correct, the systems slow down till it freezes!
Intelligent systems, on the contrary, don't give you that much possibilities - you can choose thick provisioning without thinking about - how much capacity you need to left for the system to do maintenance duties (for example swing data) - so the system already has two possibilities:
One - it let you overprovisioned the capacity to a calculated threshold.
Two- or the contrary it only shows you the place you can use without thinking about the told issue because the system knows what it needs and how often.
Ok - there is something between the written below - there are really interesting systems, which can use both ways in one.
As mentioned, it belongs primarily on the used system - you have to know what kind of approach the used system has to hold up data.
I'm looking for pricing for SSD Storage disks with a capacity of 960GB. Part Number: DS224C SW-FLASH-01-QS X371A-6 CS-BASE-SUPPORT CS-N-SSP.
The disks have to be compatible with the ones we currently have (AFFA220, HA system, Flash Bundle, CAN) In terms of the type, support and licenses.
Thanks for your help!
How does VDI work?
Is All-Flash required, or can it work on other storage arrays?