SCSI protocol emulation for virtual storage device stored on NAS device
AssigneeVMware, Inc.
InventorsMichael Nelson, Hao Xu, Daniel J. Scales, Matthew B. Amdur
Life of this patent
Estimating the term…
Abstract
A virtualization technique, in accordance with one embodiment of the present invention, includes emulating the small computing system interface (SCSI) protocol to access a virtual SCSI storage device backed by a file stored on network attached storage (NAS).
Claims27
A method of emulating a virtual small computer system interface (SCSI) storage device on a network attached storage (NAS) device comprising:
- receiving a first plurality of input/output (I/O) requests including SCSI commands;
- translating read and write SCSI commands to NAS compatible read and write commands for accessing the NAS device;
- outputting a second plurality of I/O requests including the NAS compatible read and write commands;
- maintaining stored data reflecting pending SCSI read and write commands to the virtual SCSI storage device;
- and
- using the stored data to further emulate the SCSI commands, wherein the SCSI commands are further emulated by dropping a NAS compatible reply for a SCSI command that the stored data indicates is no longer pending.
A method of emulating a virtual small computer system interface (SCSI) storage device on a network attached storage (NAS) device comprising:
- receiving a first plurality of input/output (I/O) requests including SCSI commands;
- translating read and write SCSI commands to NAS compatible read and write commands for accessing the NAS device;
- outputting a second plurality of I/O requests including the NAS compatible read and write commands;
- changing a permission for accessing a file backing the virtual SCSI storage device from a first identifier to a second identifier in response to a SCSI reserve command;
- utilizing the second identifier for a subsequent I/O request from a given virtual machine on a given physical machine;
- and
- utilizing the first identifier for a subsequent I/O request from any other virtual machine or the given virtual machine on any other physical machine.
A computing device-readable medium including instructions which when executed cause a processor to implement a method for emulating a small computer system interface (SCSI) protocol to access a file backing a virtual SCSI storage device stored on a network attached storage (NAS) device, the method comprising:
- receiving a first plurality of input/output (I/O) requests including SCSI commands;
- translating read and write SCSI commands to NAS compatible read and write commands for accessing the NAS device;
- outputting a second plurality of I/O requests including the NAS compatible read and write commands;
- maintaining stored data reflecting pending SCSI read and write commands to the virtual SCSI storage device;
- and
- using the stored data to further emulate the SCSI commands;
- and
- removing information from the stored data about a given pending SCSI command if a received I/O request is an abort command.
A system comprising:
- a network attached storage (NAS) device adapted to store a file backing a virtual SCSI storage device;
- and
- a computing device adapted to run a virtualization layer for emulating small computer system interface (SCSI) commands by performing the following method:
- receiving a first plurality of input/output (I/O) requests including SCSI commands;
- translating read and write SCSI commands to NAS compatible read and write commands for accessing the NAS device;
- outputting a second plurality of I/O requests including the NAS compatible read and write commands;
- maintaining stored data reflecting pending SCSI read and write commands to the virtual SCSI storage device;
- and
- using the stored data to further emulate the SCSI commands, wherein the SCSI commands are further emulated by dropping a NAS compatible reply for a SCSI command that the stored data indicates is no longer pending.
Dependencies are inferred from the claim text.