WO2013118243A1 - 計算機システムおよびデータ入出力方法 - Google Patents

計算機システムおよびデータ入出力方法 Download PDF

Info

Publication number
WO2013118243A1
WO2013118243A1 PCT/JP2012/052619 JP2012052619W WO2013118243A1 WO 2013118243 A1 WO2013118243 A1 WO 2013118243A1 JP 2012052619 W JP2012052619 W JP 2012052619W WO 2013118243 A1 WO2013118243 A1 WO 2013118243A1
Authority
WO
WIPO (PCT)
Prior art keywords
core
path
responsible
request
port
Prior art date
Application number
PCT/JP2012/052619
Other languages
English (en)
French (fr)
Inventor
一浩 大山
弘 横内
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to EP12867916.4A priority Critical patent/EP2735973A4/en
Priority to US13/574,929 priority patent/US9323468B2/en
Priority to CN201280045889.4A priority patent/CN103814365B/zh
Priority to PCT/JP2012/052619 priority patent/WO2013118243A1/ja
Priority to JP2013557267A priority patent/JP5764678B2/ja
Publication of WO2013118243A1 publication Critical patent/WO2013118243A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • the present invention relates to I / O (Input / Output) from a server to an LU (Logical Unit) in a storage device.
  • I / O Input / Output
  • LU Logical Unit
  • a computer system includes a storage device having an LU and a server connected to the storage device.
  • the server transmits an I / O request for inputting / outputting data to / from the LU of the storage apparatus.
  • the storage apparatus receives the I / O request, and inputs / outputs data according to the I / O request to the LU specified by the I / O request.
  • An LU is a logical storage device and is sometimes called a logical volume.
  • the LU may be a virtual LU or a real LU.
  • the virtual LU may be, for example, an LU that conforms to Thin Provisioning, or an LU that conforms to a storage virtualization technology (an LU in which storage resources of a storage device external to the storage device are virtualized).
  • the real LU is an LU based on a physical storage device (hereinafter, PDEV).
  • PDEV physical storage device
  • one or more real LUs are formed based on a RAID (Redundant Array of Independent (or Inexpensive) Disks) group composed of a plurality of PDEVs.
  • RAID Redundant Array of Independent (or Inexpensive) Disks
  • a technique in which a plurality of paths from a server to an LU are prepared, and a network load and a port load in a storage apparatus are distributed by controlling a path selected from the plurality of paths.
  • the path selected from a plurality of paths is switched by, for example, a round robin method. For this reason, in the storage apparatus in which the processor (or processor core) in charge of the LU is determined, the processor (or processor core) that has received the I / O request via the path selected by the server, and the I / O There may be a case where the processor (or processor core) in charge of the LU specified by the O request is different. In this case, a so-called cross call occurs.
  • “cross call” means that an I / O request is exchanged between processors (or between processor cores), that is, the I / O request from the processor (or processor core) that has accepted the I / O request.
  • the I / O request is transferred to the processor (or processor core) in charge of the LU specified in. If the cross call occurs, the performance of both processors (or processor cores) that exchange I / O requests may be degraded.
  • the storage device has a plurality of ports capable of communicating with the server, a plurality of processor cores, and a plurality of LUs. For each port, a port responsible core that is a processor core that receives an I / O request received by the port is determined, and for each LU, an LU responsible core that is a processor core responsible for I / O is determined. The LU responsible core may change dynamically.
  • the server periodically acquires the identification information of the LU responsible core from the storage device. When the server transmits an I / O request, the LU core and the port core are the same from a plurality of paths to the I / O destination LU that is the LU specified in the transmission target I / O request. A non-cross call path that is a path that is a processor core is selected, and a transmission target I / O request is transmitted through the selected path.
  • FIG. 1 is a diagram illustrating an overview of a controller included in the storage apparatus according to the embodiment.
  • FIG. 2 is a diagram for explaining an example of I / O processing to an LU.
  • FIG. 3 is a diagram illustrating an example of a core cross call.
  • FIG. 4 is a diagram illustrating an example of a CPU cross call.
  • FIG. 5 is a diagram for explaining an example of a cross call.
  • FIG. 6 is a first diagram for explaining the outline of the computer system according to the embodiment.
  • FIG. 7 is a second diagram for explaining the outline of the computer system according to the embodiment.
  • FIG. 8 is a third diagram for explaining the outline of the computer system according to the embodiment.
  • FIG. 9 is a fourth diagram illustrating the outline of the computer system according to the embodiment.
  • FIG. 1 is a diagram illustrating an overview of a controller included in the storage apparatus according to the embodiment.
  • FIG. 2 is a diagram for explaining an example of I / O processing to an LU.
  • FIG. 10 is a fifth diagram illustrating the outline of the computer system according to the embodiment.
  • FIG. 11 is a sixth diagram illustrating the outline of the computer system according to the embodiment.
  • FIG. 12 is a configuration diagram of a computer system according to the embodiment.
  • FIG. 13 is a diagram illustrating an example of a path table of the server 1 according to the embodiment.
  • FIG. 14 is a diagram illustrating an example of a path table of the server 2 according to the embodiment.
  • FIG. 15 is a diagram illustrating an example of a path table of the server 3 according to the embodiment.
  • FIG. 16 is a diagram illustrating an example of an owner path table of the server 1 according to the embodiment.
  • FIG. 17 is a diagram illustrating an example of an owner path table of the server 2 according to the embodiment.
  • FIG. 18 is a diagram illustrating an example of an owner path table of the server 3 according to the embodiment.
  • FIG. 19 is a diagram illustrating an example of an owner table according to the embodiment.
  • FIG. 20 is a diagram illustrating an example of a cross call table according to the embodiment.
  • FIG. 21 is a flowchart of path selection processing according to the embodiment.
  • FIG. 22 is a flowchart of owner path table update processing according to the embodiment.
  • aaa table various types of information may be described using the expression “aaa table”, but the various types of information may be expressed using a data structure other than the table. In order to show that it does not depend on the data structure, the “aaa table” can be called “aaa information”.
  • program may be used as the subject, but the program is executed by a processor (typically a CPU (Central Processing Unit)) to perform processing determined by the memory and communication port.
  • a processor typically a CPU (Central Processing Unit)
  • the description may be made with the processor as the subject.
  • the processing disclosed with the program as the subject may be processing performed by a computer such as a server or a storage device, or an information processing device. Further, part or all of the program may be realized by dedicated hardware.
  • Various programs may be installed in each computer by a program distribution server or a computer-readable storage medium.
  • FIG. 1 is a diagram for explaining the outline of the controller of the storage apparatus.
  • the storage device includes one or more controllers 210.
  • the controller 210 includes a CPU 212 having a plurality of (for example, two) CPU cores (hereinafter, cores) 212X and 212Y. Further, the controller 210 has a plurality of (for example, eight) communication ports (hereinafter referred to as ports) 211 for mediating communication with devices such as servers.
  • the core 212X also referred to as Core-X
  • Core-Y Core-Y
  • Is in charge Is in charge.
  • FIG. 2 is a diagram for explaining an example of I / O for an LU.
  • FIG. 2 shows LU6 as an example of LU220.
  • the core in charge of the I / O processing for the LU 6 is the Core-X (core 212AX) of the 0-system controller 210A.
  • the core in charge is determined for each port 211.
  • the core 212AX in charge of the port A receives the I / O request (FIG. 2 (2)).
  • the core 212AX in charge of the LU 6 has received the I / O request, no cross call occurs. That is, the core 212AX does not need to execute I / O to the LU 6 according to the I / O request and transfer the I / O request to another core (FIG. 2 (3)).
  • FIG. 3 is a diagram for explaining an example of a core cross call.
  • Core cross call is a cross call between cores.
  • the core in charge of the LU 6 is the Core-X (core 212AX) of the 0-system controller 210A.
  • the core 212AY in charge of the port E receives the I / O request (FIG. 3 (2)).
  • the core in charge of the LU 6 is not the core 212AY that has received the I / O request but the other core 212AX.
  • a core cross call occurs in one CPU 212. That is, an I / O request is passed from the core 212AY to the core 212AX (FIG. 3 (3)).
  • the core 212AX that has received the I / O request executes I / O to the LU 6 ((4) in the figure).
  • a core cross call occurs, a load for sending and receiving an I / O request is applied to both cores 212AX and 212AY.
  • the core cross call has a lower load on the CPU than the CPU cross call described later.
  • FIG. 4 is a diagram illustrating an example of a CPU cross call.
  • CPU cross call is a cross call between CPUs.
  • a CPU cross call may occur in the same controller, or a CPU cross call may occur between controllers.
  • cross call means both a core cross call and a CPU cross call.
  • FIG. 4 there are two storage devices, a 0-system controller 210A and a 1-system controller 210B.
  • the core in charge of LU6 is the Core-X (core 212AX) of the 0-system controller 210A and is in charge of LU7.
  • the core to be operated is the Core-Y (core 212BY) of the 1-system controller 210B.
  • the core 212AY in charge of the port F receives the I / O request (FIG. 4 (2)).
  • the core in charge of LU7 is not the core 212AY that has received the I / O request, but the core 212BY of the 1-system controller 210B. For this reason, a CPU cross call occurs. That is, the I / O request is transferred from the CPU having the core 212AY to the core 212BY of another CPU ((3) in FIG. 4).
  • the core 212BY that has received the I / O request executes I / O to the LU 7 (FIG. 4 (4)).
  • the core 212BX in charge of the port A receives the I / O request (FIG. 4 (FIG. 4). 6)).
  • the core in charge of LU6 is not the core 212BX that received the I / O request, but the core 212AX of the 0-system controller 210A. For this reason, a CPU cross call occurs. That is, the I / O request is transferred from the CPU having the core 212BX to the CPU having another core 212AX (FIG. 4 (7)).
  • the core 212AX that has received the I / O request executes I / O to the LU 6 (FIG. 4 (8)).
  • FIG. 5 is a diagram for explaining an example of a cross call.
  • the server 1000 is connected to a plurality of (for example, two) switches 150A and 150B (FC-SW1, FC-SW2) via, for example, an optical fiber cable, and the two switches 150A and 150B are connected to the storage apparatus 200, for example, an optical fiber. Connected via cable.
  • FC-SW1, FC-SW2 switches 150A and 150B
  • the paths to the LU 6 include, for example, a path via the HBA1, FC-SW1 of the server 1000, the port D of the 0-system controller 210A, and an HBA2, FC- of the server 1000.
  • SW2 and a path via port A of the 1-system controller 210B are prepared.
  • the CPU of the server 1000 executes an application program (hereinafter, application 111) and a multipath management program 1010.
  • the application 111 issues an I / O request specifying LU6.
  • the multipath management program 1010 selects a path through which an I / O request issued from the application 111 (an I / O request specifying LU6) is passed from a plurality of paths to the same LU6.
  • the multipath management program 1010 selects one path from a plurality of paths in a round robin method, and transmits an I / O request issued from the application 111 using the selected path. For this reason, the I / O request specifying the LU 6 can reach the storage apparatus 200 from either of the two paths to the LU 6.
  • the core in charge of the LU 6 is the Core-X (core 212AX) of the 0-system controller 210A.
  • the I / O request issued from the application 111 is transmitted to the multipath management program 1010 (FIG. 5 (1)), and the multipath management program 1010 determines the path through which the I / O request passes. Selected.
  • the multipath management program 1010 receives the I / O request.
  • HBA1 FIG. 5 (2)
  • FC-SW 1 FIG. 5 (3)
  • FC-SW 1 FIG. 5 (4)
  • the core 212AX in charge of the port D receives the I / O request (FIG. 5 (5)).
  • the core in charge of the LU 6 is the core 212AX that has received the I / O request, no cross-call occurs, and the core 212AX performs I / O on the LU 6 (FIG. 5 (6)).
  • the multipath management program 1010 When the path passing through the port A of the HBA 2, FC-SW 2 and 1-system controller 210B is selected as the path through which the I / O request specifying the LU 6 passes, the multipath management program 1010 The O request is passed to the HBA 2 (FIG. 5 (11)). The I / O request transferred to the HBA 2 is transmitted from the HBA 2 to the FC-SW 2 (FIG. 5 (12)), and is transmitted from the FC-SW 2 to the port A of the 1-system controller 210B (FIG. 5 (13)).
  • the core 212BX in charge of the port A receives the I / O request (FIG. 5 (14)).
  • the core in charge of the LU 6 is not the core 212BX that received the I / O request but the core 212AX.
  • a CPU cross call occurs. That is, the I / O request is transferred from the CPU of the core 212BX to the CPU of the core 212AX (FIG. 5 (15)).
  • the core 212AX that has received the I / O request executes I / O to the LU 6 (FIG. 5 (16)).
  • FIG. 6 is a first diagram for explaining the outline of the computer system according to the embodiment.
  • a path P1 that goes through port D of server 100 HBA1, FC-SW1, 0 system controller 210A, and a path that goes through port A of server HBA2, FC-SW2, 1 system controller 210B P2 is prepared.
  • the multipath management program 112 acquires information indicating which LU is responsible for which controller and core from the storage apparatus 200 and stores the information in a storage resource (for example, memory) in the server 100. Based on this information, the multipath management program 112 does not generate a cross call even if an I / O request passes through a plurality of paths to the LU specified by the I / O request from the application 111. Select a path (hereinafter, non-cross call path). In the example shown in the figure, when an I / O request specifying LU 6 is transmitted, the multipath management program 112 selects a non-cross call path.
  • the non-cross call path of the LU 6 is the path P1 that passes through the port D that is handled by the core 212AX that is in charge of the LU 6, out of the paths P1 and P2 to the LU 6. That is, the non-cross call path P1 is a path in which the core receiving the I / O request received by the port D through which the path P1 passes and the core in charge of the LU 6 are the same. Thereby, the occurrence of a cross call can be avoided.
  • FIG. 7 is a second diagram for explaining the outline of the computer system according to the embodiment.
  • the multipath management program 112 may change a non-cross call path selected from a plurality of non-cross call paths according to a predetermined method such as a round robin method.
  • FIG. 8 is a third diagram for explaining the outline of the computer system according to the embodiment.
  • FIG. 9 is a fourth diagram illustrating the outline of the computer system according to the embodiment.
  • FIG. 10 is a fifth diagram illustrating the outline of the computer system according to the embodiment.
  • FIG. 11 is a sixth diagram illustrating the outline of the computer system according to the embodiment.
  • the multipath management program 112 transmits an I / O request using the path P5
  • a path for example, path P6 for transmitting an I / O request to the 1-system controller 210B is selected.
  • the core for example, the core 212BX
  • the core 212BX of the 1-system controller 210B replaces the core of the 0-system controller 210A.
  • the load of each controller is monitored by the load monitoring device 230 as shown in FIG.
  • the LU 6 charge is returned to the core 212AX.
  • an I / O request is transmitted from the server 100 via the path P7. Therefore, the core 212BX of the 1-system controller 210B receives the I / O request, and the CPU cross call ( The I / O request is transferred from the core 212BX to the core 212AX in charge of LU6.
  • the server 100 acquires information indicating which core is in charge of I / O for which LU (hereinafter, in-charge core identification information). For this reason, the server 100 acquires information (controller number and core number) specifying the changed core in charge of the LU 6.
  • the multipath management program 112 uses a non-pass as a path for transmitting the I / O request specifying the LU 6.
  • the cross call path P8 is selected, and the I / O request is transmitted to the core 212AX in charge of the LU 6. Thereby, a cross call is avoided.
  • FIG. 12 is a configuration diagram of a computer system according to the embodiment.
  • the computer system includes one or more servers 100, one or more storage apparatuses 200, and one or more servers 100 and a plurality of switches 150 (150A, 150B) connecting the one or more storage apparatuses 200.
  • the server 100 and the switch 150 are connected by, for example, an optical fiber cable.
  • the switch 150 and the storage device 200 are connected by, for example, an optical fiber cable.
  • the switch 150 is, for example, a switch that mutually connects devices (server 100, storage device 200, etc.) that support Fiber Channel.
  • the switches 150A and 150B are connected to a plurality of servers 100, respectively.
  • the switch 150A is connected to a plurality of ports 211A of the 0-system controller 210A of the storage apparatus 200.
  • the switch 150B is connected to a plurality of ports 211B of the 1-system controller 210B of the storage apparatus 200.
  • the server 100 includes a communication interface device, a storage device, and a control device connected to them.
  • the communication interface device is, for example, an HBA (Host Bus Adapter) 130.
  • HBA Hyper Bus Adapter
  • the storage device is, for example, the memory 110.
  • the control device is, for example, the CPU 120.
  • the memory 110 stores an application 111, a multipath management program 112, a path table 113, and an owner path table 114.
  • the application 111 is a program for executing a predetermined business process, and is an I / O request for data related to the business process, and is performed by mounting the LU 220 (strictly, for example, the LU 220 of the storage apparatus 200). Issue an I / O request to the recognized logical storage device.
  • the multipath management program 112 has a function of selecting one path from a plurality of paths to an LU specified by an I / O request from the application 111, and when a failure of a path to be selected is detected, the path is A function of selecting another path and transmitting an I / O request through the path, a function of appropriately changing a path selected from a plurality of paths, a function of blocking an arbitrary path, and the like are realized.
  • the path table 113 has information regarding the path to the LU 220.
  • the owner path table 114 includes information for specifying a controller and a core in charge of the LU 220 (in-charge core specifying information).
  • CPU 120 executes various processes by executing a program stored in memory 110. At that time, the tables 113 and 114 are referred to as appropriate.
  • the HBA 130 is a fiber channel compatible adapter, and mediates communication with external devices (such as the storage device 200).
  • external devices such as the storage device 200.
  • HBA1 and HBA2 may be used.
  • HBA1 is connected to the switch 150A
  • HBA2 is connected to the switch 150B.
  • the storage apparatus 200 includes a plurality of controllers 210 (0-system controller 210A, 1-system controller 210B), a plurality of LUs 220, a load monitoring device 230, a shared memory device 240, and a plurality of PDEVs.
  • the storage area based on the plurality of PDEVs may be any real LU of the plurality of LUs 220, or may be a storage area assigned to a virtual LU of the plurality of LUs 220.
  • the shared memory device 240 stores an owner table 241, a cross call table 242, and a load monitoring control program 243.
  • the owner table 241 is a table for managing the cores in charge of I / O processing for the LU 220.
  • the cross call table 242 has information regarding the generated cross call.
  • the load monitoring control program 243 is a program for executing load monitoring processing regularly or irregularly.
  • the load monitoring process includes, for example, specifying the load (for example, usage rate) of each controller 210, changing the core in charge of the LU 220 according to the specified load, and the owner table according to the change of the core in charge of the LU 220. Updating 241 may be included.
  • the load monitoring control program 243 determines which LU 220 is responsible for which core so that the usage rate of each core is balanced.
  • the load monitoring device 230 has a CPU 231. Note that the CPU 212 of the controller 210 may be used in place of the CPU 231 (that is, the CPU 231 is not provided, and at least one CPU 212 may execute load monitoring processing in addition to I / O for the LU).
  • the CPU 231 executes the load monitoring process by executing the load monitoring control program 243 stored in the shared memory device 240.
  • the LU 220 may be a virtual LU or a real LU.
  • the real LU may be an LU based on a RAID group configured by a plurality of PDEVs.
  • LU0 LU0
  • LU1 LU1
  • LU2 LU2
  • LU220 provided to SV1 (server 1).
  • the LU 220 provided to the SV 2 (server 2) includes LU 10 (LDEV0020), LU11 (LDEV0021), and LU12 (LDEV0022).
  • the LU 220 provided to the SV 3 (server 3) includes an LU 20 (LDEV 0030), an LU 21 (LDEV 0031), and an LU 22 (LDEV 0032).
  • “LDEV” is a logical storage device and is substantially the same as LU. Specifically, in this embodiment, the storage apparatus has an LU number, which is identification information designated from the server, and an LDEV number, which is identification information used inside the storage apparatus, for the LU.
  • the 0-system controller 210A has a plurality of (for example, eight from A to H) ports 211A and a CPU 212A. Since the 1-system controller 210B has the same configuration as the 0-system controller 210A, the description thereof is omitted here.
  • the port 211A is a port corresponding to the fiber channel (CHA port), and mediates communication with other devices.
  • CH fiber channel
  • a plurality of ports are distinguished and described, they may be expressed as ports A, B,.
  • the CPU 212A has a plurality of cores 212AX and cores 212AY.
  • the cores 212AX and 212AY may be referred to as “Core-X” and “Core-Y”, respectively.
  • the core 212AX and the core 212AY can operate independently, and execute, for example, communication processing using the port 211A and I / O to the LU 220.
  • the responsible port and the responsible LU are determined for each core.
  • a port handling core that is a core that receives an I / O request received by the port is defined for each port
  • an LU handling core that is a core that executes I / O for the LU for each LU. Is determined.
  • the port responsible core for ports A to D is the core 212AX
  • the port responsible core for ports E to H is the core 212AY.
  • Each core 212AX, 212AY is communicably connected to the PDEV, and at the time of I / O to the LU, a physical storage area (storage area in the PDEV) corresponding to the LU area (area in the LU) of the I / O destination Send an I / O request to a PDEV with
  • the LU responsible core of the LU 220 executes I / O on the I / O destination LU 220.
  • the LU responsible core can be changed by the control of the load monitoring device 230.
  • FIG. 13 is a diagram illustrating an example of a path table of the server 1 according to the embodiment.
  • FIG. 14 is a diagram illustrating an example of a path table of the server 2 according to the embodiment.
  • FIG. 15 is a diagram illustrating an example of a path table of the server 3 according to the embodiment.
  • the configuration of the path tables of the server 1, the server 2, and the server 3 is the same, and the information stored in the path table is information corresponding to each server.
  • the path table 113 includes the following information for each path: (*) A path ID 113a that is an ID for uniquely identifying a path; (*) Vendor name 113b representing the vendor name of the storage apparatus 200 having the port through which the path passes, (*) Product name 113c indicating the product name of the storage apparatus 200 having the port through which the path passes, (*) Serial number 113d representing the product number of the storage apparatus 200 having the port through which the path passes, (*) LU number 113e, which is the LU number of the LU 220 connected to the path, (*) LDEV number 113f, which is the LDEV number of the LU 220 connected to the path, (*) Path status 113g indicating the status of the path, (*) CHA port 113h which is the number of the port through which the path passes, (*) Accepted controller number 113i, which is the number of the controller having the core in charge of the port through which the path passes, and (*) Port responsible core number 113J,
  • an OS (Operating System) (not shown) of the server 100 transmits an LU list information acquisition request from the HBA 130 to each port of the storage apparatus 200.
  • a response including LU list information is sent from the storage apparatus 200 to the server 100.
  • the LU list information includes information related to the LU associated with the port that has received the acquisition request (information including vendor name, product name, product number, LU number, LDEV number, etc.).
  • the multipath management program 112 transmits an inquiry request (for example, an Inquiry command) including the LU number included in the acquired LU list information.
  • the identification information of the core in charge of the port that has received the inquiry request (reception controller number and core number in charge of the port), and the identification information of the LU responsible core of the LU identified from the LU number included in the inquiry request; Is sent from the storage apparatus 200 to the server 100.
  • the multipath management program 112 stores information included in the LU list information and information included in the response to the inquiry request in the path table 113.
  • the multi-path management program 112 selects a cross-call path and passes through the cross-call path when a plurality of paths to the LU specified in the inquiry request include a cross-call path and a non-cross-call path. Get a query request.
  • a cross call path is a path where a cross call occurs.
  • the cross call path includes a core cross call path in which the LU charge core and the port charge core are different but in the same CPU, and a CPU cross call path in the CPU in which the LU charge core and the port charge core are different.
  • the non-cross call path is a path in which the LU handling core and the port handling core are the same.
  • the storage device identification information includes a vendor name, a product name, and a manufacturing number.
  • the storage apparatus 200 has a vendor name “HIT”, a product name “600F”, and a product number “9300080”.
  • path IDs “00001”, “00004”, “00007”, and “00010” as paths to LU0.
  • the path “00001” is a path that passes through the port “0A” (port A of the 0-system controller 211A), and the port-in-charge core of the port “0A” is the core 212AX of the 0-system controller 210A.
  • the path “00007” is a path that passes through the port “1A” (port A of the 1-system controller 211B), and the port-in-charge core of the port “1A” is the core 212BX of the 1-system controller 210B.
  • FIG. 16 is a diagram illustrating an example of an owner path table of the server 1 according to the embodiment.
  • FIG. 17 is a diagram illustrating an example of an owner path table of the server 2 according to the embodiment.
  • FIG. 18 is a diagram illustrating an example of an owner path table of the server 3 according to the embodiment.
  • the configurations of the owner path tables of the server 1, the server 2, and the server 3 are the same, and the information stored in the owner path table is information corresponding to each server.
  • the owner path table 114 includes the following information for each path: (*) Vendor name 114a indicating the vendor name of the storage apparatus 200, (*) Product name 114b indicating the product name of the storage apparatus 200, (*) Product number 114c representing the product number of the storage device 200, (*) LDEV number 114d indicating the LDEV number of the LU connected to the path, (*) Controller number 114e indicating the number of the controller (owner controller) having the LU responsible core of the LU to which the path is connected, (*) LU responsible core number 114f indicating the number of the LU responsible core of the LU to which the path is connected, and (*) I / O path control 114g representing information on whether or not execution of path selection by the process after step S2 of the path selection process (see FIG.
  • the multipath management program 112 stores the specified setting information in the owner path table 114 as the I / O path control 114g. Store.
  • the setting information may be specified for individual LUs or may be specified as common information for a plurality of LUs.
  • FIG. 19 is a diagram illustrating an example of an owner table according to the embodiment.
  • the owner table 241 includes the following information for each LU: (*) LDEV number 241a indicating the LDEV number of the LU, (*) Controller number 241b indicating the number of the controller having the LU responsible core of the LU, and (*) LU responsible core number 241c representing the LU responsible core number of the LU; Have
  • the owner table 241 it can be seen that, for example, the LU “0010” is I / O executed by the core “X” (core 212AX) of the controller “0” (0-system controller 210A).
  • FIG. 20 is a diagram illustrating an example of the cross call table according to the embodiment.
  • the cross call table 242 stores the following information for each executed cross call: (*) Reception number 242a, which is a number uniquely indicating a cross call, (*) LDEV number 242b indicating the LDEV number of the LU 220 designated by the I / O request in which the cross call has occurred, (*) Accepted controller number 242c, which is the number of the controller that accepted the I / O request in which the cross call occurred, (*) Port responsible core number 242d representing the number of the port responsible core that has accepted the I / O request in which the cross call has occurred.
  • a processing controller number 242e indicating the number of a controller having a core that has executed I / O for the LU 220 specified by the I / O request in which the cross call has occurred; and (*) Processing LU charge core number 242f indicating the number of the core that has performed I / O for the LU 220 specified by the I / O request in which the cross call has occurred,
  • the cross call table 242 in the cross call “000001”, the I / O destination is LU “0010”, the I / O request is accepted by the core 212BY of the 1-system controller 210B, and the core 212AX of the 0-system controller 210A. It can be seen that I / O has been executed. This also means that the result of I / O by the core 212AX is returned to the core 212BY and transmitted to the source of the I / O request by the core 212BY. That is, the cross call table 242 is used to return a response through the same route as the route through which the I / O request has flowed according to the cross call.
  • the port responsible core (for example, any one of 212AX, 212AY, 212BX, and 212BY) receives an I / O request from the responsible port (211A or 211B), it refers to the owner table 241 and refers to the I / O destination LU ( The LU responsible LU of the LU 220 specified by the I / O request (the core of the controller responsible for the I / O for the LU 220) is specified.
  • the port responsible core performs I / O on the I / O destination LU 220.
  • the port responsible core Add a new record to the cross call table 242.
  • (*) Set the number of the controller having the core in charge as the reception controller number 242c in the record.
  • the port responsible core number 242d is set as the port responsible core number 242d.
  • (*) Set the number of the controller having the identified LU responsible core as the processing controller number 242e in the record.
  • the specified LU responsible core number is set as the processing LU responsible core number 242f in the record.
  • the core in charge of the LU that has received the I / O request executes I / O according to the I / O request to the I / O destination LU 220.
  • the LU responsible core refers to the cross call table 242 and passes the processing result to the port responsible core of the transfer source of the I / O request.
  • the core that has received the processing result transmits a response including the processing result to the server 100 that is the transmission source of the I / O request via the port that the core is responsible for (the port that has received the I / O request).
  • FIG. 21 is a flowchart of the path selection process according to the embodiment.
  • the path selection process is executed when the multipath management program 112 of the server 100 receives an I / O request from the application 111.
  • the multipath management program 112 searches the owner path table 114 for a record that matches the LDEV number corresponding to the LU number of the I / O destination LU (the LU specified by the I / O request), and from the record, the controller The number and the LU charge core number are acquired (step S1).
  • the processing after step S2 is executed when the value of the I / O path control 114g of the record is valid (ON).
  • the multipath management program 112 is, for example, a record in which the path status 113g of the path table 113 is Online, and the I / O The path indicated by the record having the same LDEV number of the O destination LU is selected according to a predetermined rule such as a round robin method.
  • step S2 the multipath management program 112 records in the path table 113 a record that satisfies all the following conditions:
  • the path status 113g is Online.
  • It has a vendor name 113b, a product number 113c, and an LDEV number 113d that match the vendor name, product number, and LDEV number corresponding to the I / O destination LU.
  • step S2 If there is a matching record in step S2 (Yes in step S2), the path is a non-cross call path (the LU responsible core of the I / O destination LU and the port responsible core of the port through which the path passes). Is the same path). Therefore, the multipath management program 112 selects the path as a path used when transmitting the I / O request (step S5). Thereafter, the multipath management program 112 transmits an I / O request via the path. As a result, it is possible to avoid the occurrence of a cross call when processing the I / O request.
  • step S2 if there is no matching record in step S2 (No in step S2), the multipath management program 112 records in the path table 113 a record that satisfies all the following conditions: (*) The path status 113g is Online. (*) It has a vendor name 113b, a product number 113c, and an LDEV number 113d that match the vendor name, product number, and LDEV number corresponding to the I / O destination LU. (*) Having a controller number 113i that matches the controller number obtained in step S1; It is determined whether or not there is (step S3).
  • the path is the core cross call path (the LU responsible core of the I / O destination LU and the port responsible core of the port through which the path passes). Although it is different, it means that those cores are paths in the same CPU). For this reason, the multipath management program 112 selects the path as a path to be used when transmitting the I / O request (step S5). Thereafter, the multipath management program 112 transmits an I / O request via the path. As a result, when an I / O request is transmitted, it is possible to avoid the occurrence of a CPU cross call having a higher load than the core cross call in the storage apparatus 200.
  • step S3 if there is no matching record in step S3 (No in step S3), the multipath management program 112 records in the path table 113 a record that satisfies all the following conditions: (*) The path status 113g is Online. (*) It has a vendor name 113b, a product number 113c, and an LDEV number 113d that match the vendor name, product number, and LDEV number corresponding to the I / O destination LU. It is determined whether or not there is (step S4).
  • step S4 If there is a matching record in step S4 (Yes in step S4), the multipath management program 112 selects the path to be used when transmitting the I / O request (step S5). Thereafter, the multipath management program 112 transmits an I / O request using the path. Thus, when an I / O request is transmitted, a CPU cross call occurs in the storage apparatus 200.
  • step S4 determines the application that is the source of the I / O request. An error is returned to 111 (step S6).
  • a non-cross call path is specified and selected with priority, and if there is no non-cross call path, a core cross call path is specified and selected with priority, and a non-cross call path and a core cross call are selected. If there is no path, the CPU core cross-call path is selected.
  • FIG. 22 is a flowchart of owner path table update processing according to the embodiment.
  • the owner path table update process is executed, for example, when the application 111 is executed.
  • the multipath management program 112 pauses the process until a predetermined monitoring time (second time interval) elapses or an end event of the owner path table update process occurs (step S11). If the process end event occurs, it is determined whether or not the monitoring time has elapsed (step S12).
  • the monitoring time is determined as follows, for example. That is, for each LU, the storage device 200 determines whether or not it is necessary to change the responsible change processing (the LU responsible core of the LU at the first time interval, and if the result of the determination is affirmative In this case, the monitoring time (second time interval) is longer than the first time interval, for example, an integral multiple of the first time interval.
  • the first time interval that is the execution interval of the charge change process may be changed via the input / output console of the storage apparatus 200.
  • the first time interval after the change is
  • the storage apparatus 200 may notify the server 100, or the server 100 may inquire the storage apparatus 200.
  • the multipath management program 112 of the server 100 performs the first time after the change. Interval may change the monitoring time based on (second time interval).
  • the multipath management program 112 acquires the owner controller number and the owner LU responsible core number for each LU 220 from the storage apparatus 200 (step S13). For example, the multipath management program 112 may transmit the inquiry command (SCSI request) to the storage apparatus 200 including the LU number of the LU managed by the storage apparatus 200.
  • the storage apparatus 200 receives this command, the CPU core that has received the command identifies the LDEV number corresponding to the LU number in the command, and from the owner table 241, the owner controller number and owner LU responsible for the corresponding LU 220. It is only necessary to acquire the core number, register the acquired owner controller number and owner LU core number in the vendor unique field in response to the command, and transmit the response to the multipath management program 112.
  • the path selected by the multipath management program 112 as a path through which the inquiry command is routed may be any path through which an I / O request in which an LU corresponding to the LU number in the inquiry command is designated can be routed.
  • the CPU cross call path is specified and selected with priority, and if there is no CPU cross call path, the core cross call path is specified and selected with priority. If there is neither a call path nor a core cross call path, a non-cross call path may be selected. In this way, it can be expected that the processing performance of the I / O request specifying the LU 220 corresponding to the LU number in the inquiry command will be reduced.
  • the multipath management program 112 stores the acquired owner controller number and owner LU-in-charge core number in the record of the corresponding LU 220 in the owner path table 113 (step S14), and advances the processing to step S11. Thereby, the owner path table 113 can be updated to the latest information.
  • the multipath management program 112 determines whether or not it is a processing end event (step S15), and if it is a processing end event (in step S15). In Yes), the multipath table update process ends, but if it is not a process end event (No in Step S15), the process proceeds to Step S11.
  • the storage apparatus including a plurality of CPUs having a plurality of cores has been described as an example.
  • the present invention is not limited thereto, and for example, a storage apparatus including a plurality of CPUs having one core. It may also be a storage device including one CPU having a plurality of cores.
  • the server 100 polls the storage apparatus 200 to acquire information including the numbers of the LU responsible core and the controller having the LU.
  • the device changes the LU responsible core
  • the information including the numbers of the LU responsible core after the change and the controller having the LU is sent to the server 100, and the owner is based on the information received by the server 100.
  • the path table 114 may be updated.
  • the identification information of the LU responsible core (for example, the controller number and the LU responsible core number) is acquired via the path through which the I / O request passes.
  • the storage apparatus 200 and the server 100 Is connected to a communication network different from the communication network in which communication according to the fiber channel is performed, and the inquiry command for acquiring the identification information of the LU responsible core and the response (LU responsible) are acquired via another communication network.
  • a response including core identification information may be transmitted and received.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 ストレージ装置は、サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLU(Logical Unit)とを有する。ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっている。LU担当コアは、動的に変更することがある。サーバは、LU担当コアの識別情報を定期的にストレージ装置から取得する。サーバは、I/O要求を送信する場合に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、選択したパスを介して送信対象のI/O要求を送信する。

Description

計算機システムおよびデータ入出力方法
 本発明は、サーバからストレージ装置内のLU(Logical Unit)に対するI/O(Input/Output)に関する。
 一般に、計算機システムは、LUを有するストレージ装置と、ストレージ装置に接続されたサーバとを有する。サーバは、ストレージ装置のLUにデータを入出力するためのI/O要求を送信する。ストレージ装置は、I/O要求を受信し、そのI/O要求で指定されているLUに対し、そのI/O要求に従うデータを入出力する。LUは、論理的な記憶デバイスであり、論理ボリュームと呼ばれることもある。LUは、仮想LUであっても実LUであっても良い。仮想LUは、例えば、Thin Provisioningに従うLUであっても良いし、ストレージ仮想化技術に従うLU(ストレージ装置の外部のストレージ装置の記憶資源が仮想化されたLU)であっても良い。実LUは、物理的な記憶デバイス(以下、PDEV)に基づくLUである。例えば、複数のPDEVで構成されたRAID(Redundant Array of Independent (or Inexpensive) Disks)グループを基に1又は複数の実LUが形成される。
 複数のプロセッサを有し、どのLUに対するI/Oをどのプロセッサが担当するかが決められるストレージ装置がある。このようなストレージ装置に関して、プロセッサの負荷に応じて、LUを担当するプロセッサを変更する技術が知られている(例えば、特許文献1参照)。
 また、サーバからLUへの複数のパスが用意され、複数のパスから選択するパスを制御することにより、ネットワークの負荷や、ストレージ装置におけるポートの負荷を分散する技術も知られている。
特開2008-269424号公報
 複数のパスから選択されるパスは、例えば、ラウンドロビン方式で切り替わる。このため、LUを担当するプロセッサ(又は、プロセッサコア)が決定されているストレージ装置において、サーバで選択されたパスを介してI/O要求を受け付けたプロセッサ(又はプロセッサコア)と、そのI/O要求で指定されたLUを担当するプロセッサ(又はプロセッサコア)とが異なるケースが生じることがある。このケースでは、いわゆるクロスコールが発生する。ここで言う「クロスコール」は、プロセッサ間(又はプロセッサコア間)でI/O要求が授受されること、すなわち、I/O要求を受け付けたプロセッサ(又はプロセッサコア)から、そのI/O要求で指定されているLUを担当するプロセッサ(又はプロセッサコア)に、I/O要求が転送されることである。クロスコールが発生することにより、I/O要求を授受する双方のプロセッサ(又はプロセッサコア)の性能が低下してしまう虞がある。
 ストレージ装置は、サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLUとを有する。ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっている。LU担当コアは、動的に変更することがある。サーバは、LU担当コアの識別情報を定期的にストレージ装置から取得する。サーバは、I/O要求を送信する場合に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、選択したパスを介して送信対象のI/O要求を送信する。
図1は、実施形態に係るストレージ装置が有するコントローラの概要を示す図である。 図2は、LUへのI/O処理の一例を説明する図である。 図3は、コアクロスコールの一例を説明する図である。 図4は、CPUクロスコールの一例を説明する図である。 図5は、クロスコールの一例の発生を説明する図である。 図6は、実施形態に係る計算機システムの概要を説明する第1の図である。 図7は、実施形態に係る計算機システムの概要を説明する第2の図である。 図8は、実施形態に係る計算機システムの概要を説明する第3の図である。 図9は、実施形態に係る計算機システムの概要を説明する第4の図である。 図10は、実施形態に係る計算機システムの概要を説明する第5の図である。 図11は、実施形態に係る計算機システムの概要を説明する第6の図である。 図12は、実施形態に係る計算機システムの構成図である。 図13は、実施形態に係るサーバ1のパステーブルの一例を示す図である。 図14は、実施形態に係るサーバ2のパステーブルの一例を示す図である。 図15は、実施形態に係るサーバ3のパステーブルの一例を示す図である。 図16は、実施形態に係るサーバ1のオーナパステーブルの一例を示す図である。 図17は、実施形態に係るサーバ2のオーナパステーブルの一例を示す図である。 図18は、実施形態に係るサーバ3のオーナパステーブルの一例を示す図である。 図19は、実施形態に係るオーナテーブルの一例を示す図である。 図20は、実施形態に係るクロスコールテーブルの一例を示す図である。 図21は、実施形態に係るパス選択処理のフローチャートである。 図22は、実施形態に係るオーナパステーブル更新処理のフローチャートである。
 実施形態を、図面を参照して説明する。なお、以下に説明する実施形態は請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 なお、以下の説明では、「aaaテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaテーブル」を「aaa情報」と呼ぶことができる。
 さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」「番号」という表現を用いるが、これらについてはお互いに置換が可能である。
 また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサ(典型的にはCPU(Central Processing Unit))によって実行されることで定められた処理をメモリ及び通信ポートを用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、サーバ、ストレージ装置等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
 まず、クロスコールを説明する。
 図1は、ストレージ装置のコントローラの概要を説明する図である。
 ストレージ装置は、1以上のコントローラ210を備える。コントローラ210は、複数(例えば2個)のCPUコア(以下、コア)212X、212Yを有するCPU212を備えている。また、コントローラ210は、サーバ等の装置との通信を仲介するための複数(例えば、8個)の通信ポート(以下、ポート)211を有する。コントローラ210においては、ポートA~Dを用いての通信処理は、コア212X(Core-Xともいう)が担当し、ポートE~Hを用いての通信処理は、コア212Y(Core-Yともいう)が担当するようになっている。
 図2は、LUに対するI/Oの一例を説明する図である。
 図2には、LU220の一例として、LU6が示されている。LU6に対するI/O処理を担当するコアは、0系のコントローラ210AのCore-X(コア212AX)である。また、ポート211毎に、担当するコアが決まっている。
 ポートAが、LU6に対するI/O要求を受信すると(図2(1))、ポートAを担当するコア212AXが、そのI/O要求を受ける(図2(2))。ここで、LU6を担当するコア212AXが、I/O要求を受けたので、クロスコールは生じない。すなわち、コア212AXは、そのI/O要求に従いLU6に対するI/Oを実行し、そのI/O要求を別のコアに転送する必要が無い(図2(3))。
 図3は、コアクロスコールの一例を説明する図である。
 コアクロスコールとは、コア間のクロスコールである。図3においては、LU6を担当するコアは、0系のコントローラ210AのCore-X(コア212AX)である。
 ここで、ポートEが、LU6を指定したI/O要求を受信すると(図3(1))、ポートEを担当するコア212AYがそのI/O要求を受ける(図3(2))。ここで、LU6を担当するコアは、I/O要求を受けたコア212AYではなく、他のコア212AXである。このため、1つのCPU212においてコアクロスコールが発生する。すなわち、コア212AYからコア212AXへI/O要求が渡される(図3(3))。I/O要求を受けたコア212AXは、LU6に対してI/Oを実行する(図中(4))。このように、コアクロスコールが発生すると、I/O要求を授受するための負荷が双方のコア212AX及び212AYにかかる。なお、コアクロスコールは、後述のCPUクロスコールよりは、CPUに対する負荷が低い。
 図4は、CPUクロスコールの一例を説明する図である。
 CPUクロスコールとは、CPU間のクロスコールである。同一のコントローラにおいてCPUクロスコールが発生することもあれば、コントローラ間でCPUクロスコールが発生することもある。以下の説明において、「クロスコール」という記載は、コアクロスコールとCPUクロスコールのいずれも意味する。
 図4では、ストレージ装置には、0系コントローラ210Aと、1系コントローラ210Bの2つが存在し、LU6を担当するコアは、0系コントローラ210AのCore-X(コア212AX)であり、LU7を担当するコアは、1系コントローラ210BのCore-Y(コア212BY)である。
 0系コントローラ210AのポートFが、LU7を指定したI/O要求を受信すると(図4(1))、ポートFを担当するコア212AYが、そのI/O要求を受ける(図4(2))。ここで、LU7を担当するコアは、I/O要求を受けたコア212AYではなく、1系コントローラ210Bのコア212BYである。このため、CPUクロスコールが発生する。すなわち、コア212AYを有するCPUから別のCPUのコア212BYにI/O要求が転送される(図4(3))。I/O要求を受けたコア212BYは、LU7に対してI/Oを実行する(図4(4))。
 一方、1系コントローラ210BのポートAが、LU6を指定したI/O要求を受信すると(図4(5))、ポートAを担当するコア212BXが、そのI/O要求を受ける(図4(6))。ここで、LU6を担当するコアは、I/O要求を受けたコア212BXではなく、0系コントローラ210Aのコア212AXである。このため、CPUクロスコールが発生する。すなわち、コア212BXを有するCPUから別のコア212AXを有するCPUにI/O要求が転送される(図4(7))。I/O要求を受けたコア212AXは、LU6に対してI/Oを実行する(図4(8))。
 上記のように、CPUクロスコールが発生すると、CPUクロスコールを実行するための負荷が双方のCPUに掛かってしまう。
 図5は、クロスコールの一例の発生を説明する図である。
 サーバ1000は、複数(例えば2つ)のスイッチ150A、150B(FC-SW1、FC-SW2)と例えば光ファイバケーブルを介して接続され、2つのスイッチ150A、150Bは、ストレージ装置200と例えば光ファイバケーブルを介して接続されている。
 同図に示すように、計算機システムにおいては、LU6へのパスとしては、例えば、サーバ1000のHBA1、FC-SW1、0系コントローラ210AのポートDを経由するパスと、サーバ1000のHBA2、FC-SW2、1系コントローラ210BのポートAを経由するパスとが用意されている。
 サーバ1000のCPUでアプリケーションプログラム(以下、アプリケーション111)とマルチパス管理プログラム1010が実行される。アプリケーション111は、例えばLU6を指定したI/O要求を発行する。マルチパス管理プログラム1010は、同一のLU6への複数のパスから、アプリケーション111から発行されたI/O要求(LU6を指定したI/O要求)を経由させるパスを選択する。マルチパス管理プログラム1010は、例えば、ラウンドロビン方式で複数のパスから1つのパスを選択し、選択したパスを用いて、アプリケーション111から発行されたI/O要求を送信する。このため、ストレージ装置200には、LU6を指定したI/O要求は、LU6への2つのパスのうちのいずれからもI/O要求が到達し得る。
 ここで、ストレージ装置200において、LU6を担当するコアは、0系コントローラ210AのCore-X(コア212AX)である。
 この場合には、アプリケーション111から発行されたI/O要求は、マルチパス管理プログラム1010に伝えられ(図5(1))、マルチパス管理プログラム1010により、そのI/O要求が経由するパスが選択される。
 HBA1、FC-SW1、及び0系コントローラ210AのポートDを経由するパスを、LU6を指定したI/O要求が経由するパスとして選択した場合には、マルチパス管理プログラム1010は、I/O要求をHBA1に渡す(図5(2))。HBA1に渡されたI/O要求は、HBA1からFC-SW1に送信され(図5(3))、FC-SW1から0系コントローラ210AのポートDに送信される(図5(4))。
 LU6を指定したI/O要求をポートDが受信する、ポートDを担当するコア212AXが、そのI/O要求を受ける(図5(5))。ここで、LU6を担当するコアは、I/O要求を受けたコア212AXであるので、クロスコールが発生せず、コア212AXは、LU6に対してI/Oを実行する(図5(6))。
 一方、HBA2、FC-SW2及び1系コントローラ210BのポートAを経由するパスを、LU6を指定したI/O要求が経由するパスとして選択した場合には、マルチパス管理プログラム1010は、そのI/O要求をHBA2に渡す(図5(11))。HBA2に渡されたI/O要求は、HBA2からFC-SW2に送信され(図5(12))、FC-SW2から1系コントローラ210BのポートAに送信される(図5(13))。
 1系コントローラ210BのポートAが、LU6を指定したI/O要求を受信すると、ポートAを担当するコア212BXが、そのI/O要求を受ける(図5(14))。ここで、LU6を担当するコアは、I/O要求を受けたコア212BXではなく、コア212AXである。このため、CPUクロスコールが発生する。すなわち、コア212BXのCPUからコア212AXのCPUにI/O要求が転送される(図5(15))。I/O要求を受けたコア212AXは、LU6に対してI/Oを実行する(図5(16))。
 本実施形態に係る計算機システムでは、上述したクロスコールがなるべく発生しないよう制御される。以下、その計算機システムの概要を説明する。
 図6は、実施形態に係る計算機システムの概要を説明する第1の図である。
 LU6へのパスとして、例えば、サーバ100のHBA1、FC-SW1、0系コントローラ210AのポートDを経由するパスP1と、サーバのHBA2、FC-SW2、1系コントローラ210BのポートAを経由するパスP2とが用意されている。
 マルチパス管理プログラム112は、どのLUをどのコントローラ及びコアが担当するかを表す情報をストレージ装置200から取得してサーバ100内の記憶資源(例えばメモリ)に格納しておく。マルチパス管理プログラム112は、当該情報に基づいて、アプリケーション111からのI/O要求で指定されたLUへの複数のパスから、I/O要求が経由してもクロスコールが発生することの無いパス(以下、非クロスコールパス)を選択する。同図に示す例において、LU6を指定したI/O要求を送信する場合には、マルチパス管理プログラム112は、非クロスコールパスを選択する。LU6の非クロスコールパスは、LU6へのパスP1及びP2のうち、LU6を担当するコア212AXが担当するポートDを経由するパスP1である。つまり、非クロスコールパスP1は、パスP1が経由するポートDが受信したI/O要求を受けるコアとLU6の担当コアとが同一であるパスである。これにより、クロスコールの発生を回避することができる。
 図7は、実施形態に係る計算機システムの概要を説明する第2の図である。
 アプリケーション111からのI/O要求で指定されたLU220への複数のパスに、複数の非クロスコールパス(図7の例では、ポートCを経由するパスP3、ポートDを経由するパスP4)ある場合には、マルチパス管理プログラム112は、複数の非クロスコールパスから選択する非クロスコールパスを、ラウンドロビン方式等の所定の方式に従って違えて良い。
 次に、ストレージ装置200において障害が発生した場合に行われる処理の概要、及び、その障害が回復した場合に行われる処理の概要を説明する。
 図8は、実施形態に係る計算機システムの概要を説明する第3の図である。図9は、実施形態に係る計算機システムの概要を説明する第4の図である。図10は、実施形態に係る計算機システムの概要を説明する第5の図である。図11は、実施形態に係る計算機システムの概要を説明する第6の図である。
 図8に示すように、マルチパス管理プログラム112がパスP5を用いてI/O要求を送信する場合において、0系コントローラ210Aに障害が発生した場合には、マルチパス管理プログラム112は、図9に示すように、1系コントローラ210Bに対してI/O要求を送信するパス(例えばパスP6)を選択する。
 0系コントローラ210Aに障害が発生した場合、ストレージ装置200では、図9に示すように、1系コントローラ210Bのコア(例えば、コア212BX)が、0系コントローラ210Aのコアに代わってLU6の担当コアとして設定される。
 ここで、ストレージ装置200の0系コントローラ210Aの障害が回復した場合には、図10に示すように、負荷監視デバイス230により、各コントローラ(210A、210B)の負荷が監視され、各コントローラの負荷を分散させるために、例えば、LU6の担当がコア212AXに戻される。
 担当コアが変更された直後においては、サーバ100からパスP7を介してI/O要求が送信されているので、1系コントローラ210Bのコア212BXがそのI/O要求を受信し、CPUクロスコール(コア212BXから、LU6を担当するコア212AXに、I/O要求が転送される)が発生する。サーバ100は、どのLUに対するI/Oをどのコアが担当しているかを表す情報(以下、担当コア特定情報)を取得する。このため、サーバ100は、LU6を担当する変更後のコアを特定する情報(コントローラ番号及びコア番号)を取得することとなる。
 このように、変更後のコアを特定する情報を取得した後においては、マルチパス管理プログラム112は、図11に示すように、LU6を指定したI/O要求を送信するためのパスとして、非クロスコールパスP8を選択することとなり、そのI/O要求が、LU6を担当するコア212AXへ送信されることとなる。これにより、クロスコールが回避される。
 次に、実施形態に係る計算機システムを詳細に説明する。
 図12は、実施形態に係る計算機システムの構成図である。
 計算機システムは、1以上のサーバ100と、1以上のストレージ装置200と、1以上のサーバ100及び1以上のストレージ装置200を接続する複数のスイッチ150(150A、150B)とを有する。サーバ100と、スイッチ150とは、例えば、光ファイバケーブルにより接続されている。また、スイッチ150と、ストレージ装置200とは、例えば、光ファイバケーブルにより接続されている。
 スイッチ150は、例えば、ファイバチャネルに対応する機器(サーバ100、ストレージ装置200等)を相互に接続するスイッチである。本実施形態では、スイッチ150A、150Bは、それぞれ複数のサーバ100に接続されている。また、スイッチ150Aは、ストレージ装置200の0系コントローラ210Aの複数のポート211Aに接続されている。また、スイッチ150Bは、ストレージ装置200の1系コントローラ210Bの複数のポート211Bに接続されている。
 サーバ100は、通信インタフェースデバイス、記憶デバイス及びそれらに接続された制御デバイスを有する。通信インタフェースデバイスは、例えば、HBA(Host Bus Adapter)130である。HBA130は、複数ある。記憶デバイスは、例えば、メモリ110である。制御デバイスは、例えば、CPU120である。
 メモリ110は、アプリケーション111と、マルチパス管理プログラム112と、パステーブル113と、オーナパステーブル114とを記憶する。
 アプリケーション111は、所定の業務処理を実行するためのプログラムであり、業務処理に関わるデータのI/O要求であって、ストレージ装置200のLU220(厳密には、例えば、LU220がマウントされることにより認識されている論理記憶デバイス)に対するI/O要求を発行する。マルチパス管理プログラム112は、アプリケーション111からのI/O要求で指定されたLUへの複数のパスの中から1つパスを選択する機能、選択したいパスの障害を検出した際にそのパスとは別のパスを選択しそのパスを介してI/O要求を送信する機能、複数のパスから選択するパスを適宜に変更する機能、任意のパスを閉塞する機能等を実現する。パステーブル113は、LU220へのパスに関する情報を有する。オーナパステーブル114は、LU220を担当するコントローラ及びコアを特定する情報(担当コア特定情報)を有する。
 CPU120は、メモリ110に格納されているプログラムを実行することにより、各種処理を実行する。その際、適宜に、テーブル113及び114が参照される。
 HBA130は、ファイバチャネルに対応したアダプタであり、外部の装置(ストレージ装置200等)との間での通信を仲介する。なお、サーバ100内のHBA130を区別する際には、「HBA1」、「HBA2」と表記する場合がある。本実施形態では、HBA1は、スイッチ150Aに接続され、HBA2は、スイッチ150Bに接続されている。
 ストレージ装置200は、複数のコントローラ210(0系コントローラ210A、1系コントローラ210B)と、複数のLU220と、負荷監視デバイス230と、共有メモリデバイス240と、複数のPDEVとを有する。複数のPDEVに基づく記憶領域が、複数のLU220のうちのいずれかの実LUであっても良いし、複数のLU220のうちの仮想LUに割り当てられる記憶領域であっても良い。
 共有メモリデバイス240は、オーナテーブル241と、クロスコールテーブル242と、負荷監視制御プログラム243とを記憶する。オーナテーブル241は、LU220に対するI/O処理を担当するコアを管理するためのテーブルである。クロスコールテーブル242は、発生したクロスコールに関する情報を有する。負荷監視制御プログラム243は、定期的又は不定期的に負荷監視処理を実行するためのプログラムである。負荷監視処理は、例えば、各コントローラ210の負荷(例えば使用率)を特定すること、特定した負荷に応じて、LU220を担当するコアを変更すること、LU220の担当コアの変更に応じてオーナテーブル241を更新することを含んで良い。本実施形態では、負荷監視制御プログラム243は、各コアの使用率が均衡するように、どのLU220の担当をどのコアにするかを決定する。
 負荷監視デバイス230は、CPU231を有する。なお、CPU231に代えて、コントローラ210のCPU212が利用されてもよい(つまり、CPU231が無く、少なくとも1つのCPU212が、LUに対するI/Oに加えて、負荷監視処理を実行しても良い)。CPU231は、共有メモリデバイス240に格納された負荷監視制御プログラム243を実行することにより、負荷監視処理を実行する。
 LU220は、前述したように、仮想LUであっても実LUであっても良い。実LUは、複数のPDEVにより構成されたRAIDグループに基づくLUで良い。
 同図においては、SV1(サーバ1)に提供されているLU220として、LU0(LDEV0010)と、LU1(LDEV0011)と、LU2(LDEV0012)とがある。SV2(サーバ2)に提供されているLU220として、LU10(LDEV0020)、LU11(LDEV0021)、LU12(LDEV0022)とがある。また、SV3(サーバ3)に提供されているLU220として、LU20(LDEV0030)と、LU21(LDEV0031)と、LU22(LDEV0032)とがある。なお、「LDEV」は、論理的な記憶デバイスであり、実質的にはLUと同一である。具体的には、本実施形態では、ストレージ装置は、LUについて、サーバから指定される識別情報であるLU番号と、ストレージ装置内部で使用される識別情報であるLDEV番号とを有する。
 0系コントローラ210Aは、複数(例えば、A~Hまでの8個)のポート211Aと、CPU212Aとを有する。なお、1系コントローラ210Bも、0系コントローラ210Aと同様な構成をしているので、ここでは、説明を省略する。
 ポート211Aは、ファイバチャネルに対応するポート(CHAポート)であり、他の装置との通信を仲介する。ここで、複数のポートを区別して説明する場合には、ポートA、B、・・、Hと表記する場合がある。
 CPU212Aは、複数のコア212AX、コア212AYを有する。なお、各コア212AX、212AYを、それぞれ「Core-X」、「Core-Y」と表記する場合がある。コア212AX、コア212AYは、それぞれ独立して動作可能であり、例えば、ポート211Aを用いての通信処理、LU220に対するI/Oを実行する。本実施形態では、各コアについて、担当するポートと、担当するLUが定められる。言い換えれば、ポート毎に、ポートが受信したI/O要求を受けることになるコアであるポート担当コアが定められており、LU毎に、LUに対するI/Oを実行するコアであるLU担当コアが定められる。具体的には、ポートA~Dのポート担当コアは、コア212AXであり、ポートE~Hのポート担当コアは、コア212AYである。
 各コア212AX、212AYは、PDEVと通信可能に接続されており、LUに対するI/Oの際に、I/O先のLU領域(LUにおける領域)に対応する物理記憶領域(PDEVにおける記憶領域)を有するPDEVに、I/O要求を送信する。ただし、本実施形態においては、I/O先のLU220に対して、そのLU220のLU担当コアがI/Oを実行する。LU担当コアは、負荷監視デバイス230の制御により変更可能である。
 図13は、実施形態に係るサーバ1のパステーブルの一例を示す図である。図14は、実施形態に係るサーバ2のパステーブルの一例を示す図である。図15は、実施形態に係るサーバ3のパステーブルの一例を示す図である。なお、サーバ1、サーバ2、サーバ3のパステーブルの構成は同様であり、パステーブルに格納される情報は、それぞれのサーバに対応する情報である。
 パステーブル113は、パス毎に、下記の情報、
(*)パスを一意に識別するIDであるパスID113a、
(*)パスが経由するポートを有するストレージ装置200のベンダ名を表すベンダ名113b、
(*)パスが経由するポートを有するストレージ装置200の製品名を表す製品名113c、
(*)パスが経由するポートを有するストレージ装置200の製品番号を表す製造番号113d、
(*)パスに繋がるLU220のLU番号であるLU番号113e、
(*)パスに繋がるLU220のLDEV番号であるLDEV番号113f、
(*)パスのステータスを表すパスステータス113g、
(*)パスが経由するポートの番号であるCHAポート113h、
(*)パスが経由するポートのポート担当コアを有するコントローラの番号である受付コントローラ番号113i、及び、
(*)パスが系有するポートのポート担当コアの番号であるポート担当コア番号113J、
を有する。パスステータス113gの値としては、例えば、パスが使用可能であることを示す「Online」と、パスが使用不可であることを示す「Offline」とがある。また、ポート担当コア番号113Jの値としては、例えば、Core-Xを意味する「X」と、Core-Yを意味する「Y」がある。
 ここで、パステーブル113が有する各種情報を収集する方法の一例を説明する。
 例えば、サーバ100の起動時などの所定のケースにおいて、サーバ100の図示しないOS(Operating  System)が、HBA130から、ストレージ装置200が有する各ポートに、LU一覧情報の取得要求を送信する。その取得要求に対する応答として、LU一覧情報を含んだ応答が、ストレージ装置200からサーバ100に送られる。LU一覧情報には、取得要求を受信したポートに関連付けられているLUに関する情報(ベンダ名、製品名、製品番号、LU番号、LDEV番号等が含まれた情報)が含まれている。次いで、マルチパス管理プログラム112が、取得されたLU一覧情報が有するLU番号を含んだ照会要求(例えばInquiryコマンド)を送信する。照会要求に対する応答として、照会要求を受けたポートのポート担当コアの識別情報(受付コントローラ番号とポート担当コア番号)と、照会要求が含むLU番号から識別されるLUのLU担当コアの識別情報とを含んだ応答が、ストレージ装置200からサーバ100に送られる。マルチパス管理プログラム112が、LU一覧情報に含まれる情報と、照会要求の応答に含まれる情報をパステーブル113に格納する。なお、マルチパス管理プログラム112は、照会要求で指定されたLUへの複数のパスにクロスコールパス及び非クロスコールパスが含まれている場合、クロスコールパスを選択し、クロスコールパスを介して照会要求を取得する。非クロスコールパスは、I/O要求の送信の際に優先的に使用されるからである。クロスコールパスとは、クロスコールが発生するパスである。具体的には、クロスコールパスとしては、LU担当コアとポート担当コアとが異なるが同一のCPUにあるコアクロスコールパスと、LU担当コアとポート担当コアとが異なるCPUにあるCPUクロスコールパスとがある。非クロスコールパスとは、LU担当コアとポート担当コアとが同一であるパスである。
 パステーブル113の例によると、ストレージ装置の識別情報は、ベンダ名、製品名、及び製造番号で構成される。なお、ストレージ装置200は、ベンダ名が「HIT」であり、製品名が「600F」であり、製品番号が「9300080」である。また、図13に示すパステーブル113の例によると、LU0へのパスとしては、パスID「00001」、「00004」、「00007」、「00010」で示される4つのパスがある。例えば、パス「00001」は、ポート「0A」(0系コントローラ211AのポートA)を経由するパスであり、ポート「0A」のポート担当コアは、0系コントローラ210Aのコア212AXである。また、パス「00007」は、ポート「1A」(1系コントローラ211BのポートA)を経由するパスであり、ポート「1A」のポート担当コアは、1系コントローラ210Bのコア212BXである。
 図16は、実施形態に係るサーバ1のオーナパステーブルの一例を示す図である。図17は、実施形態に係るサーバ2のオーナパステーブルの一例を示す図である。図18は、実施形態に係るサーバ3のオーナパステーブルの一例を示す図である。なお、サーバ1、サーバ2、サーバ3のオーナパステーブルの構成は同様であり、オーナパステーブルに格納される情報は、それぞれのサーバに対応する情報となっている。
 オーナパステーブル114は、パス毎に、下記の情報、
(*)ストレージ装置200のベンダ名を表すベンダ名114a、
(*)ストレージ装置200の製品名を表す製品名114b、
(*)ストレージ装置200の製品番号を表す製品番号114c、
(*)パスに繋がるLUのLDEV番号を表すLDEV番号114d、
(*)パスが繋がるLUのLU担当コアを有するコントローラ(オーナコントローラ)の番号を表すコントローラ番号114e、
(*)パスが繋がるLUのLU担当コアの番号を表すLU担当コア番号114f、及び、及び、
(*)パス選択処理(図21参照)のステップS2以降の処理によるパス選択の実行を有効とするか、又は無効とするかの情報を表すI/Oパスコントロール114g、
を有する。例えば、サーバ100における入力装置を用いて有効又は無効の設定情報が指定されると、マルチパス管理プログラム112が、当該指定された設定情報を、オーナパステーブル114に、I/Oパスコントロール114gとして格納する。なお、設定情報は、個々のLUについて指定されても良いし、複数のLUについての共通の情報として指定されても良い。
 ここで、オーナパステーブル114及びパステーブル113によると、クロスコールが発生しないパスを特定することができる。例えば、サーバ1が記憶する図16に示すオーナパステーブル114及び図13に示すパステーブル113によると、パスIDが「00001」、「00005」、「00009」のパスを用いてI/O要求を送信する場合には、LU担当コアとポート担当コアが同じなので、コアクロスコール及びCPUクロスコールのいずれも発生しないことがわかる。同様に、サーバ2が記憶する図17に示すオーナパステーブル114及び図14に示すパステーブル113によると、パスIDが「00002」、「00006」、「00010」のパスを用いてI/O要求を送信する場合には、LU担当コアとポート担当コアが同じなので、コアクロスコール及びCPUクロスコールのいずれも発生しないことがわかる。また、サーバ3が記憶する図18に示すオーナパステーブル114及び図15に示すパステーブル113によると、パスIDが「00003」、「00007」、「00011」のパスを用いてI/O要求を送信する場合には、LU担当コアとポート担当コアが同じなので、コアクロスコール及びCPUクロスコールのいずれも発生しないことがわかる。
 図19は、実施形態に係るオーナテーブルの一例を示す図である。
 オーナテーブル241は、LU毎に、下記の情報、
(*)LUのLDEV番号を表すLDEV番号241a、
(*)LUのLU担当コアを有するコントローラの番号を表すコントローラ番号241b、及び、
(*)LUのLU担当コアの番号を表すLU担当コア番号241c、
を有する。
 オーナテーブル241によると、例えば、LU「0010」は、コントローラ「0」(0系コントローラ210A)のコア「X」(コア212AX)によりI/Oが実行されることがわかる。
 図20は、実施形態に係るクロスコールテーブルの一例を示す図である。
 クロスコールテーブル242は、実行されたクロスコール毎に、下記の情報、
(*)クロスコールを一意に示す番号である受付番号242a、
(*)クロスコールが発生したI/O要求で指定されたLU220のLDEV番号を表すLDEV番号242b、
(*)クロスコールが発生したI/O要求を受け付けたコントローラの番号である受付コントローラ番号242c、
(*)クロスコールが発生したI/O要求を受け付けたポート担当コアの番号を表すポート担当コア番号242d、
(*)クロスコールが発生したI/O要求で指定されたLU220に対するI/Oを実行したコアを有するコントローラの番号を表す処理コントローラ番号242e、及び、
(*)クロスコールが発生したI/O要求で指定されたLU220に対するI/Oを実行したコアの番号を表す処理LU担当コア番号242f、
を有する。
 クロスコールテーブル242によると、クロスコール「000001」は、I/O先がLU「0010」であり、I/O要求が、1系コントローラ210Bのコア212BYにより受け付けられ、0系コントローラ210Aのコア212AXによりI/Oが実行されたことがわかる。このことは、コア212AXによるI/Oの結果は、コア212BYに返されて、コア212BYにより、I/O要求の送信元に送信されることも意味している。つまり、クロスコールテーブル242は、クロスコールに従いI/O要求が流れたルートと同じルートで応答を返すために使用される。
 次に、本実施形態における計算機システムで行われる処理を説明する。
 まず、ストレージ装置200におけるコア212AX、212AY、212BX、212BYのオーナテーブル241及びクロスコールテーブル242を用いた処理を説明する。
 ポート担当コア(例えば、212AX、212AY、212BX及び212BYのいずれか)は、担当するポート(211A又は211B)からI/O要求を受けた場合、オーナテーブル241を参照し、I/O先LU(I/O要求で指定されたLU)220のLU担当コア(当該LU220に対するI/Oを担当するコントローラのコア)を特定する。
 この結果、特定されたLU担当コアがポート担当コアである場合には、当該ポート担当コアは、I/O先LU220に対してI/Oを実行する。一方、特定されたLU担当コアが当該ポート担当コアでない場合には、当該ポート担当コアは、下記の処理、
(*)クロスコールテーブル242に新たなレコードを追加する、
(*)当該レコードに、受付コントローラ番号242cとして、当該ポート担当コアを有するコントローラの番号を設定する、
(*)当該レコードに、ポート担当コア番号242dとして、当該ポート担当コアの番号を設定する、
(*)当該レコードに、処理コントローラ番号242eとして、特定されたLU担当コアを有するコントローラの番号を設定する、
(*)当該レコードに、処理LU担当コア番号242fとして、特定されたLU担当コアの番号を設定する、
(*)受け付けたI/O要求を、特定されたLU担当コアに渡す、
を行う。
 I/O要求を受け取ったLU担当コアは、I/O要求に従うI/OをI/O先LU220に対して実行する。LU担当コアは、クロスコールテーブル242を参照し、当該I/O要求の転送元のポート担当コアに対して処理結果を渡す。処理結果を受け取ったコアは、そのコアが担当するポート(I/O要求を受信したポート)を介して、I/O要求の送信元のサーバ100に、処理結果を含む応答を送信する。
 次に、サーバ100の処理について説明する。
 図21は、実施形態に係るパス選択処理のフローチャートである。
 パス選択処理は、サーバ100のマルチパス管理プログラム112が、アプリケーション111からI/O要求を受けた場合に実行される。
 マルチパス管理プログラム112は、オーナパステーブル114から、I/O先LU(I/O要求で指定されたLU)のLU番号に対応するLDEV番号が一致するレコードを検索し、当該レコードから、コントローラ番号とLU担当コア番号とを取得する(ステップS1)。なお、ステップS2以降の処理は、当該レコードのI/Oパスコントロール114gの値が有効(ON)である場合に実行される。当該レコードのI/Oパスコントロール114gの値が無効(OFF)である場合には、マルチパス管理プログラム112は、例えば、パステーブル113のパスステータス113gがOnlineであるレコードであり、且つ、I/O先LUのLDEV番号が一致するレコードが示すパスを、ラウンドロビン方式等の所定のルールに従ってパスを選択する。
 ステップS2では、マルチパス管理プログラム112は、パステーブル113に、下記全ての条件を満たすレコード、
(*)パスステータス113gがOnlineである、
(*)I/O先LUに対応するベンダ名、製品番号、及びLDEV番号と一致するベンダ名113b、製品番号113c、及びLDEV番号113dを有する、
(*)ステップS1で取得したコントローラ番号及びLU担当コア番号と一致するコントローラ番号113i及びLU担当コア番号113jを有する、
があるか否かを判断する。
 ステップS2で、一致するレコードがある場合(ステップS2でYes)には、当該パスが、非クロスコールパス(I/O先LUのLU担当コアと、当該パスが経由するポートのポート担当コアとが同一であるパス)であることを意味している。このため、マルチパス管理プログラム112は、当該パスを、I/O要求を送信する際に使用するパスとして選択する(ステップS5)。この後、マルチパス管理プログラム112は、当該パスを介してI/O要求を送信する。これにより、そのI/O要求の処理の際にクロスコールが発生することを回避することができる。
 一方、ステップS2で、一致するレコードがない場合(ステップS2でNo)には、マルチパス管理プログラム112は、パステーブル113に、下記全ての条件を満たすレコード、
(*)パスステータス113gがOnlineである、
(*)I/O先LUに対応するベンダ名、製品番号、及びLDEV番号と一致するベンダ名113b、製品番号113c、及びLDEV番号113dを有する、
(*)ステップS1で取得したコントローラ番号と一致するコントローラ番号113iを有する、
があるか否かを判断する(ステップS3)。
 ステップS3で、一致するレコードがある場合(ステップS3でYes)には、当該パスが、コアクロスコールパス(I/O先LUのLU担当コアと、当該パスが経由するポートのポート担当コアは異なるが、それらのコアが同一のCPU内にあるパス)であることを意味している。このため、マルチパス管理プログラム112は、当該パスを、I/O要求を送信する際に使用するパスとして選択する(ステップS5)。この後、マルチパス管理プログラム112は、当該パスを介してI/O要求を送信する。これにより、I/O要求を送信した場合には、ストレージ装置200においては、コアクロスコールが発生するものの、それよりも負荷が高いCPUクロスコールが発生することを回避することができる。
 一方、ステップS3で、一致するレコードがない場合(ステップS3でNo)には、マルチパス管理プログラム112は、パステーブル113に、下記全ての条件を満たすレコード、
(*)パスステータス113gがOnlineである、
(*)I/O先LUに対応するベンダ名、製品番号、及びLDEV番号と一致するベンダ名113b、製品番号113c、及びLDEV番号113dを有する、
があるか否かを判断する(ステップS4)。
 ステップS4で、一致するレコードがある場合(ステップS4でYes)には、マルチパス管理プログラム112は、当該パスを、I/O要求を送信する際に使用するパスとして選択する(ステップS5)。この後、マルチパス管理プログラム112は、当該パスを利用してI/O要求を送信する。これにより、I/O要求を送信した場合には、ストレージ装置200においては、CPUクロスコールが発生することとなる。
 一方、ステップS4で、一致するレコードがない場合(ステップS4でNo)には、I/O先LU220へのパスが存在しないので、マルチパス管理プログラム112は、I/O要求の送信元のアプリケーション111にエラーを応答する(ステップS6)。
 上記したパス選択処理によると、非クロスコールパスが優先的に特定且つ選択され、非クロスコールパスが無ければ、コアクロスコールパスが優先的に特定且つ選択され、非クロスコールパス及びコアクロスコールパスが無ければ、CPUコアクロスコールパスが選択される。
 図22は、実施形態に係るオーナパステーブル更新処理のフローチャートである。
 オーナパステーブル更新処理は、例えば、アプリケーション111の実行時等に実行される。
 マルチパス管理プログラム112は、所定の監視時間(第2の時間間隔)が経過するか、又は、オーナパステーブル更新処理の終了イベントが発生するまで処理を休止し(ステップS11)、監視時間の経過、又は処理終了イベントが発生した場合には、監視時間が経過したか否かを判断する(ステップS12)。ここで、監視時間は、例えば、次のように決定される。すなわち、ストレージ装置200が、各LUについて、第1の時間間隔で、担当変更処理(LUのLU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にそのLUのLU担当コアを変更する処理を、行うようになっている。この場合、監視時間(第2の時間間隔)は、第1の時間間隔より長い、例えば、第1の時間間隔の整数倍(例えば3倍以上)で良い。また、担当変更処理の実行間隔である第1の時間間隔は、ストレージ装置200の入出力コンソールを介して変更されて良い。変更後の第1の時間間隔は、ストレージ装置200からサーバ100に通知されても良いし、サーバ100からストレージ装置200に問合せされても良い。サーバ100のマルチパス管理プログラム112は、変更後の第1の時間間隔を基に監視時間(第2の時間間隔)を変更して良い。
 監視時間が経過した場合(ステップS12でYes)には、マルチパス管理プログラム112は、ストレージ装置200からLU220毎のオーナコントローラ番号及びオーナLU担当コア番号を取得する(ステップS13)。例えば、マルチパス管理プログラム112は、Inquiryコマンド(SCSIリクエスト)に、ストレージ装置200で管理されているLUのLU番号を含めてストレージ装置200に送信するようにすればよい。ストレージ装置200がこのコマンドを受信した場合に、コマンドを受信したCPUコアが、コマンド内のLU番号に対応するLDEV番号を特定し、オーナテーブル241から、対応するLU220のオーナコントローラ番号及びオーナLU担当コア番号を取得して、コマンドに対する応答中のベンダユニークフィールドに、取得したオーナコントローラ番号及びオーナLU担当コア番号を登録し、その応答を、マルチパス管理プログラム112に送信するようにすればよい。
 ここで、Inquiryコマンドを経由させるパスとしてマルチパス管理プログラム112により選択されるパスは、Inquiryコマンド内のLU番号に対応するLUが指定されたI/O要求が経由可能ないずれのパスでも良い。当該I/O要求が経由可能な複数のパスのうち、CPUクロスコールパスが優先的に特定且つ選択され、CPUクロスコールパスが無ければコアクロスコールパスが優先的に特定且つ選択され、CPUクロスコールパス及びコアクロスコールパスのいずれも無ければ非クロスコールパスが選択されても良い。このようにすると、Inquiryコマンド内のLU番号に対応したLU220を指定したI/O要求の処理性能の低下の軽減が期待できる。
 次いで、マルチパス管理プログラム112は、取得したオーナコントローラ番号及びオーナLU担当コア番号をオーナパステーブル113の対応するLU220のレコードに格納し(ステップS14)、処理をステップS11に進める。これにより、オーナパステーブル113を最新の情報に更新することができる。
 一方、監視時間の経過でない場合(ステップS12でNo)には、マルチパス管理プログラム112は、処理終了イベントであるか否かを判断し(ステップS15)、処理終了イベントである場合(ステップS15でYes)には、マルチパステーブル更新処理を終了する一方、処理終了イベントでない場合(ステップS15でNo)には、処理をステップS11に進める。
 以上、一実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
 例えば、上記実施形態では、複数のコアを有するCPUを複数備えるストレージ装置を例に挙げて説明していたが、本発明はこれに限られず、例えば、1つのコアを有するCPUを複数備えるストレージ装置であってもよく、また、複数のコアを有するCPUを1つ備えるストレージ装置であってもよい。
 また、上記実施形態では、サーバ100がストレージ装置200に対してポーリングを行うことにより、LU担当コアとそれを有するコントローラのそれぞれの番号を含んだ情報を取得するようにしていたが、例えば、ストレージ装置が、LU担当コアを変更した際に、変更後のLU担当コアとそれを有するコントローラのそれぞれの番号を含んだ情報をサーバ100に送信するようにし、サーバ100において受信した情報に基づいてオーナパステーブル114が更新されてもよい。
 また、上記実施形態では、I/O要求が経由するパスを介してLU担当コアの識別情報(例えばコントローラの番号及びLU担当コアの番号)が取得されるが、例えば、ストレージ装置200とサーバ100とが、ファイバチャネルに従う通信が行われる通信ネットワークとは別の通信ネットワークにも接続され、別の通信ネットワークを介して、LU担当コアの識別情報を取得するためのInquiryコマンドやその応答(LU担当コアの識別情報を含んだ応答)が送受信されて良い。
100…サーバ、200…ストレージ装置

Claims (14)

  1.  ストレージ装置と、
     前記ストレージ装置にI/O(Input/Output)要求を送信するサーバと
    を有し、
     前記ストレージ装置は、前記サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLU(Logical Unit)とを有し、
     ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっており、
     前記ストレージ装置は、LU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にLU担当コアを変更する処理である担当変更処理を、第1の時間間隔で行うようになっており、
     前記サーバは、1以上の通信インタフェースデバイスと、記憶デバイスと、それらに接続された制御デバイスとを有し、
     前記記憶デバイスは、通信インタフェースデバイスからLUへのパスに関する情報をパス毎に含んだパス情報と、LU担当コアの識別情報をLU毎に含んだLU担当情報とを記憶し、
     前記パス情報は、パスが経由するポートのポート担当コアの識別情報をパス毎に含み、
     前記制御デバイスは、第2の時間間隔で、LUのLU担当コアの識別情報の要求である担当通知要求を前記ストレージ装置に送信することにより、LU担当コアの識別情報を前記ストレージ装置から取得し、その識別情報を前記LU担当情報に含め、
     前記制御デバイスは、I/O要求を送信する場合に、
    (A)前記パス情報と前記LU担当情報を基に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、
    (B)前記(A)で選択したパスを介して前記送信対象のI/O要求を送信する、
    計算機システム。
  2.  前記ストレージ装置は、それぞれが2以上の前記プロセッサコアを含む複数のプロセッサを有し、
     前記(A)において、前記制御デバイスは、
    (a1)前記I/O先LUへの複数のパスに前記非クロスコールパスが含まれていれば、前記非クロスコールパスを選択し、
    (a2)前記I/O先LUへの複数のパスに前記非クロスコールパスが含まれておらず、且つ、LU担当コアとポート担当コアとが同一のプロセッサ内にパスであるコアクロスコールパスが含まれていれば、前記コアクロスコールパスを選択し、
    (a3)前記I/O先LUへの複数のパスに前記非クロスコールパス及び前記コアクロスコールパスが含まれていなければ、LU担当コアとポート担当コアとが異なるプロセッサ内にパスであるプロセッサクロスコールパスを選択する、
    請求項1記載の計算機システム。
  3.  前記制御デバイスは、LUに関する情報を取得するための照会要求を前記ストレージ装置に送信するようになっており、前記照会要求を送信する場合、前記照会要求で指定されたLUへのパスに、前記プロセッサクロスコールパスが含まれていれば、そのプロセッサクロスコールパスを選択し、前記プロセッサクロスコールパスが無くても前記コアクロスコールパスが含まれていれば、そのコアクロスコールパスを選択し、選択したパスを介して前記照会要求を送信する、
    請求項2記載の計算機システム。
  4.  前記第2の時間間隔は、前記第1の時間間隔より長い、
    請求項3に記載の計算機システム。
  5.  前記第2の時間間隔は、前記第1の時間間隔の整数倍である、
    請求項4に記載の計算機システム。
  6.  前記第2の時間間隔が変更された場合、前記制御デバイスは、変更後の前記第2の時間間隔を基に、前記第1の時間間隔を変更する、
    請求項5に記載の計算機システム。
  7.  或るLUについての前記担当通知要求は、前記或るLUへのパスのうちの非担当パスを介して送信され、
     前記非担当パスは、前記LU担当情報を基に特定される、前記或るLUのLU担当コア、とは異なるプロセッサコア、へのパスである、
    請求項6に記載の計算機システム。
  8.  前記制御デバイスは、LUに関する情報を取得するための照会要求を前記ストレージ装置に送信するようになっており、前記照会要求を送信する場合、前記照会要求で指定されたLUへのパスに、LU担当コアとポート担当コアが異なるパスであるクロスコールパスが含まれていれば、そのクロスコールパスを選択し、選択したパスを介して前記照会要求を送信する、
    請求項1記載の計算機システム。
  9.  ストレージ装置にI/O(Input/Output)要求を送信するサーバであって、
     1以上の通信インタフェースデバイスと、
     記憶デバイスと、
     それらに接続された制御デバイスと
    を有し、
     前記ストレージ装置は、前記サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLU(Logical Unit)とを有し、
     ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっており、
     前記ストレージ装置は、LU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にLU担当コアを変更する処理である担当変更処理を、第1の時間間隔で行うようになっており、
     前記記憶デバイスは、通信インタフェースデバイスからLUへのパスに関する情報をパス毎に含んだパス情報と、LU担当コアの識別情報をLU毎に含んだLU担当情報とを記憶し、
     前記パス情報は、パスが経由するポートのポート担当コアの識別情報をパス毎に含み、
     前記制御デバイスは、第2の時間間隔で、LUのLU担当コアの識別情報の要求である担当通知要求を前記ストレージ装置に送信することにより、LU担当コアの識別情報を前記ストレージ装置から取得し、その識別情報を前記LU担当情報に含め、
     前記制御デバイスは、I/O要求を送信する場合に、
    (A)前記パス情報と前記LU担当情報を基に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、
    (B)前記(A)で選択したパスを介して前記送信対象のI/O要求を送信する、
    サーバ。
  10.  前記第2の時間間隔は、前記第1の時間間隔より長い、
    請求項9に記載のサーバ。
  11.  前記第2の時間間隔が変更された場合、前記制御デバイスは、変更後の前記第2の時間間隔を基に、前記第1の時間間隔を変更する、
    請求項9に記載のサーバ。
  12.  或るLUについての前記担当通知要求は、前記或るLUへのパスのうちの非担当パスを介して送信され、
     前記非担当パスは、前記LU担当情報を基に特定される、前記或るLUのLU担当コア、とは異なるプロセッサコア、へのパスである、
    請求項9に記載のサーバ。
  13.  前記制御デバイスは、LUに関する情報を取得するための照会要求を前記ストレージ装置に送信するようになっており、前記照会要求を送信する場合、前記照会要求で指定されたLUへのパスに、LU担当コアとポート担当コアが異なるパスであるクロスコールパスが含まれていれば、そのクロスコールパスを選択し、選択したパスを介して前記照会要求を送信する、
    請求項9に記載のサーバ。
  14.  ストレージ装置のLU(Logical Unit)にデータを入出力する方法であって、
     前記ストレージ装置は、前記サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLUとを有し、
     ポート毎に、ポートが受信したI/O(Input/Output)要求をサーバから受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっており、
     前記ストレージ装置は、LU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にLU担当コアを変更する処理である担当変更処理を、第1の時間間隔で行うようになっており、
     前記サーバは、第2の時間間隔で、LUのLU担当コアの識別情報の要求である担当通知要求を前記ストレージ装置に送信することにより、LU担当コアの識別情報を前記ストレージ装置から取得し、その識別情報を、LU担当コアの識別情報をLU毎に含んだLU担当情報に含め、
     前記サーバは、I/O要求を送信する場合に、
    (A)前記LU担当情報と、パスが経由するポートのポート担当コアの識別情報を含みパスに関する情報をパス毎に含んだパス情報とを基に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、
    (B)前記(A)で選択したパスを介して前記送信対象のI/O要求を送信する、
    入出力方法。
PCT/JP2012/052619 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法 WO2013118243A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP12867916.4A EP2735973A4 (en) 2012-02-06 2012-02-06 COMPUTER SYSTEM AND DATA INPUT / OUTPUT METHOD
US13/574,929 US9323468B2 (en) 2012-02-06 2012-02-06 Computer system and data input/output method
CN201280045889.4A CN103814365B (zh) 2012-02-06 2012-02-06 计算机系统及数据输入输出方法
PCT/JP2012/052619 WO2013118243A1 (ja) 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法
JP2013557267A JP5764678B2 (ja) 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/052619 WO2013118243A1 (ja) 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法

Publications (1)

Publication Number Publication Date
WO2013118243A1 true WO2013118243A1 (ja) 2013-08-15

Family

ID=48947048

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/052619 WO2013118243A1 (ja) 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法

Country Status (5)

Country Link
US (1) US9323468B2 (ja)
EP (1) EP2735973A4 (ja)
JP (1) JP5764678B2 (ja)
CN (1) CN103814365B (ja)
WO (1) WO2013118243A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977781B1 (en) 2013-11-07 2015-03-10 Hitachi, Ltd. Computer system
JP2015179448A (ja) * 2014-03-19 2015-10-08 日本電気株式会社 情報処理装置、情報処理方法、情報処理プログラム、情報処理システム、ストレージ、ストレージ制御方法、及び、ストレージ制御プログラム
JP2023128349A (ja) * 2022-03-03 2023-09-14 Necプラットフォームズ株式会社 ストレージシステム、サーバ、パス切替方法、およびプログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019175B2 (en) 2016-08-31 2018-07-10 International Business Machines Corporation Managing program access to data storage resources
KR102538222B1 (ko) 2018-06-26 2023-06-01 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법
WO2020113875A1 (zh) * 2018-12-07 2020-06-11 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储系统
CN111290702B (zh) * 2018-12-07 2022-04-05 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2006079355A (ja) * 2004-09-09 2006-03-23 Hitachi Ltd ストレージネットワーク管理サーバ、ストレージネットワーク管理方法、ストレージネットワーク管理用プログラムおよびストレージネットワーク管理システム
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法
JP2009009194A (ja) * 2007-06-26 2009-01-15 Hitachi Ltd 消費電力を削減する機能を備えたストレージシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954881B1 (en) * 2000-10-13 2005-10-11 International Business Machines Corporation Method and apparatus for providing multi-path I/O in non-concurrent clustering environment using SCSI-3 persistent reserve
US6675268B1 (en) * 2000-12-11 2004-01-06 Lsi Logic Corporation Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes
JP4452064B2 (ja) 2003-11-18 2010-04-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
CN1622542A (zh) * 2003-11-24 2005-06-01 顺德市顺达电脑厂有限公司 具有服务品质管理之储存系统与其操作方法
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム
JP5106913B2 (ja) 2007-04-23 2012-12-26 株式会社日立製作所 ストレージシステム、ストレージシステム管理方法、及び計算機システム
JP5490093B2 (ja) * 2008-10-10 2014-05-14 株式会社日立製作所 ストレージシステムおよびその制御方法
JP2010108300A (ja) 2008-10-30 2010-05-13 Hitachi Ltd 情報処理システム、及び情報処理システムにおけるi/oのパスへの割り当て方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2006079355A (ja) * 2004-09-09 2006-03-23 Hitachi Ltd ストレージネットワーク管理サーバ、ストレージネットワーク管理方法、ストレージネットワーク管理用プログラムおよびストレージネットワーク管理システム
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法
JP2009009194A (ja) * 2007-06-26 2009-01-15 Hitachi Ltd 消費電力を削減する機能を備えたストレージシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2735973A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977781B1 (en) 2013-11-07 2015-03-10 Hitachi, Ltd. Computer system
WO2015068239A1 (ja) * 2013-11-07 2015-05-14 株式会社日立製作所 計算機システムおよびデータ制御方法
GB2535558A (en) * 2013-11-07 2016-08-24 Hitachi Ltd Computer system and data control method
JP6074056B2 (ja) * 2013-11-07 2017-02-01 株式会社日立製作所 計算機システムおよびデータ制御方法
US10162567B2 (en) 2013-11-07 2018-12-25 Hitachi, Ltd. Computer system
JP2015179448A (ja) * 2014-03-19 2015-10-08 日本電気株式会社 情報処理装置、情報処理方法、情報処理プログラム、情報処理システム、ストレージ、ストレージ制御方法、及び、ストレージ制御プログラム
JP2023128349A (ja) * 2022-03-03 2023-09-14 Necプラットフォームズ株式会社 ストレージシステム、サーバ、パス切替方法、およびプログラム
JP7409700B2 (ja) 2022-03-03 2024-01-09 Necプラットフォームズ株式会社 ストレージシステム、サーバ、パス切替方法、およびプログラム

Also Published As

Publication number Publication date
US9323468B2 (en) 2016-04-26
EP2735973A4 (en) 2015-03-11
JP5764678B2 (ja) 2015-08-19
US20140359212A1 (en) 2014-12-04
JPWO2013118243A1 (ja) 2015-05-11
EP2735973A1 (en) 2014-05-28
CN103814365A (zh) 2014-05-21
CN103814365B (zh) 2016-07-20

Similar Documents

Publication Publication Date Title
JP5764678B2 (ja) 計算機システムおよびデータ入出力方法
US8909980B1 (en) Coordinating processing for request redirection
US9417978B2 (en) Management system for managing computer system, method for managing computer system, and storage medium
US8626967B1 (en) Virtualization of a storage processor for port failover
US8949656B1 (en) Port matching for data storage system port failover
EP1764678B1 (en) Control method of device in storage system for virtualization
JP5489601B2 (ja) 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム
US8751741B2 (en) Methods and structure for implementing logical device consistency in a clustered storage system
US8244924B2 (en) Discovery and configuration of device configurations
US8904050B1 (en) Techniques for automated data storage system port initialization
US20140351545A1 (en) Storage management method and storage system in virtual volume having data arranged astride storage device
WO2014167716A1 (ja) 計算機システムの管理システム及び管理方法
WO2015025358A1 (ja) ストレージシステム及びストレージシステムの制御方法
WO2013157072A1 (ja) 計算機システム、リソース管理方法及び管理計算機
JP2007148812A (ja) ストレージシステム及びその負荷分散方法
US8788750B2 (en) Managing resources in cluster storage systems
JP2008269469A (ja) ストレージシステム及びその管理方法
US10459768B2 (en) Computer system, management system, and resource management method
US9400761B2 (en) Management method for computer system, computer system, and non-transitory computer-readable storage medium
US10013216B2 (en) Storage system
US20100235549A1 (en) Computer and input/output control method
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
JP6516875B2 (ja) 統合プラットフォーム、サーバ、及び、フェイルオーバ方法
JP7316322B2 (ja) 管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
US9785520B2 (en) Computer system, storage apparatus and control method

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13574929

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12867916

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013557267

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2012867916

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE