[go: up one dir, main page]

WO2016139749A1 - 計算機システム、及び、記憶制御方法 - Google Patents

計算機システム、及び、記憶制御方法 Download PDF

Info

Publication number
WO2016139749A1
WO2016139749A1 PCT/JP2015/056202 JP2015056202W WO2016139749A1 WO 2016139749 A1 WO2016139749 A1 WO 2016139749A1 JP 2015056202 W JP2015056202 W JP 2015056202W WO 2016139749 A1 WO2016139749 A1 WO 2016139749A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
path
server computer
page
logical volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2015/056202
Other languages
English (en)
French (fr)
Inventor
里山 愛
江口 賢哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to PCT/JP2015/056202 priority Critical patent/WO2016139749A1/ja
Publication of WO2016139749A1 publication Critical patent/WO2016139749A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Definitions

  • the present invention relates to a technology of a computer system and a storage control method.
  • Flash memory has a higher I / O (Input / Output) performance than an HDD (Hard Disk Drive).
  • HDD Hard Disk Drive
  • SCSI Small Computer System Interface
  • NVMe Non-Volatile Memory Express
  • Non-Patent Document 1 discloses a concept of sharing a namespace (hereinafter referred to as “NS”) from a plurality of hosts.
  • a thin provisioning technology that provides a server with a capacity virtualization volume to which a storage area is dynamically allocated from a capacity pool composed of a plurality of storage areas based on a storage medium.
  • Thin provisioning technology that provides a server with a hierarchical capacity virtualization volume that is a capacity virtualization volume to which a storage area is dynamically allocated from a capacity pool composed of a plurality of storage areas based on different types of storage media.
  • NVM Express 1.1a Specification 8.8 (p.158-159), http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_1a.pdf
  • the server computer can define a plurality of paths (that is, multipaths) for the logical volume of the storage device by using a predetermined multipath I / O function of the SCSI driver.
  • multipaths that is, multipaths
  • the NVMe driver does not have a multipath I / O function according to the specification of NVMe, the multipath cannot be defined.
  • the capacity pool associated with the hierarchical capacity virtualization volume is based on different types of storage media.
  • HDDs and flash memories are used as the different types of storage media. Since flash memory generally has higher access performance than HDDs, a plurality of storage areas based on flash memory belong to Tier 1 (higher hierarchy), and a plurality of storage areas based on HDD belong to Tier 2 (lower hierarchy).
  • the SCSI driver path is defined for the hierarchical capacity virtualization volume
  • the Tier1 storage area configured by the flash memory is also accessed via the SCSI driver path.
  • I / O scheduler control for optimizing the seek time and the like for the HDD and realizing efficient access is performed during access processing.
  • the storage medium is a flash memory
  • I / O scheduler control becomes an overhead
  • the NVMe driver path is defined for the tiered capacity virtualized volume
  • the Tier 2 storage area configured by the HDD is also accessed via the NVMe driver path. In this case, since the I / O scheduler control is not performed, the access efficiency to the HDD deteriorates.
  • an object of the present invention is to provide a computer system and a storage control method for performing access control suitable for the characteristics of a storage medium to be accessed.
  • a computer system is: A server computer, A first storage device having a first storage medium; A second storage device having a second storage medium different from the first storage medium; A storage controller connected to the server computer via PCI-Express and connected to the first and second storage devices.
  • the storage controller Provide logical volumes, Obtaining information of at least the first or second storage medium assigned to the logical volume; Based on the acquired information, at least one of a first path accessed by a command conforming to the first standard, or a second path accessed by a command conforming to the second standard, based on the acquired information Set one.
  • access control adapted to the characteristics of the storage medium to be accessed can be performed.
  • 10 is a flowchart illustrating an example of processing on the storage controller side in heterogeneous path switching control processing. It is a schematic diagram for demonstrating the page of a hierarchical capacity virtualization volume. It is a flowchart which shows an example of the heterogeneous path switching control process in a server computer when attention information is transmitted from a storage controller. It is a flowchart which shows an example of an access process.
  • the information of the present embodiment will be described using the expression “table”.
  • the information may not necessarily be expressed by a data structure using a table.
  • it may be expressed by a data structure such as “list”, “DB (database)”, “queue”, or the like. Therefore, “table”, “list”, “DB”, “queue”, and the like can be simply referred to as “information” in order to show that they do not depend on the data structure.
  • the expressions “identification information”, “identifier”, “name”, “name”, “ID” can be used, and these can be replaced with each other. It is.
  • program will be the subject of the description, but since the program uses a memory and a communication port (communication control device) to perform processing determined by being executed by a CPU (Central Processing Unit), The description may be based on the CPU.
  • the processing disclosed with the program as the subject may be processing performed by a computer such as a server computer, a storage controller, a management computer, or an information processing apparatus. Part or all of the program may be realized by dedicated hardware, or may be modularized.
  • Various programs may be installed in each computer by a program distribution server or a storage medium.
  • PCIe Peripheral Component Interconnect Express
  • PCIe Peripheral Component Interconnect Express
  • FeRAM Feroelectric Random Access Memory
  • MRAM Magnetic Resistant Random Access Memory
  • Phase Change Memory Ovonic Uv
  • RRAM registered trademark, Resistance RAM
  • NVMe is an I / F (Interface) standard for realizing high-speed access to the flash memory SSD.
  • IOPS Input / Output per Second
  • low latency access that is, high-speed access
  • flash memory devices may support the NVMe standard. Therefore, there is a possibility that a vendor other than a device driver (typically an application program) provides a program that directly issues an NVMe command for the purpose of high-speed access to the flash memory device.
  • the flash memory SSD is a kind of flash memory device, and the flash memory device has the following features, for example.
  • the flash memory device has a flash memory chip and a flash memory controller.
  • the flash memory controller receives a read request from an external device, the flash memory controller reads data corresponding to the read request from the flash memory chip and transmits the data to the external device.
  • the flash memory controller receives a write request from an external device, the flash memory controller writes the data received together with the write request to the flash memory chip.
  • the flash memory controller performs an erase process for the flash memory chip.
  • FIG. 1 is a block diagram showing a configuration example of a computer system.
  • the computer system 1 includes one or more server computers, one or more storage controllers, a flash memory device (hereinafter referred to as “flash memory”), and a communication mechanism (communication mechanism). Each of these components of the computer system may be referred to as a computer system component.
  • the computer system 1 may be “Converged Platform”. “Converged Platform” may be referred to as “Converged Infrastructure” or “Converged System”. “Converged” may be expressed as “vertical integration”. “Converged Platform” may be abbreviated as “CPF”.
  • the CPF may have the following characteristics.
  • the CPF may include a server computer, a storage system (including a storage controller and a storage device), and a communication mechanism that connects them.
  • a server computer and a storage system are individually introduced into a company, the company often performs operation verification and connection verification of the server computer and storage system.
  • the vendor side performs operation verification and connection verification of the CPF in advance. Therefore, a company can reduce the troubles such as operation verification and connection verification by introducing CPF.
  • the CPF may include a management subsystem that can collectively set the server computer, the storage system, and the communication mechanism.
  • a management program for performing this batch setting may be executed.
  • the management subsystem can quickly provide an execution environment desired by the administrator (virtual machine, DBMS: Database Management System, Web server, etc.). For example, the management subsystem requests the server computer and the storage system to allocate resources necessary for creating a virtual machine. Then, the management subsystem requests the hypervisor to create a virtual machine using resources allocated from the server computer and the storage system.
  • the administrator virtual machine, DBMS: Database Management System, Web server, etc.
  • the management subsystem requests the server computer and the storage system to allocate resources necessary for creating a virtual machine.
  • the management subsystem requests the hypervisor to create a virtual machine using resources allocated from the server computer and the storage system.
  • the CPF 1 includes a server computer 2, a storage controller 3, a flash memory 5 and an HDD 6 as an example of a storage device, and a management computer 7 as an example of a management subsystem.
  • the server computer 2 executes a program (not shown) that can access the storage controller 3.
  • This program accesses the data area on the flash memory 5 provided by the storage controller 3 by issuing an NVMe command.
  • NVMe NVMe command
  • the element which provides a data area as NS (NameSpace) of NVMe will be described later.
  • the server computer 2 includes a CPU 21, a main memory 22, and a root complex (hereinafter abbreviated as RC) 24.
  • Examples of the server computer 2 include a file server, a blade server system, a PC (Personal Computer) server, and a blade inserted into the blade server system.
  • the server computer 2 may be a virtual machine server or a CPU core unit.
  • the program of the server computer 2 may be a business application program (for example, Web server, DBMS, analysis program, middleware), LPAR (Logical Partitioning), a program capable of creating a virtual machine, an OS, a device driver, and the like.
  • a business application program for example, Web server, DBMS, analysis program, middleware
  • LPAR Logical Partitioning
  • a program capable of creating a virtual machine an OS, a device driver, and the like.
  • the communication mechanism connects the server computer 2 and the storage controller 3 with PCIe.
  • PCIe connection between the server computer 2 and the storage controller 3 is a SAN (Storage Area Network) that uses FC (Fibre Channel) and Ethernet (registered trademark), which are employed in the conventional connection between the server computer and the storage controller. It is not always necessary to go through a network such as Compared with the FC protocol, the PCIe connection can suppress the overhead of the conversion process, so that the I / O process for the data area is accelerated. Also, the PCIe connection can reduce the cost as compared with the devices of Ethernet and SAN (especially switches).
  • NVMe may assume a communication mechanism based on PCIe. Therefore, the element that interprets the NVMe command from the server computer 2 may be an Endpoint (hereinafter referred to as “EP”) 41 in PCIe.
  • EP Endpoint
  • the server-side PCIe I / F device 4 that is an example of a mediating device that mediates the PCIe connection from the server computer 2 and the PCIe connection from the storage controller 3 is an element that interprets the NVMe command.
  • the flash memory 5 or the storage controller 3 may be an element that interprets NVMe.
  • the storage controller 3 uses the storage area of the flash memory 5 to provide high-performance I / O processing.
  • the storage controller 3 may have a function that realizes reliability, redundancy, high functionality, and ease of maintenance and management that an enterprise SAN storage subsystem has.
  • the storage controller 3 may have the following functions.
  • the storage controller 3 may have a function of making the flash memory 5 redundant and providing a shared data area using the redundant storage area.
  • the storage controller 3 may be able to attach / detach the flash memory 5 (that is, device maintenance) while allowing access to the data stored in the shared data area (so-called non-stop).
  • the flash memory 5 has a characteristic that the lifetime of the device is shortened as the number of writing increases. Therefore, the storage controller 3 provides such redundancy and non-stop maintenance, so that the reliability of the computer system 1 can be improved.
  • a PCIe flash memory is directly mounted on the server computer 2, it is necessary to maintain the flash memory for each server computer 2.
  • maintenance of the flash memory 5 can be consolidated on the storage system side. As a result, the maintenance worker can perform maintenance work on the flash memory 5 collectively, which facilitates maintenance.
  • the storage controller 3 may have a copy function such as remote copy or snapshot for the data stored by NVMe.
  • the storage controller 3 may have a function of performing tearing using these storage devices when a storage device other than the flash memory 5 such as the HDD 6 is connected. Note that the storage controller 3 may associate the storage area provided by the HDD 6 with the NVMe NS.
  • the storage controller 3 does not go through the server computer 2 but through a network from a computer system (including server computer and storage system) outside the computer system 1 or a network device (including SAN switch and Ethernet switch). It may have a function of performing access. As a result, for example, the above-described remote copy can be performed, and storage consolidation including a computer system or network device outside the computer system 1 can be provided.
  • PCIe has a shorter communicable distance than FC and Ethernet. This is because PCIe has been used as an internal communication path for server computers and storage systems. Therefore, in the PCIe connection, the server computer 2 and the storage controller 3 are often arranged at physically close positions. However, the following configuration is also possible.
  • a blade server system chassis and a storage controller 3 chassis installed in one rack may be sold as a CPF.
  • Management subsystem can execute the following processing.
  • the management subsystem receives a request from the administrator or the integrated management subsystem, and makes settings corresponding to the request for the computer system component.
  • the management subsystem displays the information acquired from the computer system component to the administrator or sends it to the integrated management subsystem.
  • Examples of information to be acquired include performance information, failure information, setting information, configuration information, and the like.
  • the configuration information may include items unique to the computer system and items that can be changed unless the component is attached or detached.
  • the setting information may be an item that can be changed by setting in the configuration information. These types of information may be collectively referred to as component information.
  • the information displayed to the administrator or transmitted to another computer may be the acquired component information as it is, or may be displayed or transmitted after being converted and processed according to a predetermined rule.
  • the management subsystem may set the computer system component automatically or autonomously based on the component information.
  • the management subsystem may be a set of related functions and computers.
  • the management subsystem may be one or more computers that are separate from the computer system components.
  • a computer such as a computer dedicated to a server computer, a computer dedicated to a storage controller, or a computer dedicated to display processing is included in the management subsystem. May be present.
  • the management subsystem may be part of the computer system component.
  • a BMC Baseboard Management Controller
  • an agent program may be the management subsystem.
  • the integrated management subsystem is a subsystem that integrates and manages management target devices such as servers, storage systems, network devices (including SAN switches and Ethernet switches), and computer systems.
  • the integrated management subsystem is connected to the management subsystem and other managed devices via a network.
  • the integrated management subsystem may include one or a plurality of computers connected to the computer system via a network.
  • PCIe connection between the server computer 2 and the storage controller 3 may be performed via a switch (not shown).
  • the server computer 2 includes a CPU 21, a main memory 22, an RC 24, and a server-side PCIe I / F device 4.
  • the RC 24 and the server side PCIe I / F device 4 are connected by PCIe.
  • the RC 24 and the CPU 21 may be connected via a network that is faster than PCIe.
  • the main memory 22 may be connected to the CPU 21 and the RC 24 via a memory controller (not shown) via a network that is faster than PCIe.
  • Each program executed by the server computer 2 may be loaded into the main memory 22 and executed by the CPU 21.
  • the CPU 21 may be a CPU core.
  • the RC 24, the CPU 21, and the memory controller may be combined into one LSI package.
  • the server-side PCIe I / F device 4 is an example of the aforementioned mediation device.
  • the server-side PCIe I / F device 4 may be arranged outside the server computer 2.
  • the server-side PCIe I / F device 4 may have the following features.
  • the server-side PCIe I / F device 4 interprets an NVMe command issued from a program executed by the CPU 21.
  • the server-side PCIe I / F device 4 provides EP 41 to the RC 24.
  • the server-side PCIe I / F device 4 provides another EP 42 to the RC 33 included in the storage controller 3.
  • the server computer 2 may include a local flash memory 23.
  • the local flash memory 23 may be connected to the RC 24 by PCIe.
  • a plurality of elements may be included in the server computer 2.
  • the local flash memory 23 and the server-side PCIe I / F device 4 are described so as to communicate with each other via the RC 24.
  • the local flash memory 23 and the server-side PCIe I / F device 4 may communicate with each other without using the RC 24. It does not have to be.
  • the storage controller 3 has one or more (two in FIG. 1) control units 36.
  • Each control unit 36 includes a CPU 31, a main memory 32, an RC 33, and a flash I / F 372.
  • the RC 33, the server-side PCIe I / F device 4, and the flash I / F 372 may be connected by PCIe.
  • the RC 33 and the CPU 31 may be connected via a network that is faster than PCIe.
  • the main memory 32 may be connected to the CPU 31 and the RC 33 via a memory controller (not shown) via a network faster than PCIe.
  • Each program executed by the storage controller 3 such as the storage program 320 is loaded into the main memory 32 and executed by the CPU 31.
  • the CPU 31 may be a CPU core.
  • the RC 33, the CPU 31, and the memory controller may be combined into one LSI package.
  • Each control unit 36 may include a disk I / F 34 for connection to the HDD 6.
  • the flash I / F 372 and the disk I / F 34 have the same interface type, these two I / Fs may be shared.
  • Examples of the disk I / F 34 include SAS, SATA, FC, and Ethernet, but other communication mechanisms may be used.
  • the flash I / F 372 (or the disk I / F 34) and the server-side PCIe I / F device 4 are described to communicate via the RC 33, but can communicate without going through the RC 33. Or it may not be able to communicate. This also applies to the flash I / F 372 and the disk I / F 34.
  • the computer system 1 may have a plurality of server computers 2.
  • FIG. 2 is a block diagram illustrating an example of the software configuration of the CPF.
  • the server computer 2 includes a server-side PCIe I / F device 262 that is an I / F device for connecting to the storage controller 3 and a PCIe, and a management I / F 272 that is an I / F device for connecting to the management computer 7. Including.
  • the server computer 2 includes an application program (hereinafter referred to as “application”) 228, an OS 227, a heterogeneous path switching control 223, an NVMe control program 222, a SCSI control program 224, and a server management I / F control.
  • the server computer 2 and the storage controller 3 and the management computer 7 may be connected by Ethernet, or may be connected by other physical or virtual means.
  • the server management I / F control program 229 communicates with the management computer 7 by controlling the management I / F 272.
  • the NVMe control program 222 is a program that issues an NVMe command to the PCIe I / F 262.
  • the NVMe control program 222 may be a part of another program stored in the server computer 2, or may be a program different from other programs stored in the server computer 2.
  • the application program 228 may issue an NVMe command, or a device driver in the OS 227 may issue an NVMe command.
  • the PCIe I / F 262 When the PCIe I / F 262 accepts both the NVMe command and the SCSI command, the PCIe I / F 262 needs to have two of the NVMe function and the SCSI function.
  • the PCIe I / F 262 transmits an NVMe command to the PCIe I / F 362 in accordance with the operation of the NVMe control program 222, receives a response to the NVMe command from the PCIe I / F 362, and returns the response to the NVMe control program 222.
  • the SCSI function transmits a SCSI command to the PCIe I / F 362 in accordance with the operation of the SCSI control program 224, receives a response to the SCSI command from the PCIe I / F 362, and returns the response to the SCSI control program 224.
  • Whether or not the PCIe I / F 362 is to be multifunctional may be determined depending on whether or not the NVMe command is interpreted by the mediation device.
  • the heterogeneous path switching control 223 changes the path used when accessing the LU (Logical Unit) recognized by the server computer 2 itself.
  • the LU may have a multipath configuration and define a plurality of paths. Normally, selecting a path to be actually used from the plurality of paths is performed when an access request is made. In this embodiment, a path to be used is determined and registered. The path to be used is changed from the defined paths when there is a predetermined action. Details will be described later.
  • the storage controller 3 includes a management I / F 382 for connecting to the management computer 7 and a flash I / F 372 for connecting to the flash memory 5.
  • the connection between the flash I / F 372 and the flash memory 5 is preferably a PCIe connection when the flash memory 5 interprets the NVMe command, but otherwise, SAS, SATA (Serial Advanced Technology), FC or Ethernet. Etc.
  • the storage controller 3 executes the storage program 320.
  • the storage program 320 may include a PCIe I / F control program 322, a hierarchy management control program 324, a flash I / F control program 323, and a management I / F control program 324. These programs control communication with each interface.
  • the PCIe I / F control program 322 communicates with the server computer 2 by controlling the PCIe I / F 362.
  • the flash I / F control program 323 communicates with the flash memory device 5 by controlling the flash I / F 372.
  • the management I / F control program 324 communicates with the management computer 7 by controlling the management I / F 382.
  • the entity of the PCIe I / F 262 and the PCIe I / F 362 may be the server-side PCIe I / F device 4 or the storage-side PCIe I / F device.
  • the SCSI control program 224 issues a SCSI request for a LUN (Logical Unit Number) provided from the storage controller 3 to the SCSI function of the PCIe I / F 262 in response to a request from another program.
  • the SCSI control program 224 is, for example, a SCSI device driver.
  • the SCSI control program 224 may be a part of another program stored in the server computer 2 or may be a program different from the other program.
  • a device driver in the OS 227 may issue a SCSI request.
  • the server computer 2 and the storage controller 3 are connected through one PCIe I / F 262, but redundancy may be ensured by another method.
  • Storage program 320 may receive, interpret, and process SCSI requests. For example, when the SCSI request is a read request, the storage program 320 reads data from a storage device such as the flash memory 5 or the HDD 6 and transfers it to the server computer 2. At that time, the storage program 320 may use the main memory 32 of the storage controller 3 as a cache memory. For example, when the SCSI request is a write request, the storage program 320 stores the write data in the cache memory 5 and then writes the write data to the storage device.
  • the storage program 320 may perform RAID processing on the parity group.
  • the storage program 320 may define a storage area provided by the storage controller 3.
  • the storage program 320 may store the defined result as the storage area definition information in the main memory 32 of the storage controller 3 and refer to the request processing described above.
  • the storage program 320 may perform processing for realizing enterprise functions such as thin provisioning.
  • a program that does not support NVMe in the server computer 2 can access a storage area corresponding to the NS of the NVMe. Furthermore, a program that does not support NVMe can access a storage area other than the storage area corresponding to NS of NVMe.
  • the server computer 2 can access the storage area of the HDD by SCSI and can access the storage area of the flash memory by NVMe. Thereby, the access time to the storage system of the server computer 2 can be shortened.
  • the HDD may be used for storing data or as a boot device for the server computer 2.
  • the server computer 2 may switch the access method based on the type of storage medium in which data is stored. For example, the server computer 2 may switch between SCSI and NVMe on a volume basis.
  • the path may be assigned to each LU managed by the server computer 2. Since the storage controller 3 needs to receive a request in the SCSI format, a process for converting the NVMe command into a SCSI request is required at any point of time. Therefore, the server-side PCIe I / F device 4 generates a SCSI command based on the NVMe command received from the server computer 2 and transmits it to the storage controller 3. Details of the conversion process will be described later.
  • conventional SCSI control executes I / O scheduling processing and the like.
  • one of the SCSI commands waiting for processing is selected and a path is allocated between the server computer and the storage controller.
  • multipath control is often the default function.
  • multipath control a plurality of paths are provided between the LU recognized on the server side and the storage controller 3 side. This increases availability.
  • multipath control since multipath control is not included in the default function, it is necessary to construct multipath control as a vendor-specific function (see 210 in FIG. 5).
  • FIG. 4 is a conceptual diagram when I / O processing is performed on a hierarchical capacity virtualized volume.
  • the server computer 2 manages the access to the flash memory 5 and generates an NVMe command for the NS space.
  • the server computer 2 When the logical volume is composed of the HDD 6, the server computer 2 generates a SCSI command.
  • the tiered capacity virtualization volume may be managed and controlled by the tier management control program 324.
  • the storage area composed of the flash memory 5 of the hierarchical capacity virtualization volume is accessed via the path on the SCSI driver side.
  • I / O scheduler control included in the control on the SCSI driver side is executed.
  • the flash memory 5 does not have a seek process like the HDD, this I / O scheduler control becomes useless overhead.
  • the storage area constituted by the HDD 6 is accessed via the path on the NVMe driver side, the I / O scheduler control is bypassed, and the access efficiency is lowered.
  • the server computer 2 is provided with the heterogeneous path switching control 223.
  • the heterogeneous path switching control 223 may have the following functions.
  • the first path on the NVMe driver side (sometimes referred to as “NVMe path”) and the second path on the SCSI driver side (referred to as “SCSI path”).
  • the OS 227 can access the same logical volume through paths from different drivers.
  • the heterogeneous path switching control 223 defines multipaths from different drivers. That is, the heterogeneous path switching control 223 constructs a multipath by a path on the SCSI control side and a path on the NVMe control side. Since this is constructed in a lower layer than the OS 227, the OS 227 recognizes that the same volume is accessed even if accessed from a different driver through a path. That is, the OS 227 is not affected.
  • the server computer 2 obtains information from the storage controller 3 that “the volume is a mixture of different storage media”, that is, information that the volume is a hierarchical capacity virtualization volume, and Multiple paths from different types of drivers.
  • Each defined multipath is assigned to each page. For each page requested to be accessed, it is determined which path of a different driver is used, and the determined path is assigned. The path assigned for the first access may be set by default.
  • the heterogeneous path switching control 223 acquires from the storage controller 3 information that the logical volume is a hierarchical capacity virtualization volume and storage medium information for each storage area. Then, the heterogeneous path switching control 223 determines whether a path corresponding to the storage medium information is selected for each storage area, and switches to the corresponding path if not selected.
  • the heterogeneous path switching control 223 selects the NVMe driver side path for the page assigned to Tier 1 (flash memory 5), and selects the SCSI driver side path for the page assigned to Tier 2 (HDD 6). .
  • the heterogeneous path switching control 223 may determine and access any Tier at the first time, receive storage medium information from the storage controller 3, and select an appropriate path from the next time based on the storage medium information.
  • the heterogeneous path switching control 223 may acquire information on the rearrangement destination from the storage controller 3 and change the path assignment.
  • the heterogeneous path switching control 223 may notify the server computer 2 of the change after the execution of the access process, or may be notified when the change is made. For example, when the data stored in the storage area of Tier 1 is moved to the storage area of Tier 2, or when the data stored in the storage area of Tier 2 is moved to the storage area of Tier 1, the storage controller 3 The server computer 2 may be notified of information relating to the movement.
  • Access control can be reduced by performing access control suitable for the characteristics of the storage medium. Thereby, the CPU load can be reduced.
  • NVMe devices such as SSD and flash memory do not generate delays such as HDD seek time.
  • storage areas are allocated from both the NVMe device and the FC device.
  • I / O schedule control is not executed.
  • the I / O schedule control is a control that reduces the seek time and shortens the access time by continuously accessing data having a close physical position on the disk. By shortening the access time, the occupation time of the processor can be reduced. As a result, processor resources can be allocated to other processes such as application processes. That is, I / O schedule control is an important process for improving system performance.
  • FIG. 5 is a schematic diagram showing an outline of processing according to the present embodiment.
  • the server computer 2 has a group of elements 210 that can be independently developed by the vendor according to the NVMe specifications.
  • the element group 210 may include NVM control 222, heterogeneous path switching control 223, and multipath control 225.
  • the NVMe control 222 and the heterogeneous path switching control 223 are as described above.
  • the multipath control 225 may have the same function as the multipath control in the conventional SCSI control.
  • a multi-path may be defined for one logical volume, and the logical volume may be accessible from any path.
  • the tiered capacity virtualization volume 384 for the tiered capacity virtualization volume 384, a path passing through the NVMe control side and a path passing through the SCSI control side are defined. The same hierarchical capacity virtualization volume 384 is accessed through any path.
  • the path passing through the NVMe control side and the path passing through the SCSI control side may each be composed of a plurality of paths for redundancy. Further, when accessing the hierarchical capacity virtualization volume 384, it may be set to use a predetermined path.
  • a path passing through the NVMe control side is used. Which of a plurality of paths for redundancy is used may be appropriately determined at the time of use. At this time, the path passing through the SCSI control side is not used in principle. However, it may be used when specified by the user, the management computer 7 or the system.
  • the server computer 2 may determine that all accesses are performed using the NVMe command.
  • FIG. 6 is a schematic diagram showing the relationship between the NVMe NS and the storage area.
  • the storage controller 3 manages a parity group, a logical volume, a pool, a virtual volume, and a logical unit regarding the storage area.
  • the parity group may be defined using a plurality of storage devices (flash memory 5 and HDD 6). Thereby, high reliability, high speed, large capacity, etc. can be achieved by RAID (Redundant Arrays of Inexpensive Disks).
  • the logical volume is an area obtained by dividing the storage area of the parity group.
  • the capacity of the parity group storage area may be too large to be provided to the server computer as it is.
  • the parity group storage area is divided into a plurality of logical volumes.
  • the pool is composed of a plurality of logical volumes and is used for thin provisioning or tearing.
  • the pool may be configured by parity groups or storage devices.
  • the virtual volume is a virtual storage area to which thin provisioning or tiering is applied, and the virtual storage area is configured by a pool.
  • the logical volume and the virtual volume may be referred to as “volume” without being distinguished.
  • a volume to which tearing is applied may be referred to as a hierarchical capacity virtualized volume.
  • LU is a storage area that is allowed to be accessed from the server computer 2 among virtual volumes or logical volumes.
  • a SCSI LUN is assigned to the LU.
  • the storage controller 3 does not necessarily provide all these types of storage areas.
  • NS may be associated with any of these types of storage areas.
  • NS is preferably associated with each logical unit. This is because the storage program 320 is easily compatible with the storage program 320 of the SAN storage system, and the definition of the storage area is also highly compatible with the SAN storage system.
  • the storage controller 3 may dynamically allocate storage areas to the volumes.
  • the storage controller 3 may configure a plurality of physical storage devices (flash memory 5 and HDD 6) at the same RAID level to form a RAID group.
  • a virtual storage device may be configured from the RAID group, and the virtual storage device may be divided into a plurality of logical storage devices.
  • a page is a unit of a storage area composed of a predetermined capacity and a unit of read / write access from the host.
  • Write data may be stored in one or more pages.
  • one page may be allocated at the time of write access, a plurality of write data may be stored in the one page, and a new page may be allocated when it cannot be stored in the one page.
  • a virtual page of a virtual volume is a unit of virtual storage capacity without an actual storage area, unlike a page such as a pool.
  • Read / write access from the host is processed in units of virtual pages of the virtual volume.
  • the real page of the pool volume is allocated to the virtual page of the virtual volume.
  • the storage controller 3 manages the correspondence between pools and virtual volumes. A page is allocated to a virtual volume from a pool corresponding to the virtual volume. When the server computer 2 recognizes that the storage medium is only the flash memory, the server computer 2 may access all with the NVMe command.
  • FIG. 7 shows a configuration example of the path management table.
  • the bus management table 400 may be stored in the main memory 22 of the server computer 2.
  • the path management table 400 manages the volume type 420 and the SCSI path numbers 430 and 431 for each logical volume number 410.
  • the volume type 420 is information indicating which type of storage medium the physical storage area constituting the logical volume in the storage controller 3 is configured from.
  • the logical volume number in the storage controller 3 may have a correspondence relationship with the logical volume number managed by the server computer 2.
  • the type 420 of the volume configured by the HDD (FC disk) managed by the storage controller 3 may be “FC”.
  • the volume type 420 may be determined by a storage medium that constitutes a pool in which a storage area is allocated to a logical volume. According to the path management table 400 of FIG. 7, it can be seen that the storage medium with the logical volume number “1” is “HDD (FC disk)” and the storage medium with the logical volume number “2” is flash memory.
  • the storage medium allocated for each page of the logical volume may be different.
  • the volume type 420 may be “mixed”.
  • SCSI path numbers 430 and 431 indicate the path number used by the logical volume and the control type. According to the path management table 400 of FIG. 7, since the logical volume number “1” is an FC disk, the server computer 2 executes SCSI control through the SCSI side driver, and then performs SCSI path number “8” or “10”. The storage controller 3 may be accessed through this path.
  • a plurality of SCSI path numbers 430 and 431 may be set as shown in the path management table 400 of FIG. This is for managing redundant paths. Path redundancy may be automated with multipath control.
  • the volume type 420 is “mixed”, that is, a hierarchical capacity virtualization volume
  • the server computer 2 allocates a SCSI path and an NVMe path.
  • the path management table 400 includes a sub-table 440 and may manage which storage medium storage area is allocated for each page. As a result, a path suitable for the storage medium can be selected.
  • FIG. 8 shows information managed by the storage controller 3.
  • the LU management table 500 manages logical volume information provided to the server computer 2.
  • the LU management table 500 has an entry for each LUN in the storage controller 3.
  • the LU management table 500 includes, as items, a path number 510, a port number 520, a LUN 530, an NVMe / SCSI 540, and a logical volume number 550.
  • the port number 520 is an identification number of the port on the server computer 2 side associated with the LUN 530 on the storage controller 3 side.
  • the LUN 530 is an LU identification number on the storage controller 3 side, and is a LUN on the storage controller 3 side associated with the port number 520.
  • the logical volume number 550 is the number of the logical volume on the storage controller 3 side that constitutes the LU of the LUN 530.
  • the logical volume with the logical volume number 550 may be a normal volume, a capacity virtualization volume, a hierarchical capacity virtualization volume, or the like.
  • the logical volume management table 600 is a table for managing which storage medium is allocated to each logical volume.
  • a storage area in the HDD is allocated to the logical volume.
  • one logical volume is assigned a storage area of one type of storage medium. Storage areas are allocated to normal volumes in units of volumes, and capacity virtualized volumes in units of pages.
  • a free storage area is selected from the pool associated with the capacity virtualized volume and assigned to the capacity virtualized volume page.
  • This pool may be composed of one type of storage medium.
  • a free storage area is selected and assigned to the hierarchical capacity virtualized volume from the pool associated with the hierarchical capacity virtualized volume.
  • This pool may be composed of a plurality of types of storage media. Therefore, in the hierarchical capacity virtualization volume, the storage medium allocated for each page can be different.
  • the hierarchical capacity virtualization volume management entry 640 manages these pieces of information.
  • the volume type 620 of the logical volume management table 600 may be linked from “mixed (hierarchical capacity virtualized volume)”.
  • the hierarchical capacity virtualization volume management entry 640 manages addresses to storage areas allocated to all pages of the link source logical volume. Typically, for each page, a storage device and an address corresponding to a storage area allocated to the page are managed. In FIG. 8, the logical volume management table 600 indicates that the logical volume with the logical volume number “3” is “mixed (hierarchical capacity virtualization volume)”. Then, the hierarchical capacity virtualization volume management entry 640 linked from there indicates that the address “100” of the flash memory is assigned to the page of the page number “0” of the logical volume. The hierarchical capacity virtualization volume management entry 640 may be further hierarchized.
  • the logical volume number 550 may be the same on the server computer 2 side and the storage controller 3 side.
  • the server computer 2 and the storage controller 3 may be an integrated device or may be separate devices.
  • the storage controller 3 side identifies the LUN based on the information on the server computer 2 side included in the read command transmitted from the server computer 2 side, and identifies the logical volume number on the storage controller 3 side. May be.
  • the same logical volume number on the server computer 2 side and the storage controller 3 side will be described as having a correspondence relationship.
  • the server computer 2 receives the attention information from the storage controller 3 and recognizes the information on the storage medium of the page. Details of the attention information will be described later.
  • FIG. 9 is a flowchart showing an example of the first path allocation process.
  • the storage area is defined in order from the physical hierarchy such as the flash memory 5 or the HDD 6 toward the logical hierarchy.
  • a pool used for the hierarchical capacity virtualization volume may also be defined.
  • a path to be used when accessing the logical volume is determined and registered in the logical volume management table 600.
  • the storage controller 3 defines a storage area from the flash memory 5 and the HDD 6 which are examples of physical devices.
  • the storage controller 3 divides this storage area, associates one of the storage areas with the logical volume, and registers the correspondence relationship in the logical volume management table 600. Details of the definition of the storage area will be described later.
  • the storage controller 3 defines the pool after defining the logical volume. For example, the administrator specifies a pool ID, the number and number of pool volumes that are logical volumes to be registered in the pool, and creates a pool through the management computer 7.
  • the server computer 2 transmits a discovery command to the storage controller 3.
  • the discovery command is a command for obtaining a list of LUs that can be provided by the storage controller 3. For example, when the administrator instructs volume allocation through the management computer 7, the server computer 2 transmits a discovery command to the storage controller 3.
  • the storage controller 3 When the storage controller 3 receives the discovery command, it sends a list of LUs to the server computer 2. The server computer 2 allocates a volume using the received LU list.
  • the server computer 2 can set a LUN path after assigning a volume.
  • the volume for which the LUN path is set can be accessed from the server computer 2. That is, the server computer 2 can transmit an access request for the volume.
  • the server computer 2 can recognize one LU from a plurality of paths by setting a multipath.
  • the storage controller 3 associates the port number 520 and the LUN 530 with the path number 500 and registers them in the LU management table (S4010).
  • the storage controller 3 transmits path management information and volume attribute information to the server computer 2 (S4012).
  • the volume attribute information includes, for example, information indicating whether it is HDD, flash memory, or a mixture of FC (HDD) and flash memory by hierarchical capacity virtualization.
  • the server computer 2 receives the path information and the volume attribute information from the storage controller 3, and registers the path information and the volume attribute information in the path management table 400 (S4014).
  • the server computer 2 assigns multipaths to the volumes by the multipath controls 230 and 231. For example, the server computer 2 refers to the attribute of the volume and assigns an NVMe path having the attribute of the flash memory to the volume configured with the flash memory 5.
  • the server computer 2 allocates a SCSI path having the SCSI attribute to the volume configured by FC or the tiered capacity virtualization volume (S4016).
  • the attribute information of the recording medium on the storage side is acquired, the type of protocol used for access is determined according to the type of the medium, and the path corresponding to the protocol is set. . This enables access using a protocol according to the access characteristics of the medium.
  • the server computer 2 registers the assigned path information in the path management table 400 (S4018). Then, the server computer 2 transmits the assigned path information to the storage controller 3 (S4020).
  • the storage controller 3 registers the received path information in the logical volume management table 600 (S4022).
  • the storage controller 3 may assign a multipath to the volume in the same manner as described above.
  • the storage controller 3 transmits the assigned path information to the server computer 2, and the server computer 2 registers the received path information in the path management table 400.
  • the management computer 7 may manage the path information, and the management computer 7 may transmit the path information to the storage controller 3 and the server computer 2.
  • the storage controller 3 acquires information of at least a first storage medium (for example, flash memory) or a second storage medium (for example, HDD) assigned to the logical volume, and stores the information in the logical volume based on the acquired information.
  • At least one of the NVMe path and the SCSI path is set.
  • FIG. 10 is a flowchart showing an example of processing on the server computer 2 side in the heterogeneous path switching control processing.
  • the server computer 2 generates an access request (S5010).
  • the server computer 2 refers to the path management table 400 and determines whether or not the LU having data corresponding to the access request is a hierarchical capacity virtualization volume (S5012).
  • the server computer 2 performs the following processing. That is, the server computer 2 refers to the sub-table 440, calculates a page number based on the access target address, and determines whether a path is assigned to the calculated page number (S5014).
  • the server computer 2 selects one of the paths assigned to the logical volume and assigns the selected path to the page. For example, in the path management table 400 shown in FIG. 7, one of the SCSI path numbers “9” and “1” corresponding to the logical volume number “3” is selected (S5016). The selection method will be described later.
  • the server computer 2 registers the selected pass number in the sub-table 440 (S5018).
  • the server computer 2 determines whether or not the selected path is a path via NVMe control (S5020).
  • the server computer 2 includes an attention request in the access request transmitted to the storage controller 3 (S5022).
  • This attention request may include information (for example, a predetermined bit value) indicating that the path selection for this page is made in the initial unconfirmed state. Details of the attention request will be described later.
  • the server computer 2 executes an NVMe control process (S5024). Details of the NVMe control process will be described later (see S8220). Then, the server computer 2 converts the access request into a SCSI command format that can be recognized by the storage controller 3, and transmits it to the storage controller 3 (S5050).
  • the server computer 2 includes the same attention request as described above in the access request (S5022). Then, the server computer 2 executes the SCSI control process (S5026). Details of the SCSI control processing will be described later (see S8320). Then, the server computer 2 converts the access request into a SCSI command format that can be recognized by the storage controller 3, and transmits it to the storage controller 3 (S5050).
  • the server computer 2 refers to the sub-table 440, and determines whether or not the previous path for the page number was a path through NVMe control (S5030).
  • the server computer 2 executes the NVMe control process (S5024). Then, the server computer 2 converts the access request into a SCSI format that can be recognized by the storage controller 3, and transmits it to the storage controller 3 (S5050).
  • the server computer 2 executes SCSI control processing (S5026). Then, the server computer 2 converts the access request into a SCSI format that can be recognized by the storage controller 3, and transmits it to the storage controller 3 (S5050).
  • Attention information is for transmitting the type of storage medium to the server computer 2.
  • the server computer 2 may select the path without considering the type of storage medium in the storage area allocated to the page.
  • the server computer 2 can recognize the type of the storage medium by receiving the attention information from the storage controller 3. Since the type of the storage medium only needs to be recognized once, the server computer 2 sends an attention request to the storage controller 3 at the timing when the path first associated with the page is selected, and the storage controller 3 sends attention information. That's fine. If the storage medium in the storage area allocated to the page is changed, the storage controller 3 may spontaneously transmit the changed attention information to the server computer 2.
  • the attention information may include address information and storage medium information of a storage area managed on the storage controller 3 side including the page requested to be accessed.
  • the storage medium information may be Tier information.
  • the path first associated with the page may be selected by any of the following methods.
  • a path that passes through the NVMe side control is selected.
  • a path is selected at random.
  • a path is selected based on the monitored information.
  • FIG. 11 is a flowchart showing an example of processing on the storage controller 3 side in the heterogeneous path switching control processing.
  • the storage controller 3 receives an access request from the server computer 2 (S5110).
  • the storage controller 3 determines whether or not an attention request is included in the received access request (S5120).
  • the storage controller 3 executes an access process (read / write process, etc.) corresponding to the access request (S5130).
  • the storage controller 3 transmits read data (in the case of read processing) and an execution result to the server computer 2 after completion of the access processing (S5140).
  • S5120 If an attention request is included in S5120 (S5120: YES), the storage controller 3 executes an access process corresponding to the access request in the same manner as in S5130 above (S5150). Then, after the completion of the access processing, the storage controller 3 transmits read data (in the case of read processing), an execution report, and attention information relating to the page to be accessed to the server computer 2 (S5160).
  • the storage medium for storing data may be changed on the storage controller 3 side.
  • the storage controller 3 may migrate the data stored in the flash memory 5 to the HDD 6 (or vice versa) based on the result of monitoring the access frequency or the like or based on an instruction from the user.
  • the storage controller 3 executes such a migration between Tiers (S5180)
  • the storage controller 3 transmits attention information having the changed contents to the server computer 2 (S5200).
  • the storage controller 3 When the storage controller 3 detects that a request has been received from a different path such as an NVMe path at the timing of the access request, the storage controller 3 executes and completes the access process.
  • the server computer 2 may be notified of attention information to change the path.
  • the storage controller 3 may perform heterogeneous path switching control. For example, the storage controller 3 accesses the logical volume via the NVMe path when accessing the storage area of the flash memory 5, and accesses the logical volume via the SCSI path when accessing the storage area of the HDD 6. It's okay.
  • FIG. 12 is a schematic diagram for explaining a case where the management unit (for example, page) size of the storage area of the hierarchical capacity virtualization volume is different between the server computer 2 and the storage controller 3.
  • the management unit for example, page
  • the unit size (page size) of the storage area managed by the storage controller 3 is larger than the unit size (page size) of the storage area managed by the server computer 2.
  • the server computer 2 receives the attention information from the storage controller 3, the server computer 2 acquires storage medium information corresponding to one page managed by the storage controller 3, and associates the page with a plurality of pages managed by the server computer 2.
  • pages “1” and “2” managed by the storage controller 3 correspond to pages “1” to “4” and “5” to “8” managed by the server computer 2, respectively.
  • page “1” in the storage controller 3 is configured from the flash memory 5 and page “2” is configured from the HDD 6.
  • the server computer 2 receives the attention information indicating that from the storage controller 3, the storage media of the pages “1” to “4” managed by the server computer 2 are “flash memory”, and the page “5” The information indicating that the storage media “8” to “8” are “HDD” is registered.
  • storage medium information for each page of the hierarchical capacity virtualization volume is not shown in the sub-table 440, but an entry relating to the storage medium information may be provided in the sub-table 440.
  • the path information is managed as 450_1, 450_2,... Therefore, when the server computer 2 receives that the page “1” managed by the storage controller 3 is configured from the flash memory 5, the server computer 2 associates with the NVMe control among a plurality of paths associated with the volume. The obtained MVNe bus may be associated with the page “1”. In this way, the server computer 2 can determine which type of path is associated with each of a plurality of pages with one attention information.
  • FIG. 13 is a flowchart showing a processing example of heterogeneous path switching control in the server computer 2 when attention information is transmitted from the storage controller.
  • the attention notice may be a signal output from the storage controller 3 to the server computer 2.
  • the attention information transmitted together with the attention notification includes information related to the page specified by the access request transmitted from the server computer 2 to the storage controller 3.
  • the information may include storage medium information, page start address, and page number information.
  • the storage medium information is information indicating the type of storage medium constituting the storage area allocated to the page.
  • the page start address is information indicating the start address in the storage controller 3 corresponding to the page number in the server computer.
  • the management unit size of the server computer 2 is smaller than the management unit size in the storage controller 3. Therefore, the type of the storage medium corresponding to one page number of the server computer 2 is the same as the type of storage medium constituting the page in the storage controller 3 corresponding to the page number. Therefore, the server computer 2 can acquire the types of storage media of all pages of the storage controller 3 using the page number managed by the server computer 2.
  • the server computer 2 receives the attention information from the storage controller 3 (S5310). There are, for example, the following two patterns for receiving attention information. In any case, the processing after receiving attention information is the same.
  • the server computer 2 may have a mechanism for detecting attention information.
  • the server computer 2 may periodically check the attention detection queue and start the following processing if the queue is registered there.
  • the server computer 2 When the server computer 2 receives the attention information, the server computer 2 retrieves the logical volume number and page number managed by the server computer 2 from the attention information (S5312). Based on the attention information, the server computer 2 updates the pass number information associated with each retrieved page number.
  • the server computer 2 determines whether the attention information storage medium type is Tier 1 (any storage medium type can be identified) for one page number (S5314).
  • the server computer 2 associates the SCSI path with the page number (S5324). Then, the process proceeds to S5322.
  • the server computer determines whether or not the page number to be updated still remains, returns to S5314 if it remains, and ends the process if it does not remain.
  • FIG. 14 is a flowchart illustrating an example of access processing according to the present embodiment.
  • the NVMe command is issued from a program that issues an I / O command in the server computer 2.
  • the NVMe command may be issued by an application or a driver in the OS. The same applies to the SCSI command.
  • the NVMe command is issued to the logical volume 710 (FIG. 6) configured from the flash memory.
  • a SCSI command is issued to the logical volume 720 configured from the HDD 6.
  • a SCSI command or an NVMe command may be set as a command to be issued first. This setting may be set and changed by the user. In this embodiment, it is assumed that the NVMe command is set for the first command to be issued.
  • FIG. 10 when the server computer 2 sets the path correspondence relationship and becomes ready to accept an access request, for example, when the OS 227 issues an I / O command, the processing of FIG. 10 is executed. Details of the NVMe control process of S5024 in FIG. 10 are shown in S8220 of FIG. 14, and details of the SCSI control process of S5026 in FIG. 10 are shown in S8320 to S8340 of FIG. Details of S5050 in FIG. 10 are shown in S8420 to S8460 in FIG.
  • the NVMe control 222 performs various processes such as a process for interpreting information included in the NVMe command and a necessary file open process, but only a difference from the SCSI control will be described here.
  • the SCSI control 224 performs I / O scheduling processing.
  • the NVMe command processing related to the NVMe command performed between the server computer 2, the server-side PCIe I / F device 4, and the control unit 36 is shown below. The following processing is applied when the NVMe command is read or / and write, but may be applied to other NVMe commands.
  • the detailed processing procedure of S8420 to S8460 may be as described in SS1 to SS7 below.
  • the following processing is performed when the storage controller 3 includes a plurality of control units 36, each control unit 36 includes a plurality of CPUs 31, and the logical unit corresponds to NS.
  • the server computer 2 transmits the NVMe command by the processing of the program described above. It should be noted that the server computer 2 can designate the target NS by including the NS ID in the NVMe command.
  • the NVMe command includes the access range in the NS ID and the memory range of the server computer 2.
  • the server-side PCIe I / F device 4 receives the NVMe command.
  • the server-side PCIe I / F device 4 interprets the received NVMe command and converts the NSID included in the command into a corresponding LUN.
  • the server-side PCIe I / F device 4 generates a SCSI command including the converted LUN.
  • the server-side PCIe I / F device 4 determines the control unit 36 and the CPU 31 that are transmission destinations of the generated SCSI command.
  • the server-side PCIe I / F device 4 transmits the generated SCSI command to the determined transmission destination.
  • the CPU 31 of the destination control unit 36 receives the SCSI command and processes the received SCSI command.
  • the server-side PCIe I / F device 4 transfers the write data stored in the main memory 22 of the server computer 2 to the main memory 32 of the storage controller 3. You can do it.
  • the server-side PCIe I / F device 4 may transfer the read data stored in the main memory 32 of the storage controller 3 to the main memory 22 of the server computer 2.
  • the conversion from NSID to LUN in SS3 may be performed by, for example, either (B1) or (B2) below or a combination thereof.
  • the server-side PCIe I / F device 4 converts NSID to LUN by a predetermined conversion formula (which may include bit operation).
  • the server-side PCIe I / F device 4 can convert from LUN to NSID by an inverse conversion formula that is paired with a predetermined conversion formula.
  • the server-side PCIe I / F device 4 stores a conversion table for converting the NSID into LUN in the memory of the server-side PCIe I / F device 4, and uses the conversion table to convert the NSID to LUN. Convert.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 計算機システムは、サーバ計算機と、第1の記憶媒体を有する第1の記憶デバイスと、第1の記憶媒体とは異なる第2の記憶媒体を有する第2の記憶デバイスと、サーバ計算機にPCI-Expressを介して接続され第1及び第2の記憶デバイスに接続されるストレージコントローラとを含む。ストレージコントローラは、論理ボリュームを提供し、その論理ボリュームに割り当てられる第1又は第2の記憶媒体の情報を取得し、その取得した情報に基づいて、論理ボリュームに、第1の規格に準拠するコマンドによりアクセスされる第1のパス、又は、第2の規格に準拠するコマンドによりアクセスされる第2のパスの何れか一方を設定する。

