US7072994B2 - Method, system, and program for determining a number of device addresses supported by a target device and configuring device addresses used by a source device to communicate with the target device - Google Patents

Method, system, and program for determining a number of device addresses supported by a target device and configuring device addresses used by a source device to communicate with the target device Download PDF

Info

Publication number
US7072994B2
US7072994B2 US10/096,055 US9605502A US7072994B2 US 7072994 B2 US7072994 B2 US 7072994B2 US 9605502 A US9605502 A US 9605502A US 7072994 B2 US7072994 B2 US 7072994B2
Authority
US
United States
Prior art keywords
addresses
target
device addresses
target device
supported
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US10/096,055
Other versions
US20030177266A1 (en
Inventor
Thomas George Britton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US10/096,055 priority Critical patent/US7072994B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BRITTON, THOMAS GEORGE
Publication of US20030177266A1 publication Critical patent/US20030177266A1/en
Application granted granted Critical
Publication of US7072994B2 publication Critical patent/US7072994B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]

Definitions

  • the present invention relates to a method, system and program for configuring a source device to communicate with at least one target device.
  • a virtual tape storage system consists of data management software and a pool of hard disk drives that caches data to or from tape drives and tape cartridges. Host systems perform input/output (I/O) operations with respect to the tape drives by performing I/O operations with respect to the virtual tape server that emulates the tape storage.
  • VTS virtual tape servers
  • IBM International Business Machines
  • DASD direct access storage device
  • the virtual tape server intercepts a host request to access a volume in the tape library and returns data for such requests from the DASD. If the volume is not in the DASD, then the virtual tape server recalls the volume from the tape drive to the DASD.
  • the virtual tape server can respond to host requests for volumes in tape cartridges from DASD substantially faster than responding to requests for data from a tape drive. In this way, the DASD functions as a tape volume cache for volumes in the tape cartridge library.
  • AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
  • Two virtual tape servers can be combined to create a peer-to-peer virtual tape server system.
  • a peer-to-peer virtual tape server two virtual tape servers, each integrated with a separate tape library and DASD, can provide access and storage for the same data volumes (i.e., peer-to-peer environment).
  • peer-to-peer VTS systems if an operation to recall a file from one virtual tape server subsystem and tape library fails, then the file may still be recalled from the other virtual tape server subsystem and tape library.
  • This redundant architecture provides greater data and tape availability and improved data shadowing in the event a tape or VTS in one subsystem is damaged.
  • VTS peer-to-peer system virtual tape controllers receive host I/O requests and direct such requests to one of the VTS subsystems (an example of a virtual tape controller is the IBM AX0 Virtual Tape Controller (“VTC”) which acts as an intelligent switch between the two virtual tape servers).
  • VTC Virtual Tape Controller
  • the VTC copies the logical volume from the virtual tape server that received the write to the other virtual tape server.
  • Many peer-to-peer configurations include more than one virtual tape controller to provide redundancy and no single point of failure. When one of the virtual tape controllers is off-line, all host activity is directed to the remaining one or more virtual tape controllers.
  • All virtual tape controllers in a Peer-to-Peer VTS elect one of the VTSs to be the focal point or master VTS of the Peer-to-Peer VTS and control the switchover to the other VTS if the master VTS fails.
  • the virtual tape controllers provide a logical view of the peer-to-peer virtual tape system to the host.
  • the virtual tape controllers are also referred in the art as intermediate controllers or directors.
  • VTCs Current Peer-to-Peer VTS systems utilize four VTCs to manage the flow of data between two VTSs.
  • each VTS may be addressed through 64 different device addresses, also referred to as customer device addresses, where each of the four VTCs handle 16 of the customer devices addresses to the VTS.
  • the VTS must support 80 device addresses for the tape, copy, and broadcast devices.
  • device address as used herein in connection with customer devices, copy devices and broadcast devices refers to a path to one of these or another components.
  • VTCs multiple sets of device addresses
  • VTSs another set of device addresses
  • each source device determines device addresses supported by the target device, whereby the device addresses determined by the target devices are non-overlapping.
  • the target device may comprise a first target device.
  • determining a number of device addresses supported by the target device further comprises determining the number of device addresses supported by the first target device and a second target device. A minimum of the number of device addresses supported by the first and second target devices is selected, wherein the selected minimum of the number of device addresses is used with the determined identifier to determine the device addresses to communicate with the first and second target devices.
  • using the selected minimum number of device addresses and the determined identifier to determine the device addresses may further comprise using the selected minimum number of device addresses and the determined identifier to determine a first set of device addresses to communicate with the first target device and a second set of device addresses to communicate with the second target device.
  • the determined identifier may be used to determine a first set of copy device addresses used to copy data from the first target device to the second target device and to determine a second set of copy device addresses used to copy data from the second target device to the first target device.
  • the target device comprises a first target device and the determined device address range comprises a first set of device addresses.
  • a determination is made as to whether the number of device addresses supported by the second target device is less than the number of device addresses used to address the first target device.
  • the determined identifier of the source device is used to determine a second set of device addresses to address the second target device if the number of device addresses supported by the second target device is not less than the number of device addresses configured to address the second target device.
  • the described implementations provide techniques to automatically configure an address space by determining an address range to use to enable communication between one source device and one or more target devices.
  • the determined address range may be based on the identifier of the source device to provide for non-overlapping address ranges for different source devices to use to communicate with the target device.
  • FIG. 1 is a block diagram illustrating a computing environment in which aspects of the invention are implemented
  • FIG. 2 illustrates logic to configure device addresses in accordance with implementations of the invention
  • FIGS. 3 , 4 , and 5 illustrate a configuration of the device addresses used by different controllers to communicate with different virtual tape controllers in accordance with implementations of the invention.
  • FIG. 6 illustrates logic to configure the device addresses used in the event that a newly available target device is detected.
  • FIG. 1 illustrates a peer-to-peer computing environment 2 utilizing two virtual tape servers (VTS) 4 a , 4 b . Additional VTSs may be employed in the peer-to-peer environment 2 .
  • a plurality of host computers 6 a . . . 6 n connect to up to n virtual tape controllers (“VTC”) 8 a , 8 b . . . 8 n , where in certain described implementations n is eight.
  • the host computers 6 a . . . 6 n may connect to the VTCs 8 a , 8 b . . . 8 n through a channel, such as the Enterprise System Connection (ESCON)** channel or any other switching mechanism known in the art (e.g.
  • ESCON Enterprise System Connection
  • the virtual tape controllers 8 a , 8 b . . . 8 n are transparent to the host computers 6 a . . . 6 n (i.e. the host systems 6 a , 6 b operate as if they are to a single virtual tape server).
  • the VTCs 8 a , 8 b . . . 8 n route I/O requests from the hosts 6 a . . . 6 n to one of the VTSs 4 a , 4 b.
  • AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
  • VTSs 4 a , 4 b control access to direct access storage devices (DASD) 10 and 10 b and tape libraries 12 a and 12 b , respectively.
  • Each DASD 10 a , 10 b may comprise numerous interconnected hard disk drives.
  • Each tape library 12 a , 12 b may comprise numerous tape cartridges which may be mechanically loaded into tape drives that the VTS 4 a , 4 b may access.
  • the hosts 6 a . . . 6 n may include any operating system known in the art, such as the IBM OS/390** operating system.
  • the VTSs 4 a , 4 b may comprise a server system including software to emulate a tape library, such as the IBM Magstar** Virtual Tape Server.
  • the virtual tape servers 4 a , 4 b and the virtual tape controllers 8 a , 8 b . . . 8 n may be implemented in separate computers comprising an IBM RS/6000** processor, the IBM AIX** operating system, and the IBM ADSTAR Distributed Management (ADSM) software or Tivoli** Storage Manager to perform the data movement operations between the DASDs 10 a , 10 b , and tape libraries 12 a , 12 b .
  • the tape library 12 a , 12 b may comprise an IBM Magstar** Tape Library, such as the Magstar** 3494 Tape Library, or any other tape library system known in the art.
  • AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
  • the DASDs 10 a , 10 b provide a tape volume cache, which extends the performance benefits of disk cache to access the volumes in the tape libraries 12 a , 12 b and improves performance by allowing host I/O requests to the tape libraries 12 a , 12 b to be serviced from the faster-access DASDs 10 a , 10 b .
  • the VTSs 4 a and 4 b would further include hierarchical storage management (HSM) software (not shown), such as the Tivoli Storage Manager**, to migrate data from the DASD 10 a , 10 b to the tape library 12 a , 12 b and recall data from the tape library 12 a , 12 b to DASD 10 a , 10 b when needed.
  • HSM hierarchical storage management
  • the virtual tape servers 4 a , 4 b appear to the hosts 6 a . . . 6 n as tape drives including tape data volumes.
  • the hosts 6 a . . . 6 n view the virtual tape volumes as actual tape volumes and issue tape management commands, such as mount, and otherwise address the virtual tape servers 4 a , 4 b as a tape control unit. Further details of the virtual tape server and virtual tape controller technology are described in the IBM publication “Magstar** Peer-to-Peer Virtual Tape Server Planning and Implementation Guide,” IBM document no. SG24-6115-00 (Copyright IBM, 2000), which publication is incorporated herein by reference in its entirety. AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
  • Each VTC 8 a , 8 b . . . 8 n includes a configuration routine 14 a , 14 b . . . 14 n to independently determine device addresses to use to communicate with the various system devices.
  • Each VTC 8 a , 8 b . . . 8 n has a unique identifier (ID) 16 a , 16 b . . . 16 n , which in certain implementations comprises an integer value.
  • the IDs 16 a , 16 b . . . 16 n may comprise consecutive integer numbers from 0 to n, wherein there are n minus one VTCs.
  • the configuration routine 14 a , 14 b . . . 14 n uses the unique identifier to determine the device addresses the VTC 8 a , 8 b . . . 8 n recognizes to communicate with system devices, such as the VTSs 4 a , 4 b , etc.
  • the determined device addresses are then maintained in a device address map 18 a , 18 b . . . 18 n maintained in memory during runtime.
  • Each of the customer device addresses is associated with one of the VTCs 8 a , 8 b . . . 8 n , such that the associated VTC 8 a , 8 b . . . 8 n handles the communication with the VTS 4 a , 4 b for that customer device address.
  • FIG. 2 illustrates logic implemented in the configuration routines 14 a , 14 b . . . . 14 n executed by each of the VTCs 8 a , 8 b . . . 8 n , respectively.
  • the VTC 8 a , 8 b . . . 8 n attempts to communicate (at block 52 ) with both VTSs 4 a , 4 b .
  • the VTC 8 a , 8 b . . . 8 n would wait at block 50 until communication with at least one VTSs 4 a , 4 b is established.
  • the configuration operations would proceed to block 54 upon establishing communication with both VTSs 4 a , 4 b or after thirty seconds (or some other time period) has elapsed communication is established with only one VTS 4 a or 4 b . If (at block 54 ) both VTSs 4 a , 4 b did not respond, then the number of supported devices is set (at block 56 ) to the number supported by the single available VTS 4 a or 4 b .
  • both VTS 4 a and 4 b responded and if (at block 58 ) both VTSs do not support the same number of customer device addresses, e.g., 64, 128 or 256, then the number of supported device addresses is set (at block 60 ) to the lowest supported number of device addresses of both the VTSs 4 a and 4 b . If (at block 58 ) both available VTSs 4 a and 4 b support the same number of device addresses, then the number of supported device addresses is set (at block 62 ) to the customer device addresses both VTSs 4 a , 4 b support.
  • control proceeds to block 64 . If (at block 64 ) the supported number of customer device addresses is 64 and if (at block 66 ) the unique identifier (ID) 16 a , 16 b . . . 16 n of the VTC 8 a , 8 b . . . 8 n executing the configuration routine 14 a , 14 b . . . 14 n is greater than three, then control ends with the VTC remaining off-line. Because there are only 64 customer device addresses and each VTC is assigned 16 device addresses, the fourth through eighth VTCs, e.g., VTCs 3 – 7 , are not needed and, thus, remain off-line.
  • the configuration routine 14 a , 14 b . . . 14 n configures (at block 70 ) the customer device addresses in the device address map 18 a , 18 b . . . 18 n as the device addresses in the lower ith range of 16 customer device addresses, where i is the ID of the VTC.
  • the configuration routine 14 a , 14 b . . . 14 n further configures (at block 72 ) the device address map 18 a , 18 b . . .
  • the configuration routine 14 a, 14 b . . . 14 n configures (at block 76 ) the device address map 18 a , 18 b . . . 18 n to indicate customer device addresses in the upper ith range of 16 customer device addresses, where i is the ID of the VTC.
  • the 14 n further configures (at block 78 ) the device address map 18 a , 18 b . . . 18 n to indicate copy device addresses in the upper ith range of three copy device addresses and 4 broadcast device addresses as the last four of the 64 device addresses.
  • the configuration routine 14 a , 14 b . . . 14 n would have to consider the number of copy device addresses and broadcast device addresses needed in the configuration. For instance, to support 64 customer device addresses, the VTS would need to support 80 device addresses total in order to accommodate the 64 customer device addresses, twelve copy device addresses and four broadcast device addresses. To support 128 customer device addresses, the VTS would need to support 160 device addresses total to accommodate the 128 customer device addresses, 24 copy device addresses (three for each of the eight VTCs) and eight broadcast device addresses. To support 256 customer device addresses, the VTS would need to support 288 device addresses total to accommodate the 256 customer device addresses, 24 copy device addresses (three for each of the eight VTCs) and eight broadcast device addresses.
  • FIG. 3 provides a table 100 illustrating the device address configuration generated by the configuration routine 14 a , 14 b . . . 14 n logic of FIG. 2 in the event the configuration is for 64 customer device addresses.
  • the upper address ranges are at a fixed offset from the lower address ranges. As discussed, the lower ranges are used to address one VTS and the upper ranges are used to address the second VTS in the configuration.
  • those VTCs 8 a , 8 b . . . 8 n configured to be online maintain in their memory a device address map 18 a , 18 b . . . 18 n having the customer devices addresses that the hosts 6 a . . . 6 n use to address the VTS 4 a , 4 b through the particular VTC, the copy device addresses that are used to copy data between the VTSs 4 a , 4 b , and the broadcast devices addresses which are shared by the available VTCs 8 a , 8 b . . . 8 n to enable intra-VTC communication.
  • FIG. 4 illustrates a configuration space 130 when the VTSs 4 a and/or 4 b support 128 customer device addresses with hexadecimal device addresses.
  • the configuration space 130 includes lower and upper ranges of customer device addresses 132 and 138 , copy device addresses 134 and 140 , and broadcast addresses 136 and 142 , respectively.
  • FIG. 5 illustrates the configuration space 150 when the VTSs 4 a and/or 4 b support 256 customer device addresses with hexadecimal device addresses.
  • the configuration space 150 includes lower and upper ranges of customer device addresses 152 and 158 , copy device addresses 154 and 160 , and broadcast device addresses 156 and 162 , respectively.
  • the VTCs 8 a , 8 b . . . 8 n may start receiving Input/Output (I/O) requests from the hosts 6 a . . . 6 n.
  • I/O Input/Output
  • FIG. 6 illustrates logic implemented in the configuration routine 14 a , 14 b . . . 14 n in each of the VTCs 8 a , 8 b . . . 8 n to handle the situation where the device addresses are configured for only one VTS 4 a , 4 b and subsequently after the initial configuration, another VTS 4 a , 4 b becomes available.
  • the VTC 8 a , 8 b . . . 8 n detects that another VTS 4 a , 4 b has become available.
  • the VTC 8 a , 8 b . . . 8 n leaves (at block 204 ) the newly available second VTS 4 a , 4 b off-line and generates an error report.
  • a system administrator may then adjust the second VTS to increase its capabilities in response to reviewing the error report indicating the cause of the failure to configure the second VTS.
  • the VTC 8 a , 8 b . . . 8 n sets (at block 206 ) the number of supported device addresses to the number supported by the already configured VTS and validates (at block 208 ) the paths to the second newly available VTS.
  • the VTC 8 a , 8 b . . . 8 n then updates (at block 210 ) the configuration space in its respective device address map 18 a , 18 b . . .
  • the configuration would be performed based on the number of supported device addresses that the already configured first VTS 4 a , 4 b supports.
  • the result of the logic of FIG. 6 is the addition of the upper device address ranges as shown in one of ranges 108 , 110 , and 112 in FIG. 3 , ranges 138 , 140 , and 142 in FIG. 4 , or ranges 158 , 160 , and 162 in FIG. 5 .
  • the described implementations provide techniques to allow the VTCs to configure their own device addresses independently of the other VTCs in a manner that takes into account the capabilities of the VTS with which the VTCs communicate and the possibility that a new VTS will become available.
  • the technique for device address configuration disclosed herein may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof.
  • article of manufacture refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium (e.g., magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.).
  • hardware logic e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.
  • a computer readable medium e.g., magnetic storage medium (e.g., hard disk drives, floppy
  • Code in the computer readable medium is accessed and executed by a processor.
  • the code may further be accessible through a transmission media or from a file server over a network.
  • the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc.
  • a transmission media such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc.
  • implementations have been described in the context of a virtual storage system, variations of the implementations apply to any distributed processing environment where multiple devices must configure an address space to enable communication with at least one other target device, where the other target devices may be capable of different address configurations.
  • Implementations were described with respect to the IBM Peer-to-Peer Virtual Tape Server system. However, the preferred logic could apply to any virtual storage system including magnetic storage or memories when used to cache data from a slower storage system. Moreover, although the implementations were described with respect to a peer-to-peer environment, the preferred logic could apply to other environments such as a client-server environment where copies of the same data is kept at both locations. In addition, the preferred logic could apply to a situation where a copy of the logical volume can be kept in multiple storage devices. For example, the logic can apply in a peer-to-peer-to-peer environment with three separate virtual tape servers where the same logical volume is copied to each virtual tape server.
  • virtual tape controllers were used to select a virtual tape server to handle the recall or I/O access operation.
  • the hosts may make such a selection, or the virtual tape servers may determine which virtual tape server to use to handle the recall or access operation.
  • multiple devices e.g., the VTCs, implemented the address configuration logic.
  • only one device e.g., the VTC, may implement the address configuration logic to communicate with the at least one target device, VTS.

Abstract

Provided are a method, system, and program for configuring device addresses used by a source device to communicate with at least one target device. A determination is made of a number of device addresses supported by a target device and an identifier of the source device. The determined identifier and the number of device addresses supported by the target device are used to determine device addresses from the device addresses supported by the target device to communicate with the target device.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method, system and program for configuring a source device to communicate with at least one target device.
2. Description of the Related Art
A virtual tape storage system consists of data management software and a pool of hard disk drives that caches data to or from tape drives and tape cartridges. Host systems perform input/output (I/O) operations with respect to the tape drives by performing I/O operations with respect to the virtual tape server that emulates the tape storage. In the prior art, one or more virtual tape servers (VTS), such as the International Business Machines (IBM) Magstar** Virtual Tape Server, are each integrated with a tape library comprising numerous tape cartridges and tape drives and a direct access storage device (DASD) comprised of numerous interconnected hard disk drives. The DASD functions as a cache to volumes in the tape library. In VTS operations, the virtual tape server intercepts a host request to access a volume in the tape library and returns data for such requests from the DASD. If the volume is not in the DASD, then the virtual tape server recalls the volume from the tape drive to the DASD. The virtual tape server can respond to host requests for volumes in tape cartridges from DASD substantially faster than responding to requests for data from a tape drive. In this way, the DASD functions as a tape volume cache for volumes in the tape cartridge library. AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
Two virtual tape servers can be combined to create a peer-to-peer virtual tape server system. In a peer-to-peer virtual tape server, two virtual tape servers, each integrated with a separate tape library and DASD, can provide access and storage for the same data volumes (i.e., peer-to-peer environment). In such peer-to-peer VTS systems, if an operation to recall a file from one virtual tape server subsystem and tape library fails, then the file may still be recalled from the other virtual tape server subsystem and tape library. This redundant architecture provides greater data and tape availability and improved data shadowing in the event a tape or VTS in one subsystem is damaged.
In the VTS peer-to-peer system, virtual tape controllers receive host I/O requests and direct such requests to one of the VTS subsystems (an example of a virtual tape controller is the IBM AX0 Virtual Tape Controller (“VTC”) which acts as an intelligent switch between the two virtual tape servers). The VTC copies the logical volume from the virtual tape server that received the write to the other virtual tape server. Many peer-to-peer configurations include more than one virtual tape controller to provide redundancy and no single point of failure. When one of the virtual tape controllers is off-line, all host activity is directed to the remaining one or more virtual tape controllers. All virtual tape controllers in a Peer-to-Peer VTS, as a group, elect one of the VTSs to be the focal point or master VTS of the Peer-to-Peer VTS and control the switchover to the other VTS if the master VTS fails. The virtual tape controllers provide a logical view of the peer-to-peer virtual tape system to the host. The virtual tape controllers are also referred in the art as intermediate controllers or directors.
Current Peer-to-Peer VTS systems utilize four VTCs to manage the flow of data between two VTSs. In prior art implementations, each VTS may be addressed through 64 different device addresses, also referred to as customer device addresses, where each of the four VTCs handle 16 of the customer devices addresses to the VTS. Additionally, there are typically three copy device addresses per VTC which provide addresses used for copying updates between the VTSs and four broadcast device addresses used by all the four VTCs to communicate with each other. The VTS must support 80 device addresses for the tape, copy, and broadcast devices. The term “device address” as used herein in connection with customer devices, copy devices and broadcast devices refers to a path to one of these or another components.
As the Peer-to-Peer systems expand and add additional VTCs and VTSs capable of supporting additional customer device addresses beyond 64, the task of configuring the addresses used by the VTCs increases in complexity. Configuration is further complicated if the VTSs in a Peer-to-Peer system have different addressing capabilities, e.g., one supports 64 device addresses and another supports 128 device addresses, and/or the VTCs have different addressing capabilities, e.g., one supports 16 device addresses and another supports 32 device addresses.
For these reasons, there is a need in the art to provide improved techniques for handling configuration of systems in environments where multiple sets of device addresses, such as VTCs, communicate with another set of device addresses, such as VTSs.
SUMMARY OF THE PREFERRED EMBODIMENTS
Provided are a method, system, and program for configuring device addresses used by a source device to communicate with at least one target device. A determination is made of a number of device addresses supported by a target device and an identifier of the source device. The determined identifier and the number of device addresses supported by the target device are used to determine device addresses from the device addresses supported by the target device to communicate with the target device.
In further implementations, there are a plurality of source device addresses each having a unique identifier. Each source device determines device addresses supported by the target device, whereby the device addresses determined by the target devices are non-overlapping.
In yet additional implementations, the target device may comprise a first target device. In such case, determining a number of device addresses supported by the target device further comprises determining the number of device addresses supported by the first target device and a second target device. A minimum of the number of device addresses supported by the first and second target devices is selected, wherein the selected minimum of the number of device addresses is used with the determined identifier to determine the device addresses to communicate with the first and second target devices.
Still further, using the selected minimum number of device addresses and the determined identifier to determine the device addresses may further comprise using the selected minimum number of device addresses and the determined identifier to determine a first set of device addresses to communicate with the first target device and a second set of device addresses to communicate with the second target device.
In further implementations where there are first and second target devices, the determined identifier may be used to determine a first set of copy device addresses used to copy data from the first target device to the second target device and to determine a second set of copy device addresses used to copy data from the second target device to the first target device.
In additional implementations, the target device comprises a first target device and the determined device address range comprises a first set of device addresses. After detecting the availability of a second target device, a determination is made as to whether the number of device addresses supported by the second target device is less than the number of device addresses used to address the first target device. The determined identifier of the source device is used to determine a second set of device addresses to address the second target device if the number of device addresses supported by the second target device is not less than the number of device addresses configured to address the second target device.
The described implementations provide techniques to automatically configure an address space by determining an address range to use to enable communication between one source device and one or more target devices. The determined address range may be based on the identifier of the source device to provide for non-overlapping address ranges for different source devices to use to communicate with the target device.
BRIEF DESCRIPTION OF THE DRAWINGS
Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
FIG. 1 is a block diagram illustrating a computing environment in which aspects of the invention are implemented;
FIG. 2 illustrates logic to configure device addresses in accordance with implementations of the invention;
FIGS. 3, 4, and 5 illustrate a configuration of the device addresses used by different controllers to communicate with different virtual tape controllers in accordance with implementations of the invention; and
FIG. 6 illustrates logic to configure the device addresses used in the event that a newly available target device is detected.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
In the following description, reference is made to the accompanying drawings which form a part hereof and which illustrate several implementations of the present invention. It is understood that other implementations may be utilized and structural and operational changes may be made without departing from the scope of the present invention.
FIG. 1 illustrates a peer-to-peer computing environment 2 utilizing two virtual tape servers (VTS) 4 a, 4 b. Additional VTSs may be employed in the peer-to-peer environment 2. A plurality of host computers 6 a . . . 6 n connect to up to n virtual tape controllers (“VTC”) 8 a, 8 b . . . 8 n, where in certain described implementations n is eight. The host computers 6 a . . . 6 n may connect to the VTCs 8 a, 8 b . . . 8 n through a channel, such as the Enterprise System Connection (ESCON)** channel or any other switching mechanism known in the art (e.g. fibre channel, Storage Area Network (SAN) interconnections etc.). In the peer-to-peer environment, the virtual tape controllers 8 a, 8 b . . . 8 n are transparent to the host computers 6 a . . . 6 n (i.e. the host systems 6 a, 6 b operate as if they are to a single virtual tape server). As discussed, the VTCs 8 a, 8 b . . . 8 n route I/O requests from the hosts 6 a . . . 6 n to one of the VTSs 4 a, 4 b. AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
In addition, the VTSs 4 a, 4 b control access to direct access storage devices (DASD) 10 and 10 b and tape libraries 12 a and 12 b, respectively. Each DASD 10 a, 10 b may comprise numerous interconnected hard disk drives. Each tape library 12 a, 12 b may comprise numerous tape cartridges which may be mechanically loaded into tape drives that the VTS 4 a, 4 b may access. The hosts 6 a . . . 6 n may include any operating system known in the art, such as the IBM OS/390** operating system. The VTSs 4 a, 4 b may comprise a server system including software to emulate a tape library, such as the IBM Magstar** Virtual Tape Server. For instance, the virtual tape servers 4 a, 4 b and the virtual tape controllers 8 a, 8 b . . . 8 n may be implemented in separate computers comprising an IBM RS/6000** processor, the IBM AIX** operating system, and the IBM ADSTAR Distributed Management (ADSM) software or Tivoli** Storage Manager to perform the data movement operations between the DASDs 10 a, 10 b, and tape libraries 12 a, 12 b. The tape library 12 a, 12 b may comprise an IBM Magstar** Tape Library, such as the Magstar** 3494 Tape Library, or any other tape library system known in the art. AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
The DASDs 10 a, 10 b provide a tape volume cache, which extends the performance benefits of disk cache to access the volumes in the tape libraries 12 a, 12 b and improves performance by allowing host I/O requests to the tape libraries 12 a, 12 b to be serviced from the faster-access DASDs 10 a, 10 b. The VTSs 4 a and 4 b would further include hierarchical storage management (HSM) software (not shown), such as the Tivoli Storage Manager**, to migrate data from the DASD 10 a, 10 b to the tape library 12 a, 12 b and recall data from the tape library 12 a, 12 b to DASD 10 a, 10 b when needed. The virtual tape servers 4 a, 4 b appear to the hosts 6 a . . . 6 n as tape drives including tape data volumes. The hosts 6 a . . . 6 n view the virtual tape volumes as actual tape volumes and issue tape management commands, such as mount, and otherwise address the virtual tape servers 4 a, 4 b as a tape control unit. Further details of the virtual tape server and virtual tape controller technology are described in the IBM publication “Magstar** Peer-to-Peer Virtual Tape Server Planning and Implementation Guide,” IBM document no. SG24-6115-00 (Copyright IBM, 2000), which publication is incorporated herein by reference in its entirety. AIX, ESCON, MAGSTAR, and RS/6000, OS/390, Tivoli are registered trademarks of IBM.
Each VTC 8 a, 8 b . . . 8 n includes a configuration routine 14 a, 14 b . . . 14 n to independently determine device addresses to use to communicate with the various system devices. Each VTC 8 a, 8 b . . . 8 n has a unique identifier (ID) 16 a, 16 b . . . 16 n, which in certain implementations comprises an integer value. The IDs 16 a, 16 b . . . 16 n may comprise consecutive integer numbers from 0 to n, wherein there are n minus one VTCs. The IDs 16 a, 16 b . . . 16 n may be set by an administrator of the system 2 and may be maintained as a system setting or in a file in non-volatile memory or storage. The configuration routine 14 a, 14 b . . . 14 n uses the unique identifier to determine the device addresses the VTC 8 a, 8 b . . . 8 n recognizes to communicate with system devices, such as the VTSs 4 a, 4 b, etc. The determined device addresses are then maintained in a device address map 18 a, 18 b . . . 18 n maintained in memory during runtime. The device address map 18 a, 18 b . . . 18 n indicates the assignment of device addresses to particular system devices, such as customer device addresses (the addresses the hosts 6 a . . . 6 n use to communicate with the VTSs 4 a, 4 b), copy device addresses (addresses used to copy updates from one VTS to the other), and broadcast addresses (addresses the VTCs 8 a, 8 b . . . 8 n use to communicate with each other through the VTSs 4 a, 4 b). Each of the customer device addresses is associated with one of the VTCs 8 a, 8 b . . . 8 n, such that the associated VTC 8 a, 8 b . . . 8 n handles the communication with the VTS 4 a, 4 b for that customer device address.
FIG. 2 illustrates logic implemented in the configuration routines 14 a, 14 b . . . . 14 n executed by each of the VTCs 8 a, 8 b . . . 8 n, respectively. The VTC 8 a, 8 b . . . 8 n attempts to communicate (at block 52) with both VTSs 4 a, 4 b. In certain implementations, the VTC 8 a, 8 b . . . 8 n would wait at block 50 until communication with at least one VTSs 4 a, 4 b is established. The configuration operations would proceed to block 54 upon establishing communication with both VTSs 4 a, 4 b or after thirty seconds (or some other time period) has elapsed communication is established with only one VTS 4 a or 4 b. If (at block 54) both VTSs 4 a, 4 b did not respond, then the number of supported devices is set (at block 56) to the number supported by the single available VTS 4 a or 4 b. Otherwise, if (at block 56) both VTS 4 a and 4 b responded and if (at block 58) both VTSs do not support the same number of customer device addresses, e.g., 64, 128 or 256, then the number of supported device addresses is set (at block 60) to the lowest supported number of device addresses of both the VTSs 4 a and 4 b. If (at block 58) both available VTSs 4 a and 4 b support the same number of device addresses, then the number of supported device addresses is set (at block 62) to the customer device addresses both VTSs 4 a, 4 b support.
From block 56, 60 or 62, control proceeds to block 64. If (at block 64) the supported number of customer device addresses is 64 and if (at block 66) the unique identifier (ID) 16 a, 16 b . . . 16 n of the VTC 8 a, 8 b . . . 8 n executing the configuration routine 14 a, 14 b . . . 14 n is greater than three, then control ends with the VTC remaining off-line. Because there are only 64 customer device addresses and each VTC is assigned 16 device addresses, the fourth through eighth VTCs, e.g., VTCs 37, are not needed and, thus, remain off-line. If (at block 66) the ID 16 a, 16 b . . . 16 n is less than or equal to three, then the configuration routine 14 a, 14 b . . . 14 n configures (at block 70) the customer device addresses in the device address map 18 a, 18 b . . . 18 n as the device addresses in the lower ith range of 16 customer device addresses, where i is the ID of the VTC. The configuration routine 14 a, 14 b . . . 14 n further configures (at block 72) the device address map 18 a, 18 b . . . 18 n to indicate the copy device addresses as the addresses in the lower ith range of three copy device addresses and 4 broadcast device addresses as the last four of the 64 device addresses. The device address assignment is thus maintained in the runtime device address map 18 a, 18 b . . . 18 n, which may be regenerated during initialization. If (at block 74) both VTSs are online, then the configuration routine 14 a, 14 b . . . 14 n configures (at block 76) the device address map 18 a, 18 b . . . 18 n to indicate customer device addresses in the upper ith range of 16 customer device addresses, where i is the ID of the VTC. The configuration routine 14 a, 14 b . . . 14 n further configures (at block 78) the device address map 18 a, 18 b . . . 18 n to indicate copy device addresses in the upper ith range of three copy device addresses and 4 broadcast device addresses as the last four of the 64 device addresses.
In the described implementations, when determining the number of customer device addresses the VTS supports, the configuration routine 14 a, 14 b . . . 14 n would have to consider the number of copy device addresses and broadcast device addresses needed in the configuration. For instance, to support 64 customer device addresses, the VTS would need to support 80 device addresses total in order to accommodate the 64 customer device addresses, twelve copy device addresses and four broadcast device addresses. To support 128 customer device addresses, the VTS would need to support 160 device addresses total to accommodate the 128 customer device addresses, 24 copy device addresses (three for each of the eight VTCs) and eight broadcast device addresses. To support 256 customer device addresses, the VTS would need to support 288 device addresses total to accommodate the 256 customer device addresses, 24 copy device addresses (three for each of the eight VTCs) and eight broadcast device addresses.
FIG. 3 provides a table 100 illustrating the device address configuration generated by the configuration routine 14 a, 14 b . . . 14 n logic of FIG. 2 in the event the configuration is for 64 customer device addresses. There are four lower customer device address ranges 102 of sixteen device addresses each for the four VTCs having IDs 16 a, 16 b . . . 16 n less than three, e.g., customer device hexadecimal address ranges of 0–F, 10–1F, 20–2F, 30–3F. There are four lower copy device address ranges 104 above the customer device address ranges, one for each of the four VTCs 8 a, 8 b . . . 8 n having three device addresses, e.g., copy device hexadecimal address ranges of 40–42, 43–45, 46–48, and 49–4B, and four lower broadcast device addresses 106 above the copy device addresses, e.g., the broadcast device hexadecimal address range of 4C–4F. Similarly, there are four upper customer device address ranges 108 one for each of the four VTC having IDs 16 a, 16 b . . . 16 n less than three, e.g., customer device hexadecimal address ranges of 120–12F, 130–13F, 140–14F, 150–15F. There are four lower copy device address ranges 110 above the customer device ranges 108, one for each of the four VTCs 8 a, 8 b . . . 8 n, e.g., copy device hexadecimal address ranges of 160–162, 163–165, 166–169, and 169–16B, and four upper broadcast device addresses 112 above the copy device addresses, e.g., the broadcast device hexadecimal address range of 16C–16F. In certain implementations, the upper address ranges are at a fixed offset from the lower address ranges. As discussed, the lower ranges are used to address one VTS and the upper ranges are used to address the second VTS in the configuration.
With the described implementations, those VTCs 8 a, 8 b . . . 8 n configured to be online maintain in their memory a device address map 18 a, 18 b . . . 18 n having the customer devices addresses that the hosts 6 a . . . 6 n use to address the VTS 4 a, 4 b through the particular VTC, the copy device addresses that are used to copy data between the VTSs 4 a, 4 b, and the broadcast devices addresses which are shared by the available VTCs 8 a, 8 b . . . 8 n to enable intra-VTC communication.
If (at block 80) the number of supported device addresses is 128, then control proceeds to block 70 to perform the configuration using eight VTCs, each configured to recognize sixteen customer device addresses in their device address maps 18 a, 18 b . . . 18 n. FIG. 4 illustrates a configuration space 130 when the VTSs 4 a and/or 4 b support 128 customer device addresses with hexadecimal device addresses. The configuration space 130 includes lower and upper ranges of customer device addresses 132 and 138, copy device addresses 134 and 140, and broadcast addresses 136 and 142, respectively.
If (at block 80) the number of supported device addresses is 256, then control proceeds to block 84 to perform the steps at blocks 70 through 78, except that each of the VTCs are configured to use 32 customer device addresses FIG. 5 illustrates the configuration space 150 when the VTSs 4 a and/or 4 b support 256 customer device addresses with hexadecimal device addresses. The configuration space 150 includes lower and upper ranges of customer device addresses 152 and 158, copy device addresses 154 and 160, and broadcast device addresses 156 and 162, respectively.
Once the VTCs 8 a, 8 b . . . 8 n determine their configuration, or share of the customer, copy and broadcast device addresses, and update their respective device address maps 18 a, 18 b . . . 18 n with the determined device addresses to use, the VTCs 8 a, 8 b . . . 8 n may start receiving Input/Output (I/O) requests from the hosts 6 a . . . 6 n.
FIG. 6 illustrates logic implemented in the configuration routine 14 a, 14 b . . . 14 n in each of the VTCs 8 a, 8 b . . . 8 n to handle the situation where the device addresses are configured for only one VTS 4 a, 4 b and subsequently after the initial configuration, another VTS 4 a, 4 b becomes available. At block 200, the VTC 8 a, 8 b . . . 8 n detects that another VTS 4 a, 4 b has become available. If (at block 202) the number of device addresses supported by the newly available VTS 4 a, 4 b is less than the number of device addresses supported by the already configured VTS, then the VTC 8 a, 8 b . . . 8 n leaves (at block 204) the newly available second VTS 4 a, 4 b off-line and generates an error report. A system administrator may then adjust the second VTS to increase its capabilities in response to reviewing the error report indicating the cause of the failure to configure the second VTS.
If (at block 202) the number of device addresses supported by the newly available VTS 4 a, 4 b is greater than or equal to the number of device addresses supported by the configured VTS, then the VTC 8 a, 8 b . . . 8 n sets (at block 206) the number of supported device addresses to the number supported by the already configured VTS and validates (at block 208) the paths to the second newly available VTS. The VTC 8 a, 8 b . . . 8 n then updates (at block 210) the configuration space in its respective device address map 18 a, 18 b . . . 18 n to include the upper ith range of customer and copy device addresses for the VTC 8 a, 8 b . . . 8 n, where i is the ID 16 a, 16 b . . . 16 n of the VTC 8 a, 8 b . . . 8 n performing the configuration, and include the upper broadcast range. The configuration would be performed based on the number of supported device addresses that the already configured first VTS 4 a, 4 b supports. The result of the logic of FIG. 6 is the addition of the upper device address ranges as shown in one of ranges 108, 110, and 112 in FIG. 3, ranges 138, 140, and 142 in FIG. 4, or ranges 158, 160, and 162 in FIG. 5.
The described implementations provide techniques to allow the VTCs to configure their own device addresses independently of the other VTCs in a manner that takes into account the capabilities of the VTS with which the VTCs communicate and the possibility that a new VTS will become available.
ADDITIONAL IMPLEMENTATION DETAILS
The technique for device address configuration disclosed herein may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term “article of manufacture” as used herein refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium (e.g., magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.). Code in the computer readable medium is accessed and executed by a processor. The code may further be accessible through a transmission media or from a file server over a network. In such cases, the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise any information bearing medium known in the art.
Although the implementations have been described in the context of a virtual storage system, variations of the implementations apply to any distributed processing environment where multiple devices must configure an address space to enable communication with at least one other target device, where the other target devices may be capable of different address configurations.
In the described implementations, four or eight virtual tape controllers were configured to enable communication with two virtual tape servers were shown. However, the address configuration techniques disclosed herein may be applied to alternative configurations where there are a different number of virtual tape controllers and virtual tape servers.
Implementations were described with respect to the IBM Peer-to-Peer Virtual Tape Server system. However, the preferred logic could apply to any virtual storage system including magnetic storage or memories when used to cache data from a slower storage system. Moreover, although the implementations were described with respect to a peer-to-peer environment, the preferred logic could apply to other environments such as a client-server environment where copies of the same data is kept at both locations. In addition, the preferred logic could apply to a situation where a copy of the logical volume can be kept in multiple storage devices. For example, the logic can apply in a peer-to-peer-to-peer environment with three separate virtual tape servers where the same logical volume is copied to each virtual tape server.
In the above described implementations, virtual tape controllers were used to select a virtual tape server to handle the recall or I/O access operation. In alternative implementations, the hosts may make such a selection, or the virtual tape servers may determine which virtual tape server to use to handle the recall or access operation.
In the described implementations, multiple devices, e.g., the VTCs, implemented the address configuration logic. In alternative implementations, only one device, e.g., the VTC, may implement the address configuration logic to communicate with the at least one target device, VTS.
The foregoing description of the implementations has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many implementations of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

Claims (44)

1. A method for configuring device addresses used by a source device to communicate with at least one target device, comprising:
determining a number of device addresses supported by a target device;
determining an identifier of the source device; and
using the determined identifier and the number of device addresses supported by the target device to determine device addresses from the device addresses supported by the target device to communicate with the target device.
2. The method of claim 1, wherein there are a plurality of source devices each having a unique identifier, and wherein each source device independently determines device addresses supported by the target device, whereby the device addresses determined by the target devices are non-overlapping.
3. The method of claim 2, further comprising:
determining at least one broadcast device address within the device addresses supported by the target device that is used to communicate with other source devices.
4. The method of claim 1, wherein the target device comprises a first target device wherein determining a number of device addresses supported by the target device further comprises:
determining the number of device addresses supported by the first target device and a second target device; and
selecting a minimum of the number of device addresses supported by the first and second target devices, wherein the selected minimum of the number of device addresses is used with the determined identifier to determine the device addresses used to communicate with the first and second target devices.
5. The method of claim 4, wherein using the selected minimum number of device addresses and the determined identifier used to determine the device addresses further comprises:
using the selected minimum number of device addresses and the determined identifier to determine a first set of device addresses to communicate with the first target device and a second set of device addresses to communicate with the second target device.
6. The method of claim 5, further comprising:
using the determined identifier to determine a first set of copy device addresses used to copy data from the first target device to the second target device and to determine a second set of copy device addresses used to copy data from the second target device to the first target device.
7. The method of claim 6, wherein the first and second target devices maintain copies of a same set of data volumes, wherein updates to one of the target devices are copied to the other target device using one device address in the first or second sets of copy device addresses.
8. The method of claim 5, further comprising:
determining a first set of broadcast device addresses within the device addresses supported by the first target device that is used to communicate with other source devices and a second set of broadcast device addresses within the device addresses supported by the second target device used to communicate with the other source devices.
9. The method of claim 5, wherein the target devices comprise virtual tape servers that function as a cache for data volumes in a tape library, wherein the source device comprises virtual tape controllers that enable host systems to communicate tape Input/Output (I/O) requests to the virtual tape servers using the first and second set of device addresses.
10. The method of claim 4, wherein if the selected minimum number of device addresses comprises a predesignated number of device addresses and the determined identifier exceeds a predetermined value associated with the predesignated number of device addresses, then at least one source device having the determined identifier is not configured to use device addresses to communicate with the first and second target devices.
11. The method of claim 10, wherein the selected minimum number of device addresses is capable of comprising one of 64, 128 and 256 device addresses.
12. The method of claim 1, wherein the target device comprises a first target device and the determined device addresses comprise a first set of device addresses, further comprising:
detecting availability of a second target device;
in response to detecting the availability of the second target device, determining whether the number of device addresses supported by the second target device is less than the number of device addresses used to address the first target device; and
using the determined identifier of the source device to determine a second set of device addresses to address the second target device if the number of device addresses supported by the second target device is not less than the number of device addresses configured to address the second target device.
13. The method of claim 12, wherein the number of device addresses configured to address the second target device is equal to the number of device addresses configured to use the first target device.
14. The method of claim 12, wherein no device addresses are configured to use the second target device if the number of device addresses supported by the target device is less than the number of device addresses configured to address the first target device.
15. The method of claim 1, further comprising:
querying the target device to determine the number of device addresses supported by the target device, wherein the target device indicates the number of supported device addresses.
16. A system for configuring device addresses to communicate with at least one target device, comprising:
a source device;
means for determining a number of device addresses supported by a target device;
means for determining an identifier of the source device; and
means for using the determined identifier and the number of device addresses supported by the target device to determine device addresses from the device addresses supported by the target device to communicate with the target device.
17. The system of claim 16, further comprising:
a plurality of source devices, wherein each source device has a unique identifier, and wherein each source device independently determines device addresses supported by the target device, whereby the device addresses determined by the target devices are non-overlapping.
18. The system of claim 17, further comprising:
means for determining at least one broadcast device address within the device addresses supported by the target device that is used to communicate with other source devices.
19. The system of claim 16, wherein the target device comprises a first target device wherein determining a number of device addresses supported by the target device further comprises:
means for determining the number of device addresses supported by the first target device and a second target device; and
mean for selecting a minimum of the number of device addresses supported by the first and second target devices, wherein the selected minimum of the number of device addresses is used with the determined identifier to determine the device addresses used to communicate with the first and second target devices.
20. The system of claim 19, wherein the means for using the selected minimum number of device addresses and the determined identifier used to determine the device addresses further performs:
using the selected minimum number of device addresses and the determined identifier to determine a first set of device addresses to communicate with the first target device and a second set of device addresses to communicate with the second target device.
21. The system of claim 20, further comprising:
means for using the determined identifier to determine a first set of copy device addresses used to copy data from the first target device to the second target device and to determine a second set of copy device addresses used to copy data from the second target device to the first target device.
22. The system of claim 21, wherein the first and second target devices maintain copies of a same set of data volumes, wherein updates to one of the target devices are copied to the other target device using one device address in the first or second sets of copy device addresses.
23. The system of claim 20, further comprising:
means for determining a first set of broadcast device addresses within the device addresses supported by the first target device that is used to communicate with other source devices and a second set of broadcast device addresses within the device addresses supported by the second target device used to communicate with the other source devices.
24. The system of claim 20, wherein the target devices comprise virtual tape servers that function as a cache for data volumes in a tape library, wherein the source device comprises a virtual tape controller that enables host systems to communicate tape Input/Output (I/O) requests to the virtual tape servers using the first and second set of device addresses.
25. The system of claim 20, wherein if the selected minimum number of device addresses comprises a predesignated number of device addresses and the determined identifier exceeds a predetermined value associated with the predesignated number of device addresses, then at least one source device having the determined identifier is not configured to use device addresses to communicate with the first and second target devices.
26. The system of claim 16, wherein the target device comprises a first target device and the determined device addresses comprise a first set of device addresses, further comprising:
means for detecting availability of a second target device;
means for determining whether the number of device addresses supported by the second target device is less than the number of device addresses used to address the first target device in response to detecting the availability of the second target device; and
means for using the determined identifier of the source device to determine a second set of device addresses to address the second target device if the number of device addresses supported by the second target device is not less than the number of device addresses configured to address the second target device.
27. The system of claim 26, wherein the number of device addresses configured to address the second target device is equal to the number of device addresses configured to use the first target device.
28. The system of claim 26, wherein no device addresses are configured to use the second target device if the number of device addresses supported by the target device is less than the number of device addresses configured to address the first target device.
29. The system of claim 16, further comprising:
means for querying the target device to determine the number of device addresses supported by the target device, wherein the target device indicates the number of supported device addresses.
30. An article of manufacture including code for configuring device addresses used by a source device to communicate with at least one target device, wherein the code causes operations to be performed, the operations comprising:
determining a number of device addresses supported by a target device;
determining an identifier of the source device; and
using the determined identifier and the number of device addresses supported by the target device to determine device addresses from the device addresses supported by the target device to communicate with the target device.
31. The article of manufacture of claim 30, wherein there are a plurality of source devices each having a unique identifier, and wherein each source device independently determines device addresses supported by the target device, whereby the device addresses determined by the target devices are non-overlapping.
32. The article of manufacture of claim 31, further comprising:
determining at least one broadcast device address within the device addresses supported by the target device that is used to communicate with other source devices.
33. The article of manufacture of claim 30, wherein the target device comprises a first target device wherein determining a number of device addresses supported by the target device further comprises:
determining the number of device addresses supported by the first target device and a second target device; and
selecting a minimum of the number of device addresses supported by the first and second target devices, wherein the selected minimum of the number of device addresses is used with the determined identifier to determine the device addresses used to communicate with the first and second target devices.
34. The article of manufacture of claim 33, wherein using the selected minimum number of device addresses and the determined identifier used to determine the device addresses further comprises:
using the selected minimum number of device addresses and the determined identifier to determine a first set of device addresses to communicate with the first target device and a second set of device addresses to communicate with the second target device.
35. The article of manufacture of claim 34, further comprising:
using the determined identifier to determine a first set of copy device addresses used to copy data from the first target device to the second target device and to determine a second set of copy device addresses used to copy data from the second target device to the first target device.
36. The article of manufacture of claim 35, wherein the first and second target devices maintain copies of a same set of data volumes, wherein updates to one of the target devices are copied to the other target device using one device address in the first or second sets of copy device addresses.
37. The article of manufacture of claim 34, further comprising:
determining a first set of broadcast device addresses within the device addresses supported by the first target device that is used to communicate with other source devices and a second set of broadcast device addresses within the device addresses supported by the second target device used to communicate with the other source devices.
38. The article of manufacture of claim 34, wherein the target devices comprise virtual tape servers that function as a cache for data volumes in a tape library, wherein the source device comprises virtual tape controllers that enable host systems to communicate tape Input/Output (I/O) requests to the virtual tape servers using the first and second set of device addresses.
39. The article of manufacture of claim 33, wherein if the selected minimum number of device addresses comprises a predesignated number of device addresses and the determined identifier exceeds a predetermined value associated with the predesignated number of device addresses, then at least one source device having the determined identifier is not configured to use device addresses to communicate with the first and second target devices.
40. The article of manufacture of claim 39, wherein the selected minimum number of device addresses is capable of comprising one of 64, 128 and 256 device addresses.
41. The article of manufacture of claim 30, wherein the target device comprises a first target device and the determined device addresses comprise a first set of device addresses, further comprising:
detecting availability of a second target device;
in response to detecting the availability of the second target device, determining whether the number of device addresses supported by the second target device is less than the number of device addresses used to address the first target device; and
using the determined identifier of the source device to determine a second set of device addresses to address the second target device if the number of device addresses supported by the second target device is not less than the number of device addresses configured to address the second target device.
42. The article of manufacture of claim 41, wherein the number of device addresses configured to address the second target device is equal to the number of device addresses configured to use the first target device.
43. The article of manufacture of claim 41, wherein no device addresses are configured to use the second target device if the number of device addresses supported by the target device is less than the number of device addresses configured to address the first target device.
44. The article of manufacture of claim 30, further comprising:
querying the target device to determine the number of device addresses supported by the target device, wherein the target device indicates the number of supported device addresses.
US10/096,055 2002-03-12 2002-03-12 Method, system, and program for determining a number of device addresses supported by a target device and configuring device addresses used by a source device to communicate with the target device Active 2024-08-09 US7072994B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/096,055 US7072994B2 (en) 2002-03-12 2002-03-12 Method, system, and program for determining a number of device addresses supported by a target device and configuring device addresses used by a source device to communicate with the target device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/096,055 US7072994B2 (en) 2002-03-12 2002-03-12 Method, system, and program for determining a number of device addresses supported by a target device and configuring device addresses used by a source device to communicate with the target device

Publications (2)

Publication Number Publication Date
US20030177266A1 US20030177266A1 (en) 2003-09-18
US7072994B2 true US7072994B2 (en) 2006-07-04

Family

ID=28038969

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/096,055 Active 2024-08-09 US7072994B2 (en) 2002-03-12 2002-03-12 Method, system, and program for determining a number of device addresses supported by a target device and configuring device addresses used by a source device to communicate with the target device

Country Status (1)

Country Link
US (1) US7072994B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090063748A1 (en) * 2007-08-29 2009-03-05 Bello Keith A Method and Apparatus for Providing Continuous Access to Shared Tape Drives from Multiple Virtual Tape Servers Within a Data Storage System
US20090129184A1 (en) * 2007-11-15 2009-05-21 Mosaid Technologies Incorporated Methods and systems for failure isolation and data recovery in a configuration of series-connected semiconductor devices
US20090198857A1 (en) * 2008-02-04 2009-08-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US20100017456A1 (en) * 2004-08-19 2010-01-21 Carl Phillip Gusler System and Method for an On-Demand Peer-to-Peer Storage Virtualization Infrastructure
US20110289176A1 (en) * 2009-11-27 2011-11-24 Panasonic Corporation Master device, slave device and communication system
US20130290509A1 (en) * 2012-04-25 2013-10-31 International Business Machines Corporation Determining a network address for managed devices to use to communicate with manager server in response to a change in a currently used network address

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889285B2 (en) * 2002-08-29 2005-05-03 International Business Machines Corporation Apparatus and method to maintain information using a plurality of storage attributes
US7447714B1 (en) * 2003-02-25 2008-11-04 Storage Technology Corporation Management of multiple virtual data copies
US7925680B1 (en) * 2004-07-21 2011-04-12 Oracle America, Inc. System and method for processing data management files in a virtual storage environment
US7499980B2 (en) * 2004-08-19 2009-03-03 International Business Machines Corporation System and method for an on-demand peer-to-peer storage virtualization infrastructure
US20080183934A1 (en) * 2004-12-14 2008-07-31 Spectra Logic Corporation Optional mobile media storage system
US7253983B2 (en) * 2004-12-14 2007-08-07 Spectra Logic Corporation Variable media tape-based storage system
US7523273B2 (en) * 2005-05-05 2009-04-21 International Business Machines Corporation Autonomic storage provisioning to enhance storage virtualization infrastructure availability

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237689A (en) 1990-05-31 1993-08-17 Hewlett-Packard Company Configuration of mass storage devices
US5835485A (en) * 1995-11-22 1998-11-10 Motorola, Inc. Method for dynamic routing of communication messages
US5987533A (en) 1996-07-16 1999-11-16 Samsung Electronics Co., Ltd. Automatically configuring SCSI device addresses using SCSI controller storing predetermined ID and, producing address signals for transferring to peripheral device via SCSI ID input means
US6044442A (en) 1997-11-21 2000-03-28 International Business Machines Corporation External partitioning of an automated data storage library into multiple virtual libraries for access by a plurality of hosts
US6058454A (en) 1997-06-09 2000-05-02 International Business Machines Corporation Method and system for automatically configuring redundant arrays of disk memory devices
US6061794A (en) 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6189079B1 (en) 1998-05-22 2001-02-13 International Business Machines Corporation Data copy between peer-to-peer controllers
US6247069B1 (en) 1999-05-12 2001-06-12 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US6304980B1 (en) 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US20030088638A1 (en) * 2001-11-06 2003-05-08 International Business Machines Corporation Support of fixed-block storage devices over escon links
US6931468B2 (en) * 2002-02-06 2005-08-16 Hewlett-Packard Development Company, L.P. Method and apparatus for addressing multiple devices simultaneously over a data bus

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237689A (en) 1990-05-31 1993-08-17 Hewlett-Packard Company Configuration of mass storage devices
US5835485A (en) * 1995-11-22 1998-11-10 Motorola, Inc. Method for dynamic routing of communication messages
US6304980B1 (en) 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US5987533A (en) 1996-07-16 1999-11-16 Samsung Electronics Co., Ltd. Automatically configuring SCSI device addresses using SCSI controller storing predetermined ID and, producing address signals for transferring to peripheral device via SCSI ID input means
US6058454A (en) 1997-06-09 2000-05-02 International Business Machines Corporation Method and system for automatically configuring redundant arrays of disk memory devices
US6061794A (en) 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6044442A (en) 1997-11-21 2000-03-28 International Business Machines Corporation External partitioning of an automated data storage library into multiple virtual libraries for access by a plurality of hosts
US6189079B1 (en) 1998-05-22 2001-02-13 International Business Machines Corporation Data copy between peer-to-peer controllers
US6247069B1 (en) 1999-05-12 2001-06-12 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US20030088638A1 (en) * 2001-11-06 2003-05-08 International Business Machines Corporation Support of fixed-block storage devices over escon links
US6931468B2 (en) * 2002-02-06 2005-08-16 Hewlett-Packard Development Company, L.P. Method and apparatus for addressing multiple devices simultaneously over a data bus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kadleck, Barry, Andrew Bentley, Wolfgang Kessel, and Anthony Vulic. "IBM TotalStorage Peer-to-Peer Virtual Tape Server Planning and Implementation Guide", (C) IBM Corporation 2002, pp. 1-310.

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307026B2 (en) 2004-08-19 2012-11-06 International Business Machines Corporation On-demand peer-to-peer storage virtualization infrastructure
US20100017456A1 (en) * 2004-08-19 2010-01-21 Carl Phillip Gusler System and Method for an On-Demand Peer-to-Peer Storage Virtualization Infrastructure
US7689759B2 (en) * 2007-08-29 2010-03-30 International Business Machines Corporation Method and apparatus for providing continuous access to shared tape drives from multiple virtual tape servers within a data storage system
US20090063748A1 (en) * 2007-08-29 2009-03-05 Bello Keith A Method and Apparatus for Providing Continuous Access to Shared Tape Drives from Multiple Virtual Tape Servers Within a Data Storage System
US8443233B2 (en) 2007-11-15 2013-05-14 Mosaid Technologies Incorporated Methods and systems for failure isolation and data recovery in a configuration of series-connected semiconductor devices
US7836340B2 (en) 2007-11-15 2010-11-16 Mosaid Technologies Incorporated Methods and systems for failure isolation and data recovery in a configuration of series-connected semiconductor devices
US20090129184A1 (en) * 2007-11-15 2009-05-21 Mosaid Technologies Incorporated Methods and systems for failure isolation and data recovery in a configuration of series-connected semiconductor devices
US20110060937A1 (en) * 2007-11-15 2011-03-10 Schuetz Roland Methods and systems for failure isolation and data recovery in a configuration of series-connected semiconductor devices
US8131913B2 (en) 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US20090198857A1 (en) * 2008-02-04 2009-08-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US20110289176A1 (en) * 2009-11-27 2011-11-24 Panasonic Corporation Master device, slave device and communication system
US8554863B2 (en) * 2009-11-27 2013-10-08 Panasonic Corporation Master and slave system wherein master interface unit compares parameter from payload of parameter obtaining command with communication capability parameter of parameter display unit
US20130290509A1 (en) * 2012-04-25 2013-10-31 International Business Machines Corporation Determining a network address for managed devices to use to communicate with manager server in response to a change in a currently used network address
US8769062B2 (en) * 2012-04-25 2014-07-01 International Business Machines Corporation Determining a network address for managed devices to use to communicate with manager server in response to a change in a currently used network address
US8832242B2 (en) * 2012-04-25 2014-09-09 International Business Machines Corporation Determining a network address for managed devices to use to communicate with manager server in response to a change in a currently used network address

Also Published As

Publication number Publication date
US20030177266A1 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
US7134040B2 (en) Method, system, and program for selecting a path to a device to use when sending data requests to the device
US7337351B2 (en) Disk mirror architecture for database appliance with locally balanced regeneration
US8140785B2 (en) Updating metadata in a logical volume associated with a storage controller for data units indicated in a data structure
US6839824B2 (en) System and method for partitioning a storage area network associated data library employing element addresses
US6542962B2 (en) Multiple processor data processing system with mirrored data for distributed access
US7519696B2 (en) Method and apparatus for dynamically modifying a computer system configuration
US8539180B2 (en) System and method for migration of data
US7836272B1 (en) Methods and apparatus for interfacing to a data storage system
US6832289B2 (en) System and method for migrating data
JP3843713B2 (en) Computer system and device allocation method
US7209932B2 (en) Method, system, and program for allocating tasks to a plurality of processors
US20020029319A1 (en) Logical unit mapping in a storage area network (SAN) environment
US7072994B2 (en) Method, system, and program for determining a number of device addresses supported by a target device and configuring device addresses used by a source device to communicate with the target device
JP2004005381A (en) System for partitioning storage area network related to data library
US8397001B2 (en) Techniques for data storage configuration
US20070079098A1 (en) Automatic allocation of volumes in storage area networks
US8972656B1 (en) Managing accesses to active-active mapped logical volumes
JP2003345631A (en) Computer system and allocating method for storage area
US7406578B2 (en) Method, apparatus and program storage device for providing virtual disk service (VDS) hints based storage
US7676644B2 (en) Data processing system, storage apparatus and management console
JP2004355638A (en) Computer system and device assigning method therefor
US11061604B2 (en) Method and storage system architecture for accessing data by means of a compatible module
US7434022B1 (en) Distributed workflow techniques

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BRITTON, THOMAS GEORGE;REEL/FRAME:012709/0782

Effective date: 20020308

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

SULP Surcharge for late payment

Year of fee payment: 7

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12