Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Shared Virtual Disk for a Cluster of Processors with Separate I/O Devices and Shared Memory

IP.com Disclosure Number: IPCOM000105136D
Original Publication Date: 1993-Jun-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 4 page(s) / 150K

Publishing Venue

IBM

Related People

Gheith, AM: AUTHOR [+2]

Abstract

Disclosed is a program to create a shared disk for a cluster of processors which have separate I/O subsystems but a global shared memory. The program uses the shared memory to pass requests and data for disk I/O between processors, making it look like there is one shared disk rather than several disks that can only be accessed by the local processor.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 34% of the total text.

Shared Virtual Disk for a Cluster of Processors with Separate I/O Devices and Shared Memory

      Disclosed is a program to create a shared disk for a cluster of
processors which have separate I/O subsystems but a global shared
memory.  The program uses the shared memory to pass requests and data
for disk I/O between processors, making it look like there is one
shared disk rather than several disks that can only be accessed by
the local processor.

      Computer systems composed of multiple processors offer
potential performance improvements over single processor systems.
Multiple processor computer systems can communicate using network
systems or with shared memory.  A processor architecture consisting
of a number of processors is being investigated.  Each processor has
its own local memory as well as access through a non-blocking switch
to a large amount of global shared memory.  The shared memory is not
cache consistent at the hardware level; all cache consistency issues
must be dealt with in software.  In addition, each processor has its
own private I/O bus.  Each I/O device can only be addressed by the
processor that to which it is attached.

      To improve the ability of the processors to work together to
solve common problems, it is useful to provide I/O devices that can
be accessed from all processors equally.  Such a shared I/O device
would allow processes which are working on a common problem to use
the shared I/O device for storage of common data, while still
allowing these processes to be run on any of the available
processors.

      Shared permanent disk storage would be the most useful form of
a shared I/O device.  We have designed a mechanism to provided shared
permanent disk storage across the machines in the cluster.  This
shared virtual disk extends some of the concepts of the Logical
Volume Manager (LVM) across a cluster of machines.

       A shared virtual disk pseudo-device driver is written for the
AIX 3.2 operating system running on each processor.  The standard
device switch (dev switch) interface is supported by the shared
virtual disk device driver running on each processor.  The shared
virtual disk supports config(), open(), close(), read(), write(),
strategy(), and ioctl() interfaces.  Our implementation redirects all
read() and write() operations as special cases of the strategy()
operation.  The strategy operation is always performed in 4K blocks.
Thus all actual I/O is done only by the strategy routine.

      The strategy routine takes the block address that it is given
and maps it to a (cpu, device, block) triple specifying that the
actual disk block for this block of the shared virtual disk is on
device "device" on processor "cpu" as block "block".  It then
redirects the I/O operation to the actual cpu with the desired disk
block.  For clarity, let us look at both READ and WRITE operations
separately:

      For a READ operation, the shared virtual disk block...