Description

計算機システム、及び、記憶制御方法
 本発明は、計算機システム及び記憶制御方法の技術に関する。
 フラッシュメモリデバイス(以下「フラッシュメモリ」という)は、HDD(Hard Disk Drive)と比較して高いI/O(Input/Output)性能を有する。しかし、従来のSCSI(Small Computer System Interface)は、フラッシュメモリのI/O性能を十分に発揮するには必ずしも最適では無い。このような問題に鑑みて、非特許文献1記載のNVM-Express(Non-Volatile Memory Express。以下「NVMe」という)規格が策定されている。非特許文献1には、複数のホストから、namespace(以下「NS」という)を共有する概念が開示されている。
 一方で、記憶媒体に基づく複数の記憶領域で構成された容量プールから動的に記憶領域が割り当てられる容量仮想化ボリュームをサーバに提供する、シンプロビジョニング技術が知られている。また、異なる種類の記憶媒体に基づく複数の記憶領域で構成された容量プールから動的に記憶領域が割り当てられる容量仮想化ボリュームである階層型容量仮想化ボリュームをサーバに提供する、シンプロビジョニング技術も知られている。
"NVM Express 1.1a Specification", 8.8 (p.158-159), http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_1a.pdf
 サーバ計算機は、SCSIドライバの所定のマルチパスI/O機能を用いて、ストレージ装置の論理ボリュームに対して複数のパス(つまりマルチパス)を定義できる。しかしながら、NVMeドライバは、NVMeの仕様上、マルチパスI/O機能を有していないので、マルチパスを定義できない。
 階層型容量仮想化ボリュームに関連付けられている容量プールは、上述したように、異なる種類の記憶媒体に基づいており、異なる種類の記憶媒体として、例えば、HDDとフラッシュメモリが採用される。一般にフラッシュメモリは、HDDと比較してアクセス性能が高いため、フラッシュメモリに基づく複数の記憶領域はTier1(高い階層)に属し、HDDに基づく複数の記憶領域はTier2(低い階層)に属する。ここで、階層型容量仮想化ボリュームに対してSCSIドライバのパスを定義すると、フラッシュメモリで構成されるTier1の記憶領域に対しても、SCSIドライバのパスを経由してアクセスされる。SCSIドライバでは、アクセス処理の際に、HDDに対してシーク時間等を最適化して効率の良いアクセスを実現するためのI/Oスケジューラ制御が行われる。しかし、記憶媒体がフラッシュメモリの場合、I/Oスケジューラ制御の効果が無く、むしろそのI/Oスケジューラ制御がオーバーヘッドとなってしまう。反対に、階層型容量仮想化ボリュームに対してNVMeドライバのパスを定義すると、HDDで構成されるTier2の記憶領域に対しても、NVMeドライバのパスを経由してアクセスされる。この場合、I/Oスケジューラ制御が行われないので、HDDに対するアクセス効率が悪化してしまう。
 そこで本発明の目的は、アクセス対象の記憶媒体の特性に適合したアクセス制御を行う計算機システム及び記憶制御方法を提供することにある。
 一実施形態に係る計算機システムは、
 サーバ計算機と、
 第1の記憶媒体を有する第1の記憶デバイスと、
 第1の記憶媒体とは異なる第2の記憶媒体を有する第2の記憶デバイスと、
 サーバ計算機にPCI-Expressを介して接続され、第1及び第2の記憶デバイスに接続されるストレージコントローラと、を含む。
 ストレージコントローラは、
  論理ボリュームを提供し、
  論理ボリュームに割り当てられる、少なくとも第1又は第2の記憶媒体の情報を取得し、
  取得した情報に基づいて、論理ボリュームに、第1の規格に準拠するコマンドによりアクセスされる第1のパス、又は、第2の規格に準拠するコマンドによりアクセスされる第2のパスの少なくとも何れか一方を設定する。
 本発明によれば、アクセス対象の記憶媒体の特性に適合したアクセス制御を行うことができる。
