IP Library Granted Patent US 7,191,287
Granted Patent B2
US 7,191,287 · App. 11/517,387 · Granted Mar 13, 2007

Storage system having a plurality of interfaces

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,191,287
App. No.
11/517,387
Granted
Mar 13, 2007
Kind
B2
Abstract

A hybrid-type storage system having both SAN and NAS interfaces can be implemented by simple hardware capable of carrying out a SAN function independently of a NAS function and a NAS load. To be more specific, a controller of the storage system comprises a NAS controller for accepting an I/O command issued for a file unit and a SAN controller for accepting an I/O command issued for a block unit. The NAS controller converts an I/O command issued for a file unit into an I/O command issued for a block unit, and transfers the I/O command issued for a block unit to the SAN controller. The SAN controller makes an access to data stored in a disk apparatus in accordance with an I/O command received from the SAN or from the NAS controller as a command issued for a block unit. The NAS and SAN controllers are capable of operating independently of each other.

Claims (63)

1. A storage system comprising:

a disk array including a plurality of disks; and

a controller coupled to the plurality of disks;

wherein the controller comprises a NAS processor, a SAN processor coupled to the NAS processor, and a memory coupled to the NAS processor and SAN processor;

the NAS processor is configured to convert a file I/O command received from a NAS client computer into a block I/O command and transfer the block I/O command to the SAN processor; and

the SAN processor is configured to access data stored in the plurality of disks according to a block I/O command received from a SAN client computer or the NAS processor.

2. A storage system according to claim 1 , further comprising a NAS memory for storing a command conversion program executed by the NAS processor to convert the file I/O command into the block I/O command.

3. A storage system according to claim 1 , wherein the NAS processor and the SAN processor are connected via a bus, and the NAS processor is configured to communicate with the SAN processor via the bus.

4. A storage system according to claim 1 , wherein the memory stores a command conversion program executed by the NAS processor to convert the file I/O command into the block I/O command, a disk-array control program executed by the SAN processor to access data stored in the plurality of disks according to the block I/O command, and a NAS controller management program executed by the SAN processor to control the NAS processor.

5. A storage system according to claim 4 , wherein the SAN processor is configured to continue the execution of the disk-array control program to access data stored in the plurality of disks according to the block I/O command received from the SAN client computer, when the execution of the command conversion program stops.

6. A storage system according to claim 4 , wherein the SAN memory for the SAN processor is arranged to receive the disk-array control program and the NAS controller management program from the plurality of disks after the initialization of the SAN processor and before initialization of the disk array.

7. A storage system according to claim 4 , wherein the SAN processor is arranged to terminate the execution of the command conversion program by giving a notice from the NAS controller management program to the command conversion program in response to a termination signal, the command conversion program being arranged to store data from a file cache of the NAS processor to a disk cache of the controller in response to the notice prior to the termination of the command conversion program.

8. A storage system according to claim 4 , wherein, when the command conversion program enters a hung-up state due to a failure of the NAS processor, the SAN processor is arranged to terminate the executing of the command conversion program by giving a forcible termination notice from the NAS controller management program to the NAS processor.

9. A storage system according to claim 4 , wherein the memory comprises a NAS processor use area, a SAN processor use area and a shared area, and wherein the NAS processor use area stores the command conversion program and a file cache, and the SAN processor use area stores the disk-array control and the NAS controller management program.

10. A storage system according to claim 1 , wherein the disk array comprises a fibre-channel controller receiving data from the SAN client computer, a disk cache storing data temporally, a disk controller controlling the plurality of disks and a LAN controller receiving data from the NAS client computer, and wherein the SAN processor exclusively uses the fibre-channel controller, the disk cache and the disk controller, and the NAS processor exclusively uses the LAN controller.

11. A storage system according to claim 10 , wherein the disk array comprises a memory controller, and the SAN processor and the NAS processor share the memory controller.

12. A storage system according to claim 11 , wherein the memory controller generates interrupts to the SAN processor and the NAS processor by configuration of routing of an interrupt controller embedded in the memory controller.

13. A method of operating a storage system, having a disk array including a plurality of disks and a controller coupled to the plurality of disks, wherein the controller comprises a NAS processor, a SAN processor coupled to the NAS processor, and a memory coupled to the NAS processor and SAN processor, the method comprising:

converting, by the NAS processor, a file I/O command received from a NAS client computer into a block I/O command and transferring the block I/O command to the SAN processor; and

accessing, by the SAN processor, data stored in the plurality of disks according to a block I/O command received from a SAN client computer or the NAS processor.

14. A method of operating a storage system according to claim 13 , wherein the NAS processor is configured to convert the file I/O command received from the NAS client computer into the block I/O command and transfer the block I/O command to the SAN processor, according to a command conversion program stored in a NAS memory and executed by the NAS processor to convert the file I/O command into the block I/O command.

15. A method of operating a storage system according to claim 13 , wherein the NAS processor and the SAN processor are connected via a bus, and the NAS processor is configured to communicate with the SAN processor via the bus.

16. A method of operating a storage system according to claim 13 , further comprising the step of storing, in the memory, a command conversion program executed by the NAS processor to convert the file I/O command into the block I/O command, a disk-array control program executed by the SAN processor to access data stored in the plurality of disks according to the block I/O command, and a NAS controller management program executed by the SAN processor to control the NAS processor.

17. A method of operating a storage system according to claim 16 , wherein the SAN processor is configured to continue the execution of the disk-array control program to access data stored in the plurality of disks according to the block I/O command received from the SAN client computer, when the execution of the command conversion program stops.

18. A method of operating a storage system according to claim 16 , wherein the SAN memory for the SAN processor is arranged to receive the disk-array control program and the NAS controller management program from the plurality of disks after the initialization of the SAN processor and before initialization of the disk array.

