The present invention relates to a computer system including a nonvolatile memory device.
Flash memory devices (hereinafter referred to as flashes) provide higher I/O (Input/Output) performance than HDDs (Hard Disk Drives). However, in connection with provision of the performance of the flash memory device, conventional SCSI (Small Computer System Interfaces) involves inefficient processing executed in a server by programs such as an OS (Operating System) and device drivers. Thus, providing the high I/O performance of the flash memory device is not easy. NVM-Express (Non-Volatile Memory Express; hereinafter abbreviated as NVMe) described in PTL1 is a standard that specifies the following in order to solve the above-described problem.
This specification defines a streamlined set of registers whose functionality includes:
Key points for NVMe are as follows.
Furthermore, NPL 1 discloses the concept that a namespace (hereinafter abbreviated as an NS) is shared by a plurality of hosts.
NPL 2 discloses that the I/O performance of the server is improved by using a PCI-Express flash memory SSD (Solid State Drive) that interprets commands conforming to NVMe as described above (hereinafter abbreviated as NVMe commands).
[NPL 1]
“NVM Express 1.1a Specification,” http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1—1a.pdf
[NPL 2]
“NVM Express: Unlock Your Solid State Drives Potential,” http://www.nvmexpress.org/wp-content/uploads/2013-FMS-NVMe-Track.pdf
The NVMe standard disclosed in NPL 1 discloses the concept of NS sharing, but fails to disclose an implementation as described below. Providing a computer system that implements high-performance I/O is not easy.
The register interface and command set are specified apart from any usage model for the NVM, but rather only specifies the communication interface to the NVM subsystem. Thus, this specification does not specify whether the non-volatile memory system is used as a solid state drive, a main memory, a cache memory, a backup memory, a redundant memory, etc. Specific usage models are outside the scope, optional, and not licensed.”
To solve the above-described problem, a computer system includes a first server computer, a second server computer, a nonvolatile memory device, and a storage controller connected to the first server computer and the second server computer via PCI-Express, and connected to the nonvolatile memory device. The storage controller provides a storage area in the nonvolatile memory device as a shared data area for the first server computer and the second server computer. A server computer, which is each of the first and second server computers, stores a program that issues an NVM-Express command that is a command conforming to an NVM-Express standard. The program instructs the server computer to access the shared data area via PCI-Express by instructing the server computer to issue the NVM-Express command that specifies a namespace associated with the shared data area.
[
[
[
[
[
[
[
[
[
[
An embodiment will be described below with reference to the drawings. However, the present embodiment is only an example of implementation of the invention and is not intended to limit the technical scope of the invention. Furthermore, components common to the drawings are denoted by the same reference numerals.
Information in the present embodiment will be described using an expression “table”. However, the information need not necessarily be expressed in a data structure based on a table. For example, the information may be expressed in a data structure such as a “list”, a “DB (Database)”, or a “queue” or using any other structure. Thus, to indicate independence of the data structure, the “table”, the “list”, the “DB”, the “queue”, and the like may be simply referred to as “information”. Furthermore, when the contents of each type of information are described, expressions “identity”, “identifier”, “name”, and “ID” may be used and are interchangeable.
The subject in the description below is a “program”. However, the subject in the description may be a CPU (Central Processing Unit) because the program is executed by the CPU to execute a defined process using a memory and a communication port (communication control apparatus). Furthermore, processes disclosed using a program as the subject may be processes executed by a computer such as a server computer, a storage computer, or a management computer, or an information processing apparatus. Some or all of the programs may be realized by dedicated hardware or modularized. The various programs may be installed in each computer via a program distribution server or storage media.
As described in NPL 1 and NPL 2, NVMe is an I/F (Interface) standard for implementing high-speed accesses to a flash memory SSD. Developing programs (including, for example, device drivers, applications, and OSs) in accordance with the NVMe standard enables high-speed accesses to the flash memory SSD involving high IOPS (Input/Output per Second) and low latency. For example, NPL 2 discloses, in page 18, that an access latency of 6.0 μs measured in an SSD adopted for SCSI/SASs (Serial Attached SCSIs) can be reduced to 2.8 as by adopting NVMe. The key points for the reduction are as described above. NVMe uses multi I/O queues to avoid sharing of one I/O queue among a plurality of cores, allowing improvement of the efficiency of memory accesses among CPU cores.
NVMe is expected to be standardized so that a variety of flash memory devices conform to the NVMe standard. Thus, venders of programs other than device drivers (typically application programs) can expect the vender's programs to directly issue an NVMe command to access a flash memory device.
The “flash memory device” in the present embodiment has at least the following features . A flash memory SSD is an example of such a flash memory device:
The computer system at least includes one or more server computers, one or more storage controllers, a flash memory device (which may be abbreviated as “Flash” in the figures), and a communication mechanism. The contents of the computer system may each be referred to as a computer system component.
The present computer system is preferably a converged platform. The converged platform is also referred to as a converged infrastructure or a converged system. In Japanese, “converged” may be replaced with “vertical integration”. In the present embodiment, these will be collectively referred to as converged platforms (which may be abbreviated as CPFs). The CPF has the following features:
Server computers (1) and (2) are units storing and executing programs (1) and (2), respectively, which access the storage controller. The programs (1) and (2) issue an NVMe command to access a shared data area provided by the storage controller. Parts of the shared data area which are provided as NVMe NSs will be described.
The server computer at least includes a CPU, a main memory (hereinafter abbreviated as a memory), and an RC. The server computer may be, for example, as follows:
The programs (1) and (2) are, for example, business application programs (for example, Web servers, DBMSs, analysis programs, or middleware), programs that enable LPAR (Logical Partitioning) or a virtual machine to be created, OSs, or device drivers or may be other programs.
The communication mechanism connects the server computer and the storage controller based on PCIe. The PCIe connection between the server computer and the storage controller involves no network such as an FC (Fiber Channel) or an SAN (Storage Area Network) using Ethernet (registered trademark) which is adopted for a conventional connection between a server computer and a storage system. The reasons are as follows (one or both of the reasons):
NVMe assumes the communication mechanism based on PCIe. Thus, a section of the server computer that interprets NVMe commands needs to be an endpoint (hereinafter abbreviated as an EP) in accordance with PCIe. Furthermore, if a PCIe chip set does not permit a plurality of root complexes (hereinafter abbreviated as RCs) to share an EP (this is hereinafter referred to as “coexistence of a plurality of RCs”) (for example, if the PCIe chip set does not support MR-IOV: Multi-Root I/O Virtualization), this limitation needs to be taken into account.
Based on the above description, the present embodiment discloses three candidates for the section that interprets NVMe commands. The computer system may include one of the three candidates. The three candidates (1), (2), and (3) (represented as NVMe I/F candidates (1), (2), and (3) in the figures) are as follows:
Because PCIe has been widely used as a communication path inside the server computer and inside the storage controller, it achieves a shorter communication enabled distance than FC and Ethernet, and the number of EPs that can communicate with the RC is smaller than the number of communication nodes that can communicate using FC or Ethernet. Furthermore, PCIe achieves only weaker failure management than communication protocols operating on FC and Ethernet. Thus, the present computer system adopting PCIe as a communication mechanism is preferably a CPF. Treating the computer system as the CPF eliminates the need for cabling of the communication mechanism among the server computer and the storage unit so that it suppress trouble associated with the above-described disadvantages of PCIe, and allowing reliable NVMe accesses to be provided.
The candidates (1) to (3) for the section that interprets NVMe commands have, for example, the following advantages.
The storage controller uses a storage area in the flash memory device to provide high-performance I/O processing. Furthermore, the storage controller may have functions related to such reliability, redundancy, functionality, and maintainability and manageability as provided by enterprise SAN subsystems. Examples are as follows:
As described above, the communicable distance of PCIe is short, the server computer and the storage controller may be arranged at physically close positions. However, the following configuration is more preferable:
The management subsystem executes at least one of the following processes:
The management subsystem may be in one or mixture of the following forms. However, the management subsystem is not limited to these forms and may be in any form in which the management subsystem executes the above-described processes. A set of relevant functions and computers corresponds to the management subsystem.
The integrated management subsystem is a subsystem that integrally manages management target apparatuses typified by the server, the storage system, the network apparatus (including an SAN switch or an Ethernet switch), and the present computer system. The integrated management subsystem is connected to the management subsystem and the other management target apparatuses via the network. The integrated management subsystem may communicate with any of the management target apparatuses in accordance with a vender-proprietary protocol in order to manage the plurality of management target apparatuses or may communicate in accordance with a standardized protocol such as SNMP (Simple Network Management Protocol) or SMI-S (Storage Management Initiative-Specification).
The integrated management subsystem includes one or more computers connected to the computer system via the network.
A vendor providing the integrated management subsystem may be different from the vendor of the present computer system. Since the communication mechanism of the present computer system is a PCIe communication mechanism, in that case, the integrated management subsystem may fail to manage the present computer system, or even if the integrated management subsystem can manage the present computer system, the management may be inferior to the normal management. An example of the reason is that the integrated management subsystem may exclusively recognize an FC or Ethernet connection as the connection path between the server computer and the shared storage controller and fail to recognize a PCIe connection as the connection path. In this case, the integrated management subsystem does not consider the server computer and the shared storage controller to be connected together, but consider that each server computer treat the shared storage controller as the local flash memory device. Thus, management items assuming the presence of such connection information are not applicable to the present computer system.
For measures against such a case, the management subsystem of the present computer system may cause the PCIe connection of the present computer system to emulate an SAN connection. The management subsystem thus may converts information on the PCIe connection into information on the virtual SAN connection and transmits the information on the SAN connection to the integrated management subsystem. Then, the integrated management subsystem may consider the SAN connection to be a management target. The emulation of the SAN connection may be, for example, provision of connection information or acceptance of configuration for the SAN connection (allocation of logical units to storage ports). The SAN to be emulated may be an FC-SAN, an IP (Internet Protocol)-SAN, or an Ethernet-SAN.
As described above, the present computer system may be introduced in order to realize data sharing among a plurality of server computers based on NVMe. Or, the present computer system may be introduced in order to apply enterprise functions provided by the above-described storage controller to data stored based on NVMe, without the data sharing. Or, if a business system has already been constructed using a program that issues NVMe commands in an environment different from the present computer system, the present computer system may be able to construct the business system, without implementing an interface for a vender-proprietary flash memory device to the program.
The data sharing based on NVMe has, for example, the following uses:
However, when the number of server computers increases, the I/O processing capability of the storage controller maybe a bottleneck.
For measures against such a case, each of the server computers may be connected to a flash memory device that can interpret NVMe commands (which is referred to as a local flash memory device) based on PCIe, and such local flash memory device may be occupied by the connected server computer. In such a configuration, the program executed by the server computer, may store un-sharing data or data unneeded to apply enterprise functions, in the local flash memory devices, and the program may store data to be shared or data needed to apply enterprise functions, in the NVMe NSs being storage areas provided by the storage controller. For example, in a configuration in which the server computer (2) takes over processing executed by the programs in the server computer (1) as a result of, for example, a fault in or a load on the server computer (1), the server computer (1) executes processing, by writing data needed for the takeover to the NSs being the shared data area and reading the data from the NSs, and writes data unneeded for the takeover to the local flash memory device.
Such configuration may be manually performed but may be automatically carried out by the above-described management subsystem or the integrated management subsystem. For example, these subsystem may be configured to determine whether or not each of the NSs can be shared by a plurality of server computers (or enterprise functions can be applied to the NS), to determine data that need to be shared (or to which the enterprise functions need to be applied) based on a characteristic of programs executed by the server computers, and to configure the programs executed by the server computers for using properly the storage area to store data of the program. Because the administrator for the programs does not necessarily know the configuration and features of the present computer system well, administrator's workload of configuration of the programs is reduced. A method for determining whether or not the NS can be shared is as follows, but any other method may be used:
A further detailed embodiment will be described taking, as an example, a case where the computer system is a CPF.
CPF under NVMe Control
The CPF 1 in
The server computer 2 includes a management I/F 272 for connection to the management computer 7. The server computer 2 executes an application program 228 (which may be simply abbreviated as an application), an OS 227, an NVMe control program 222, and a server management I/F control program 229 that are examples of the programs. The connection between the management computer 7, the server computer 2 and the storage controller 3 is expected to be based on Ethernet but may be in any other physical or virtual connection form. The server management I/F control program 229 controls the management I/F 272 to communicate with the management computer 7.
The NVMe control program 222 is a program that issues NVMe commands to a PCIe I/F 262. The program 222 may be a part of other program stored in the server computer 2 or a program different from the other program stored in the server computer 2. For example, the application program 228 may issue NVMe commands or device drivers in the OS 227 may issue NVMe commands.
The PCIe I/F 262 transmits an NVMe command to a PCIe I/F 362 in accordance with operation of the NVMe control program 222, and then receives a response to the NVMe command from the PCIe I/F 362. The PCIe I/F 262 returns the response to the NVMe control program 222.
The storage controller 3 includes a management I/F 382 for connection to the management computer 7 and a flash I/F 372 for connection to the flash memory device 5. The connection between the flash I/F 372 and the flash memory device 5 is preferably a PCIe connection if the flash memory device 5 interprets NVMe commands. Otherwise, the connection may be based on SAS, SATA (Serial Advanced Technology Attachment), FC, or Ethernet or any other communication mechanism may be used.
The storage controller 3 executes a storage program 320. The storage program 320 includes, for example, a PCIe I/F control program 322, a flash I/F control program 323, and a management I/F control program 324 that control communications with the respective interfaces. The PCIe I/F control program 322 controls the PCIe I/F 362 to communicate with the server computer 2. The flash I/F control program 323 controls the flash I/F 372 to communicate with the flash memory device 5. The management I/F control program 324 controls the management I/F 382 to communicate with the management computer 7.
The substances of the PCIe I/F 262 and the PCIe I/F 362 are, for example, a server side PCIe I/F device 4 depicted in
CPF under NVMe Control +SCSI Control
A difference from
An SCSI control program 224 issues a SCSI request for a LUN provided by the storage controller 3 to a SCSI function (SCSI Func. in the figures) of the PCIe I/F 262 in accordance with a request from other program. The SCSI control program 224 is, for example, a SCSI device driver. The SCSI control program 224 may be apart of other program stored in the server computer 2 or a program different from the other program stored in the server computer 2. For example, a device driver in the OS 227 may issue SCSI requests.
To accept both an NVMe command and a SCSI command, the PCIe I/F 262 needs to have two functions, an NVMe function (NVMe Func. in the figures) and a SCSI function. Of the two functions, the NVMe function has been described in the description of the PCIe I/F 262 in
A server computer 2 being able to issue both NVMe commands and SCSI commands has at least one of the following advantages.
The server computers 2 are classified into the following three types:
Here, the CPF 1 may include one server computer 2 or a plurality of server computers 2. When the CPF 1 includes a plurality of server computers 2, the server computers 2 included in the CPF 1 may be of one of the types (A) to (C), a combination of any two of the types (A) to (C), or a combination of the three types (A) to (C).
The server computer 2 includes a CPU 21, a main memory 22 (abbreviated as Mem in the figures and hereinafter sometimes referred to as a 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 together based on PCIe. The RC 24 and the CPU 21 are connected together by a network that operates faster than a PCIe network. The memory 22 is connected by a high-speed network to the CPU 21 and the RC 24 via a memory controller not depicted in the drawings. The above-described programs executed by the server computer 2 are loaded into the memory 22 and executed by the CPU 21. The CPU 21 may be a CPU core. The RC 24 and the CPU 21 may be integrated together into one LSI package.
The server side PCIe I/F device 4 is an example of the above-described intermediate 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 has the following features:
To implement these features, the server side PCIe I/F device 4 may include a logic that provides a plurality of EPs 42 corresponding to the respective plurality of server computers 2, a logic that provides the EP 41, and a logic that issues a SCSI command based on an NVMe command to the storage controller 3. The EP 41 corresponds to the PCIe I/F 262 in
The case where the server side PCIe I/F device 4 has both the NVMe function and the SCSI function has, for example, one or more of the following advantages compared to a case where these functions are implemented on different boards:
The server computer 2 may include the local flash memory device 23 (abbreviated as Flash in the figures) as described above. The local flash memory device 23 is connected to the RC 24 based on PCIe.
For each of the types of components in the server computer 2, a plurality of components of that type may be included in the server computer 2.
The storage controller 3 includes one or more (two in
Each of the control units 36 may include a disk I/F 34 for connection to the HDD 6. If the flash I/F 372 and the disk I/F 34 are of the same interface type, the two I/Fs may merge into a common I/F. The disk I/F 34 may be based on SAS, SATA, FC, or Ethernet or any other communication mechanism may be used.
For each of the types of components in the control unit 36, a plurality of components of that type may be included in the control unit 36.
The control units 36 can desirably communicate with each other. By way of example,
The disk I/F 34 and the flash I/F 372 may be present in a PCIe space that is different from the PCIe space 331.
Relation Between the NVMe NSs and the Storage Areas in the Storage Controller
The storage controller 3 need not provide all of the above-described types of storage areas.
The NSs may each be associated with any of these types of storage areas. However, the NSs are more preferably associated with the logical unit. This is because this association allows the storage program 320 to easily remain compatible with the storage program 320 for the SAN storage system and makes the definition of the storage areas more compatible with the definition of the storage areas in the SAN storage system.
The storage program 320 executes the following processes including the above-described items (the storage program 320 need not execute all of the processes):
As described above, for the candidate (3), the server side PCIe I/F device 4 generates a SCSI command based on an NVMe command received from the server computer 2 and transmits the SCSI command to the storage controller 3.
A process procedure is as described below. The following steps assume that the storage controller 3 includes a plurality of control units 36 each including a plurality of CPUs 31 and that the logical unit is associated with the NS:
(S8110) The server computer 2 transmits the NVMe command as a result of the above-described processing executed by the program. The NVMe command contains an NSID to allow a target NS to be specified. The NVMe command also contains the range of access within the NSID and the range of memory for the server computer 2.
(S8112) The server side PCIe I/F device 4 receives the NVMe command.
(S8114) The server side PCIe I/F device 4 interprets the received NVMe command to convert the NSID contained in the command into a corresponding LUN.
(S8116) The server side PCIe I/F device 4 generates a SCSI command containing the resultant LUN.
(S8118) The server side PCIe I/F device 4 determines the control unit 36 and the CPU 31 corresponding to destinations to which the generated SCSI command is to be transmitted.
(S8120) The server side PCIe I/F device 4 transmits the generated SCSI command to the determined destinations.
(S8122 and S8124) The CPU 31 of the destined control unit 36 receives and processes the SCSI command.
The transmission and reception of the NVMe command in S8110 and S8112 correspond to the following process:
In (C), a plurality of NVMe commands may be fetched. In this case, the server side PCIe I/F device 4 executes steps succeeding S8114 on each of the NVMe commands. For the order of execution, S8114 to S8124 may be serially repeatedly or parallelly executed on the NVMe commands.
Although not depicted in the drawings, when the NVMe command is determined to be a write command as a result of the processing in S8124, the server side PCIe I/F device 4 transfers write data stored in the memory 22 of the server computer 2 to the memory 32 of the storage controller 3. When the NVMe command is a read command, the server side PCIe I/F device 4 transfers read data stored in the memory 32 of the storage controller 3 to the memory 22 of the server computer 2.
Furthermore, the conversion of the NSID into the LUN in S8114 may include one of or a combination of the following operations:
A method for determining the destinations in S8118 may be based on the following criteria but other criteria may be used:
The server side PCIe I/F device 4 may perform generation of an FCP (Fibre Channel Protocol) command including a SCSI command in addition to the generation of the SCSI command in S8116 and then transmit the FCP command in S8118. This has the following advantages:
When the FCP command is transmitted, the server side PCIe I/F device 4 has the following:
The management subsystem can specify which of the volumes is used as an NVMe NS by defining the logical unit for the virtual storage port. A process flow for the management subsystem is as follows:
Upon receiving the instruction in S03, the storage controller 3 executes the following processing:
The process flow for the management subsystem has been described. Thus, the administrator can specify to which of the server computers 2 a volume is provided as NVMe, by specifying a virtual storage port. The specification can be achieved because each of the server side PCIe I/F devices 4 has a virtual storage port and is not shared by a plurality of server computers 2. Furthermore, when the storage controller 3 has a performance monitoring function of the logical unit, one server computer 2 is identified which imposes a load on the logical unit. As a result, the server computer 2 that imposes a load can be quickly identified. When a plurality of server computers 2 accesses a certain volume serving as a shared NS, the above-described logical unit definition is performed on each of the virtual storage ports of the server computers 2 that share the volume.
The above description is specifically intended for the FCP. However, if the description is intended for PDUs (Protocol Data Units) of iSCSIs (Internet Small Computer System Interfaces) or Ethernet frames instead of the FCP, the WWN in the above description may be replaced with an IP address or a MAC (Media Access Control) address. For generalization, the WWN in the above description may be replaced with the communication identifier (which means to include a WWN, an IP address, and a MAC address).
The management subsystem may provide a configuration mode that guards the logical unit definition for a SAN port against volumes serving as NVMe NSs. This is because, in an operation form where only temporary data are stored in the NSs, the logical unit for the SAN port may cause an unintended data update. Or, when the OS recognizes a volume both through a NS path and through a LUN path of SAN, the OS recognizes the volume as different storage areas and may thus execute an update process that leads to a data mismatch. The present guard mode can avoid such a data mismatch.
(S1534) The storage controller 3 transmits logical unit information (an LUN and the like) to the server side PCIe I/F device 4. The storage controller 3 may perform the transmission in accordance with a request from the server side PCIe I/F device 4 or voluntarily.
(S1521) The server computer 2 and the server side PCIe I/F device 4 detect power-on.
(S1542 and S1543) The server side PCIe I/F device 4 is started to receive the logical unit information received from the storage controller 3, thus recognizing the logical unit.
(S1544) The server side PCIe I/F device 4 generates NS information (an NSID and the like) corresponding to the recognized logical unit and transmits the NS information to the programs executed by the server computer 2. In this case, the server side PCIe I/F device 4 is expected to perform the transmission in accordance with a request from the programs in the server computer 2 but may perform the transmission voluntarily. The present step may be executed as a part of the starting of the device 4 or after the starting.
(S1522) The server computer 2 boots the programs such as the OS 227 and the application 228. Programs that need to recognize the NSs wait to receive the NS information (NSIDs and the like). (S1523) In the server computer 2, the programs that need to recognize the NSs receive the NS information from the server side PCIe I/F device 4. As depicted in
After the above-described process, the processing of the NVMe command described with reference to
The storage side PCIe I/F device 8 may execute an NVMe command process in accordance with the flow described with reference to
A case will be described when an application executed by an old system is shifted to the CPF. The old system includes a server computer (1), a server computer (2), two local flash memory devices (abbreviated as NVMe Local Flash in
It is assumed that, in the old system, the application is utilized in accordance with the following configuration:
Such an application can be shifted from the old system to the CPF. The CPF includes a server computer (1), a server computer (2), a storage controller, and a flash memory device (abbreviated as Flash in
Such a configuration has the following advantages:
Moreover, if the configuration of the application is changed such that the temporary data stored in the NS are taken over from one of the server computers to the other, the amount of time can be reduced which is needed to switch from the server computer (1) to the server computer (2), as a result of a fault or the like. Thus, the MTBF (Mean Time Between Failure) of the application is improved, and the switching between the server computers is facilitated, So that the maintainability and the manageability are improved. Furthermore, the non-temporary data conventionally stored in the logical units of the SCSI be stored in the NVMe NS, thus further enhancing the application processing performance.
The computer system may include an intermediate device or the like as an interface device. The computer system may include, as a communication mechanism, a substrate such as a backplane or the like, or include, as a communication mechanism, a chassis of a blade server system, a chassis of a storage controller, a cable for PCIe connection, or the like. The computer system may include a chassis, a rack, or the like as a housing that houses a plurality of server computers, a storage controller, and a communication mechanism. The server computer may include the RC 24 or the like as a server side RC. The server computer may include the RC 33 or the like as a storage side RC. The interface device may provide the EP 41 or the like as a first EP and provide the EP 41 or the like as a second EP and which is different from the first EP. The interface device may provide the EP 42 or the like as a third EP. The server computer may use the temporary data, data needed for takeover, or the like as first data and use data not needed for takeover as second data. The computer system may include a local flash memory device or the like as a local nonvolatile memory device.
The embodiment has been described. Some of the above-described points may also be applied to the SCSI commands other than the NVMe commands.
As described above, we explained following points.
<Point 1> A computer system comprises a first server computer; a second server computer; a nonvolatile memory device; and a storage controller connected to the first server computer and the second server computer via PCI-Express, and connected to the nonvolatile memory device. The storage controller provides a storage area in the nonvolatile memory device as a shared data area for the first server computer and the second server computer. A server computer, which is each of the first and second server computers, stores a program that issues an NVM-Express command that is a command conforming to an NVM-Express standard. The program instructs the server computer to access the shared data area via PCI-Express by instructing the server computer to issue the NVM-Express command that specifies a namespace associated with the shared data area.
<Point 2> The computer system further comprises an interface device intermediating between the server computer and the storage controller, by being connected to the server computer via PCI-Express and to the storage controller via PCI-Express. The storage controller provides the shared data area by interpreting a SCSI request and accessing the nonvolatile memory device based on the SCSI request. The interface device includes: a logic that provides a first endpoint (EP) to a first server side RC that is a root complex (RC) included in the first server computer; a logic that provides a second EP to a second server side RC that is a RC included in the second server computer; a logic that provides a third EP to a storage side RC that is a RC included in the storage controller; and a logic that interprets an NVM-Express command issued by the server computer and issues a SCSI request based on the interpreted NVM-Express command, to the storage controller.
<Point 3> The storage controller allocates the storage area to a volume, associates the volume and a virtual storage port with a logical unit, and allocates the logical unit to the namespace.
<Point 4> The program instructs the server computer to issue a SCSI request, and the interface device further includes a logic that interprets the SCSI request issued by the server computer and issues a SCSI request based on the SCSI request issued by the server computer to the storage controller.
<Point 5> The computer system further comprises a management subsystem connected to the first server computer, the second server computer, and the storage controller. The management subsystem is connected to an integrated management subsystem that manages the computer system and a network apparatus using a storage area network (SAN), and the management subsystem: (1) converts information of a PCI-Express connection between the first server computer and the storage controller, and a PCI-Express connection between the second server computer and the storage controller, into information of a virtual SAN connection; and (2) transmits the information of the SAN connection to the integrated management subsystem.
<Point 6> The computer system is a converged platform.
<Claim 7> The first server computer executes a process using first data by writing the first data to the shared data area and reading the first data from the shared data area, and upon determining to switch the process from the first server computer to the second server computer, the second server computer executes the process using the first data by reading the first data from the shared data area.
<Point 8> The computer system further comprises a local nonvolatile memory device that is a nonvolatile memory device which is connected to the first server computer via PCI-Express and interprets an NVMe command. The local nonvolatile memory device interprets an NVM-Express command issued by the first server computer to access a storage area in the local nonvolatile memory device based on the NVM-Express command, and the first server computer writes second data different from the first data and used for the process, to the local nonvolatile memory device.
<Point 9> The storage controller provides the shared data area by receiving an NVM-Express command issued by the server computer, interpreting the NVM-Express command, and accessing the nonvolatile memory device based on the NVM-Express command.
<Point 10> The nonvolatile memory device receives, via the storage controller, an NVM-Express command issued by the first server computer, interprets the NVM-Express command, and accesses the storage area based on the NVM-Express command.
1 CPF
2 Server computer
3 Storage controller
4 Server side PCIe I/F device
5 Flash memory device
6 HDD
7 Management computer
8 Storage side PCIe I/F device
9 PCIe switch
36 Control unit
This application claims priority to PCT/JP2014/061125 filed on Apr. 21, 2014, the entire contents of which are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2014/061125 | Apr 2014 | US |
Child | 14657287 | US |