計算機システムのハードウェア構成例を示すブロック図である。 計算機システムのソフトウェア構成例を示すブロック図である。 論理ボリュームに対してI/O処理を行う場合の概念図である。 階層型容量仮想化ボリュームに対してI/O処理を行う場合の概念図である。 本実施例に係る処理の概要を示す模式図である。 NVMeのNSと記憶領域との関係を示す模式図である。 パス管理テーブルの構成例である。 ストレージコントローラで管理される情報の例である。 最初のパス割り当ての処理例を示すフローチャートである。 異種パス切り替え制御処理におけるサーバ計算機側の処理の一例を示すフローチャートである。 異種パス切り替え制御処理におけるストレージコントローラ側の処理の一例を示すフローチャートである。 階層型容量仮想化ボリュームのページを説明するための模式図である。 ストレージコントローラからアテンション情報が送信された場合のサーバ計算機における異種パス切り替え制御処理の一例を示すフローチャートである。 アクセス処理の一例を示すフローチャートである。
 以下、図面を参照しながら実施例を説明する。ただし、本実施例は、発明を実現するための一例に過ぎず、発明の技術的範囲を限定するものではない。また、各図において共通の構成については、同一の参照番号が付されている。
 なお、以後の説明では「テーブル」という表現にて本実施例の情報を説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくてもよい。例えば、「リスト」、「DB(データベース)」、「キュー」等のデータ構造やそれ以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために、「テーブル」、「リスト」、「DB」、「キュー」等については、単に「情報」と呼ぶこともできる。また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
 以後の説明では、「プログラム」を主語として説明を行うが、プログラムはCPU(Central Processing Unit)によって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、CPUを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、サーバ計算機やストレージコントローラや管理計算機等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部又は全ては、専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムは、プログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
 なお、以後の説明は、今後登場するであろうNVMeの後継規格に対しても適用可能であり、同様にPCI-Express(Peripheral Component Interconnect Express:以後、PCIeと省略)の後継規格に対しても適用可能である。実施例は、フラッシュメモリを用いる不揮発メモリデバイスを対象として説明しているが、フラッシュメモリ以外の不揮発メモリ、例えばFeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(登録商標、Resistance RAM)を用いる不揮発メモリデバイスに適用してもよい。
