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
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.