首页 / 计算机系统

计算机系统无效专利 发明

技术领域

[0001] 本发明涉及包括非易失性存储器设备的计算机系统。

相关背景技术

[0002] 闪存设备(以下称为闪存)与HDD(Hard Disk Drive,硬盘驱动器)相比较具有高I/O(Input/Output,输入/输出)性能。但是,在要使其发挥该性能的情况下,以往的SCSI(Small Computer System Interface,小型计算机系统接口)因为由服务器执行OS(Operating System,操作系统)、设备驱动等程序处理的效率差,所以使其发挥闪存设备的I/O性能并非易事。非专利文献1所记载的NVM-Express(Non-Volatile Memory Express,非易失性存储器标准,以后简略为NVMe)是为解决这样的问题而作出以下规定的标准。
[0003] ·Indication of controller capabilities(控制器能力指示)
[0004] ·Status for controller failures(command status is processed via CQ directly)(控制器错误的状态(指令状态直接由CQ处理))
[0005] ·Admin Queue configuration(I/O Queue configuration processed via Admin commands)(管理队列配置)(I/O队列配置由管理指令处理)
[0006] ·Doorbell registers for scalable number of Submission and Completion Queues(用于可扩展数量的提交和完成队列的门铃寄存器)
[0007] NVMe具有以下的关键点。
[0008] ·Does not require uncacheable/MMIO register reads in the command submission or completion path.(不需要在指令提交或完成路径中的不可缓冲/MMIO寄存器读出)
[0009] ·A maximum of one MMIO register write is necessary in the command submission path.(在指令提交路径中需要最大值的一个MMIO寄存器写入)
[0010] ·Support for up to 65,535I/O queues,with each I/O queue supporting up to 64K outstanding commands.(支持多达65,535I/O队列,每个I/O队列支持多达64K未处理指令)
[0011] ·Priority associated with each I/O queue with well-defined arbitration mechanism.(与每个具有明确定义仲裁机制的I/O队列相关的优先级)[0012] ·All information to complete a 4KB read request is included in the 
64B command itself,ensuring efficient small I/O operation.(用于完成4KB读出请求的全部信息被包含于该64B指令本身中,从而确保高效的小型I/O操作)
[0013] ·Efficient and streamlined command set.(高效简洁的指令组)
[0014] ·Support for MSI/MSI-X and interrupt aggregation.(支持MSI/MSI-X和中断聚集)
[0015] ·Support for multiple namespaces.(支持多个命名空间)
[0016] ·Efficient support for I/O virtualization architectures like SR-IOV.(高效支持例如SR-IOV的I/O虚拟化构件)
[0017] ·Robust error reporting and management capabilities.(稳健的错误报告和管理能力)
[0018] ·Support for multi-path I/O and namespace sharing.(支持多路径I/O和命名空共享)
[0019] 另外,非专利文献1公开了多台主机共享命名空间(namespace以后简略为NS)的概念。
[0020] 非专利文献2公开了:通过使用对符合这样的NVMe的指令(以后简略为NVMe指令)进行解释的PCI-Express闪存SSD(Solid State Drive,固态硬盘),从而服务器的I/O性能提升。
[0021] 在先技术文献
[0022] 非专利文献
[0023] 非专利文献1:"NVM Express 1.1a Specification,"http://www.nvmexpress.org/wp-content/uploads/NVM-Express-1_1a.pdf
[0024] 非专利文献2:"NVM Express:Unlock Your Solid State Drives Potential,"http://www.nvmexpress.org/wp-content/uploads/2013-FMS-NVMe-Track.pdf

具体实施方式

