Network and Storage Protocols

Bandwidth Requirements



I'm looking to virtualise an application server. The guest OS will be on a NFS datastore and the data will be on an iSCSI LUN, both sitting on FAS boxes.

How can I asses how much bandwidth will be required by the app server once virtualised from the NFS and iSCSI Ethernet networks? I can work out the disk IO to calculate how many disks will be required for performance, but I can't figure out the networking aspect.




I found this on the net with regards to converting disk IOPS to Kbps:

One I/O could potentially be 4MB. In a Windows environment (from memory) SQL and Exchange write in 4KB chunks. File services are 16KB (?) I'm really hazy on the exact numbers. I've no doubt someone will correct me... You can use the Windows I/O size to do a very (and I mean *very*) rough guesstimate of IOPS. The probblem is that many 4K (or whatever) chunks can be written in one I/O operation...

In short, whilst I/O per second and KB/s are related, you cannot make an absolute correlation between the two figures. If you need accuracy for sizing you should collect the IOPS data.

Is there a more strightforward way of assessing how much bandwidth would be required by a physical machine once virtualised in to an NFS datastore with application data on iSCSI LUNs?



You simply need to multiply the IOPS by the average IO size to get the bandwidth needed.

IO size (as well as other IO caracteristics) can be obtained using the iostat command on a Linux system, and looking at the avgrq-sz column. The unit is in sector, so you need to multiply the number by the sector size of the disk, which is 512 bytes in most case.

If avgrq-sz is not available in iostat output (Unix), you can use this formula : (kr/s + kw/s) / (r/s + w/s)

On Windows, you will need to check the perfmon counter "PhysicalDisk : Avg. Disk Bytes/Transfer".

Thanks for the reply.

To clarify:

     'disk IO transfers per second' / 'disk IO MBps' = Bandwidth requirement