≪NVMeについて≫
 上記非特許文献1及び2に記載されているように、NVMeは、フラッシュメモリSSDに対する高速アクセスを実現するためのI/F(Interface)規格である。NVMe規格に準拠してプログラム(デバイスドライバ、アプリケーション、OS等)を開発することで、フラッシュメモリSSDに対して、高IOPS(Input/Output per Second)又は低レイテンシなアクセス(つまり高速なアクセス)が可能となる。
 様々なフラッシュメモリデバイスがNVMe規格に対応する可能性がある。そのため、デバイスドライバ以外のプログラム(典型的にはアプリケーションプログラム)のベンダが、フラッシュメモリデバイスに対する高速アクセスを目的として、直接NVMeコマンドを発行するプログラムを提供する可能性がある。フラッシュメモリSSDはフラッシュメモリデバイスの一種であり、フラッシュメモリデバイスは、例えば以下の特徴を有する。
・フラッシュメモリデバイスは、フラッシュメモリチップと、フラッシュメモリコントローラとを有する。
・フラッシュメモリコントローラは、外部装置からリードリクエストを受信すると、そのリードリクエストに対応するデータを、フラッシュメモリチップから読み出して外部装置に送信する。
・フラッシュメモリコントローラは、外部装置からライトリクエストを受信すると、そのライトリクエストと共に受信したデータを、フラッシュメモリチップに書き込む。
・フラッシュメモリコントローラは、フラッシュメモリチップのイレース処理を行う。
<CPFのハードウェア全体構成>
 図1は、計算機システムの構成例を示すブロック図である。
≪CPF(計算機システム)≫
 計算機システム1は、1以上のサーバ計算機と、1以上のストレージコントローラと、フラッシュメモリデバイス(以下「フラッシュメモリ」という)と、通信機構(Communication Mechanism)とを有する。計算機システムの有するこれらの構成要素の各々を、計算機システムコンポーネントと呼ぶことがある。
 計算機システム1は、「Converged Platform」であってよい。「Converged Platform」は「Converged Infrastructure」又は「Converged System」と呼ばれてもよい。「Converged」は「垂直統合」と表現されてもよい。「Converged Platform」は「CPF」と省略して表現されてもよい。CPFは以下の特徴を有してよい。
・CPFは、サーバ計算機と、ストレージシステム(ストレージコントローラ及び記憶デバイスを含む)と、これらを接続する通信機構とを含んでよい。サーバ計算機及びストレージシステムを個別に企業に導入する場合、企業側がサーバ計算機及びストレージシステムの動作検証及び接続検証等を行うことが多い。しかし、CPFを企業に導入する場合、ベンダ側が事前にそのCPFの動作検証及び接続検証等を行ってくれる。したがって企業は、CPFを導入することにより、動作検証及び接続検証等の手間を削減することができる。
・CPFは、サーバ計算機、ストレージシステム及び通信機構の設定を一括して行うことのできる管理サブシステムを含んでもよい。管理サブシステムでは、この一括設定を行うための管理プログラムが実行されてよい。
 管理サブシステムは、管理者が希望する実行環境(仮想マシン、DBMS:Database Management System、Webサーバ等)を迅速に提供することができる。例えば、管理サブシステムは、サーバ計算機及びストレージシステムに対して、仮想マシンの作成に必要なリソースの割り当てをリクエストする。そして、管理サブシステムは、ハイパーバイザーに対して、そのサーバ計算機及びストレージシステムから割り当てられたリソースを用いて仮想マシンを作成するようにリクエストする。
 以下、計算機システムがCPFである場合の実施例を説明する。CPF1は、サーバ計算機2と、ストレージコントローラ3と、記憶デバイスの一例としてフラッシュメモリ5およびHDD6と、管理サブシステムの一例として管理計算機7とを含む。
≪サーバ計算機≫
 サーバ計算機2は、ストレージコントローラ3にアクセス可能なプログラム(図示せず)を実行する。このプログラムは、NVMeコマンドを発行することで、ストレージコントローラ3によって提供されるフラッシュメモリ5上のデータ領域にアクセスする。なお、データ領域をNVMeのNS(NameSpace)として提供する要素は後ほど説明する。
 サーバ計算機2は、CPU21と、メインメモリ22と、Root Complex(以後、RCと省略)24とを含む。サーバ計算機2の一例としては、ファイルサーバ、ブレードサーバシステム、PC(Personal Computer)サーバ、ブレードサーバシステムに差し込まれるブレードなどがある。サーバ計算機2は、バーチャルマシンサーバ、又は、CPUのコア単位などであってもよい。
≪サーバ計算機のプログラム≫
 サーバ計算機2のプログラムは、業務アプリケーションプログラム(例えばWebサーバ、DBMS、分析プログラム、ミドルウェア)、LPAR(Logical Partitioning)、仮想マシンを作成可能なプログラム、OS、デバイスドライバなどであってよい。
≪通信機構≫
 通信機構は、サーバ計算機2とストレージコントローラ3とをPCIeで接続する。なお、サーバ計算機2とストレージコントローラ3との間のPCIe接続は、従来のサーバ計算機とストレージコントローラとの接続で採用されているFC(Fibre Channel)、Ethernet(登録商標)を用いるSAN(Storage Area Network)のようなネットワークを必ずしも介する必要は無い。FCプロトコルと比較してPCIe接続は、変換処理のオーバーヘッドを抑えられるため、データ領域に対するI/O処理が高速化される。また、EthernetやSANのデバイス(特にスイッチ)と比較してPCIe接続は、コストを抑制し得る。NVMeはPCIeに基づく通信機構を前提としてよい。そのため、サーバ計算機2からのNVMeコマンドを解釈する要素は、PCIeにおけるEndpoint(以下「EP」という)41であってよい。
 本実施例では、サーバ計算機2からのPCIe接続とストレージコントローラ3からのPCIe接続とを仲介する仲介デバイスの一例であるサーバ側PCIe I/Fデバイス4を、NVMeコマンドを解釈する要素とする。しかし、フラッシュメモリ5又はストレージコントローラ3を、NVMeを解釈する要素としてもよい。
≪ストレージコントローラ≫
 ストレージコントローラ3は、フラッシュメモリ5の記憶領域を用いて、高性能なI/O処理を提供する。ストレージコントローラ3は、エンタープライズ向けのSANストレージサブシステムが有するような信頼性、冗長性、高機能性、保守・管理容易性を実現する機能を有してもよい。例えばストレージコントローラ3は、以下のような機能を有してよい。
・ストレージコントローラ3は、フラッシュメモリ5を冗長化し、その冗長化した記憶領域を用いて、共有データ領域を提供する機能を有してよい。
・ストレージコントローラ3は、共有データ領域に格納したデータにアクセス可能なまま(いわゆる無停止のまま)、フラッシュメモリ5の着脱など(つまりデバイス保守)を可能としてよい。HDD6と異なり、フラッシュメモリ5には、書き込み回数の増加に伴ってデバイスの寿命が短くなるという特性がある。よって、ストレージコントローラ3がこのような冗長化や無停止保守を提供することにより、計算機システム1の信頼性を向上させることができる。また、PCIeのフラッシュメモリをサーバ計算機2に直接装着すると、サーバ計算機2毎にフラッシュメモリの保守を行う必要がある。しかし、本実施例の計算機システム1のように、ストレージコントローラ3にフラッシュメモリ5を接続することにより、フラッシュメモリ5の保守をストレージシステム側にまとめることができる。これにより保守作業者は、まとめてフラッシュメモリ5の保守作業を行うことができるので、保守が容易になる。
・ストレージコントローラ3は、NVMeによって格納したデータに対して、リモートコピーやスナップショット等のコピー機能を有してよい。
・ストレージコントローラ3は、フラッシュメモリ5以外の記憶デバイス、例えばHDD6が接続された場合、これらの記憶デバイスを用いたティアリングを行う機能を有してよい。なお、ストレージコントローラ3は、HDD6が提供する記憶領域をNVMeのNSに対応させてもよい。
・ストレージコントローラ3は、サーバ計算機2を介さずに、本計算機システム1の外部の計算機システム(サーバ計算機やストレージシステムを含む)又はネットワーク装置(SANスイッチやEthernetスイッチを含む)からのネットワークを介したアクセスを行う機能を有してよい。これにより例えば、前述のリモートコピーが行えたり、本計算機システム1の外部の計算機システム又はネットワーク装置も含めたストレージコンソリデーションも提供できたりする等、柔軟性が向上する。
≪サーバ計算機とストレージコントローラの配置≫
 PCIeは、FCやEthernetと比較して、通信可能距離が短い。PCIeは、サーバ計算機やストレージシステムなどの内部の通信路として用いられてきたためである。よって、PCIe接続では、サーバ計算機2とストレージコントローラ3とは物理的に近い位置に配置されることが多い。しかし、以下のような構成もあり得る。
