Basically, VAIO makes calls more efficient “hard coded up-calls with ring buffer” from user mode, increasing performance (1 microsecond latency) without making the entire kernel unstable. This allows for full third party data services without full blown kernel mode access. Why? Enable Ecosystem; Provide customer choice; OOB release schedule; ESXi stability VAIO gives unfettered access to the IO Stream of a VM. Nothing sits between the IO of the VM and the filter framework. Filters are in user space, so full POSIX framework, C library, etc.
VAIO v1 Use Cases Cache -> onboard SSD access, Read/Write Cache; distributed cache management Replication -> Sync access to VM IO event queue; Full IP sockets interface for replication, dynamic load/unload of filters
What does VAIO give you?
-Register for VMDK IO stream and you get everything from that VMDK vSCSI IO event queue
-Tight integration of Vsphere (integrated mgmt VASA and sPBM)
-Can alter IOs before they go to disk
-Automated Deployment (deployed as VIBs) -Flexible -> Full C Libarary Support (extensible va vC extentions)
- VM issues normal IO
- Register VM to AI framework redirects I/O to filter
- after processing the filter returns processing to VAI framework
- I/O continues down I/O pipeline
- I/O result is returned to storage subsystem
- I/O result is redirected to the filter
- After processing the result is returned to VAIO framework
- When all filters are done, VAIO returns the io result to the guest via existing vscsi infrastructure
- Filters run in user space, no vmkernel
- filter objective lives above the system storage stack and below the VM
- filter is deployed per VMDK, cannot be deployed at the DS level and has no notion of data stores
- there will be an eventing mechanism to let you know when a snapshot or vmotoin occurs, but we will not provide any cache coherency or other data replication mechanisms
- filters will only be in C
- will need 32 bit and 64 bit versions (ESXi is a 32bit OS with 64bit address space.)
- one instance per vmx, must be re-entrant as we will be multi-thread in our callbacks
Q4 2014 release for this feature. “RC” quality build with ESXi and vSphere. Requires kernel level changes in ESXi and vSphere. Not backwards compatible and will work with ESXi 6 only. Filters will need to be signed by VMware before they can be implemented. VAIO DK GA early in 2015 (after GA of ESXi 6 GA).
Other Misc Notes: Shadow VM (user world) is used for offline access or when you have processes that need to communicate across worlds (like distributed cache or metadata mapping). IO Filter (VM) and storage profile (datastore) are separate entities. Filter must be running in the cluster you put the VMs. You could split writes as well (for replicating or protecting data to two different VMDKs).