Most of the enterprise SSD support PLP and PS features. SSD will cache the data in DRAM to allow faster writes. Then it will write to the flash. PS technology will make sure controller will stop writing to the NND flash or DRAM when there is a power loss(voltage drop) with the help of internal voltage detection circuit. This way NAND will be intact only the data in DRAM will be lost. PLP will assist to flash the DRAM to NAND and there by make it write protect when certain voltage level it will reach. It increases the time to make sure most of the contents are written.
Write-through is used when the data is written to both cache and persistent storage. Useful for less intensive writes and read intensive applications.
Write-back is used when data is written to cache and a background offload will processor or application will be used to copy the data from the cache to persistent storage. IO will be acknowledged on the cache write itself. low read latency and high throughput for write intensive applications. Cache may need to be powered with an alternate source or cache to be duplicated to avoid data loss on power loss or cache failure.
Write-around is used when cache is bypassed and directly written to the persistent data. Less use of cache and most time cache miss. So higher latency.
Article on how to enable/disable VMFS overwrite protection.
dd command should be available in ESXi as well as all Linux versions. If you face any issues with your application and wants to know the disk performance is deteriorated, you can quickly use the dd command to check the write/read performance of the disk. The disk used can be even a datastore or a network device also. You can cross check with another system or disk where you don’t see any performance issues to compare the results to know if there is any issues with the disk.
Below is the example to run in a VMWare ESXi volume.
/vmfs/volumes/54a55c07-9face633-0999-002590fc98c8 # time dd if=/dev/zero of=test bs=1M count=1024
1024+0 records in 1024+0 records out
real 2m 7.62s user 0m 4.69s sys 0m 0.00s
= ( 1024/127 = 8 MB/s !!! )
In the above example you are trying to write a 1GB file and you are using time command to find out the speed at which the write happened.
Good article on interpreting SCSI sense codes in VMware ESXi and ESX.
HDDs are benchmarked using a queue depth of no more than 4. This article from SanDisk explains why?
Each storage device in ESXi has a unique . Below are the list of useful commands in ESXi.
- esxcli storage nmp device list
- esxcli storage core device list -d
- esxcli storage core device smart get -d
- esxcli storage core path list
- esxcli storage core path list -d