・ストレージコントローラ3が、ブレードサーバシステムのシャーシに差し込まれる構成。なお、サーバ計算機2であるブレードとストレージコントローラ3との間のPCIe接続にバックプレーン等の基板を用いることで、PCIe接続に伴うトラブルを削減できる。
・ブレードサーバシステムのシャーシとは別のシャーシにストレージコントローラ3を設置し、両シャーシをPCIe接続用のケーブルで接続する構成。なお、ブレードサーバシステムのシャーシとストレージコントローラ3のシャーシとを1つのラックに設置したものを、CPFとして販売してもよい。このように1つのラックに両シャーシとPCIe接続用ケーブルとを設置することで、PCIe接続用ケーブルに伴うトラブルを削減できる。また単体販売しているブレードサーバシステムやストレージシステムのシャーシそのもの又は部品をCPFへ流用することが容易となる。
≪管理サブシステム≫
 管理サブシステムは、例えば、以下の処理を実行し得る。
管理サブシステムは、管理者又は統合管理サブシステムからのリクエストを受信し、計算機システムコンポーネントに対してリクエストに応じた設定を行う。
 管理サブシステムは、計算機システムコンポーネントから取得した情報を、管理者に表示したり、統合管理サブシステムに送信したりする。取得する情報の一例としては、性能情報、障害情報、設定情報、構成情報等がある。構成情報は、コンポーネントの着脱を行わない限り、本計算機システムに固有な項目と変更可能な項目とを含んでよい。設定情報は、構成情報のうち、設定により変更可能な項目であってよい。これら種類の情報をまとめてコンポーネント情報と呼ぶことがある。管理者に表示、又は、別な計算機に送信する情報は、取得したコンポーネント情報そのままでもよいし、所定のルールに従って変換・加工した後に、当該情報の表示や送信を行ってもよい。管理サブシステムは、上記コンポーネント情報に基づいて、自動的又は自律的に、計算機システムコンポーネントへの設定を行ってよい。
 管理サブシステムは、関係する機能、計算機の集合であってよい。管理サブシステムは、計算機システムコンポーネントとは別な1以上の計算機であってよい。管理サブシステムが、ネットワークを介して計算機システムに接続されている複数の計算機である場合、例えば、サーバ計算機専用の計算機、ストレージコントローラ専用の計算機、表示処理専用の計算機といった計算機が、管理サブシステムに存在してもよい。管理サブシステムは、計算機システムコンポーネントの一部であってよい。例えばBMC(Baseboard Management Controller)やエージェントプログラムが管理サブシステムであってよい。
≪統合管理サブシステム≫
 統合管理サブシステムは、サーバ、ストレージシステム、ネットワーク装置(SANスイッチやEthernetスイッチを含む)、本計算機システム等の管理対象装置を統合管理するサブシステムである。統合管理サブシステムは、ネットワークを介して管理サブシステム及び他の管理対象装置に接続される。統合管理サブシステムは、ネットワークを介して計算機システムに接続されている1又は複数の計算機を含んでよい。
 サーバ計算機2とストレージコントローラ3の間のPCIe接続は、スイッチ(不図示)を介して行われてよい。
 サーバ計算機2は、CPU21と、メインメモリ22と、RC24と、サーバ側PCIe I/Fデバイス4とを有する。RC24とサーバ側PCIe I/Fデバイス4とはPCIeで接続される。RC24とCPU21とはPCIeよりも高速なネットワークで接続されてよい。メインメモリ22は、メモリコントローラ(不図示)を介して、CPU21及びRC24と、PCIeよりも高速なネットワークで接続されてよい。サーバ計算機2で実行される各プログラムは、メインメモリ22にロードされ、CPU21によって実行されてよい。CPU21はCPUコアであってもよい。RC24とCPU21とメモリコントローラとは、1つのLSIパッケージでまとめられてもよい。
 サーバ側PCIe I/Fデバイス4は、前述の仲介デバイスの一例である。サーバ側PCIe I/Fデバイス4は、サーバ計算機2の外部に配置されてもよい。サーバ側PCIe I/Fデバイス4は、以下の特徴を有してよい。サーバ側PCIe I/Fデバイス4は、CPU21で実行されるプログラムから発行されるNVMeコマンドを解釈する。サーバ側PCIe I/Fデバイス4は、RC24に対してEP41を提供する。サーバ側PCIe I/Fデバイス4は、ストレージコントローラ3に含まれるRC33に対して別なEP42を提供する。
 サーバ計算機2は、ローカルフラッシュメモリ23を含んでもよい。ローカルフラッシュメモリ23は、RC24とPCIeで接続されてよい。サーバ計算機2に含まれる各要素は複数であってもよい。なお、図1ではローカルフラッシュメモリ23とサーバ側PCIe I/Fデバイス4とは、RC24を介して通信をするように記載されているが、RC24を介さずに通信してもよいし、通信できなくてもよい。
 ストレージコントローラ3は、1つ以上の(図1では2つの)コントロールユニット36を有する。各コントロールユニット36は、CPU31と、メインメモリ32と、RC33と、フラッシュI/F372とを有する。RC33と、サーバ側PCIe I/Fデバイス4と、フラッシュI/F372とは、PCIeで接続されてよい。RC33とCPU31とは、PCIeより高速なネットワークで接続されてよい。
 メインメモリ32は、図示しないメモリコントローラを介して、CPU31及びRC33と、PCIeよりも高速なネットワークで接続されてよい。
 ストレージプログラム320等のストレージコントローラ3で実行される各プログラムは、メインメモリ32にロードされ、CPU31によって実行される。CPU31はCPUコアであってもよい。RC33とCPU31とメモリコントローラとは1つのLSIパッケージでまとめられてもよい。
 各コントロールユニット36は、HDD6に接続するためのディスクI/F34を含んでもよい。フラッシュI/F372とディスクI/F34が同じインターフェースタイプである場合、これら2つのI/Fは共通化されてよい。ディスクI/F34の例として、SAS、SATA、FC、Ethernetなどがあるが、他の通信機構であってもよい。
 図1において、フラッシュI/F372(又はディスクI/F34)とサーバ側PCIe I/Fデバイス4とは、RC33を介して通信をするように記載されているが、RC33を介さずに通信できてもよいし、通信できなくてもよい。この点はフラッシュI/F372とディスクI/F34についても同様である。
 なお、コントロールユニット36に含まれる各要素は複数であってもよい。計算機システム1は、複数のサーバ計算機2を有してもよい。
<CPFソフトウェア構成図>
 図2は、CPFのソフトウェア構成の例を示すブロック図である。
 サーバ計算機2は、ストレージコントローラ3とPCIe接続するためのI/Fデバイスであるサーバ側PCIe I/Fデバイス262と、管理計算機7と接続するためのI/Fデバイスである管理I/F272とを含む。
 サーバ計算機2は、プログラムの一例として、アプリケーションプログラム(以下「アプリケーション」という)228と、OS227と、異種パス切り替え制御223と、NVMe制御プログラム222と、SCSI制御プログラム224と、サーバ管理I/F制御プログラム229とを有する。サーバ計算機2及びストレージコントローラ3と、管理計算機7との間は、Ethernetで接続されてもよいし、他の物理的又は仮想的な手段による接続であってもよい。
 サーバ管理I/F制御プログラム229は、管理I/F272を制御することにより、管理計算機7との通信を行う。
 NVMe制御プログラム222は、NVMeコマンドをPCIe I/F262に発行するプログラムである。NVMe制御プログラム222は、サーバ計算機2に格納されている他のプログラムの一部であってもよいし、サーバ計算機2に格納されている他のプログラムと別なプログラムであってもよい。例えば、アプリケーションプログラム228がNVMeコマンドを発行してもよいし、OS227内のデバイスドライバがNVMeコマンドを発行してもよい。
 PCIe I/F262は、NVMeコマンドとSCSIコマンドの両方を受け付ける場合、NVMeファンクションとSCSIファンクションの2つを有する必要がある。PCIe I/F262は、NVMe制御プログラム222の動作に従ってNVMeコマンドをPCIe I/F362へ送信した後、PCIe I/F362から当該NVMeコマンドに対するレスポンスを受信し、そのレスポンスをNVMe制御プログラム222へ返す。
 SCSIファンクションは、SCSI制御プログラム224の動作に従ってSCSIコマンドをPCIe I/F362へ送信した後、PCIe I/F362から当該SCSIコマンドに対するレスポンスを受信し、そのレスポンスをSCSI制御プログラム224へ返す。
 PCIe I/F362をマルチファンクションにするか否かは、仲介デバイスでNVMeコマンドを解釈するか否かによって定まってよい。
 異種パス切り替え制御223は、サーバ計算機2自身が認識しているLU(Logical Unit)にアクセスする際に使用するパスを変更する。LUは、マルチパス構成であって複数本のパスを定義できてよい。通常、これら複数本のパスの中から実際に使用するパスを選択することは、アクセス要求時に行われる。本実施例では、使用するパスを決定し登録する。所定のアクションがあった場合に定義されたパスの中から使用するパスを変更する。詳細は後述する。
 ストレージコントローラ3は、管理計算機7に接続するための管理I/F382と、フラッシュメモリ5に接続するためのフラッシュI/F372とを含む。フラッシュI/F372とフラッシュメモリ5との接続は、フラッシュメモリ5がNVMeコマンドを解釈する場合はPCIe接続であることが好ましいが、そうでない場合はSAS、SATA(Serial Advanced Technology Attachment)、FC又はEthernet等であってよい。
 ストレージコントローラ3は、ストレージプログラム320を実行する。ストレージプログラム320は、PCIe I/F制御プログラム322と、階層管理制御プログラム324と、フラッシュI/F制御プログラム323と、管理I/F制御プログラム324とを含んでよい。これらのプログラムは、各インターフェースとの通信を制御する。
 PCIe I/F制御プログラム322は、PCIe I/F362を制御することにより、サーバ計算機2との通信を行う。
 フラッシュI/F制御プログラム323は、フラッシュI/F372を制御することにより、フラッシュメモリデバイス5との通信を行う。
 管理I/F制御プログラム324は、管理I/F382を制御することにより、管理計算機7との通信を行う。
 PCIe I/F262及びPCIe I/F362の実体は、サーバ側PCIe I/Fデバイス4、又は、ストレージ側PCIe I/Fデバイスであってよい。
 SCSI制御プログラム224は、他のプログラムからのリクエストに応じて、ストレージコントローラ3から提供されるLUN(Logical Unit Number)に対するSCSIリクエストを、PCIe I/F262のSCSIファンクション宛に発行する。SCSI制御プログラム224は、例えばSCSIデバイスドライバである。SCSI制御プログラム224は、サーバ計算機2に格納されている他のプログラムの一部であってもよいし、当該他のプログラムとは別のプログラムであってもよい。例えば、OS227内のデバイスドライバがSCSIリクエストを発行してもよい。
 本実施例では、サーバ計算機2とストレージコントローラ3とは1つのPCIe I/F262を通じて接続されているが、冗長性は別途の方法で確保されてよい。
<ストレージプログラム>
 ストレージプログラム320は、SCSIリクエストを受信し、解釈し、処理してよい。例えばSCSIリクエストがリードリクエストの場合、ストレージプログラム320は、フラッシュメモリ5又はHDD6等の記憶デバイスからデータをリードし、サーバ計算機2に転送する。その際、ストレージプログラム320は、ストレージコントローラ3のメインメモリ32をキャッシュメモリとして用いてもよい。例えばSCSIリクエストがライトリクエストの場合、ストレージプログラム320は、キャッシュメモリ5にライトデータを格納し、その後、記憶デバイスにライトデータをライトする。
 ストレージプログラム320は、パリティグループに対してRAID処理を行ってよい。ストレージプログラム320は、ストレージコントローラ3により提供される記憶領域の定義を行ってよい。ストレージプログラム320は、定義した結果を記憶領域定義情報としてストレージコントローラ3のメインメモリ32に格納し、前述のリクエスト処理の際に参照してよい。ストレージプログラム320は、シンプロビジョニング等のエンタープライズ向けの機能を実現する処理を行ってよい。
 サーバ計算機2にNVMeコマンドとSCSIリクエストの両方を発行できる機能を設けることで、サーバ計算機2内のNVMeに非対応のプログラムが、NVMeのNSに対応した記憶領域にアクセスできるようになる。さらに、NVMeに非対応のプログラムが、NVMeのNSに対応した記憶領域とは別の記憶領域にもアクセスできるようになる。
 例えば、図3に示すように、サーバ計算機2は、HDDの記憶領域に対してSCSIでアクセスでき、フラッシュメモリの記憶領域に対してNVMeでアクセスできるようになる。これにより、サーバ計算機2のストレージシステムに対するアクセス時間を短縮することができる。なお、HDDは、データを格納したり、サーバ計算機2のブートデバイスとしたりする場合などに使用されてよい。
 CPF1が複数のサーバ計算機を有する場合、少なくとも1つのサーバ計算機がNVMeコマンドとSCSIリクエストの両方を発行できればよい。サーバ計算機2は、データが格納されている記憶媒体の種類に基づいてアクセス方法を切り替えてよい。例えばサーバ計算機2は、ボリューム単位でSCSIとNVMeを切り替えてよい。
 パスは、サーバ計算機2で管理するLU単位に割り当てられてよい。ストレージコントローラ3はSCSI形式でリクエストを受信する必要があるため、何れかの時点でNVMeコマンドをSCSIリクエストに変換する処理が必要である。そこでサーバ側PCIe I/Fデバイス4は、サーバ計算機2から受信したNVMeコマンドに基づいてSCSIコマンドを生成し、ストレージコントローラ3に送信する。変換処理の詳細については後述する。
 次に従来のパスの割り当て方法を説明する。
 SCSIコマンドに対して、従来のSCSI制御は、I/Oスケジューリング処理などを実行する。そして従来のSCSI制御は、処理待ちしているSCSIコマンドの中の1つを選択し、サーバ計算機とストレージコントローラとの間にパスを割り当てる。従来のSCSI制御では、マルチパス制御がデフォルトの機能である場合が多い。マルチパス制御では、サーバ側が認識するLUと、ストレージコントローラ3側との間に複数のパスを設ける。これにより可用性を高めている。
 これに対して、NVMe制御では、マルチパス制御はデフォルト機能に含まれていないので、マルチパス制御をベンダ固有の機能として構築する必要がある(図5の210参照)。
 図4は、階層型容量仮想化ボリュームに対してI/O処理を行う場合の概念図である。
 論理ボリュームがフラッシュメモリ5から構成されている場合、サーバ計算機2は、フラッシュメモリ5へのアクセスであることを管理し、NS空間のNVMeコマンドを生成する。論理ボリュームがHDD6から構成されている場合、サーバ計算機2は、SCSIコマンドを生成する。
 次に論理ボリュームがフラッシュメモリ5とHDD6の混合から構成される階層型仮想ボリュームの場合について説明する。階層型容量仮想化ボリュームは、階層管理制御プログラム324によって管理及び制御されて良い。
 この場合、NVMeコマンドを生成するか、それともSCSIコマンドを生成するかを決定し、その決定したアクセス方式で処理を行うことが考えられる。
 しかし、SCSIドライバ側のパスを定義すると、階層型容量仮想化ボリュームのフラッシュメモリ5から構成される記憶領域に対して、SCSIドライバ側のパスを経由してアクセスすることになる。この際、SCSIドライバ側の制御に含まれるI/Oスケジューラ制御が実行される。しかし、フラッシュメモリ5には、HDDのようなシーク処理などが無いため、このI/Oスケジューラ制御は、無駄なオーバーヘッドとなってしまう。反対に、HDD6から構成される記憶領域に対して、NVMeドライバ側のパスを経由してアクセスすると、I/Oスケジューラ制御がバイパスされてしまい、アクセス効率が低下してしまう。
 そこで、サーバ計算機2に、異種パス切り替え制御223を設ける。異種パス切り替え制御223は以下の機能を有してよい。
