Load balancing using directory services in a data processing system
First Claim
1. In a data processing system having a plurality of host processors and a data network linking the host processors to alternative shared resources for the communication of service requests from the host processors to the alternative shared resources, a method of controlling access of the host processors to the alternative shared resources, said method comprising:
- a) storing in a directory a specification of a respective subset of the alternative shared resources which are accessible to each of the host processors, and operating a directory service for reporting network addresses of the alternative shared resources, the directory service accessing the directory in response to a request from each host processor for reporting to said each host processor a set of network addresses of the alternative shared resources for said each host processor, said set of network addresses of the alternative shared resources for said each host processor including only the network addresses of the alternative shared resources in the respective subset of the alternative shared resources which are accessible to said each host processor; and
b) operating said each host processor including;
(i) said each host processor sending a request to the directory service for a report of network addresses of the alternative shared resources, and receiving from the directory service a report of the set of network addresses of the alternative shared resources for said each host processor; and
then (ii) said each host processor commencing a sequence of data processing operations during which said each host processor transmits service requests to at least one network address in the set of network addresses of the alternative shared resources for said each host processor;
which includes estimating respective loadings that the host processors will have on the alternative shared resources, and selecting the respective subsets based on the estimates of the respective loadings in order to balance loadings of the host processors on the alternative shared resources, and which includes measuring loadings of the host processors on the alternative shared resources in order to estimate respective loadings that the host processors will have on the alternative shared resources;
wherein the loadings are measured by computing a modulus from a network address intercepted from the data network, and indexing a table with the modulus to locate an accumulator for accumulating an occurrence of the network address intercepted from the data network.
7 Assignments
0 Petitions
Accused Products
Abstract
A data network links a number of host processors to alternative shared resources. In order to allocate a respective subset of the alternative shared resources to each host, a directory service of the network is programmed to present a respective view of the network to each host. For example, hosts on the same network loop may see a different picture of the network. When a host logs into the network, the directory service reports to the host information about the alternative shared resources that the host should use. The host then commences a sequence of data processing operations during which the host accesses only the shared resources that were reported to it by the directory service. The shared resources, for example, are ports of a storage subsystem, and a respective subset of the ports is assigned to each host to balance loading of the hosts on the ports.
338 Citations
33 Claims
-
1. In a data processing system having a plurality of host processors and a data network linking the host processors to alternative shared resources for the communication of service requests from the host processors to the alternative shared resources, a method of controlling access of the host processors to the alternative shared resources, said method comprising:
-
a) storing in a directory a specification of a respective subset of the alternative shared resources which are accessible to each of the host processors, and operating a directory service for reporting network addresses of the alternative shared resources, the directory service accessing the directory in response to a request from each host processor for reporting to said each host processor a set of network addresses of the alternative shared resources for said each host processor, said set of network addresses of the alternative shared resources for said each host processor including only the network addresses of the alternative shared resources in the respective subset of the alternative shared resources which are accessible to said each host processor; and
b) operating said each host processor including;
(i) said each host processor sending a request to the directory service for a report of network addresses of the alternative shared resources, and receiving from the directory service a report of the set of network addresses of the alternative shared resources for said each host processor; and
then(ii) said each host processor commencing a sequence of data processing operations during which said each host processor transmits service requests to at least one network address in the set of network addresses of the alternative shared resources for said each host processor;
which includes estimating respective loadings that the host processors will have on the alternative shared resources, and selecting the respective subsets based on the estimates of the respective loadings in order to balance loadings of the host processors on the alternative shared resources, and which includes measuring loadings of the host processors on the alternative shared resources in order to estimate respective loadings that the host processors will have on the alternative shared resources;
wherein the loadings are measured by computing a modulus from a network address intercepted from the data network, and indexing a table with the modulus to locate an accumulator for accumulating an occurrence of the network address intercepted from the data network.
-
-
2. In a data processing system having a plurality of host processors and a data network including a switch linking the host processors to a plurality of ports of a storage subsystem for transmission of storage access requests from the host processors to the ports of the storage subsystem, a method of controlling access of the host processors to the ports of the storage subsystem, said method comprising:
-
a) storing in a directory a specification of a respective subset of the ports of the storage subsystem which are accessible to each of the host processors, and operating a directory service for accessing the directory and for reporting to each host processor the respective subset of the ports of the storage subsystem which are accessible to said each host processor; and
b) operating said each host processor including;
(i) said each host processor sending a request to the directory service for a report of the respective subset of ports of the storage subsystem which are accessible to said each host processor; and
receiving from the directory service a report of the subset of the ports of the storage subsystem which are accessible to said each host processor; and
then(ii) said each host processor commencing a sequence of data processing operations during which said each host processor transmits storage access requests to at least one port included in the respective subset of ports of the storage subsystem which are accessible to said each host processor. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A digital computer programmed to provide a directory service in a data network, the digital computer being programmed with a configuration database of information about host processors in the network and shared resources in the network that are accessible to the host processors, the configuration database further including information specifying, for each host processor, a respective subset of the shared resources which are accessible to said each host processor, the digital computer being programmed to respond to a request from said each host processor for information about resources in the network by reporting to said each host processor information about the respective subset of the shared resources that are accessible to said each host processor, thereby selectively restricting access of the host processors to the shared resources;
wherein the digital computer is programmed to collect information about loading of the host processors upon the shared resources, and to adjust the respective subset of the shared resources which are accessible to said each host processor based upon the loading of the host processors upon the shared resources in order to balance loading of the host processors upon the shared resources. - View Dependent Claims (14)
-
15. A machine readable program storage device containing a program for programming a digital computer to provide a directory service in a data network, the directory service accessing a configuration database of information about host processors in the network and shared resources in the network and information specifying for each host processor a respective subset of the shared resources which are accessible to said each host processor, the directory service responding to a request from said each host processor for information about resources in the network by reporting to said each host processor information about the subset of the shared resources that are accessible to said each host processor, thereby selectively restricting access of the host processors to the shared resources;
wherein the computer program is executable by the digital computer for collecting information about loading of the host processors upon the shared resources, and adjusting the respective subset of the shared resources which are accessible to said each host processor based upon the loading of the host processors upon the shared resources in order to balance loading of the host processors upon the shared resources. - View Dependent Claims (16)
-
17. A storage network comprising, in combination:
-
a cached storage subsystem including a plurality of storage devices, a cache memory linked to the storage devices for filling the cache with data from the storage devices, and a plurality of port adapters providing storage ports for access to the cache memory; and
a switch having a plurality of network ports and being linked to the storage ports for selectively routing data access requests from the network ports to the storage ports, the network ports being connectable for receiving the data access requests from a plurality of host processors;
wherein the storage network includes a digital computer programmed with a configuration database of information about the host processors and the storage ports, the configuration database further including information specifying, for each host processor, a respective subset of the storage ports which are accessible to said each host processor, the digital computer being programmed to respond to a request from said each host processor for information about the storage ports by reporting to said each host processor information about the respective subset of the storage ports which are accessible to said each host processor, and thereby selectively restrict access of the host processors to the storage ports. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A digital computer programmed to provide a directory service in a data network, the digital computer being programmed with a configuration database of information about host processors in the network and shared resources in the network that are accessible to the host processors, the configuration database further including information specifying, for each host processor, a respective subset of the shared resources which are accessible to said each host processor, the digital computer being programmed to respond to a request from said each host processor for information about resources in the network by reporting to said each host processor information about the respective subset of the shared resources that are accessible to said each host processor, thereby selectively restricting access of the host processors to the shared resources;
wherein the digital computer is programmed to be a substitute for a network directory;
the digital computer is programmed to access the network directory to obtain network addresses of resources in the respective subset of resources that are accessible to said each host processor, and to forward the network addresses to said each host processor; and
the digital computer is programmed to collect information about loading of the host processors upon the shared resources, and to adjust the respective subset of the shared resources which are accessible to said each host processor based upon the loading of the host processors upon the shared resources in order to balance loading of the host processors upon the shared resources.- View Dependent Claims (27)
-
28. A digital computer programmed to provide a directory service in a data network, the digital computer being programmed with a configuration database of information about host processors in the network and shared resources in the network that are accessible to the host processors, the configuration database further including information specifying, for each host processor, a respective subset of the shared resources which are accessible to said each host processor, the digital computer being programmed to respond to a request from said each host processor for information about resources in the network by reporting to said each host processor information about the respective subset of the shared resources that are accessible to said each host processor, thereby selectively restricting access of the host processors to the shared resources;
wherein the digital computer is further programmed to assign temporary addresses to ports in the network;
the digital computer is programmed to respond to a network login request from said each host processor by returning a temporary address assigned to said each host processor;
the digital computer is a switch control computer of a switch for the network; and
the digital computer is programmed to collect information about loading of the host processors upon the shared resources, and to adjust the respective subset of the shared resources which are accessible to said each host processor based upon the loading of the host processors upon the shared resources in order to balance loading of the host processors upon the shared resources.- View Dependent Claims (29)
-
30. In a data processing system having a plurality of host processors and a data network including a switch linking the host processors to a plurality of ports of a storage subsystem for transmission of storage access requests from the host processors to the ports of the storage subsystem, each of the ports being accessible to each of the host processors through the switch, a method of balancing loading of the host processors upon the ports of the storage subsystem, said method comprising:
-
a) storing in a directory lists of the ports of the storage subsystem, the lists of ports including a respective list of the ports of the storage subsystem which each of the host processor should access, and operating a directory service for accessing the directory and for reporting to said each host processor the respective ports of the storage subsystem which said each host processor should access; and
b) operating said each host processor including;
(i) said each host processor sending a request to the directory service for a report of the respective ports of the storage subsystem which said each host processor should access, and receiving from the directory service a report of the respective ports of the storage subsystem which said each host processor should access; and
then(ii) said each host processor commencing a sequence of data processing operations during which said each host processor transmits storage access requests to at least one of the ports of the storage subsystem which said each host processor should access;
wherein the method further includes monitoring loadings of the host processors upon the storage subsystem by obtaining for each of the host processors a respective count of frames of data transmitted between said each host processor and the ports of the storage subsystem, and adjusting the respective list of storage subsystem ports which said each host processor should access based on the respective count of frames of data transmitted between said each host processor and the ports of the storage subsystem.- View Dependent Claims (31)
-
- 32. A storage system for providing data storage to a plurality of host processors, the storage system including a storage subsystem and a data network including a switch linking the host processors to a plurality of ports of a storage subsystem for transmission of storage access requests from the host processors to the ports of the storage subsystem, each of the ports being accessible to each of the host processors through the switch, the storage system further including a directory service accessible to the hosts for balancing loading of the host processors upon the ports of the storage subsystem, wherein the directory service contains lists of the ports of the storage subsystem, the lists of ports including a respective list of the ports of the storage subsystem which each of the host processor should access, the directory service being responsive to the host processors for reporting to said each host processor the respective ports of the storage subsystem which said each host processor should access, and the directory service being responsive to loadings of the host processors upon the storage subsystem by obtaining for each of the host processors a respective count of frames of data transmitted between said each host processor and the ports of the storage subsystem, and adjusting the respective list of storage subsystem ports which said each host processor should access based on the respective count of frames of data transmitted between said each host processor and the ports of the storage subsystem.
Specification