vSphere 5.5 Storage Enhancements Part 8 – DSNRO Changes
This is a topic which has been discussed time and time again. It relates to an advanced storage parameter called Disk.SchedNumReqOutstanding, or DSNRO for short. There are a number of postings out there on the topic, without me getting into the details once again. If you wish to learn more about what this parameter does for you, I recommend reading this post on DSNRO from my good pal Duncan Epping. Suffice to say that this parameter is related to virtual machine I/O fairness. In this post, I’ll talk about changes to DSNRO in vSphere 5.5.
Prior to vSphere 5.5, this parameter was a global setting. In other words, if you had multiple storage arrays presented to an ESXi host, and you set the DSNRO global parameter, this setting was inherited by all storage devices. However, we realized that perhaps we should make this setting more granular since not all storage devices are created equally. For example, if you had an All Flash Arrays presenting LUNs/volumes and some older spinning disk storage also presenting LUNS/volumes, then it would not make sense to set all storage devices with the same DSNRO. Therefore in vSphere 5.5, we have introduced greater granularity and now allow DSNRO to be set on a per device basis. By default, this value is 32 in vSphere 5.5.
DSNRO is now displayed in an esxcli storage core device list output in ESXi 5.5:
~ # esxcli storage core device list -d naa.6000d3100046c5000000000000000010 naa.6000d3100046c5000000000000000010 Display Name: COMPELNT iSCSI Disk (naa.6000d3100046c5000000000000000010) Has Settable Display Name: true Size: 67108864 Device Type: Direct-Access Multipath Plugin: NMP Devfs Path: /vmfs/devices/disks/naa.6000d3100046c5000000000000000010 Vendor: COMPELNT Model: Compellent Vol Revision: 0600 SCSI Level: 5 Is Pseudo: false Status: on Is RDM Capable: true Is Local: false Is Removable: false Is SSD: false Is Offline: false Is Perennially Reserved: false Queue Full Sample Size: 0 Queue Full Threshold: 0 Thin Provisioning Status: yes Attached Filters: VAAI Status: supported Other UIDs: vml.02000100006000d3100046c5000000000000000010436f6d70656c Is Local SAS Device: false Is Boot USB Device: false No of outstanding IOs with competing worlds: 32
To change this value, the command esxcli storage core device set with the option -O|–sched-num-req-outstanding can be used.
-O|--sched-num-req-outstanding= Set number of outstanding IOs with competing worlds.
~ # esxcli storage core device set -O 64 -d naa.6000d3100046c5000000000000000010
~ # esxcli storage core device list -d naa.6000d3100046c5000000000000000010 naa.6000d3100046c5000000000000000010 Display Name: COMPELNT iSCSI Disk (naa.6000d3100046c5000000000000000010) Has Settable Display Name: true Size: 67108864 Device Type: Direct-Access Multipath Plugin: NMP Devfs Path: /vmfs/devices/disks/naa.6000d3100046c5000000000000000010 Vendor: COMPELNT Model: Compellent Vol Revision: 0600 SCSI Level: 5 Is Pseudo: false Status: on Is RDM Capable: true Is Local: false Is Removable: false Is SSD: false Is Offline: false Is Perennially Reserved: false Queue Full Sample Size: 0 Queue Full Threshold: 0 Thin Provisioning Status: yes Attached Filters: VAAI Status: supported Other UIDs: vml.02000100006000d3100046c5000000000000000010436f6d70656c Is Local SAS Device: false Is Boot USB Device: false No of outstanding IOs with competing worlds: 64 ~ #
Timely article..
I heard about this feature at VMworld but hadn’t looked into it in much detail. Is there any way to tie this setting to a storage type (similar to SATP:PSP or something)? This is a feature we’ll want to start testing soon as we have an all flash tier in a few of our datacenters that could benefit from the higher DSNRO setting.
Thanks!
BC