(1)異種ドライバ間のマルチパス定義を可能にする。
 サーバ計算機2からストレージコントローラ3内の論理ボリュームへのパス定義において、NVMeドライバ側の第1のパス(「NVMeパス」という場合がある)とSCSIドライバ側の第2のパス(「SCSIパス」という場合がある)とによるマルチパスを定義する。OS227は、異なるドライバからのパスを通じて同一の論理ボリュームへアクセスできる。異種パス切り替え制御223は、異なるドライバからのマルチパスを定義する。すなわち、異種パス切り替え制御223は、SCSI制御側のパスとNVMe制御側のパスによるマルチパスを構築する。これはOS227より下位層に構築されるため、OS227は、異なるドライバからパスを通じてアクセスしても同じボリュームにアクセスしていると認識する。つまりOS227は影響を受けない。
(2)異種ドライバ間のマルチパスを定義すべきボリュームを認識する。
 サーバ計算機2がストレージコントローラ3から”異なる記憶媒体の混合するボリュームである”という旨の情報、すなわち階層型容量仮想化ボリュームであるという旨の情報を取得し、その階層型容量仮想化ボリュームに対して複数の異なる種類のドライバからのマルチパスを定義する。
(3)異種パス切り替え制御を実行する。
 定義したマルチパスのそれぞれをページ毎に割り当てる。アクセス要求されたページ毎に、異なるドライバの何れのパスを使用するかを決定し、その決定したパスを割り当てる。初回のアクセスに割り当てるパスは、デフォルトで設定されてよい。
 異種パス切り替え制御223は、ストレージコントローラ3から、論理ボリュームが階層型容量仮想化ボリュームである旨の情報と、記憶領域ごとの記憶媒体情報とを取得する。そして異種パス切り替え制御223は、記憶領域ごとに、記憶媒体情報と対応するパスが選択されているか否かを判定し、選択されていない場合は、対応するパスに切り替える。
 異種パス切り替え制御223は、Tier1(フラッシュメモリ5)に割り当てられたページに対してNVMeドライバ側のパスを選択し、Tier2(HDD6)に割り当てられたページに対してSCSIドライバ側のパスを選択する。
 異種パス切り替え制御223は、初回は何れかのTierに決めてアクセスし、ストレージコントローラ3から記憶媒体情報を受け取り、その記憶媒体情報に基づいて次回から適切なパスを選択してよい。
 ストレージコントローラ3においてデータ格納先が再配置された場合、異種パス切り替え制御223は、ストレージコントローラ3から再配置先の情報を取得し、パスの割り当てを変更してよい。Tierが変更された場合、異種パス切り替え制御223は、サーバ計算機2に対してその変更を、アクセス処理の実行後に通知してもよいし、変更された時点で通知してもよい。例えば、Tier1の記憶領域に格納されているデータをTier2の記憶領域に移動させた場合、又は、Tier2の記憶領域に格納されているデータをTier1の記憶領域に移動させた場合、ストレージコントローラ3は、その移動に係る情報を、サーバ計算機2へ通知してもよい。
 記憶媒体の特性に適したアクセス制御を行うことにより、アクセス負荷を低減することができる。これにより、CPU負荷が軽減されうる。
 SSDやフラッシュメモリ等のNVMeデバイスは、HDDのシークタイムのようなディレイが発生しない。階層型容量仮想化ボリュームの場合、NVMeデバイスとFCデバイスの両方から記憶領域が割り当てられる。ボリューム単位でSCSI又はNVMeのパスを定義し、NVMe制御を通じてHDDにアクセスすると、I/Oスケジュール制御が実行されない。I/Oスケジュール制御は、ディスク上の物理的な位置が近いデータに連続してアクセスすることにより、シーク動作を少なくし、アクセス時間を短縮する制御である。アクセス時間の短縮により、プロセッサの占有時間が低減されうる。これによりプロセッサのリソースを、アプリケーション処理など、他の処理に割り当てることができる。すなわちI/Oスケジュール制御は、システムの性能向上において重要な処理である。
 図5は、本実施例に係る処理の概要を示す模式図である。
 サーバ計算機2は、NVMeの仕様に合わせてベンダが独自に開発できる要素群210を有する。その要素群210には、NVM制御222と、異種パス切り替え制御223と、マルチパス制御225とが含まれてよい。NVMe制御222と異種パス切り替え制御223は前述のとおりである。マルチパス制御225は、従来のSCSI制御におけるマルチパス制御と同様の機能を有してもよい。
 1つの論理ボリュームに対してマルチパスが定義され、何れのパスからでもその論理ボリュームにアクセス可能とされてよい。図5の例では、階層型容量仮想化ボリューム384に対して、NVMe制御側を通るパスとSCSI制御側を通るパスとが定義されている。何れのパスを通っても同じ階層型容量仮想化ボリューム384にアクセスする。
 NVMe制御側を通るパス及びSCSI制御側を通るパスは、それぞれ、冗長化のために複数のパスで構成されてもよい。また、階層型容量仮想化ボリューム384にアクセスする場合は、決まったパスを使用すると設定してもよい。
 階層型容量仮想化ボリューム384のTier1383にアクセスする場合は、NVMe制御側を通るパスを使用する。冗長化のための複数のパスの何れを使用するかは、その使用時に適宜決定されてよい。このとき、SCSI制御側を通るパスは原則として使用しない。しかし、ユーザ、管理計算機7又はシステム等が指定した場合は使用してもよい。
 階層型容量仮想化ボリューム384のTier2383にアクセスする場合、SCSI制御側のパスを使用する。
 ストレージコントローラ3に接続された記憶媒体がフラッシュメモリ5のみであると認識した場合、サーバ計算機2は、全てNVMeコマンドでアクセスすると判定してもよい。
