Wednesday, August 31, 2016

VMware SCSI Controller Options

This blog article describes the different SCSI controllers in VMware ESXi and why one eventually is better than another one. I had multiple discussions with customers at my current job why and in which situation the LSI Logic SAS or Parallel makes more sense vs. the Paravirtual SCSI adapter (PVSCSI) and I didn’t really find a good blog article or KB explaining what I think is needed to really understand the differences. What I see in most of the environments is the standard adapter for the chosen Operation System and in many cases that is absolutely fine and works well. The problem starts when there is a limitation somewhere but how do find that out? Let’s start from the beginning. With the current version of ESXi 6.0 there are five options of SCSI Controllers which get illustrated in the following table:

Wednesday, August 24, 2016

VMware ESXi Storage I/O Path

For me it was a long time a myth how the I/O flow works in ESXi. For sure I knew what a Path Selection Policy (PSP) as well as the Storage Array Type Plugin (SATP) was and I have heard about vSCSI stats but I was not really able to explain the I/O flow in depth. It was more or less I/O gets from the VM somehow into the kernel. Then you could monitor certain performance values and stats with e.g ESXTOP or change the IOPS settings at the PSP level if a vendor recommend so to improve performance. And yeah there were RAW Devices, different storage protocols and queues. But how does this all work together?

Friday, August 19, 2016

PernixData Backup Best Practices - 4. SAN Backup Mode

To close this backup best practices series we end with the SAN Backup Mode. In SAN Backup Mode the storage device where the VMs actually is running from, is mounted to the backup server to bypass the ESXi environment altogether. The backup then takes place via the storage protocol (Fibre Channel,iSCSI, etc.) locally on the backup server. While this is a very performant way of doing backups it has some dependencies on the backup process itself. The following figure illustrates how the SAN Backup Mode works.

PernixData Backup Best Practices - 3. VADP Hot-Add

The third backup method in this series is vSphere Storage APIs for Data Protection (VADP). The Virtual Disk Development Kit (VDDK) is used with VADP to develop backup and restore software. VDDK is an open API and SDK and includes the following components:
  • The virtual disk library which is a set of C functions call to manipulate VMDK files
  • The disk mount library which is a set of C functions call to remote mount VMDK files
  • Sample C++ codes
  • VDDK utilities which include disk mount and the virtual disk manager
  • Documentation

PernixData Backup Best Practices - 2. NBD (Network Block Device)

The second article describes the method NBD (Network Block Device) which uses some of the virtualization functionality. It is available in the un-encrypted flavour of just NBD or encrypted via the LAN usually termed as NBDSSL For further information about the best practices from a VMware perspective please follow this VMware KB 1035096:

Thursday, August 18, 2016

PernixData Backup Best Practices - 1. Client based backups

The four different backups methods get explained in the following PernixData FVP Backup Best Practices series. We start with the first one which explains client based backups.

To understand backups it is important to understand what kind of backups are possible in a VMware environment and specifically how they interact and work well with PernixData FVP. A good first overview gives the official VMware documentation.

PernixData FVP - Write I/O

This blog article describes Write I/O with PernixData FVP in place. We separate between just read acceleration (Write-Through) and read & write acceleration (Write-Back).

PernixData FVP - Read I/O Misses

When a VM issues an I/O operation FVP determines how it can serve this I/O. In the case of a read I/O an early distinction depends on whether this I/O had been requested before and is already within the FVP cache layer or whether it has to be fetched from the Storage System so later reads of this same block can be server from the FVP layer and the VM can benefit from this I/O acceleration.

Kernel vs. Usermode

Welcome to my first blog article ever. I wrote this a long time ago when thought I would like to start a blog but then it somehow never happened :). But hey here it is now life and in colour. The content of this article started quite a long time ago when I had a class at University with the name "IT Infrastructure" where we went into the depth of the OS kernel, understanding caching in the CPU and how the CPU actually calculates and obviously many
more things. At that time I thought wow being in the OS kernel is very slick but on the flip side something very complicated so eventually dangerous e.g. overwrite memory...C programming...procedural no objects. Of course every OS driver using hardware is also running in the Ring 0 so the complexity really depends a lot on the functionality of the software running in the kernel as well as on QA itself. So enough of the initial talking now let's get into the article.