This invention relates to devices that are situated remotely from hosts, and more particularly, where the power state of the device may be controlled remotely by the hosts.
It is useful to be able to power up and power down devices based upon need, rather than have them powered all of the time. It is known to externally power off a remote device that is functional and communicating, by sending a command that tells it to power off. In a situation involving multiple hosts, such as a network, a challenge comes in powering off devices that are being used by the multiple hosts.
Methods, servers, devices, networks, and power controls are provided for remote power down control of a device.
In one embodiment, a method for powering down a device configured for externally initiated remote power down, comprises the steps of:
In a further embodiment, a received power down request of a source is invalidated by subsequent activity for the device received from the source.
In a still further embodiment, the activity comprises at least one of a power up request and a command with respect to the device.
In another embodiment, the sources of valid power down requests comprise sources logged in with respect to the device.
In a further embodiment, a power down request comprises at least one of a specific power down request and a log off request from the source.
For a fuller understanding of the present invention, reference should be made to the following detailed description taken in conjunction with the accompanying drawings.
This invention is described in preferred embodiments in the following description with reference to the Figures, in which like numbers represent the same or similar elements. While this invention is described in terms of the best mode for achieving this invention's objectives, it will be appreciated by those skilled in the art that variations may be accomplished in view of these teachings without deviating from the spirit or scope of the invention.
Referring to
Many means of implementing communications comprising the direct connection or network communication of
Device 200 communicates with other devices through port 206. Port 206 is connected to an optical cable 114 of one of the connections of
High level command processor 207 sends words to be transmitted via connection 222 to low level transmission protocol converter 220, which encodes them from their native 32-bit hexadecimal value to an encoded 40-bit value, using an 8-bit/10-bit encoding scheme known in the art. The encoding scheme is designed to provide a minimal number of transitions between high and low states, and to maintain DC balance when encoded data is sent over serial interfaces. Serial encoded words are then transmitted via differential electrical signals 232 to optical transmitter element 230, which converts the electrical signals to optical signals and transmits the optical signal into fiber 234.
Optical signals from fiber 236 are received by optical receiver element 226 and converted to differential electrical signals 228 to low level reception converter 210, which receives the serial information, detects the delimiters and converts the serial information into 40-bit words, detects the data and control words, and decodes the 40-bit words to their native 32-bit hexadecimal values. The decoded words are then received by high level command processor 207 via parallel connection 212, along with indications of control words via control signals.
It is useful to be able to power up and power down devices based upon need, rather than have them powered all of the time. It is known to remotely power off a device that is functional and communicating, by sending a command that tells it to power down. A powered down state may comprise any situation of reduced power or power off to elements of the device, and a powered on state may comprise any situation of fully or partially operational powered on elements of the device. “Remote” means that the device being powered up or powered down is connected to the host via a communication link. The “remote” device may or may not be in the immediate vicinity of the host.
A challenge comes in powering off devices 200 that are being used by multiple hosts 105, for example, on the network. Typically, a user will operate a host to power down an unused device to save energy, but another host on the network will still be using the device and will instead want the device to be powered up. The delay introduced by powering up a powered down device may prove undesirable by the second host.
Referring to
In one embodiment, the method is controlled by the operational element 202 of the device, and may utilize the storage element 204, if any, and selectively operate the power supply 250 via link 256.
The process login acceptance may be conducted by the operational element 202, and, in step 259, the accepted initiator is added to the list of sources, for example, in table 260 of
In step 270, the logged in sources 105, 106 are monitored for activity, and monitored for power down or log off commands 271. In one example, activity comprises the sending or receiving of Fibre Channel frames, but Fibre Channel primitives do not count as activity. In another example, the activity comprises either a command or a power up request with respect to the device. The power up request may be considered activity because a power down request from the same initiator that may have preceded it may not have resulted in an actual power down.
In step 273, if there is no activity, the monitoring continues for the source in step 270. If there is activity, step 275 detects whether the input is a power down request or a log off command, and, if so, in step 280, the source is marked in column 282 of table 260. The power down request and log off command are considered to both indicate that the host is releasing the device.
If step 280 indicates that the input is not a power down request or log off command, step 285 determines whether column 282 had previously been marked to identify a power down request from the source. The activity identified in step 273 invalidates any previous power down request in that the source apparently considers the device to be powered up and active, and the previous power down request in column 282 is reset in step 287.
In step 290, the activity identified in step 273 updates the activity monitoring for the source.
Inactivity with respect to the source is measured in step 292 continuously, periodically, or randomly, and the measurement is taken individually or as a part of the status discovery process of step 293, as will be discussed. Inactivity measurement may comprise any of various measurements, such as a less than minimum amount of activity measured over a given time period, or as a lack of any activity in a given time period, for example, as measured by a timer. In one embodiment, inactivity comprises the timing out of a timer that had been reset at the last activity by the source. In one example, the time period comprises a 10 minute period. In another embodiment, inactivity comprises only one instance of activity in a 15 minute period together with a 10 minute time period without any activity.
If, in step 295, the inactivity threshold is not met, the process returns to step 270 to continue monitoring.
If the inactivity threshold of step 295 is met, step 296 marks the source in column 297 of table 260.
Step 293 discovers the power down and inactivity status of all the logged in sources. Step 293 may be conducted continuously, periodically, or randomly, and may initiate the individual inactivity measurement of each of the sources of step 293.
Step 298 is illustrated in column 299 of table 260 and comprises the “OR” function of the power down request (or log off) of column 282 and the inactivity measurement of column 297. Column 299 is for the purpose of illustration only and need not be specifically identified. If all of the logged in sources have either or both the power down request (or log off) of column 282 and the inactivity measurement of column 297 marked, step 300 powers off the power supply 250 of device 200. Otherwise, the monitoring activity continues in step 270.
Thus, where multiple hosts are logged in and are sources of power down requests for device 200, the power down control, for example, of the operational element 202, provides the actual power down of the device, so that a user that operates a host to power down an unused device, will not adversely affect another host that is still using the device. The second host will not have to power up a powered down device.
Initiator ports 350, 354 may comprise one or more host adapters, Fibre Channel ports, one or more FICON ports, one or more ESCON ports, one or more SCSI ports, or other suitable ports. Each host interface is configured to communicate with a host system of network 301 of
Device ports 305 may comprise device adapters, for example for serial interconnections, such as RS-232 or RS-422, Ethernet connections, SCSI interconnections, ESCON interconnections, FICON interconnections, or connections to a Local Area Network (LAN), a private Wide Area Network (WAN), a public wide area network, Storage Area Network (SAN), Transmission Control Protocol/Internet Protocol (TCP/IP), the Internet, and combinations thereof.
An example of a data handling system 340 or server 302 comprises an IBM® Enterprise Storage Server, IBM® Model DS 8000, or other comparable system.
Referring to
Referring to
If step 408 indicates that all discovered devices have been processed and their entries created or updated, step 424 sets the pointer to the first device row in the table 360. If the device had not been found in discovery of step 426, steps 427 and 428 ascertain its status. Step 427 checks the last powered on time stamp in column 368 of table 360. If the time stamp of step 427 is zero, the device was powered up during a previous discovery process, so in step 430, the last powered on time stamp in column 368 is set to the current time. If in step 427, it was determined that the last powered on time stamp was not zero, the process continues at step 428, where it checks, for example, for a timeout, indicating that the device has become inactive. As discussed above, a timeout is one means of indicating that a device has become inactive, and another means is to determine whether the activity in a time period has fallen below a threshold.
If the timeout has occurred, step 429 removes the device entry from the table 360 as will be discussed. If the device was an initiator, step 429 also clears the active initiator address of the device from column 369 for any device for which it had been a source. Thus, column 369 for a target device that may be remotely powered down indicates only those initiators that are a source and are not timed out.
A “No” result from step 428, or a completion of step 429, or a completion of step 430, or step 426 indicating that the current device was found during the discovery process, leads to step 431 which increments the pointer to the next device row in the table 360. Step 432 determines whether all of the devices in the table 360 have been processed. If not, the process returns to step 426 to process the next entry.
If all the devices have been processed, step 434 checks for an active RPM request, which may comprise a power down request or a power up request. If no RPM request is detected, step 468 detects whether a state change notification (SCN) has been received regarding any of the active devices. A state change notification, such as a log off command, requires that the table 360 be updated, so the process returns to step 404 to perform discovery. If there is no state change notification, step 434 is repeated.
If step 434 indicates that the server 302 has received a command requesting the RPM state of a device be set, such as a power down request, the process flows to step 436 to check whether the device is in the table 360. If not, an error is returned in step 442 with a sense key indicating that the device was not found, and the process returns to step 468.
If the device is found in the table, step 438 checks the table to determine whether the respective device is RPM capable (column 364) and whether the RPM is enabled (column 365). If step 444 indicates that the RPM request is a power down request, step 454 uses column 369 of the table 360 to determine whether any other initiator is active and using the respective device, a “source” that has not timed out. If step 454 indicates no other initiators are active sources for the device, step 458 sends the requested power down command to the target device via port 305.
If other initiators are active and using the device, a “source” for the device, step 456 determines whether all the other sources are timed out and are inactive with respect to the device, or have issued a power down request for the device. In one embodiment, step 456 checks whether the devices listed in column 369 are still found in the directory of the server or of the switch (called a directory name server). If the initiators were powered off or malfunctioned and are no longer operating, they will time out with the directory name server, and will be removed from the name server list. If all of the initiators found in the table, other than the initiator requesting that the device be powered down, are no longer in the directory name server, step 458 sends the requested power down command to the target device via port 305. If in step 256, any of the other initiators in column 369 for the device are still found in the name server, step 449 updates the initiator status, removing the initiator requesting the device be powered down from column 369 for the device. Any initiators that were not found in the directory name server that are listed in column 369 for the device are also removed.
Thus, the removal of the initiators accomplishes the function of indicating either that they have become inactive or that they have requested a power down of the device, fulfilling the “OR” function for those initiators. As the result, the absence of other sources from column 369 indicates that the “OR” function of the power down request (or log off) and the inactivity measurement are complete for those initiators for the device, and, if completed, step 454 would have been a “No” and step 458 would have sent the requested power down request.
If step 456 determines that at least one other source remains active and has not issued a power down request for the device, for example, by remaining in column 369 for the device, the device is not powered down. Step 449 is completed as discussed above, and the process returns good status with respect to the power down request in step 464.
If step 458 sent the requested power down command, step 460 checks the status returned by the device. If the command to the device was successful (the device indicating good status indicating it is powering down), the process updates the device status in column 367 of table 360. Also in step 462, if the requested command was a power down command, the process saves the current time stamp in column 368 for the device and removes all initiator addresses (if there are any remaining) from column 369. If the command requested was a power up command, to be described subsequently, the process adds the initiator address to column 369, and sets the time stamp in column 368 to zero. The process returns good status to the initiator in step 464, and moves to step 468. If step 460 was not successful, the process returns a check condition to the initiator in step 466 with status indicating that the command failed, and then moves to step 468.
If in step 444, it is determined that the initiator is requesting that the device be powered up, the process continues at step 446 to check whether the initiator is listed in column 369 for the device. If it is not, step 452 adds the initiator's address to the list of initiators that are using the device in column 369. If in step 446, the initiator is already listed, or upon completion of step 452, the process flows to step 458 and the power up command is sent to the device.
Thus, the server 302 monitors, via the initiator ports 350, 354, activity of network connected sources 304, 306, 308 of valid power down requests for each of several devices 310, 312, 314, 316, 318; and provides a power down command to a device, via device ports 305, in response to a combination of either received power down request or an inactivity time out with respect to each of the sources of valid power down requests for that device.
Referring to
Those of skill in the art will understand that changes may be made with respect to the methods discussed above, including changes to the ordering of the steps. Further, those of skill in the art will understand that differing specific component arrangements may be employed than those illustrated herein.
While the preferred embodiments of the present invention have been illustrated in detail, it should be apparent that modifications and adaptations to those embodiments may occur to one skilled in the art without departing from the scope of the present invention as set forth in the following claims.
The present application is a Continuation of copending U.S. patent application Ser. No. 12/573,039, filed on Oct. 2, 2009.
Number | Date | Country | |
---|---|---|---|
Parent | 12573039 | Oct 2009 | US |
Child | 14470040 | US |