19. A method of operating a storage system according to claim 16 , wherein the SAN processor is arranged to terminate the execution of the command conversion program by giving a notice from the NAS controller management program to the command conversion program in response to a termination signal, the command conversion program being arranged to store data from a file cache of the NAS processor to a disk cache of the controller in response to the notice prior to the termination of the command conversion program.

20. A method of operating a storage system according to claim 16 , wherein, when the command conversion program enters a hung-up state due to a failure of the NAS processor, the SAN processor is arranged to terminate the executing of the command conversion program by giving a forcible termination notice from the NAS controller management program to the NAS processor.

21. A method of operating a storage system according to claim 16 , wherein the memory comprises a NAS processor use area, a SAN processor use area and a shared area, and wherein the NAS processor use area stores the command conversion program and a file cache, and the SAN processor use area stores the disk-array control and the NAS controller management program.

22. A method of operating a storage system according to claim 13 , wherein the disk array comprises a fibre-channel controller receiving data from the SAN client computer, a disk cache storing data temporally, a disk controller controlling the plurality of disks and a LAN controller receiving data from the NAS client computer, and wherein the SAN processor exclusively uses the fibre-channel controller, the disk cache and the disk controller, and the NAS processor exclusively uses the LAN controller.

23. A method of operating a storage system according to claim 22 , wherein the disk array comprises a memory controller, and the SAN processor and the NAS processor share the memory controller.

24. A method of operating a storage system according to claim 23 , wherein the memory controller generates interrupts to the SAN processor and the NAS processor by setting of routing of an interrupt controller embedded in the memory controller.

25. A storage system comprising:

a disk array including a plurality of disks; and

a controller coupled to the plurality of disks;

wherein the controller comprises a NAS processor, a SAN processor coupled to the NAS processor, and a memory coupled to the NAS processor and SAN processor;

the NAS processor is configured to convert a file I/O command received from a NAS client computer into a block I/O command and transfer the block I/O command to the SAN processor;

the SAN processor is configured to access data stored in the plurality of disks according to a block I/O command received from a SAN client computer or the NAS processor;

the memory stores a command conversion program executed by the NAS processor to convert the file I/O command into the block I/O command, a disk-array control program executed by the SAN processor to access data stored in the plurality of disks according to the block I/O command, and a NAS controller management program executed by the SAN processor to control the NAS processor; and

the SAN processor performs priority control of a block I/O command based on whether a block I/O command is sent from the SAN client computer or the NAS client computer.

26. A method of operating a storage system, having a disk array including a plurality of disks and a controller coupled to the plurality of disks, wherein the controller comprises a NAS processor, a SAN processor coupled to the NAS processor, and a memory coupled to the NAS processor and SAN processor, the method comprising:

converting, by the NAS processor, a file I/O command received from a NAS client computer into a block I/O command and transferring the block I/O command to the SAN processor; and

accessing, by the SAN processor, data stored in the plurality of disks according to a block I/O command received from a SAN client computer or the NAS processor;

wherein the memory stores a command conversion program executed by the NAS processor to convert the file I/O command into the block I/O command, a disk-array control program executed by the SAN processor to access data stored in the plurality of disks according to the block I/O command, and a NAS controller management program executed by the SAN processor to control the NAS processor; and

the SAN processor performs priority control of a block I/O command based on whether a block I/O command is sent from the SAN client computer or the NAS client computer.

27. A storage system comprising:

a disk array including a plurality of disks; and

a controller module coupled to the plurality of disks;

wherein the controller module comprises a NAS processor, first and second SAN processors coupled to the NAS processor, a NAS memory coupled to the NAS processor, and first and second SAN memories connected respectively to the first and second SAN processors;

the first SAN processor is configured to access data stored in the plurality of disks according to a block I/O command received from a SAN client computer;

the NAS processor is configured to convert a file I/O command received from a NAS client computer into a block I/O command and transfer the block I/O command to the second SAN processor;

the second SAN processor is configured to access data stored in the plurality of disks according to the block I/O command received from the NAS processor;

the NAS memory stores a command conversion program executed by the NAS processor to convert the file I/O command into the block I/O command;

the second SAN memory stores a disk-array control program executed by the first SAN processor to access data stored in the plurality of disks according to the block I/O command received from the NAS processor, and a NAS controller management program executed by the first SAN processor to control the NAS processor;

the first SAN processor performs priority control of a block I/O command sent from the SAN client computer; and

the second SAN processor performs priority control of a block I/O command sent from the NAS processor.

28. A method of operating a storage system, having a disk array including a plurality of disks and a controller module coupled to the plurality of disks, wherein the controller module comprises a NAS processor, first and second SAN processors coupled to the NAS processor, a NAS memory coupled to the NAS processor, and first and second SAN memories connected respectively to the first and second SAN processors, the method comprising;

accessing, by the first SAN processor, data stored in the plurality of disks according to a block I/O command received from a SAN client computer;

converting, by the NAS processor, a file I/O command received from a NAS client computer into a block I/O command and transferring the block I/O command to the second SAN processor; and

accessing, by the second SAN processor, data stored in the plurality of disks according to the block I/O command received from the NAS processor;

wherein the NAS memory stores a command conversion program executed by the NAS processor to convert the file I/O command into the block I/O command;

the second SAN memory stores a disk-array control program executed by the first SAN processor to access data stored in the plurality of disks according to the block I/O command received from the NAS processor, and a NAS controller management program executed by the first SAN processor to control the NAS processor;

the first SAN processor performs priority control of a block I/O command sent from the SAN client computer; and

the second SAN processor performs priority control of a block I/O command sent from the NAS processor.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2013
From: HITACHI, LTD.
To: GOOGLE INC.
Reel/Frame 030555/0554 →