<NVMeのNSと記憶領域との関係>
 図6は、NVMeのNSと記憶領域との関係を示す模式図である。
 ストレージコントローラ3は、記憶領域に関し、パリティグループと、論理ボリュームと、プールと、仮想ボリュームと、論理ユニットとを管理する。
 パリティグループは、複数の記憶デバイス(フラッシュメモリ5やHDD6)を用いて定義されてよい。これにより、RAID(Redundant Arrays of Inexpensive Disks)による高信頼化、高速化、大容量化等を達成できる。
 論理ボリュームは、パリティグループの記憶領域を分割した領域である。パリティグループの記憶領域の容量は、そのままサーバ計算機に提供するには大きすぎる場合がある。その場合、パリティグループの記憶領域を複数の論理ボリュームに分けて使用する。
 プールは、複数の論理ボリュームによって構成され、シンプロビジョニング又はティアリングに用いられる。プールは、パリティグループ又は記憶デバイスによって構成されてもよい。
 仮想ボリュームは、シンプロビジョニング又はティアリングを適用した仮想的な記憶領域であって、その仮想的な記憶領域はプールによって構成される。以下、論理ボリュームと仮想ボリュームを区別せずに「ボリューム」と呼ぶことがある。また、ティアリングを適用したものを階層型容量仮想化ボリュームと呼ぶことがある。
 LUは、仮想ボリューム又は論理ボリュームのうち、サーバ計算機2からのアクセスが許可されている記憶領域である。LUには、SCSIのLUNが割り当てられる。
 ストレージコントローラ3は、必ずしもこれら全種類の記憶領域を提供しなくてもよい。NSは、これらの何れの種類の記憶領域に対して対応付けられてもよい。NSは、論理ユニット毎に対応付けられることが好ましい。なぜならストレージプログラム320がSANストレージシステムのストレージプログラム320と互換性を保ちやすくなり、記憶領域の定義もSANストレージシステムと互換性が高くなるからである。
 ストレージコントローラ3は、ボリュームに記憶領域を動的に割り当ててもよい。ストレージコントローラ3は、複数の物理記憶デバイス(フラッシュメモリ5およびHDD6)を同一のRAIDレベルで構成し、RAIDグループを形成してもよい。RAIDグループから仮想記憶デバイスが構成され、仮想記憶デバイスは、複数の論理記憶デバイスに分割されてもよい。
 ページは、所定の容量から構成される記憶領域の単位であり、ホストからのリード・ライトアクセスの単位である。ライトデータは、1以上のページに格納されてよい。又は、ライトアクセス時に1ページを割り当て、その1ページに複数のライトデータを格納し、その1ページに格納できなくなると、さらに新たな1ページを割り当ててもよい。
 仮想ボリュームの仮想ページは、プールなどのページとは異なり、実際の記憶領域を伴わない仮想的な記憶容量の単位である。ホストからのリード・ライトアクセスは、仮想ボリュームの仮想ページ単位で処理される。ホストから仮想ボリュームに対してライトアクセスがあったときに、仮想ボリュームの仮想ページにプールボリュームの実ページが割り当てられる。
 ストレージコントローラ3は、プールと仮想ボリュームとの間の対応関係を管理する。仮想ボリュームには、その仮想ボリュームと対応関係にあるプールからページが割り当てられる。サーバ計算機2は、記憶媒体がフラッシュメモリのみと認識した場合、全てNVMeコマンドでアクセスしてもよい。
 次に、異種パス切り替え制御223を実行するために必要な管理情報について説明する。
 図7は、パス管理テーブルの構成例である。バス管理テーブル400は、サーバ計算機2のメインメモリ22に格納されてよい。
 パス管理テーブル400は、論理ボリューム番号410毎に、ボリュームの種類420と、SCSIパス番号430、431とを管理する。
 ボリュームの種類420は、ストレージコントローラ3における論理ボリュームを構成する物理的な記憶領域が、何れの種類の記憶媒体から構成されているかを示す情報である。このストレージコントローラ3における論理ボリューム番号は、サーバ計算機2で管理されている論理ボリューム番号と対応関係を有してよい。
 例えば、ストレージコントローラ3に管理されるHDD(FCディスク)から構成されるボリュームの種類420は、「FC」であってよい。容量仮想化ボリュームの場合も同様に、ボリュームの種類420は、論理ボリュームに記憶領域を割り当てるプールを構成する記憶媒体によって決定されてよい。図7のパス管理テーブル400によれば、論理ボリューム番号「1」の記憶媒体は「HDD(FCディスク)」、論理ボリューム番号「2」の記憶媒体はフラッシュメモリであることがわかる。
 論理ボリュームが階層型容量仮想化ボリュームの場合、論理ボリュームのページ毎に割り当てられる記憶媒体が異なってもよい。この場合、ボリュームの種類420は「混合」であってよい。
 SCSIパス番号430、431は、論理ボリュームが使用するパス番号と、制御種類とを示す。図7のパス管理テーブル400によれば、論理ボリューム番号「1」はFCディスクであるので、サーバ計算機2は、SCSI側ドライバを通じてSCSI制御を実行した後、SCSIパス番号「8」又は「10」のパスを通じてストレージコントローラ3にアクセスしてよい。
 SCSIパス番号430、431は、図7のパス管理テーブル400に示すように、複数設定されてよい。冗長化されたパスを管理するためである。パスの冗長化は、マルチパス制御で自動化されてもよい。ボリュームの種類420が「混合」、すなわち階層型容量仮想化ボリュームの場合、サーバ計算機2は、SCSIパスとNVMeパスとを割り当てる。パス管理テーブル400は、サブテーブル440を有し、ページ毎に何れの記憶媒体の記憶領域を割り当てたかを管理してよい。これにより、記憶媒体に適合するパスを選択することができる。
 図8は、ストレージコントローラ3で管理する情報である。
 LU管理テーブル500は、サーバ計算機2に提供する論理ボリュームの情報を管理する。LU管理テーブル500は、ストレージコントローラ3内のLUN毎にエントリを有する。LU管理テーブル500は、項目として、パス番号510と、ポート番号520と、LUN530と、NVMe/SCSI540と、論理ボリューム番号550とを有する。
 ポート番号520は、ストレージコントローラ3側のLUN530が対応付けられているサーバ計算機2側のポートの識別番号である。
 LUN530は、ストレージコントローラ3側のLUの識別番号であり、ポート番号520と対応付けられているストレージコントローラ3側のLUNである。
 論理ボリューム番号550は、LUN530のLUを構成するストレージコントローラ3側の論理ボリュームの番号である。論理ボリューム番号550の論理ボリュームは、通常のボリューム、容量仮想化ボリューム、階層型容量仮想化ボリュームなどであってよい。
 論理ボリューム管理テーブル600は、論理ボリューム毎に、何れの記憶媒体の記憶領域が割り当てられているかを管理するテーブルである。図8の場合、論理ボリューム番号610「1」のボリュームの種類620には「FC」が登録されているため、その論理ボリュームはHDD内の記憶領域が割り当てられている。通常のボリューム又は容量仮想化ボリュームの場合、1つの論理ボリュームには1種類の記憶媒体の記憶領域が割り当てられる。通常ボリュームにはボリューム単位で、容量仮想化ボリュームにはページ単位で記憶領域が割り当てられる。
 容量仮想化ボリュームのページには、その容量仮想化ボリュームに対応付けられたプールから、空いている記憶領域が選択されて割り当てられる。このプールは1種類の記憶媒体から構成されてよい。
 階層型容量仮想化ボリュームには、その階層型容量仮想化ボリュームに対応付けられたプールから、空いている記憶領域が選択されて割り当てられる。このプールは複数の種類の記憶媒体から構成されてよい。したがって、階層型容量仮想化ボリュームにおいて、ページ毎に割り当てられる記憶媒体は異なり得る。階層型容量仮想化ボリューム管理エントリ640では、これらの情報を管理する。階層型容量仮想化ボリューム管理エントリ640は、論理ボリューム管理テーブル600のボリュームの種類620が「混合(階層型容量仮想化ボリューム)」からリンクされてよい。
 階層型容量仮想化ボリューム管理エントリ640は、リンク元の論理ボリュームの全てのページのそれぞれに割り当てられた記憶領域へのアドレスを管理する。典型的には、ページ毎に、そのページに割り当てられている記憶領域に対応する記憶デバイス及びアドレスを管理する。図8において、論理ボリューム管理テーブル600は、論理ボリューム番号「3」の論理ボリュームが「混合(階層型容量仮想化ボリューム)」であることを示す。そして、そこからリンクされている階層型容量仮想化ボリューム管理エントリ640は、その論理ボリュームのページ番号「0」のページには、フラッシュメモリのアドレス「100」が割り当てられていることを示す。なお、階層型容量仮想化ボリューム管理エントリ640は更に階層化されてもよい。
 論理ボリューム番号550は、サーバ計算機2側とストレージコントローラ3側とで同じであってもよい。サーバ計算機2とストレージコントローラ3とは一体の装置であってもよいし、別々の装置であってもよい。別々の装置である場合は、サーバ計算機2側から送信されたリードコマンドに含まれるサーバ計算機2側の情報に基づき、ストレージコントローラ3側がLUNを特定して、ストレージコントローラ3側の論理ボリューム番号を特定してもよい。なお、本実施例では、サーバ計算機2側とストレージコントローラ3側とにおける同一の論理ボリューム番号は、対応関係を有するとして説明する。
 図7及び図8で述べたように、階層型容量仮想化ボリュームについては、ページ毎に割り当てられた記憶領域を構成する記憶媒体の情報を管理する。記憶媒体は、ストレージコントローラ3がページに記憶領域を割り当てた時に決定される。したがって、サーバ計算機2は、ストレージコントローラ3からアテンション情報を受け取り、ページの記憶媒体の情報を認識する。アテンション情報の詳細については後述する。
 図9は、最初のパス割り当ての処理例を示すフローチャートである。
 図6に示すように、記憶領域は、フラッシュメモリ5又はHDD6等の物理的な階層から論理的な階層に向かって順に定義される。その過程で、階層型容量仮想化ボリュームに使用されるプールも定義されてよい。論理ボリュームを定義した後、論理ボリュームにアクセスする際に使用するパスを決定し、論理ボリューム管理テーブル600に登録する。
 例えば、ストレージコントローラ3は、物理デバイスの一例であるフラッシュメモリ5及びHDD6から記憶領域を定義する。ストレージコントローラ3は、この記憶領域を区切り、その1つを論理ボリュームに対応付け、その対応関係を論理ボリューム管理テーブル600に登録する。記憶領域の定義についての詳細は後述する。
 そしてストレージコントローラ3は、論理ボリュームを定義した後、プールを定義する。例えば、管理者は、管理計算機7を通じて、プールID、プールに登録する論理ボリュームであるプールボリュームの番号及び数などを指定し、プールを生成する。
 次に、パスの設定について説明する。
 サーバ計算機2は、ストレージコントローラ3に対してディスカバリコマンドを送信する。ディスカバリコマンドは、ストレージコントローラ3が提供可能なLUの一覧を取得するためのコマンドである。例えば、管理者が管理計算機7を通じてボリュームの割り当てを指示すると、サーバ計算機2は、ストレージコントローラ3に対してディスカバリコマンドを送信する。
 ストレージコントローラ3は、そのディスカバリコマンドを受信すると、サーバ計算機2に対してLUの一覧を送信する。サーバ計算機2は、受信したLUの一覧を用いて、ボリュームを割り当てる。
 サーバ計算機2は、ボリュームを割り当てた後、LUNパスを設定することができる。LUNパスが設定されたボリュームは、サーバ計算機2からアクセス可能となる。すなわちサーバ計算機2は、そのボリュームに対するアクセス要求を送信可能となる。サーバ計算機2は、マルチパスを設定することにより、複数のパスから1つのLUを認識できる。
 ストレージコントローラ3は、パス番号500に対して、ポート番号520とLUN530を対応付け、LU管理テーブルに登録する(S4010)。
 ストレージコントローラ3は、サーバ計算機2に、パス管理情報とボリュームの属性情報とを送信する(S4012)。
 ボリュームの属性情報は、例えば、HDD、フラッシュメモリ、又は、階層型容量仮想化によるFC(HDD)とフラッシュメモリの混合の何れであるかを示す情報を含む。
 サーバ計算機2は、ストレージコントローラ3からパス情報及びボリューム属性情報を受信し、パス情報及びボリューム属性情報をパス管理テーブル400に登録する(S4014)。
 サーバ計算機2は、マルチパス制御230、231によって、ボリュームにマルチパスを割り当てる。例えば、サーバ計算機2は、ボリュームの属性を参照し、フラッシュメモリ5で構成されているボリュームに対しては、フラッシュメモリの属性を有するNVMeパスを割り当てる。サーバ計算機2は、FCで構成されているボリューム又は階層型容量仮想化ボリュームに対しては、SCSIの属性を有するSCSIパスを割り当てる(S4016)。本実施例においては、ストレージ側の記録媒体の属性情報を取得し、当該媒体の種別に応じてアクセスの利用するプロトコルの種別を判断し、当該プロトコルに対応したパスを設定することを特徴とする。これによって、媒体のアクセス特性に応じたプロトコルでのアクセスを可能とする。
 サーバ計算機2は、その割り当てたパスの情報を、パス管理テーブル400に登録する(S4018)。そしてサーバ計算機2は、その割り当てたパスの情報を、ストレージコントローラ3へ送信する(S4020)。
 ストレージコントローラ3は、受信したパスの情報を、論理ボリューム管理テーブル600に登録する(S4022)。
 なお、ストレージコントローラ3が、ボリュームに対して上記と同様にマルチパスを割り当ててもよい。この場合、ストレージコントローラ3は、割り当てたパスの情報をサーバ計算機2に送信し、サーバ計算機2は、受信したパスの情報をパス管理テーブル400に登録する。なお、管理計算機7がパス情報を管理し、管理計算機7が、ストレージコントローラ3及びサーバ計算機2にパス情報を送信してもよい。例えば、ストレージコントローラ3が、論理ボリュームに割り当てられる少なくとも第1の記憶媒体(例えばフラッシュメモリ)又は第2の記憶媒体(例えばHDD)の情報を取得し、その取得した情報に基づいて、論理ボリュームに、NVMeパス又はSCSIパスの少なくとも何れか一方を設定する。
 図10は、異種パス切り替え制御処理におけるサーバ計算機2側の処理の一例を示すフローチャートである。
 サーバ計算機2は、アクセス要求を生成する(S5010)。サーバ計算機2は、パス管理テーブル400を参照し、アクセス要求に対応するデータを有するLUが階層型容量仮想化ボリュームであるか否かを判定する(S5012)。
 階層型容量仮想化ボリュームであると判定した場合(S5012:YES)、サーバ計算機2は次の処理を行う。すなわちサーバ計算機2は、サブテーブル440を参照し、アクセス対象のアドレスに基づいてページ番号を算出し、その算出したページ番号にパスが割り当てられているか否かを判定する(S5014)。
 S5014においてページ番号にパスが割り当てられていないと判定された場合(S5014:NO)について、以下に説明する。
 サーバ計算機2は、論理ボリュームに割り当てられているパスの中の1つを選択して、その選択したパスをページに割り当てる。例えば、図7に示すパス管理テーブル400において、論理ボリューム番号「3」に対応するSCSIパス番号「9」及び「1」の内の何れか1つを選択する(S5016)。選択方法については後述する。サーバ計算機2は、その選択したパス番号をサブテーブル440に登録する(S5018)。サーバ計算機2は、その選択したパスがNVMe制御を介するパスであるか否かを判定する(S5020)。
 S5020において選択したパスがNVMe制御を介するパスであると判定された場合(S5020:YES)について、以下に説明する。
 サーバ計算機2は、ストレージコントローラ3に送信にされるアクセス要求に、アテンション要求を含める(S5022)。このアテンション要求は、このページに対するパスの選択が最初の未確定状態でなされたものであることを示す情報(例えば所定のビット値)を含んで良い。アテンション要求の詳細については後述する。そしてサーバ計算機2は、NVMe制御処理を実行する(S5024)。NVMe制御処理の詳細については後述する(S8220参照)。そしてサーバ計算機2は、アクセス要求をストレージコントローラ3が認識できるSCSIコマンドの形式へ変換し、ストレージコントローラ3へ送信する(S5050)。
 S5020において選択したパスがNVMe制御を介するパスでないと判定された場合(S5020:NO)について、以下に説明する。
 サーバ計算機2は、アクセス要求に、上記と同じアテンション要求を含める(S5022)。そしてサーバ計算機2は、SCSI制御処理を実行する(S5026)。SCSI制御処理の詳細については後述する(S8320参照)。そしてサーバ計算機2は、アクセス要求をストレージコントローラ3が認識できるSCSIコマンドの形式へ変換し、ストレージコントローラ3へ送信する(S5050)。
 S5014においてページ番号にパスが割り当てられていると判定された場合(S5014:YES)について、以下に説明する。
 サーバ計算機2は、サブテーブル440を参照し、前回のそのページ番号に対するパスがNVMe制御を介したパスであったか否かを判定する(S5030)。
 S5030において、NVMe制御を介したパスであったと判定した場合(S5030:YES)、サーバ計算機2は、NVMe制御処理を実行する(S5024)。そしてサーバ計算機2は、アクセス要求をストレージコントローラ3が認識できるSCSI形式に変換し、ストレージコントローラ3へ送信する(S5050)。
 S5030において、前回のそのページ番号に対するパスがSCSI制御を介したパスであったと判定した場合(S5030:NO)、サーバ計算機2は、SCSI制御処理を実行する(S5026)。そして、サーバ計算機2は、アクセス要求をストレージコントローラ3が認識できるSCSI形式に変換し、ストレージコントローラ3へ送信する(S5050)。
 アテンション情報は、記憶媒体の種類をサーバ計算機2へ伝えるためのものである。サーバ計算機2は、最初に論理ボリュームのページに対応付けるパスを選択するときは、ページに割り当てられている記憶領域の記憶媒体の種類を考慮せずに選択してよい。サーバ計算機2は、ストレージコントローラ3からアテンション情報を受信することにより、記憶媒体の種類を認識することができる。記憶媒体の種類は一度認識すればよいため、サーバ計算機2は、ページに最初に対応付けるパスを選択したタイミングで、ストレージコントローラ3にアテンション要求を送信し、ストレージコントローラ3からアテンション情報を送信してもらえばよい。なお、ストレージコントローラ3は、ページに割り当てた記憶領域の記憶媒体を変更した場合は、その変更後のアテンション情報を自発的にサーバ計算機2へ送信してよい。
 アテンション情報には、アクセス要求されたページを含むストレージコントローラ3側で管理されている記憶領域のアドレス情報及び記憶媒体情報が含まれて良い。記憶媒体情報はTierの情報であってもよい。
 S5016において、階層型容量仮想化ボリュームの場合、以下の何れかの方法でページに最初に対応付けるパスを選択してよい。
 (1)デフォルトのパスを選択する。例えば、最初は全てNVMe側制御を通るパスを選択する。
 (2)ランダムにパスを選択する。
 (3)モニタした情報に基づいてパスを選択する。
 図11は、異種パス切り替え制御処理におけるストレージコントローラ3側の処理の一例を示すフローチャートである。
 ストレージコントローラ3は、サーバ計算機2からアクセス要求を受信する(S5110)。ストレージコントローラ3は、受信したアクセス要求にアテンション要求が含まれているか否かを判定する(S5120)。
 S5120においてアテンション要求が含まれていない場合(S5120:NO)、ストレージコントローラ3は、アクセス要求に対応するアクセス処理(リード・ライト処理等)を実行する(S5130)。ストレージコントローラ3は、アクセス処理の完了後、サーバ計算機2に対して、リードデータ(リード処理の場合)及び実行結果を送信する(S5140)。
 S5120においてアテンション要求が含まれている場合(S5120:YES)、ストレージコントローラ3は、上記のS5130と同様、アクセス要求に対応するアクセス処理を実行する(S5150)。そして、ストレージコントローラ3は、アクセス処理の完了後、サーバ計算機2に対して、リードデータ(リード処理の場合)、実行報告、及び、アクセス対象のページに係るアテンション情報を送信する(S5160)。
 なお、ストレージコントローラ3側で、データの格納先の記憶媒体が変更されることがある。例えば、ストレージコントローラ3は、アクセス頻度などをモニタした結果に基づき、又は、ユーザからの指示等に基づき、フラッシュメモリ5に格納されていたデータをHDD6に(又はその逆に)マイグレーションする場合がある。ストレージコントローラ3は、このようなTier間のマイグレーションを実行した場合(S5180)、その変更内容を有するアテンション情報をサーバ計算機2へ送信する(S5200)。
 なお、ストレージコントローラ3は、アクセス要求のタイミングで、HDD6へのアクセスであるのにNVMeパスであるような、異なるパスから要求を受けたことを検知した場合、アクセス処理を実行し完了した後に、サーバ計算機2に対して、アテンション情報を通知してパスを変更させてもよい。また、ストレージコントローラ3が、異種パス切り替え制御を行ってもよい。例えば、ストレージコントローラ3は、フラッシュメモリ5の記憶領域にアクセスする場合にはNVMeパスを介して論理ボリュームにアクセスし、HDD6の記憶領域にアクセスする場合にはSCSIパスを介して論理ボリュームにアクセスしてよい。
 図12は、階層型容量仮想化ボリュームの記憶領域の管理単位(例えばページ)のサイズが、サーバ計算機2とストレージコントローラ3とで異なる場合について説明するための模式図である。
 典型的には、ストレージコントローラ3で管理する記憶領域の単位サイズ(ページサイズ)は、サーバ計算機2で管理する記憶領域の単位サイズ(ページサイズ)よりも大きい。サーバ計算機2は、ストレージコントローラ3からアテンション情報を受信した場合、ストレージコントローラ3が管理する1ページに対応する記憶媒体情報を取得し、その1ページとサーバ計算機2が管理する複数のページとを対応付ける。例えば図12にでは、ストレージコントローラ3が管理するページ「1」及び「2」は、それぞれ、サーバ計算機2が管理するページ「1」~「4」及び「5」~「8」に対応する。ここで、ストレージコントローラ3におけるページ「1」はフラッシュメモリ5から構成されており、ページ「2」はHDD6から構成されているとする。この場合、サーバ計算機2は、その旨を示すアテンション情報をストレージコントローラ3から受信すると、サーバ計算機2が管理するページ「1」~「4」の記憶媒体は「フラッシュメモリ」であり、ページ「5」~「8」の記憶媒体は「HDD」であること示す情報を登録する。
 図7のサブテーブル440には階層型容量仮想化ボリュームのページ毎の記憶媒体情報は図示されていないが、サブテーブル440にその記憶媒体情報に係るエントリを設けてもよい。図7のサブテーブル440では、パス情報を450_1、450_2、…として管理している。そこで、サーバ計算機2は、ストレージコントローラ3が管理するページ「1」がフラッシュメモリ5から構成されていることを受信した場合、そのボリュームに対応付けられた複数のパスの内、NVMe制御に対応付けられたMVNeバスをそのページ「1」に対応付けてよい。このように、サーバ計算機2は、1回のアテンション情報で、複数のページの各々に何れの種類のパスを対応付けるかを決定することができる。
 図13は、ストレージコントローラからアテンション情報が送信された場合のサーバ計算機2における異種パス切り替え制御の処理例を示すフローチャートである。
 アテンション通知は、ストレージコントローラ3からサーバ計算機2へ出力される信号であってよい。アテンション通知と共に送信されるアテンション情報には、サーバ計算機2からストレージコントローラ3に送信されたアクセス要求で指定されたページに関する情報を含む。その情報には、記憶媒体情報と、ページ開始アドレスと、ページ数情報とが含まれてよい。記憶媒体情報は、ページに割り当てられた記憶領域を構成する記憶媒体の種類を示す情報である。
 ページ開始アドレスは、サーバ計算機におけるページ番号に対応するストレージコントローラ3における開始アドレスを示す情報である。図12で説明したように、典型的には、サーバ計算機2の管理単位サイズの方が、ストレージコントローラ3における管理単位サイズよりも小さい。よって、サーバ計算機2の1つのページ番号に対応する記憶媒体の種類と、そのページ番号に対応するストレージコントローラ3におけるページを構成する記憶媒体の種類とは同じである。したがって、サーバ計算機2は、当該サーバ計算機2の管理するページ番号を用いて、ストレージコントローラ3の全てのページの記憶媒体の種類を取得することが可能である。
 サーバ計算機2は、アテンション情報をストレージコントローラ3から受信する(S5310)。アテンション情報を受信するパターンは、例えば以下の2つがあるが、何れにしてもアテンション情報の受信後の処理は同じである。
 (A1)サーバ計算機2がアテンション要求をストレージコントローラ3に送信し、その応答としてアテンション情報を受け取る場合。この場合、以下の処理は、図11の処理からの継続であってよい。
 (A2)ストレージコントローラ3がサーバ計算機2に対して自発的にアテンション情報を送信する場合。この場合、サーバ計算機2は、アテンション情報を検知する仕組みを有してよい。例えば、サーバ計算機2は、定期的にアテンション検知用のキューを確認し、そこにキューが登録されている場合、以下の処理を開始してもよい。
 サーバ計算機2は、アテンション情報を受信した場合、そのアテンション情報から、サーバ計算機2で管理する論理ボリューム番号及びページ番号を検索する(S5312)。サーバ計算機2は、アテンション情報に基づいて、その検索した各ページ番号に対応付けられているパス番号の情報を更新する。
 サーバ計算機2は、1つのページ番号について、アテンション情報の記憶媒体の種類はTier1(記憶媒体の種類を識別可能であれば何でも良い)であるか否かを判定する(S5314)。
 Tier1であると判定した場合(S5314:YES)、すなわち、フラッシュメモリ5と判定した場合、サーバ計算機2は、そのページ番号にNVMeパスを対応付ける(S5318)。そして、S5322へ進む。
 Tier1でないと判定した場合(S5314:NO)、すなわち、HDD6と判定した場合、サーバ計算機2は、そのページ番号にSCSIパスを対応付ける(S5324)。そして、S5322へ進む。
 S5322において、サーバ計算機は、まだ更新対象のページ番号が残っているか否かを判定し、残っている場合はS5314に戻り、残っていない場合は処理を終了する。
 図14は、本実施例に係るアクセス処理の一例を示すフローチャートである。
 NVMeコマンドは、サーバ計算機2内のI/Oコマンドを発行するプログラムから発行される。NVMeコマンドは、アプリケーションやOS内のドライバが発行してもよい。SCSIコマンドに関しても同様である。
 フラッシュメモリから構成された論理ボリューム710(図6)に対しては、NVMeコマンドが発行される。HDD6から構成された論理ボリューム720に対しては、SCSIコマンドが発行される。フラッシュメモリ5及びHDD6から構成される論理ボリューム、すなわち、階層型容量仮想化ボリュームに対しては、最初に発行するコマンドについては、SCSIコマンド又はNVMeコマンドの何れかが設定されてよい。この設定は、ユーザによって設定及び変更できてよい。本実施例では、最初に発行するコマンドに、NVMeコマンドが設定されているとして説明する。
 前述の通り、サーバ計算機2において、パスの対応関係を設定し、アクセス要求を受付可能な状態になった後、例えばOS227がI/Oコマンドを発行すると、図10の処理が実行される。図10のS5024のNVMe制御処理の詳細を図14のS8220に、図10のS5026のSCSI制御処理の詳細を図14のS8320~S8340に示す。図10のS5050の詳細を図14のS8420~S8460に示す。
 NVMe制御222は、NVMeコマンドに含まれる情報などを解釈する処理や必要なファイルのオープン処理など、様々な処理を行うが、ここではSCSI制御との差異部分のみを説明する。なお、SCSI制御224は、I/Oスケジューリング処理を行う。
 サーバ計算機2と、サーバ側PCIe I/Fデバイス4と、コントロールユニット36との間で行われるNVMeコマンドに関するNVMeコマンド処理を以下に示す。以下の処理は、NVMeコマンドがリード又は/及びライトの場合に適用されるが、他のNVMeコマンドに適用されてもよい。
 S8420~S8460の詳細な処理手順は、下記のSS1~SS7の通りであってよい。下記の処理は、ストレージコントローラ3に複数のコントロールユニット36が含まれ、各コントロールユニット36に複数のCPU31が含まれ、また、論理ユニットがNSに対応する場合である。