[0043] 以下,一边参照附图一边对实施例进行说明。但是,本实施例不过是用于实现发明的一例而已,不限定发明的技术范围。另外,对于各图中共通的构成,标注同一附图标记。
[0044] 此外,以后的说明中用“表”这一表达来说明本实施例的信息,但是这些信息并非一定要用由表构成的数据结构来表述。也可以用例如“序列(list)”、“DB(数据库)”、“队列(queue)”等数据结构和其以外的数据结构来表述。因此,为了表明不依存于数据结构,对于“表”、“序列”、“DB”、“队列”等,也可以简单地称为“信息”。另外,在对各信息的内容进行说明时,可以使用“标识信息”、“标识符”、“名”、“名字”、“ID”这些表述,这些表述可以相互替换。
[0045] 以后的说明中,将“程序”作为主语进行说明,但是因为程序是一边使用存储器以及通信端口(通信控制装置)一边进行通过由CPU(Central Processing Unit,中央处理单元)执行而确定的处理,所以也可以设为以CPU为主语的说明。另外,将程序作为主语而公开的处理,也可以设为服务器计算机、存储控制器、管理计算机等计算机、信息处理装置进行的处理。程序的一部分或全部,既可以用专用硬件来实现,另外也可以使之模块化。也可以由程序发布服务器、存储介质将各种程序安装于各计算机。
[0046] <实施例的概要>
[0047] 图1示出实施例的概要。此外,以后的说明,也可以适应于今后要出现的NVMe的后续标准,同样也可以适用于PCI-Express(Peripheral Component InteRConnect Express,周边元件连接表达:以后省略为PCIe)的后续标准。在使用与NVMe、PCIe相关的用语的情况下,应该认为也指示其后续标准的等同用语。同样地,实施例以将当前的块访问作为目标的NVMe为对象进行说明,但是在假设以字节、字为单位的访问按NVMe标准规定的情况下,本实施例当然也可以适用于这些访问。同样地,实施例以使用闪存的非易失性存储器设备为对象进行说明,但是也适用于使用闪存以外的非易失性存储器、例如FeRAM(Ferroelectric Random Access Memory,铁电式随机存取存储器)、MRAM(Magnetoresistive Random Access Memory,磁性随机存取存储器)、相变化存储器(Ovonic Unified Memory)、RRAM(注册商标、Resistance RAM)的非易失性存储器设备。
[0048] 《关于NVMe》
[0049] 如非专利文献1以及2所述,NVMe是用于对闪存SSD实现高速访问的I/F(Interface,接口)标准。按照NVMe标准来开发程序(例如设备驱动程序及其他应用程序,还包括OS),因此能够对闪存SSD实现高IOPS(Input/Output per Second,每秒输入输出)、低延迟这样的高速访问。根据例如非专利文献2第18页公开了在采用SCSI/SAS(Serial Attached SCSI,串行连接SCSI)的SSD中为6.0μs的访问延迟,因为采用NVMe而能够削减至
2.8μs。该关键点如已经说明了的那样,但是也可以多I/O队列化且在多个内核不共享1个I/O队列,因此能够改善CPU内核间的存储器访问效率。
[0050] NVMe已标准化,期待众多的闪存设备可以与NVMe标准相对应。因此,对于设备驱动程序以外的程序(典型的是应用程序)的供应商而言,也可以期待该程序直接发布NVMe指令并高速访问闪存设备。
[0051] 此外,本实施例中的“闪存设备”是至少具有以下特征的设备,闪存SSD是其1例:
[0052] *包括闪存芯片。
[0053] *包括进行以下处理的闪存控制器:
[0054] #根据来自外部的读出请求,将闪存芯片所保存的数据向外部传送。并且,将与从外部接收到的写入请求一并接收的数据保存于闪存芯片。
[0055] #进行闪存芯片的擦除(erase)处理。
[0056] 《计算机系统》
[0057] 计算机系统至少包括1台以上的服务器计算机、1台以上的存储控制器、闪存设备(图中有时省略为“flash”(闪存))、通信机构(Communication Mechanism)。此外,有时将计算机系统内的这些包含部件分别称为计算机系统组件。
[0058] 此外,优选的是,本计算机系统是融合平台(Converged Platform)。此外,融合平台也被称为融合基础设施(Converged Infrastructure)、融合系统(Converged System),本文中有时将“融合”置换为“垂直统合”这一用语。此外,本实施例中,以后将它们统一称为融合平台(有时也省略为CPF)。CPF具有以下特征:
[0059] *是包括服务器计算机、存储系统(包括存储控制器和存储设备)、以及将它们连接的通信机构的产品。在企业的管理者个别地导入服务器计算机和存储系统的情况下,这样的服务器计算机和存储系统的连接确认所代表的工作验证是在管理者侧进行的。但是,在导入了CPF的情况下,贩卖产品的供应商事先进行了工作验证,所以不需要或可以削减设置并使用产品的顾客的管理者所进行的工作验证。
[0060] *此外,有时一部分CPF包含执行管理程序的管理子系统,所述管理程序是一揽子进行服务器计算机、存储系统以及通信机构的设定的程序。该管理子系统能够迅速提供管理者所希望的执行环境(虚拟机、DBMS:Database Management System,数据库管理系统、Web服务器等)。例如,为了提供必要资源量的虚拟机,管理程序请求分配服务器计算机以及存储系统各自所需的资源,向管理程序(Hypervisor)请求以使用分配的资源创建虚拟机。
[0061] 《服务器计算机》
[0062] 服务器计算机(1)以及(2)分别是储存并执行访问存储控制器的程序(1)以及(2)的单元。关于程序(1)以及(2),通过发布NVMe指令,从而对由存储控制器提供的共享数据区域进行访问。此外,对于提供共享数据区域作为NVMe的NS的部位,将在后面说明。
[0063] 服务器计算机至少包括CPU、主存储器(以后省略为存储器)和RC。服务器计算机例如也可以是以下计算机:
[0064] *文件服务器
[0065] *刀片式服务器系统
[0066] *PC(Personal Computer,个人计算机)服务器
[0067] *插入刀片式服务器系统中的刀片。
[0068] 《服务器计算机的程序》
[0069] 此外,程序(1)以及(2),可以考虑例如业务应用程序(例如Web服务器、DBMS、分析程序、中间件)、LPAR(Logical Partitioning,逻辑划分)、能够创建虚拟机的程序、OS、设备驱动程序,但是也可以是其它程序。
[0070] 《通信机构》
[0071] 通信机构用PCIe将服务器计算机与存储控制器连接。此外,服务器计算机与存储控制器之间的PCIe连接,不经由以往的服务器计算机与存储系统的连接所采用的使用FC(Fibre Channel,光纤通道)、以太网(注册商标)的SAN(Storage Area Network,存储区域网络)那样的网络。原因如下(任一或两方):
[0072] *这些广域SAN也能够构筑的协议中,变换处理的成本(overhead)高、妨碍对共享数据区域提供高性能I/O。
[0073] *以太网、SAN的设备(尤其是开关)价格昂贵。
[0074] 此外,NVMe以基于PCIe的通信机构为前提。因此,对来自服务器计算机的NVMe指令进行解释的部位必须是PCIe中的终结点(Endpoint)(以后省略为EP)。另外,在PCIe的芯片组不容许多个根复合体(Root Complex)(以后省略为RC)共享EP(以后称为“多个RC的共处”)的情况(例如不支持MR-IOV:Multi-Root I/O Virtualization(多根I/O虚拟化技术)的情况)下,也需要考虑该限制。
[0075] 本实施例中,鉴于以上情况,作为对NVMe指令进行解释的部位的选项,公开了3个选项。计算机系统包括3个选项中的一种。3个选项(1)、(2)、(3)(图中记载为NVMe I/F选项(1)、(2)、(3))如以下所述:
[0076] *选项(1):闪存设备。该情况下,存储控制器与闪存设备用PCIe连接,闪存设备成为具有符合NVMe的功能(Function)的EP。存储控制器使来自服务器计算机的NVMe指令直达(through)该闪存设备
[0077] *选项(2):存储控制器。该情况下,从服务器计算机到存储控制器用PCIe连接。此外,在存在与前述的多个RC的共处相关的限制的情况下,服务器计算机(1)的RC与存储控制器的RC的PCIe连接和服务器计算机(2)的RC与存储控制器的RC的PCIe连接是分离的。而且,存储控制器的RC对各个服务器计算机的RC提供个别的EP。
[0078] *选项(3):对从服务器计算机开始的PCIe连接与从存储控制器开始的PCIe连接进行中继的中继设备。英特尔(R)、AMD(R)等提供的CPU以及PCIe芯片组已商品化,所以价格低且性能高。在存储控制器采用这样的器件的情况下成为问题的是,在RC还存在于存储控制器且存在前述的多个RC的共处的限制的情况下,不能直接与服务器计算机连接。该中继设备包含:对各个服务器计算机的RC提供EP的逻辑;对存储控制器的RC提供其他EP的逻辑;和对服务器计算机与存储控制器之间的写入数据、读出数据的传送进行中继的逻辑,从而解决该问题。
[0079] 此外,PCIe原本用作服务器计算机、存储系统内的通信线路,所以,如果与FC、以太网相比较,则PCIe的可通信距离短,RC只能与数量少于用FC、以太网能够通信的通信节点数的EP进行通信。另外,与在FC、以太网上工作的通信协议相比较,PCIe的故障处理弱。因此,优选的是,采用PCIe作为通信机构的本计算机系统是CPF。原因在于:将计算机系统设为CPF,因而客户可以不用在服务器计算机与存储单元间铺设通信机构的电缆,所以由前述PCIe的弱点所致的故障不易发生,其结果,能够提供可靠性高的NVMe访问。
[0080] 《每个NVMe指令解释部位的优点》
[0081] 此外,前述的对NVMe指令进行解释的部位的选项(1)到(3)存在例如以下的优点。
[0082] *选项(1):存储控制器所执行的处理的成本消失、或者成本小。选项(1)易于实现考虑了闪存设备的内部状态的、有效的NVMe的队列控制。原因在于:对NVMe指令进行解释的部位与进行闪存设备的损耗均衡(wear levelling)、再生(reclamation))等的控制器相同或接近。例如,NVMe中存在多个I/O队列,但是选项(1)基于该内部状态变更从多个I/O队列取出NVMe指令的取出方法。
[0083] *选项(2):能够将存储控制器提供的前述的面向企业的功能适用于NVMe的NS。另外,选项(2)能够进行考虑了存储控制器的内部状态的有效的NVMe的队列控制。原因在于:对NVMe指令进行解释的部位与存储控制器相同或接近。例如,选项(2),除能够基于该内部状态变更从多个I/O队列取出的NVMe指令的取出方法外,还能根据I/O队列中NVMe指令的蓄积状态来变更存储控制器的其他处理的控制。
[0084] *选项(3):能够将存储控制器提供的面向企业的功能适用于NVMe的NS。另外,如果选项(3)的中继设备是将NVMe指令变换为SCSI请求的设备,则由存储控制器执行的存储程序是执行码、中间码、或源代码级(source code level),容易保持与以往的SAN存储子系统的存储程序的互换性。其结果,除能够实现计算机系统的存储程序的品质提升、功能提升外,前述的远程复制那样的计算机系统的存储控制器与SAN存储子系统之间的协同处理的安装也变得容易。原因在于,几乎都是与通常的SAN存储子系统彼此的协同相同的部分。
[0085] 《存储控制器》
[0086] 存储控制器使用闪存设备的存储区域提供高性能I/O处理。另外,存储控制器也可以具有与此前面向企业的SAN存储子系统提供的那样的可靠性、冗余性(redundancy)、高性能性、维护·管理容易性相关的功能。以下为其例子:
[0087] *存储控制器使闪存设备冗余化,从冗余化了的存储区域提供共享数据区域。另外,存储控制器能够不禁止对共享数据区域中所储存的数据的访问或不使访问失败地(所谓不停止地),进行闪存设备的替换、增设、拔除这样的设备维护。不同于HDD,闪存设备存在由于写入过度所致的设备寿命短期化这一特性。因此,存储控制器提供这样的冗余化、无停止维护,因而能够提升作为本计算机系统的可靠性。另外,在服务器计算机中插入有PCIe的闪存设备的情况下,闪存设备的维护必须对各台服务器计算机个别地进行。但是,若像本计算机系统那样在存储控制器连接有闪存设备从而将闪存设备的维护集中到存储器侧,则维护作业人员能够集中进行闪存设备的维护作业,维护变得容易。
[0088] *存储控制器对由NVMe储存的数据提供远程复制、快照(snapshot)这样的复制功能
[0089] *存储控制器,除闪存设备以外还连接于作为存储设备的HDD,从而能够进行使用这些存储设备的分层(tiering)。此外,存储控制器也可以使HDD提供的存储区域与NVMe的NS相对应。
[0090] *存储控制器提供不经由服务器计算机(1)、(2),而经由本计算机系统的外部的计算机系统(包括服务器计算机、存储系统)或者来自网络装置(包括SAN开关、以太网开关)的网络的访问。由此,能够进行前述的远程复制、或者还能够提供包含本计算机系统外部的计算机系统或网络装置的存储整合(storage consolidation)等,灵活性提升。
[0091] 《服务器计算机和存储控制器的配置》
[0092] 如前述那样,PCIe因为可通信距离短,所以配置于在物理上接近服务器计算机和存储控制器的位置即可。但是,以下更为优选:
[0093] *存储控制器具有可被插入刀片式服务器系统的机箱(chassis)的结构。此外,作为服务器计算机的刀片与存储控制器之间的PCIe连接中使用底板(backplane)等基板,因此能够削减与PCIe连接相伴的故障。
[0094] *在有别于刀片式服务器系统的机箱的机箱中放入存储控制器,将两个机箱用PCIe连接用的缆线连接。此外,也可以将刀片式服务器系统的机箱与存储控制器的机箱放入1个机柜(rack)所得的产品作为CPF来出售。这样在机柜中放入两个机箱和PCIe连接用缆线,因而能够削减与PCIe连接用缆线相伴的故障,另外容易将作为单体销售的刀片式服务器系统、存储系统的机箱本身或零件转用于CPF。
[0095] 《管理子系统》
[0096] 管理子系统是进行以下至少1个处理的子系统:
[0097] *接受来自管理者或统合管理子系统的请求,对计算机系统组件进行与请求相应的设定。
[0098] *从计算机系统组件获取信息,并对管理者显示或者对统合管理子系统发送。此外,获取的信息有例如性能信息、故障信息、设定信息、构成信息等。例如,构成信息包括只要不进行组件的拔插就固定于本计算机系统的项目和能够变更的项目,设定信息尤其是构成信息中能够通过设定来变更的项目。此外,有时将这些种类的信息归总称为组件信息。另外,对管理者显示或者对其他计算机发送的信息,既可以是获取到的组件信息的原状,也可以在以任何基准变更·加工后进行该信息的显示、发送。
[0099] *基于上述组件信息,自动·自律地进行对计算机系统组件的设定的、所谓自动·自律管理。
[0100] 管理子系统可以考虑例如以下的方式(包括这些方式混合存在的情况),但是如果是进行上述处理的方式则不限于这些方式。相关功能、计算机的集合是管理子系统。
[0101] *有别于计算机系统组件的其他计算机(1台以上)。在管理子系统是经由网络连接于计算机系统的多台计算机的情况下,例如,服务器计算机专用的计算机、存储控制器专用的计算机、显示处理专用的计算机这些计算机也可以存在于管理子系统中。
[0102] *计算机系统组件的一部分。例如BMC(Baseboard Management Controller,基板管理控制器)、代理程序是管理子系统。
[0103] 《统合管理子系统》
[0104] 统合管理子系统是对服务器、存储系统、网络装置(包括SAN开关、以太网开关)、还有本计算机系统等所代表的管理对象装置进行统合管理的子系统。统合管理子系统经由网络连接于管理子系统及其他管理对象装置。统合管理子系统为了对多个管理对象装置进行管理,有时按供应商专有的协议与管理对象装置进行通信,但是有时也按SNMP(Simple Network Management Protocol,简单网络管理协议)、SMI-S(Storage Management Initiative-Specification,存储管理接口标准)这样的标准化协议与管理对象装置进行通信。
[0105] 统合管理子系统包括经由网络连接于计算机系统的1台或多台计算机。
[0106] 此外,统合管理子系统的供应商有时不同于本计算机系统的供应商,该情况下,由于本计算机系统的通信机构为PCIe,因此统合管理子系统有时无法进行本计算机系统的管理,或者即使能够进行管理也只能进行比通常要差的管理。作为其原因的一例有如下情况:统合管理子系统作为服务器计算机与存储控制器的连接路径仅识别FC或以太网连接,不将PCIe连接识别为前述的连接路径。该情况下,统合管理子系统视为服务器计算机与存储控制器未连接,所以以有这样的连接信息为前提的管理项目不能适用于本计算机系统。
[0107] 为了应对这样的情况,本计算机系统的管理子系统也可以使SAN连接仿真于本计算机系统的PCIe连接从而将PCIe连接的信息变换成虚拟的SAN连接信息,并将该SAN连接信息发送给统合管理子系统,从而将该SAN连接作为统合管理子系统的管理对象。此外,作为SAN连接的仿真,例如有提供连接信息、或接受与SAN连接相关的设定(向存储端口的逻辑单元(Logical Unit)的分配)等。此外,仿真目的地的SAN既可以是FC-SAN,也可以是IP(Internet Protocol,互联网协议)-SAN、以太网-SAN。
[0108] 《本计算机系统的用途和本地闪存设备的并用》
[0109] 如以上说明那样,除为了在多台服务器计算机间实现基于NVMe的数据共享,而考虑导入本计算机系统外,还为了即使不数据共享也能将前述的存储控制器提供的面向企业的功能适用于按NVMe储存的数据,考虑导入本计算机系统。另外,在非本计算机系统的环境中,已经使用发布NVMe指令的程序构筑了业务系统的情况下,有时即使不对该程序安装供应商专用的面向闪存设备的接口,也能够在本计算机系统中构筑业务系统。
[0110] 此外,基于NVMe的数据共享有例如以下用途:
[0111] #多台服务器计算机间的高速故障转移(failover)。响应于服务器计算机(1)的故障等,服务器计算机(2)判定为进行承接服务器计算机(1)的处理的故障转移(failover)。在本地闪存设备(图中省略为“本地闪存”)经由PCIe连接而连接于多台服务器计算机的各台,而且服务器计算机的程序的NVMe指令发布目的地仅为本地闪存设备的情况下,多台服务器计算机需要在故障转移源与目的地的本地闪存设备间进行数据复制,高速故障转移很难。本计算机系统的情况下,不需要这样的数据复制。
[0112] #多台服务器计算机按NVMe对共享数据区域进行并行访问而进行并行处理的情况。某一服务器计算机写入数据,其他服务器计算机能够立刻读出该数据。
[0113] 但是,在服务器计算机的数量增加了的情况下,有时存储控制器的I/O处理能力也成为瓶颈。
[0114] 为了应对这样的情况,能够解释NVMe指令的闪存设备(称为本地闪存设备)也可以通过PCIe相对于各服务器计算机连接,该闪存设备由所连接的服务器计算机占有。在这样的结构的情况下,由服务器计算机执行的程序,只要将不需要数据共享以及不需要适用面向企业的功能的数据储存于本地闪存设备,将期望数据共享或期望适用面向企业的功能的数据储存于由存储控制器提供的存储区域即NVMe的NS即可。例如,在由于服务器计算机(1)的故障、负荷等,服务器计算机(1)的程序的处理由服务器计算机(2)承接的结构中,服务器计算机(1)通过将承接所需要的数据写入作为共享数据区域的NS并将其从NS读出从而执行处理,将承接不需要的数据写入本地闪存设备。
[0115] 此外,这样的设定也可以手动进行,但是也可以通过前述的管理子系统、统合管理子系统自动进行。例如,这些子系统也可以进行设定,以判断各NS可否为多台服务器计算机所共享(或面向企业的功能的适用),基于由服务器计算机执行的程序的特性来把握需要共享(或面向企业的功能的适用)的数据,并对于由服务器计算机执行的程序分开使用储存数据的存储区域。该程序的管理者不限于熟知本计算机系统的结构·特征的人,所以使得管理者承担的该程序的设定作业负荷减轻。此外,作为NS是否共享的判断方法,可以考虑以下方法,但是也可以是其他方法:
[0116] *管理子系统向计算机系统询问NSID与存储控制器的存储区域的关系。
[0117] *服务器计算机的程序根据通过指定NSID而进行信息收集从而得到的信息来判断是否是共通的NS。
[0118] <基本构成图>
[0119] 以下以计算机系统为CPF的情况为例对更详细的实施例进行说明。
[0120] 《NVMe控制下的CPF》
[0121] 图2是示出CPF的物理构成以及逻辑构成的图。
[0122] 本图中的CPF1包括服务器计算机2、存储控制器3、作为存储设备的闪存设备5、作为管理子系统的一例的管理计算机7。
[0123] 服务器计算机2包括用于与管理计算机7连接的管理I/F272。服务器计算机2作为程序的一例而执行应用程序228(有时简单省略为应用)、OS227、NVMe控制程序222、服务器管理I/F控制程序229。此外,管理计算机7与服务器计算机2以及存储控制器3的连接,可以考虑以太网,但是也可以是其他的物理·虚拟的连接方式。服务器管理I/F控制程序229通过控制管理I/F272从而进行与管理计算机7的通信。
[0124] NVMe控制程序222是向PCIe I/F262发布NVMe指令的程序。此外,程序222既可以是服务器计算机2中储存的其他程序的一部分,也可以是与服务器计算机2中储存的其他程序不同的程序。例如,有应用程序228发布NVMe指令的构成,还有OS227内的设备驱动器发布NVMe指令的构成。
[0125] PCIe I/F262,在按照NVMe控制程序222的工作将NVMe指令向PCIe I/F362发送后,从PCIe I/F362接收针对该NVMe指令的响应,将该响应返回到NVMe控制程序222。
[0126] 存储控制器3包括用于与管理计算机7连接的管理I/F382和用于与闪存设备5连接的闪存I/F372。此外,闪存I/F372与闪存设备5的连接,在闪存设备5对NVMe指令进行解释的情况下,优选为PCIe连接,在此外的情况下,既可以是SAS、SATA(Serial Advanced Technology Attachment,串行高级技术附件)、FC、以太网,也可以使用其他通信机构。
[0127] 存储控制器3执行存储程序320。此外,存储程序320例如包括:对与各接口的通信进行控制的PCIe I/F控制程序322;闪存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的通信。
[0128] 此外,PCIe I/F262和PCIe I/F362的实体,为例如图4所示的服务器侧PCIe I/F设备4、图9所示的存储器侧PCIe I/F设备8。
[0129] 《NVMe控制+SCSI控制下的CPF》
[0130] 图3是示出其他CPF的物理构成以及逻辑构成的图。
[0131] 图3与图2的差异是作为从服务器计算机2向存储控制器3的I/O请求而并用了NVMe和SCSI。
[0132] SCSI控制程序224,响应来自其他程序的请求,对于由存储控制器3提供的LUN向PCIe I/F262的SCSI功能(图中的SCSI Func.)地址发布SCSI请求。SCSI控制程序224是例如SCSI设备驱动器。此外,本程序既可以是服务器计算机2中储存的其他程序的一部分,也可以是与服务器计算机2中储存的其他程序不同的别的程序。例如,有时OS227内的设备驱动器发布SCSI请求。
[0133] PCIe I/F262在接受NVMe指令和SCSI指令这两者的情况下,必需具备NVMe功能(图中的NVMe Func.)和SCSI功能这两个功能。其中,关于NVMe功能已作为图2的PCIe I/F262的说明说明完毕。SCSI功能,在按照SCSI控制程序224的工作将SCSI指令向PCIe I/F362发送后,从PCIe I/F362接收针对该SCSI指令的响应,将该响应返回SCSI控制程序224。此外,是否将PCIe I/F362设为多功能,根据是否由中继设备对NVMe指令进行解释来确定。
[0134] 这样,通过使某一服务器计算机2能够发布NVMe指令和SCSI请求这两者,从而具有以下的至少1个优点。
[0135] *使得服务器计算机2中NVMe非对应的程序能够访问与NVMe的NS相对应的存储区域。
[0136] *使得服务器计算机2中NVMe非对应的程序能够访问有别于与NVMe的NS相对应的存储区域的存储区域。例如在HDD连接于存储控制器3的情况下,服务器计算机2相对于该HDD的存储区域能够按SCSI进行访问。
[0137] *在本申请提出时NVMe的I/F未标准化为可以将NS作为服务器计算机2的启动设备使用。因此,在将存储控制器3提供的存储区域设为服务器计算机2的启动设备的情况下,服务器计算机2需要根据SCSI请求才能访问该存储区域。此外,服务器计算机2的启动,需要服务器计算机2的BIOS(Basic Input/Output System,基础输入输出系统)程序被安装为能够对具备启动设备的EP进行处理。这里的EP是例如SCSI HBA(Host Bus Adapter,主机总线适配器)、PCIe I/F设备(NVMe功能或SCSI功能)。其具体的安装方法为以下这样:
[0138] #BIOS程序从发现的EP中获取BIOS程序用的设备驱动程序,并执行该设备驱动程序。
[0139] #BIOS程序自身包含NVMe用的驱动程序。
[0140] 此外,服务器计算机2有以下3种类型。
[0141] (A)发布NVMe指令,不发布SCSI请求。
[0142] (B)发布NVMe指令和SCSI请求。
[0143] (C)不发布NVMe指令而发布SCSI请求。
[0144] 这里,CPF1所含的服务器计算机2有的是1台有的是多台。多台的情况下,CPF1所含的服务器计算机2,有的仅是上述(A)到(C)中的任一种,有的是(A)到(C)中的任意两种的组合、或者(A)到(C)中的三种的组合。
[0145] <使用选项(3)的CPF的硬件整体构成>
[0146] 图4是前述的NVMe解释部位是选项(3)的情况下将CPF1详细化了的图。此外,服务器计算机2与存储控制器3之间的PCIe连接经由开关进行,但是在图中省略了。
[0147] 服务器计算机2包括CPU21、主存储器22(图中省略为存储器,在以后的说明中有时也称为存储器22)、RC24和服务器侧PCIe I/F设备4。RC24与服务器侧PCIe I/F设备4通过PCIe连接。RC24与CPU21通过比PCIe高速的网络而连接。存储器22经由未图示的存储器控制器,与CPU21以及RC24通过高速的网络而连接。此前说明了的由服务器计算机2执行的各程序,下载到存储器22并由CPU21执行。CPU21也可以是CPU内核。RC24、CPU21与存储器控制器,也可以用1个LSI封装集中起来。
[0148] 服务器侧PCIe I/F设备4是前述的中继设备的一例。服务器侧PCIe I/F设备4也可以配置于服务器计算机2的外部。服务器侧PCIe I/F设备4是具有以下特征的设备:
[0149] *通过由CPU21执行的程序而对发布的NVMe指令进行解释。
[0150] *对RC24提供EP41。
[0151] *对存储控制器3所含的RC33提供其他的EP42。此外,在存储控制器3包含多个RC,本设备4需要与之分别通信的情况下,本设备4对各RC提供其他的EP42。这里的服务器侧PCIe I/F设备4对存储控制器3内的二个RC33分别提供二个EP42。
[0152] 服务器侧PCIe I/F设备4为了实现这些特征,也可以包含:提供与多台服务器计算机2分别相对应的多个EP42的逻辑;提供EP41的逻辑;和对存储控制器3发布基于NVMe指令的SCSI指令的逻辑。此外,也可以说EP41与图2的PCIe I/F262相对应,EP42与PCIe I/F362相对应。进一步,作为服务器侧PCIe I/F设备4与图3的SCSI功能相当的逻辑,也可以包含向存储控制器3发布基于由CPU21发布的SCSI请求的SCSI请求的逻辑。这些逻辑的各个,既可以由专用电路等硬件来实现,也可以由执行软件的处理器来实现。
[0153] 此外,服务器侧PCIe I/F设备4具备NVMe功能和SCSI功能这两者,因此与在不同的端口分别安装这些功能的情况相比较,有例如以下的1个以上的优点:
[0154] *低成本化。
[0155] *服务器计算机2中供PCIe连接的设备插入的空间的削减。
[0156] *服务器计算机2内的使用PCIe槽数的削减。
[0157] 尤其是在用本选项(3)实现了上述多功能的情况下,能够将由服务器侧PCIe I/F设备4将SCSI请求向存储控制器3发送的逻辑在功能间共通化,所以能够实现设备的小型化或成本削减。
[0158] 此外,服务器计算机2也可以包含前述那样的本地闪存设备23(图中省略为闪存)。本地闪存设备23与RC24通过PCIe连接。
[0159] 此外,服务器计算机2所含的各构成物也可以是多个。此外,图中,记载为本地闪存设备23与服务器侧PCIe I/F设备4经由RC24进行通信,但是也可以不经由RC24而进行通信,另外不能进行通信也可以。
[0160] 存储控制器3包含1个以上(图中为2个)控制器单元36(图中省略为CTL单元)。各控制器单元36包括CPU31、主存储器32(图中省略为存储器,在以后的说明中有时也称为存储器32)、RC33和闪存I/F372。RC33、服务器侧PCIe I/F设备4与闪存I/F372通过PCIe连接。RC33与CPU31通过比PCIe高速的网络而连接。主存储器32经由未图示的存储器控制器,与CPU31和RC33通过高速的网络而连接。此前说明了的存储程序320等由存储控制器3执行的各程序,下载到存储器32中并由CPU31执行。CPU31也可以是CPU内核。RC33、CPU31和存储器控制器也可以用1个LSI封装集中。
[0161] 各控制器单元36也可以包含用于连接于HDD6的设备I/F34。此外,在闪存I/F372与设备I/F34是同一接口类型的情况下,也可以使这2个I/F共通化。此外,设备I/F34也可以考虑是SAS、SATA、FC、以太网,但是也可以使用其他的通信机构。
[0162] 此外,图中记载为闪存I/F372(或设备I/F34)与服务器侧PCIe I/F设备4经由RC33进行通信,但是也可以不经由RC33地进行通信。另外不能进行通信也可以。这一点对于闪存I/F372和设备I/F34也是同样的。
[0163] 此外,控制器单元36所含的各构成物也可以是多个。
[0164] 此外,优选的是,控制器单元36间能够进行通信,图中作为其一例记载为RC33之间用PCIe来连接。此外,RC33之间用PCIe来连接的情况下,经由未图示的NTB(Non-transparent Bridge,非透明桥)进行通信。此外,控制器单元36之间的通信也可以使用其他的机构。
[0165] <使用选项(3)的CPF的PCIe空间的范围>
[0166] 图5是以图4的服务器侧PCIe I/F设备4为中心进行放大地记载有作为PCIe地址的空间的PCIe空间的图。PCIe空间241是服务器计算机2内的RC24控制的空间,PCIe空间331是存储控制器3内的RC33控制的空间。此外,如前述的“多个RC的共处”问题所那样,多个RC不能在1个PCIe空间中共处。因此,服务器侧PCIe I/F设备4因为使各个PCIe空间分离开,所以能够将面向RC24的PCIe环与面向RC33的PCIe环相连接,在各个环中作为EP工作。
[0167] 此外,设备I/F34与闪存I/F372,也可以存在于不同于PCIe空间331的PCIe空间。
[0168] <NVMe的NS与存储控制器的存储区域的关系>
[0169] 图6是示出NVMe的NS与存储控制器3的存储区域的关系的图。存储控制器3管理以下的存储区域。
[0170] *奇偶校验组。它是用多个存储设备(闪存设备5、HDD6)定义的。由此,通过RAID(Redundant Arrays of Inexpensive Disks,磁盘阵列)实现高可靠化、高速化、大容量化。
[0171] *逻辑卷。它是将奇偶校验组的存储区域分割而得的区域。在奇偶校验组的存储区域被原样提供给服务器计算机时,有时容量过大,所以存在逻辑卷。
[0172] *池。它是包含自动精简配置(thin provisioning)、分层(tiering)中使用的存储区域的组。图中逻辑卷被分配给池,但是奇偶校验组、存储设备自身也可以直接被分配给池。
[0173] *虚拟卷。它是用池定义的、适用自动精简配置和/或分层的虚拟存储区域。此外,在以后的说明中作为指示逻辑卷和虚拟卷的用语,有时称为“卷”。
[0174] *逻辑单元(Logical Unit,以后有时称为LU)。它是虚拟卷和逻辑卷中、容许来自服务器计算机2的访问的存储区域。逻辑单元被分配SCSI的LUN(Logical Unit Number,逻辑单元号)。
[0175] 此外,存储控制器3也可以不提供上述全部种类的存储区域。
[0176] NS也可以相对于这些存储区域中的任意种类对应。但是,更为优选,NS与逻辑单元相对应。原因在于,存储程序320变得容易与SAN存储系统的存储程序320保持互换性,另外关于存储区域的定义与SAN存储系统的互换性也变高。
[0177] <存储程序>
[0178] 也包含以上说明了的项目,存储程序320进行以下处理(不必是全部):
[0179] *接收并解释处理SCSI请求。例如,如果该SCSI请求是读出请求,则存储程序320从闪存设备5、HDD6等存储器设备中读出数据,并向服务器计算机2传送。此外,此时,也可以将存储控制器3的主存储器32作为缓冲存储器使用。例如,如果该SCSI请求是写入请求,则在缓冲存储器中储存写入数据,之后向存储器设备写入写入数据。
[0180] *对奇偶校验组进行RAID处理。
[0181] *进行由存储控制器3提供的上述存储区域的定义。此外,定义的结果,作为存储区域定义信息储存于存储控制器3的主存储器32,在前述的请求处理时加以参照。
[0182] *进行其他的自动配置等面向企业的功能的处理。
[0183] <选项(3)中的请求变换处理>
[0184] 前述那样选项(3)中,服务器侧PCIe I/F设备4基于由服务器计算机2接收到的NVMe指令而生成SCSI指令,并向存储控制器3发送。
[0185] 图7是示出与在服务器计算机2、服务器侧PCIe I/F设备4与控制器单元36之间进行的NVMe指令相关的NVMe指令处理的流程图。此外,下记处理适用于NVMe指令为读出和/或写入的情况,但是也可以适用于其他NVMe指令。
[0186] 处理顺序如以下这样。此外,下记步骤设想了,存储控制器3包含多个控制器单元36、各控制器单元36包含多个CPU31、另外使逻辑单元与NS相对应的情况:
[0187] (S8110)服务器计算机2通过前述的程序的处理来发送NVMe指令。此外,NVMe指令包含NSID,因此能够指定成为对象的NS。NVMe指令还包含NSID内的访问范围和服务器计算机2的存储范围。
[0188] (S8112)服务器侧PCIe I/F设备4接收NVMe指令。
[0189] (S8114)服务器侧PCIe I/F设备4对接收到的NVMe指令进行解释,将指令所含的NSID变换为对应的LUN。
[0190] (S8116)服务器侧PCIe I/F设备4生成包含变换出的LUN的SCSI指令。
[0191] (S8118)服务器侧PCIe I/F设备4决定成为生成的SCSI指令的发送目的地的控制器单元36以及CPU31。
[0192] (S8120)服务器侧PCIe I/F设备4将生成的SCSI指令发送给决定了的发送目的地。
[0193] (S8122、S8124)发送目的地的控制器单元36的CPU31接收SCSI指令,并处理接收到的SCSI指令。
[0194] 此外,S8110与S8112的NVMe指令的发送以及接收是以下处理:
[0195] (A)由服务器计算机2执行期间的程序,在为服务器计算机2的存储器2准备的I/O队列中登记NVMe指令,
[0196] (B)由服务器计算机2执行期间的程序,增加服务器侧PCIe I/F设备4的EP41的NVMe寄存空间的I/O队列的队头指针,
[0197] (C)服务器侧PCIe I/F设备4检测到I/O队列的队头指针的增加,从服务器计算机2的存储器22的I/O队列获取NVMe指令。
[0198] 但是,在(C)中有时会获取多个NVMe指令,该情况下,服务器侧PCIe I/F设备4对于各个NVMe指令进行S8114以后的步骤,但是作为其执行顺序,既可以按每个NVMe指令从S8114到S8124串行反复执行,也可以并行执行。
[0199] 此外,虽然没有图示,但是S8124的处理结果是如果NVMe指令是写入,则服务器侧PCIe I/F设备4将服务器计算机2的存储器22中储存的写入数据向存储控制器3的存储器32传送。如果NVMe指令是读出,则服务器侧PCIe I/F设备4将存储控制器3的存储器32中储存的读出数据向服务器计算机2的存储器22传送。
[0200] 另外,S8114中从NSID向LUN的变换,可以考虑例如通过以下的任一方式或多种方式并用来进行:
[0201] *服务器侧PCIe I/F设备4按预定的变换式(也可以包含位运算)从NSID向LUN变换。此外,服务器侧PCIe I/F设备4,也可以通过与预定的变换式成对的逆变换式,从LUN向NSID变换。预定的变换式的样本例为NSID=LUN。
[0202] *服务器侧PCIe I/F设备4将用于从NSID得到LUN的变换表储存于服务器侧PCIe I/F设备4的存储器,在变换时加以参照。
[0203] 此外,如用图3说明的那样,S8112中服务器侧PCIe I/F设备4也可以接收从服务器计算机2发布的SCSI指令。该情况下,接下来的S8114、S8116省略,因此,服务器侧PCIe I/F设备4判定接收到的指令是NVMe指令还是SCSI指令。
[0204] 此外,S8118中发送目的地的决定方法,可以考虑按以下基准来决定,但是也可以按其他基准来决定:
[0205] *控制器单元36或CPU31有无故障。例如,服务器侧PCIe I/F设备4存储作为发送结果所得的控制器单元36的状态,并基于存储的状态向未发生故障的控制器单元36发送。
[0206] *控制器单元36或CPU31的故障的负荷。作为实施方式,(A)存储控制器3或管理计算机7获取控制器单元36或CPU31的负荷,决定成为因各NS地址的请求而生成的SCSI指令的发送目的地的控制器单元36或CPU31并向各服务器侧PCIe I/F设备4发送,(B)接收了决定结果的服务器侧PCIe I/F设备4基于决定结发送SCSI指令。
[0207] 《发送包含SCSI指令的FCP指令的情况》
[0208] 此外,服务器侧PCIe I/F设备4,也可以在S8116中除生成SCSI指令外还生成包含生成的SCSI指令的FCP(Fibre Channel Protocol,光纤通道协议)指令,在S8118中将其作为FCP指令方。其有以下优点:
[0209] *能够通过存储程序320来进行使用WWN(World Wide Name)或根据WWN而生成的Port ID、IP地址这样的SAN上的通信标识符的控制(访问控制、优先级控制等)。
[0210] *能够维持与SAN存储子系统的互换性。这有存储程序方面和操作方面这两方面的意义。
[0211] *统合管理子系统能够获取服务器计算机2与存储控制器3间的连接。
[0212] 发送FCP指令的情况下,服务器侧PCIe I/F设备4具备以下部分:
[0213] *与EP41相对应的虚拟服务器端口(被分配虚拟WWN)。
[0214] *与EP42相对应的虚拟存储端口(被分配虚拟WWN)。虚拟存储端口,与通常的SAN端口同样地被存储程序320识别并处理。
[0215] 管理子系统对上述虚拟存储端口进行逻辑单元的定义,因此能够指定将哪个卷设为NVMe的NS。以下是管理子系统的处理流程:
[0216] (S01)管理子系统接受指定存储端口和卷的逻辑单元定义请求。
[0217] (S02)在所指定的存储端口不是虚拟存储端口的情况下,管理子系统,将对按与SAN存储子系统同样的处理所指定的存储端口定义与所指定的卷相对应的逻辑单元的指示,发送给存储控制器3。
[0218] (S03)在所指定的存储端口是虚拟存储端口的情况下,管理子系统将对所指定的虚拟存储端口定义与所指定的卷相对应的逻辑单元的指示,发送给存储控制器3。
[0219] 此外,接受了S03的指示的存储控制器3进行以下处理:
[0220] (S03-1)存储控制器3选择与所指定的虚拟存储端口相对应的服务器侧PCIe I/F设备4。
[0221] (S03-2)存储控制器3定义与所指定的卷相对应的逻辑单元(即将LUN分配给所指定的卷)。
[0222] (S03-3)存储控制器3对所选择的服务器侧PCIe I/F设备4通知所分配的LUN。此外,服务器侧PCIe I/F设备4通过对所通知LUN分配NSID而NS化。此外,在该分配处理中,服务器侧PCIe I/F设备4生成NSID,在使用NSID和LUN的变换信息的情况下进行该信息的生成·登记。
[0223] 以上是管理子系统的处理流程的说明。由此,管理者能够通过指定虚拟存储端口来指定对哪个服务器计算机2提供卷作为NVMe。这是因为,是在每个服务器侧PCIe I/F设备4具有虚拟存储端口,该设备4不为多台服务器计算机2所共享的方式之故。另外,在存储控制器3具有以逻辑单元为对象的性能监视功能的情况下,因为对该逻辑单元施加负荷的服务器计算机2确定为1台所以能够迅速地确定成为负荷原因的服务器计算机2。此外,在多台服务器计算机2将某一卷作为共享NS进行访问的情况下,分别对共享的服务器计算机2的虚拟存储端口进行上述逻辑单元定义。
[0224] 此外,以上的说明中特定化为FCP进行了说明,但是在取代FCP而以iSCSI(Internet Small Computer System Interface,因特网小型计算机系统接口)的PDU(Protocol Data Unit,协议数据单元)、以太网框架为对象的情况下,将上述说明的WWN替换成IP地址、MAC(Media Access Control,介质访问控制)地址即可,如果进行了一般化则将上述说明的WWN替换成通信标识符(意为包含WWN、IP地址、MAC地址)即可。
[0225] 此外,管理子系统也可以设定相对于NVMe的NS的卷保护针对SAN端口的逻辑单元定义的设定模式。在NS中仅储存暂时性数据的运用方式的情况下,针对SAN端口的逻辑单元成为无意图的数据更新的源头。另外,在NS与SAN的LUN这两者的路径中使OS识别到了卷的情况下,OS有可能将它们分别识别为不同的存储区域而执行导致数据不整合的更新处理。本保护模式还能够避免这样的数据不整合。
[0226] <CPF的起动方法>
[0227] 图8是示出CPF1的起动方法的流程图。
[0228] (S1531、S1532、S1533)存储控制器3如果检测到了电源接通(ON)则起动存储程序320并成为向逻辑单元的访问接待开始状态。
[0229] (S1534)存储控制器3向服务器侧PCIe I/F设备4发送逻辑单元信息(LUN等)。此外,这里存储控制器3既可以根据来自服务器侧PCIe I/F设备4的请求发送,也可以主动发送。
[0230] (S1521)服务器计算机2以及服务器侧PCIe I/F设备4检测到电源接通。
[0231] (S1542、S1543)服务器侧PCIe I/F设备4起动并接收从存储控制器3接收到的逻辑单元信息,从而识别逻辑单元。
[0232] (S1544)服务器侧PCIe I/F设备4生成与识别到的逻辑单元相对应的NS信息(NSID等),向由服务器计算机2执行的程序发送。此外,这里,服务器侧PCIe I/F设备4,可以考虑响应于来自服务器计算机2的程序的请求而发送,但是服务器侧PCIe I/F设备4也可以主动发送。此外,本步骤既可以作为设备4的起动的一环来进行,也可以在起动后进行。
[0233] (S1522)服务器计算机2起动OS227、应用228等程序,NS的识别所需要的程序等待NS信息(NSID等)的接收。
[0234] (S1523)服务器计算机2中NS的识别所需要的程序,从服务器侧PCIe I/F设备4接收NS信息。此外,本图所示那样,在进行了S1523的接收的时刻,存储控制器3以及服务器侧PCIe I/F设备4的起动完成。此外,本步骤既可以作为S1522的起动的一环进行,也可以在起动后进行。
[0235] 以上处理后,进行图7中说明了的NVMe指令的处理。此外,本图中,设为存储控制器3与服务器计算机2(以及服务器侧PCIe I/F设备4)的电源接通独立进行。但是,作为S1531到S1533的步骤的一环,存储控制器3也可以指示服务器计算机2(以及服务器侧PCIe I/F设备4)的电源接通。
[0236] <NVMe解释部位为选项(2)的情况>
[0237] 图9是在前述的NVMe解释部位为选项(2)的情况下将CPF1详细化了的图。图9与图4的差异点如下:
[0238] *服务器侧PCIe I/F设备4被替代为PCIe开关(SW)9。
[0239] *在存储控制器3新设有存储器侧PCIe I/F设备8。此外,本设备8与服务器侧PCIe I/F设备4相同,但是对服务器计算机2的各台提供EP51因而解决了前述的“多个RC的共处”问题,所以本设备8中连接于服务器计算机2的EP51的数量成为服务器计算机2的数量以上。进一步,本设备8对存储控制器3内的RC33提供EP52。
[0240] 此外,存储器侧PCIe I/F设备8的NVMe指令处理也可以按图7中说明了的流程来处理,但是也可以通过如图1中说明了的那样与存储程序320协同从而进行考虑了存储控制器3的内部状态的高效的NVMe的队列控制。例如NVMe指令处理降低从队列中获取与被分配了存在负荷集中、故障HDD的NS有关系的NVMe的优先级。另外,存储器侧PCIe I/F设备8既可以将NVMe指令变换成SCSI以外的指令形式,另外也可以将NVMe指令原样发送给存储程序320。
[0241] <CPF1的适用方式>
[0242] 将此前说明了的CPF的适用方式的例子示于图10。
[0243] 对于使由旧系统执行的应用向CPF转移的情况进行说明。旧系统包括服务器计算机(1)、服务器计算机(2)、二个本地闪存设备(图中省略为NVMe本地闪存)、存储控制器和存储器设备。二个本地闪存设备分别通过PCIe连接于服务器计算机(1)以及(2)。存储控制器通过FC连接于服务器计算机(1)以及(2)。服务器计算机(1)执行应用。存储控制器使用存储器设备而提供支持SCSI的逻辑单元(图中记载为SCSI逻辑单元)。
[0244] 旧系统中设为应用按以下设定被利用:
[0245] *应用将暂时生成的数据储存于支持NVMe的本地闪存设备的NS,将非暂时性数据储存于由存储控制器提供的逻辑单元。由此实现应用的高速处理。
[0246] *假设在服务器计算机(1)停止了的情况下,服务器计算机(2)再次开始应用的处理。只是,服务器计算机(2)不从服务器计算机(1)承接本地闪存设备中储存的数据,所以服务器计算机(2)经由FC从逻辑单元读入数据并再次开始处理。
[0247] 能够使这样的应用从旧系统转移到CPF。CPF包括服务器计算机(1)、服务器计算机(2)、存储控制器和闪存设备(图中省略为闪存)。CPF取代连接于各服务器计算机的本地闪存设备,而使用连接于存储控制器的闪存设备。存储控制器使用闪存设备以提供支持SCSI的逻辑单元和支持NVMe的命名空间(图中记载为NVMe命名空间)。服务器计算机(1)的应用,通过在作为共享数据区域的NS写入暂时数据并从NS读出暂时数据,从而执行处理。在由于服务器计算机(1)的故障等,服务器计算机(2)判定为服务器计算机(1)的应用处理由服务器计算机(2)承接的情况下,服务器计算机(2)从NS读出暂时数据接着执行处理。
[0248] 根据这样的构成,得到以下的优点:
[0249] *能够集约地维持闪存设备。
[0250] *通过对闪存设备使用存储控制器的面向企业的功能,能够提高可靠性、冗余性、高性能性、维护·管理容易性。
[0251] 进一步,如果变更应用设定,使得NS中储存的暂时数据在服务器计算机之间传递,则能够缩短由于故障等导致的从服务器计算机(1)向服务器计算机(2)的切换时间,应用的MTBF(Mean Time Between Failure)提升,此外服务器计算机之间的切换变得容易,所以维护·管理容易性提升。另外,能够将以往SCSI的逻辑单元中储存的非暂时性数据储存于NVMe的NS,所以应用处理性能进一步提升。
[0252] 计算机系统也可以包含中继设备作为接口设备。计算机系统既可以包含底板等基板作为通信机构,也可以包含刀片式服务器系统的机箱、存储控制器的机箱和PCIe连接用缆线等作为通信机构。计算机系统,也可以包含机箱、机柜等而作为收置多台服务器计算机、存储控制器以及通信机构的框体。服务器计算机也可以作为服务器侧RC而包含RC24等。服务器计算机也可以作为存储器侧RC而包含RC33等。接口设备也可以作为第一EP而提供EP41等,作为第二EP而提供不同于第一EP的EP41等。接口设备也可以作为第三EP而提供EP42等。服务器计算机也可以作为第一数据而适用暂时数据或承接所需要的数据等,也可以作为第二数据而使用承接所不需要的数据等。计算机系统也可以作为本地非易失性存储器设备而包含本地闪存设备等。
[0253] 在此结束说明。此外,有时以上说明了的要点中的几个对于NVMe指令以外的SCSI指令也可以适用。
[0254] 符号说明
[0255] 1…CPF 2…服务器计算机 3…存储控制器 4…服务器侧PCIe I/F设备 5…闪存设备 6…HDD 7…管理计算机 8…存储器侧PCIe I/F设备 9…PCIe开关 36…控制器单元。

当前第1页 第1页 第2页 第3页