Methods and data storage devices for RAID expansion by on-line addition of new DASDs
AssigneeInternational Business Machines Corporation
InventorsDavid Mun-Hien Choy, Jaishankar Moothedath Menon
Life of this patent
Estimating the term…
Abstract
An efficient method for adding one or more new direct access storage devices (DASDs) to a redundant array of independent disks (RAID) array without disrupting ongoing operation of the array. In one embodiment, after contents of new DASDs are initialized off-line, the "parity" or "data" status of specific storage locations in the array is re-mapped, without any changes to the storage locations' contents. In a second embodiment, RAID arrays are efficiently expanded and parallelism is facilitated for original as well as new data by re-mapping parity and data tracks, changing the contents of a minimum number of tracks and maintaining the contents of others.
Claims58
A method for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple storage units, wherein storage units from a plurality of DASD form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, said method comprising the steps of:
- initializing at least one new DASD;
- coupling the at least one new DASD to the controller;
- and
- modifying the stored mapping instructions to designate storage units designated as parity of selected rows as data and to designate storage units of a selected one of the new DASDs in each of the selected rows as parity without physically changing the contents of any storage unit.
A method for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple storage units, wherein storage units from a plurality of DASDs form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, and said method comprising the steps of:
- initializing the new DASD by storing binary zeros thereon;
- coupling the new DASD to the controller;
- modifying the stored mapping instructions to designate all storage units of the new DASD as parity and all storage units of original DASDs as data;
- re-distributing parity storage locations from the new DASD to all DASDs including the new DASD by performing steps, for each particular row, comprising:
- selecting a DASD, thereby defining a target storage location identified by the selected DASD and the particular row;
- if the selected DASD is not the new DASD, exchanging the contents of the target storage location with the storage location of the new DASD in the particular row;
- and
- modifying the stored mapping instructions to designate the target storage location as parity and the new DASDs' storage location of the particular row as data.
A method for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple ordered storage units, wherein similarly ordered storage units from all DASDs form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, said method comprising the steps of:
- coupling the new DASD to the controller;
- initializing the new DASD by storing binary zeros thereon;
- for each particular row:
- selecting a DASD, thereby identifying a target storage location of the current row and selected DASD;
- if the selected DASD is the new DASD, designating the target storage location as parity;
- if the selected DASD is an original DASD and the target storage location was designated parity, designating the storage location of the new DASD at the particular row data;
- if the selected DASD is an original DASD and the target storage location was designated data, copying contents of the target storage location to the storage location of the new DASD at the particular row and storing binary zeros to the target storage location and designating the target storage location parity and designating the storage location of the new DASD at the particular row data.
A method for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple ordered storage units, wherein similarly ordered storage units from all DASDs form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, said method comprising the steps of:
- coupling the new DASD to the controller;
- for each row:
- selecting a DASD, thereby identifying a target storage location of the current row and selected DASD;
- if the selected DASD is the new DASD, storing binary zeros to the target storage location and designating the target storage location parity;
- if the selected DASD is an original DASD and the target storage location was designated parity, designating the storage location of the new DASD at the current row data and storing binary zeros to the new DASD's storage location at the current row;
- and
- if the selected DASD is an original DASD and the target storage location was designated data, copying contents of the target storage location to the storage location of the new DASD at the current row and designating the target storage location parity and designating the storage location of the new DASD at the current row data and storing binary zeros to the target storage location.
A data storage device, tangibly embodying a program of machine-readable instructions executable by a computer to perform method steps for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple storage units, wherein storage units from a plurality of DASD form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, said method steps comprising:
- initializing at least one new DASD;
- coupling the at least one new DASD to the controller;
- and
- modifying the stored mapping instructions to designate storage units designated as parity of selected rows as data and to designate storage units of a selected one of the new DASDs in each of the selected rows as parity without physically changing the contents of any storage unit.
A data storage device, tangibly embodying a program of machine-readable instructions executable by a computer to perform method steps for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple storage units, wherein storage units from a plurality of DASDs form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, said method steps comprising:
- initializing the new DASD by storing binary zeros thereon;
- coupling the new DASD to the controller;
- modifying the stored mapping instructions to designate all storage units of the new DASD as parity and all storage units of original DASDs as data;
- re-distributing parity storage locations from the new DASD to all DASDs including the new DASD by performing steps, for each particular row, comprising:
- selecting a DASD, thereby defining a target storage location identified by the selected DASD and particular row;
- if the selected DASD is not the new DASD, exchanging the contents of the target storage location with the storage location of the new DASD in the particular row;
- and
- modifying the stored mapping instructions to designate the target storage location as parity and the new DASDs' storage location of the particular row as data.
A data storage device, tangibly embodying a program of machine-readable instructions executable by a computer to perform method steps for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple ordered storage units, wherein similarly ordered storage units from all DASDs form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, said method steps comprising:
- coupling the new DASD to the controller;
- initializing the new DASD by storing binary zeros thereon;
- for each particular row:
- selecting a DASD, thereby identifying a target storage location of the particular row and selected DASD;
- if the selected DASD is the new DASD, designating the target storage location parity;
- if the selected DASD is an original DASD and the target storage location was designated parity, designating the storage location of the new DASD at the particular row data;
- if the selected DASD is an original DASD and the target storage location was designated data, copying contents of the target storage location to the storage location of the new DASD at the particular row and storing binary zeros to the target storage location and designating the target storage location parity and designating the storage location of the new DASD at the current row data.
A data storage device, tangibly embodying a program of machine-readable instructions executable by a computer to perform method steps for expanding a redundant array of inexpensive disks (RAID) system while maintaining a balanced data and parity distribution, where said system includes multiple original direct access storage devices (DASDs) coupled to a controller, each said original DASD including multiple ordered storage units, wherein similarly ordered storage units from all DASDs form a "row", and wherein the controller includes an address input and is programmed to access the storage units in response to addresses specified by address signals on the address input, wherein each storage unit corresponds to a unique address as determined by stored mapping instructions accessible by the controller that also designate contents of each storage unit as data or parity, wherein contents of one storage unit of each row is designated as parity, said method steps comprising:
- coupling the new DASD to the controller;
- for each row:
- selecting a DASD, thereby identifing a target storage location of the current row and selected DASD;
- if the selected DASD is the new DASD, storing binary zeros to the target storage location and designating the target storage location parity;
- if the selected DASD is an original DASD and the target storage location was designated parity, designating the storage location of the new DASD at the current row data and storing a binary zero to the new DASD's storage location at the current row;
- and
- if the selected DASD is an original DASD and the target storage location was designated data prior to the designating step, copying contents of the target storage location to the storage location of the new DASD at the current row and designating the target storage location parity and designating the storage location of the new DASD at the current row data and storing a binary zero to the target storage location.
Dependencies are inferred from the claim text.