(SS1)サーバ計算機2は、前述のプログラムの処理によりNVMeコマンドを送信する。なお、NVMeコマンドがNSのIDを含むことにより、サーバ計算機2は、対象となるNSを指定できる。NVMeコマンドは、NSのID内のアクセス範囲と、サーバ計算機2のメモリ範囲とを含む。
(SS2)サーバ側PCIe I/Fデバイス4は、NVMeコマンドを受信する。
(SS3)サーバ側PCIe I/Fデバイス4は、受信したNVMeコマンドを解釈し、コマンドに含まれるNSIDを、対応するLUNに変換する。
(SS4)サーバ側PCIe I/Fデバイス4は、変換したLUNを含むSCSIコマンドを生成する。
(SS5)サーバ側PCIe I/Fデバイス4は、生成したSCSIコマンドの送信先となるコントロールユニット36及びCPU31を決定する。
(SS6)サーバ側PCIe I/Fデバイス4は、生成したSCSIコマンドを決定した送信先に送信する。
(SS7)送信先のコントロールユニット36のCPU31は、SCSIコマンドを受信し、受信したSCSIコマンドを処理する。
 なお、図示はしていないが、NVMeコマンドがライトコマンドの場合、サーバ側PCIe I/Fデバイス4は、サーバ計算機2のメインメモリ22に格納されたライトデータをストレージコントローラ3のメインメモリ32に転送してよい。NVMeコマンドがリードコマンドの場合、サーバ側PCIe I/Fデバイス4は、ストレージコントローラ3のメインメモリ32に格納されたリードデータを、サーバ計算機2のメインメモリ22に転送してよい。
 また、上記SS3におけるNSIDからLUNへの変換は、例えば、以下の(B1)又は(B2)の何れか又はこれらを併用して行われてよい。
 (B1)サーバ側PCIe I/Fデバイス4は、所定の変換式(ビット演算を含んでもよい)により、NSIDからLUNに変換する。なお、サーバ側PCIe I/Fデバイス4は、所定の変換式とペアを成す逆変換式により、LUNからNSIDにも変換できる。所定の変換式の一例としては、「NSID=LUN」がある。
 (B2)サーバ側PCIe I/Fデバイス4は、NSIDをLUNに変換するための変換テーブルをサーバ側PCIe I/Fデバイス4のメモリに格納しておき、その変換テーブルを用いてNSIDをLUNに変換する。
 なお、以上で説明した内容の幾つかについては、NVMeコマンド以外のSCSIコマンドに対しても適用できる場合がある。
 上述した実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。例えば、異種パス切り替え制御223に関する機能の一部をストレージコントローラ3側で行ってもよい。
 1…CPF 2…サーバ計算機 3…ストレージコントローラ 4…サーバ側PCIe I/Fデバイス 5…フラッシュメモリデバイス 6…HDD 7…管理計算機 8…ストレージ側PCIe I/Fデバイス 9…PCIeスイッチ 36…コントロールユニット
 

 

Claims (14)

  1.  サーバ計算機と、
     第1の記憶媒体を有する第1の記憶デバイスと、
     前記第1の記憶媒体とは異なる第2の記憶媒体を有する第2の記憶デバイスと、
     前記サーバ計算機にPCI-Expressを介して接続され、前記第1及び第2の記憶デバイスに接続されるストレージコントローラと
    を含み、
     前記ストレージコントローラは、
      論理ボリュームを提供し、
      前記論理ボリュームに割り当てられる、少なくとも前記第1又は第2の記憶媒体の情報を取得し、
      前記取得した情報に基づいて、前記論理ボリュームに、第1の規格に準拠するコマンドによりアクセスされる第1のパス、又は、第2の規格に準拠するコマンドによりアクセスされる第2のパスの少なくとも何れか一方を設定する
    計算機システム。
  2.  前記ストレージコントローラは、前記第1及び第2の記憶デバイスの記憶領域から提供される論理ボリュームを提供し、
     前記論理ボリュームには、前記第1の規格に準拠するコマンドによりアクセスされる第1のパスと前記第2の規格に準拠するコマンドによりアクセスされる第2のパスとが設定される
    請求項1記載の計算機システム。
  3.  前記第1の規格はNVM-Express規格であって、前記第2の規格はSCSI規格である
    請求項1記載の計算機システム。
  4.  前記第1の記憶媒体は、前記第2の記憶媒体より高いI/O性能を有し、
     前記ストレージコントローラは、前記第1のデバイスの記憶領域にアクセスする場合にはNVM-Express規格に準拠する前記第1のパスを介して前記論理ボリュームにアクセスし、前記第2のデバイスの記憶領域にアクセスする場合にはSCSI規格に準拠する前記第2のパスを介して前記論理ボリュームにアクセスする
    請求項2記載の計算機システム。
  5.  前記論理ボリュームは、シンプロビジョニングに係る仮想的なボリュームであって複数のページを有しており、各ページには、前記第1又は第2の記憶デバイスの記憶領域が割り当てられ、
     前記第1の記憶デバイスの記憶領域が割り当てられたページに対しては前記第1のパスが対応付けられ、前記第2の記憶デバイスの記憶領域が割り当てられたページに対しては前記第2のパスが対応付けられる
    請求項2記載の計算機システム。
  6.  前記ストレージコントローラは、前記第1及び第2の記憶デバイスの何れの記憶領域も割り当てられていないページである未割り当てページに対するアクセス要求を前記サーバ計算機から受領した場合、前記未割り当てページに割り当てられた記憶領域が前記第1又は第2の記憶デバイスの何れに属するかを特定するための情報を、前記サーバ計算機へ提供する
    請求項2記載の計算機システム。
  7.  前記ストレージコントローラは、前記ページに割り当てられた記憶領域に格納されているデータを、前記第1の記憶デバイスから前記第2の記憶デバイス、又は、前記第2の記憶デバイスから前記第1の記憶デバイスへ移動させた場合、その移動に係る情報を、前記サーバ計算機へ通知する
    請求項6記載の計算機システム。
  8.  第1の記憶媒体を有する第1の記憶デバイスと、前記第1の記憶媒体とは異なる第2の記憶媒体を有する第2の記憶デバイスとに基づく論理ボリュームを提供し、
     前記論理ボリュームに割り当てられる、少なくとも前記第1又は第2の記憶媒体の情報を取得し、
     前記取得した情報に基づいて、前記論理ボリュームに、PCI-Expressに関するパスであって、第1の規格に準拠するコマンドによりアクセスされる第1のパス、又は、第2の規格に準拠するコマンドによりアクセスされる第2のパスの少なくとも何れか一方を設定する
    記憶制御方法。
  9.  前記論理ボリュームは、前記第1及び第2の記憶デバイスの記憶領域から提供されており、
     前記論理ボリュームには、前記第1の規格に準拠するコマンドによりアクセスされる第1のパスと前記第2の規格に準拠するコマンドによりアクセスされる第2のパスとが設定される
    請求項8記載の記憶制御方法。
  10.  前記第1の規格はNVM-Express規格であって、前記第2の規格はSCSI規格である
    請求項8記載の記憶制御方法。
  11.  前記第1の記憶媒体は、前記第2の記憶媒体より高いI/O性能を有しており、
     前記第1のデバイスの記憶領域にアクセスする場合には、NVM-Express規格に準拠する前記第1のパスを介して前記論理ボリュームにアクセスし、前記第2のデバイスの記憶領域にアクセスする場合には、SCSI規格に準拠する前記第2のパスを介して前記論理ボリュームにアクセスする
    請求項9記載の記憶制御方法。
  12.  前記論理ボリュームは、シンプロビジョニングに係る仮想的なボリュームであって複数のページを有しており、各ページには、前記第1又は第2の記憶デバイスの記憶領域が割り当てられ、
     前記第1の記憶デバイスの記憶領域が割り当てられたページに対しては前記第1のパスが対応付けられ、前記第2の記憶デバイスの記憶領域が割り当てられたページに対しては前記第2のパスが対応付けられる
    請求項9記載の記憶制御方法。
  13.  前記第1及び第2の記憶デバイスの何れの記憶領域も割り当てられていないページである未割り当てページに対するアクセス要求を所定の計算機から受領した場合、前記未割り当てページに割り当てられた記憶領域が前記第1又は第2の記憶デバイスの何れに属するかを特定するための情報を、前記計算機へ提供する
    請求項2記載の記憶制御方法。
  14.  前記ページに割り当てられた記憶領域に格納されているデータを、前記第1の記憶デバイスから前記第2の記憶デバイス、又は、前記第2の記憶デバイスから前記第1の記憶デバイスへ移動させた場合、その移動に係る情報を、前記計算機へ通知する
    請求項13記載の記憶制御方法。
     

     
PCT/JP2015/056202 2015-03-03 2015-03-03 計算機システム、及び、記憶制御方法 Ceased WO2016139749A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/056202 WO2016139749A1 (ja) 2015-03-03 2015-03-03 計算機システム、及び、記憶制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/056202 WO2016139749A1 (ja) 2015-03-03 2015-03-03 計算機システム、及び、記憶制御方法

Publications (1)

Publication Number Publication Date
WO2016139749A1 true WO2016139749A1 (ja) 2016-09-09

Family

ID=56848831

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/056202 Ceased WO2016139749A1 (ja) 2015-03-03 2015-03-03 計算機システム、及び、記憶制御方法

Country Status (1)

Country Link
WO (1) WO2016139749A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018073950A1 (ja) * 2016-10-21 2018-04-26 株式会社日立製作所 計算機システム、及び、コマンド制御方法
JP2018156645A (ja) * 2017-03-16 2018-10-04 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージシステム及びその動作方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345658A (ja) * 2002-05-29 2003-12-05 Hitachi Ltd ストレージ集中管理方法
JP2006011932A (ja) * 2004-06-28 2006-01-12 Hitachi Ltd ストレージ装置及びストレージ装置の排他制御方法
JP2007226596A (ja) * 2006-02-24 2007-09-06 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
JP2012208916A (ja) * 2011-03-28 2012-10-25 Hitachi Ltd 仮想ボリュームに領域を割り当てるための方法及び装置
JP2014506688A (ja) * 2011-06-07 2014-03-17 株式会社日立製作所 フラッシュメモリを含むストレージシステム、及び記憶制御方法
JP2014514622A (ja) * 2011-09-13 2014-06-19 株式会社日立製作所 フラッシュメモリを含むストレージシステム、及び記憶制御方法
JP2014232543A (ja) * 2012-06-19 2014-12-11 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
JP2015036982A (ja) * 2013-08-16 2015-02-23 エルエスアイ コーポレーション ホストとコントローラとの間でパーティション化された変換レイヤ

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345658A (ja) * 2002-05-29 2003-12-05 Hitachi Ltd ストレージ集中管理方法
JP2006011932A (ja) * 2004-06-28 2006-01-12 Hitachi Ltd ストレージ装置及びストレージ装置の排他制御方法
JP2007226596A (ja) * 2006-02-24 2007-09-06 Hitachi Ltd 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
JP2012208916A (ja) * 2011-03-28 2012-10-25 Hitachi Ltd 仮想ボリュームに領域を割り当てるための方法及び装置
JP2014506688A (ja) * 2011-06-07 2014-03-17 株式会社日立製作所 フラッシュメモリを含むストレージシステム、及び記憶制御方法
JP2014514622A (ja) * 2011-09-13 2014-06-19 株式会社日立製作所 フラッシュメモリを含むストレージシステム、及び記憶制御方法
JP2014232543A (ja) * 2012-06-19 2014-12-11 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
JP2015036982A (ja) * 2013-08-16 2015-02-23 エルエスアイ コーポレーション ホストとコントローラとの間でパーティション化された変換レイヤ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018073950A1 (ja) * 2016-10-21 2018-04-26 株式会社日立製作所 計算機システム、及び、コマンド制御方法
JP2018156645A (ja) * 2017-03-16 2018-10-04 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージシステム及びその動作方法
CN108632338A (zh) * 2017-03-16 2018-10-09 三星电子株式会社 存储系统和用于提供自动存储发现的方法
CN108632338B (zh) * 2017-03-16 2022-05-24 三星电子株式会社 存储系统和用于提供自动存储发现的方法

Similar Documents

Publication Publication Date Title
JP6286542B2 (ja) 計算機システム
JP5502232B2 (ja) ストレージシステム、及びその制御方法
US8639899B2 (en) Storage apparatus and control method for redundant data management within tiers
JP6273353B2 (ja) 計算機システム
US8918615B2 (en) Information storage system including a plurality of storage systems that is managed using system and volume identification information and storage system management method for same
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
EP1837751B1 (en) Storage system, storage extent release method and storage apparatus
US8984221B2 (en) Method for assigning storage area and computer system using the same
JP4814119B2 (ja) 計算機システム、ストレージ管理サーバ、及びデータ移行方法
JP5512833B2 (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
US8527699B2 (en) Method and system for distributed RAID implementation
US8904121B2 (en) Computer system and storage management method
US9003087B2 (en) Compound storage system and storage control method
JP5996098B2 (ja) ストレージデバイスの高速アクセス及びデータ保護を実現する計算機、計算機システム、及びi/o要求処理方法
JP2007148812A (ja) ストレージシステム及びその負荷分散方法
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
WO2016139749A1 (ja) 計算機システム、及び、記憶制御方法
JP2018101440A (ja) 計算機システム
JP6019169B2 (ja) 情報記憶システム
JP6231700B2 (ja) サーバストレージシステムと管理システムを有する計算機システム
JP2009258825A (ja) ストレージシステム、仮想化装置、及び計算機システム

Legal Events

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

Ref document number: 15883917

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15883917

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP