Electrical computers and digital data processing systems: input/ – Access locking
Reexamination Certificate
1999-12-29
2001-08-14
Lee, Thomas (Department: 2182)
Electrical computers and digital data processing systems: input/
Access locking
C711S152000, C714S005110, C714S006130, C714S015000
Reexamination Certificate
active
06275892
ABSTRACT:
FIELD OF THE INVENTION
The invention relates generally to the field of computer systems and more particularly provides a method for reconfiguring storage devices of a computer system into logical units of storage space on one or more on-line disk drives without shutting down the system.
BACKGROUND OF THE INVENTION
A computer system includes an operating system whose primary function is the management of hardware and software resources in the computer system. The operating system handles input/output (I/O) requests from software processes or applications to exchange data with on-line external storage devices in a storage subsystem. The applications address those storage devices in terms of the names of file which contain the information to be sent to or retrieved from them. A file system, which is a component of the operating system, translates the file names into logical addresses in the storage subsystem. The file system forwards the I/O requests to an I/O subsystem which, in turn, converts the logical addresses into physical locations in the storage devices and commands the latter devices to engage in the requested storage or retrieval operations.
The on-line storage devices on a computer are configured from one or more disks into logical units of storage space referred to herein as “containers”. Examples of containers include volume sets, stripe sets, mirror sets, and various Redundant Array of Independent Disk (RAID) implementations. A volume set comprises one or more physical partitions, i.e., collections of blocks of contiguous space on disks, and is composed of space on one or more disks. Data is stored in a volume set by filling all of the volume's partitions in one disk drive before using volume partitions in another disk drive. A stripe set is a series of partitions on multiple disks, one partition per disk, that is combined into a single logical volume. Data stored in a stripe set is evenly distributed among the disk drives in the stripe set. A mirror set is composed of volumes on multiple disks, whereby a volume on one disk is a duplicate copy of an equal sized volume on another disk in order to provide data redundancy. A RAID implementation is a collection of partitions, where each partition is composed of space from more than one disk in order to support data redundancy.
In a prior system the I/O subsystem configures the containers through a software entity called a “container manager”. Essentially the container manager sets up a mapping structure to efficiently map logical addresses received from the file system to physical addresses on storage devices. The I/O subsystem also includes a software driver for each type of container configuration on the system. These drivers use the mapping structure to derive the physical addresses, which they then pass to the prospective storage devices for storage and retrieval operations.
Specifically, when the computer system is initially organized, the I/O subsystem's container manager configures the containers and maintains the configuration tables in a container layer of the I/O subsystem. In accordance with a co-pending U.S. patent application, Ser. No. 08/964,304, entitled, File Array Storage Architecture by Richard Napolitano et al., the container layer of the I/O subsystem comprises a Device Switch Table, a Container Array, and a Partition Table. The Device Switch table consists of entries, each of which ordinarily points to the entry point of a container driver that performs I/O operations on a particular type of container. The Container Array is a table of entries, each of which ordinarily points to data structures used by a container driver. There is a fixed one-to-one relationship between the Device Switch Table and the Container Array. The Partition Table contains partition structures copied from disk drives for each container on the system. Each Partition Table entry points to one physical disk drive and allows the container driver to access physical location in the on-line storage devices.
When a software process issues an I/O request, the file system accepts the file oriented I/O request and translates it into an I/O request bound for a particular device. The file system sends the I/O request which includes, inter alia, a block number for the first block of data requested by the application and also a pointer to a Device Switch Table entry which points to a container driver for the container where the requested data is stored. The container driver accesses the Container Array entry for pointers to the data structures used in that container and to Partition Table entries for that container. Based on the information in the data structures, the container driver also accesses Partition Table entries to obtain the starting physical locations of the container on the storage devices. Based on the structures pointed to by the Container Array entry and partition structures in the Partition Table, the container driver sends the I/O request to the appropriate disk drivers for access to the disk drives.
In prior systems, the containers are configured during the initial computer setup and can not be reconfigured during I/O processing without corrupting currently processing I/O requests. As storage needs on a computer system change, the system administrators may need to reconfigure containers to add disks to them or remove disks from them, partition disks drives to form new containers, and/or increase the size of existing containers. If containers are reconfigured during I/O processing in the I/O subsystem, the reconfiguration may corrupt or erase the currently processing I/O requests. However, shutting down the system to reconfigure containers may be unacceptable for businesses that require high availability, i.e., twenty-four hours/seven days a week on-line activity. Therefore, it is an object of the present invention to provide a method for reconfiguring containers without shutting down the system and with minimal interruption to on-line processing.
Yet another object of the present invention is to provide a method of routing processing I/O requests in the I/O subsystem to a different container than previously pointed to by the file system.
SUMMARY OF THE INVENTION
In accordance with the invention, when a reconfiguration operation is initialed, the system blocks incoming I/O requests into the container drivers. The drivers queue all incoming I/O requests, continue to process all the preexisting I/O requests and signal the system upon completion. Upon receiving signals from all the container drivers with preexisting I/O requests, the system reconfigures the container tables as requested in the reconfiguration request. When the reconfiguration is complete, the system unblocks the blocked I/O requests and processes them and subsequent requests in accordance with the new configuration. By temporarily blocking the I/O requests and dynamically reconfiguring the container tables while the file system is still processing other I/O requests, this method performs on-line container reconfigurations with minimal interference with other on-line processing.
More specifically, in the preferred embodiment of the invention, at the beginning of container reconfiguration process, the system sets a configuration flag. Each container driver checks the configuration flag before it begins processing an incoming I/O request. If the flag is not set, the container driver processes the I/O request. Otherwise it copies the requests into a linked list queue. Each container driver maintains a process count of the I/O requests that it is currently processing. Upon completing each I/O request, the container driver decrements the process count. When its I/O processing count equals zero, the container driver sends a completion signal to the container manager.
Upon receiving completion signals from all the container drivers with preexisting I/O requests, the container manager executes the configuration process to reconfigure the containers. After reconfiguring the containers, the container manager clears the configuration flag and sends all queued
Adaptec, Inc.
Cesari and McKenna LLP
Elamin Abdelmoniem
Lee Thomas
LandOfFree
System for on-line disk system configuration does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System for on-line disk system configuration, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System for on-line disk system configuration will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2483464