CN115480909A - 存储系统和数据处理方法 - Google Patents

存储系统和数据处理方法 Download PDF

Info

Publication number
CN115480909A
CN115480909A CN202210151166.8A CN202210151166A CN115480909A CN 115480909 A CN115480909 A CN 115480909A CN 202210151166 A CN202210151166 A CN 202210151166A CN 115480909 A CN115480909 A CN 115480909A
Authority
CN
China
Prior art keywords
storage
control software
data
cache
write
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.)
Pending
Application number
CN202210151166.8A
Other languages
English (en)
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
Publication of CN115480909A publication Critical patent/CN115480909A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

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)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供一种存储系统和数据处理方法,目的在于提高主机响应性能。在存储系统中,构成冗余化组的多个控制软件被分散配置于多个存储节点,其中,由构成所述冗余化组的多个所述控制软件中的活动状态的控制软件,接收来自上级装置的写入请求;由所述活动状态的控制软件,在配置有所述活动状态的控制软件的存储节点的缓存中,和配置有属于同一冗余化组的非活动状态的控制软件的存储节点的缓存中,写入所述写入请求所请求的数据使之双重化;由所述活动状态的控制软件,对所述上级装置进行写入完成的响应,并将写入到所述缓存的数据冗余化地保存在存储装置。

Description

存储系统和数据处理方法
技术领域
本发明涉及存储系统和数据处理方法。
背景技术
目前,人们已提出了通过软件来构建存储系统的技术(软件定义存储:SDS)。
例如,专利文献1有如下记载。“在具有多个存储节点的存储系统中,在所述存储节点设置有分别提供存储区域的一个或多个存储装置,和响应上级装置的请求在对应的所述存储装置中读写所请求的数据的一个或多个控制软件,各所述控制软件分别保持为了响应所述上级装置的请求而在对应的所述存储装置中读写所请求的数据所需的规定的结构信息,多个所述控制软件被作为冗余化组进行管理,属于同一所述冗余化组的各所述控制软件分别保持的所述结构信息被同步更新,将构成所述冗余化组的多个所述控制软件分别配置于不同的所述存储节点,以平衡各所述存储节点的负荷。”
现有技术文献
专利文献
专利文献1:日本特开2019-101703号公报
发明内容
发明要解决的技术问题
采用专利文献1记载的技术,能够构建一种即使在SDS中发生节点故障时也能够继续读写的存储系统。另一方面,由于需要通过将数据写入多个存储节点的驱动器来进行冗余化,因此,向主机回复写入成功的响应前所需的时间较长。本发明的目的是,提出一种在这样的系统中也能够缩短对主机的响应时间的存储系统等。
解决问题的技术手段
为解决上述问题,本发明提供一种存储系统,包括多个存储节点和分别提供存储区域的一个或多个存储装置,所述存储节点包括:一个或多个控制软件,其响应于来自上级装置的请求,在对应的所述存储装置中读写所请求的数据;和缓存,其保持所述读写所涉及的缓存数据,其中,多个所述控制软件构成冗余化组,属于同一所述冗余化组的各所述控制软件被分别配置于不同的所述存储节点,构成所述冗余化组的多个所述控制软件中的、处于能够处理来自所述上级装置的请求的活动状态的控制软件,在接收到写入请求的情况下,在配置有活动状态的控制软件的存储节点的缓存中,和配置有属于同一冗余化组的非活动状态的控制软件的存储节点的缓存中,写入所述写入请求所请求的数据使之双重化,对所述上级装置进行写入完成的响应,将写入到所述缓存的数据冗余化地保存在所述存储装置中。
此外,提供一种存储系统中的数据处理方法,在所述存储系统中,构成冗余化组的多个控制软件被分散配置于多个存储节点,所述数据处理方法包括:由构成所述冗余化组的多个所述控制软件中的活动状态的控制软件,接收来自上级装置的写入请求的步骤;由所述活动状态的控制软件,在配置有所述活动状态的控制软件的存储节点的缓存中,和配置有属于同一冗余化组的非活动状态的控制软件的存储节点的缓存中,写入所述写入请求所请求的数据使之双重化的步骤;和由所述活动状态的控制软件,对所述上级装置进行写入完成的响应,并将写入到所述缓存的数据冗余化地保存在存储装置中的步骤。
发明效果
采用本发明,能够提高主机响应性能。上述以外的技术问题、技术特征和技术效果将通过以下实施方式的说明而明确。
附图说明
图1是表示第一实施方式的存储系统的整体的系统结构图。
图2是表示存储节点的物理结构之一例的图。
图3是表示存储节点的逻辑结构之一例的图。
图4是表示数据保护控制部所管理的存储区域之一例的图。
图5是说明本发明的概要的图。
图6是非易失性存储器的结构图的一个例子。
图7是表示软件模块结构之一例的图。
图8是表示缓存目录之一例的图。
图9是存储控制部管理表的一个例子。
图10是表示读取处理的流程图。
图11是表示写入处理的流程图。
图12是非同步离台处理的流程图。
图13是失效备援处理的流程图。
图14是登台处理的流程图。
图15是离台处理的流程图。
图16是第二实施例的软件模块图。
图17是第二实施例中的非易失性存储器结构图。
具体实施方式
下面,参照附图对本发明之一实施方式进行详细叙述。本实施方式涉及例如包括多个存储节点且各存储节点安装有一个以上的SDS的存储系统。
[实施例1]
(1)第一实施方式
(1-1)本实施方式的存储系统的结构
图1是表示第一实施方式的存储系统的整体的系统结构图。
图1所示的存储系统100例如包括多个主机装置101(Host)、多个存储节点103(Storage Node)以及管理节点104(Management Node)。主机装置101、存储节点103以及管理节点104经由利用光纤通道(Fiber Channel)、以太网(注册商标)、LAN(Local AreaNetwork)等构成的网络102彼此连接。
主机装置101是基于用户操作、从所安装的应用程序等发出的请求,对存储节点103发送读取请求或写入请求(以下,适当将它们汇总称为I/O(Input/Output)请求)的通用的计算机装置。此外,主机装置101也可以是虚拟机那样的虚拟的计算机装置。
存储节点103是对主机装置101提供用于读写数据的存储区域的计算机装置。存储节点103例如为通用的服务器装置。
管理节点104是由系统管理者管理整个该存储系统100而使用的计算机装置。管理节点104将多个存储节点103作为被称为集群的组来进行管理。此外,图1中表示了仅设置一个集群的例子,但也可以在存储系统100内设置多个集群。
图2是表示存储节点103的物理结构之一例的图。
存储节点103包括CPU(Central Processing Unit)1031、易失性存储器1032(Volatile Memory)、非易失性存储器(Non-Volatile Memory)1035、多个存储设备1033(Drive)和通信装置1034(NIC:Network Interface Card)。
CPU1031是负责控制整个存储节点的动作的处理器。易失性存储器1032由SRAM(Static RAM(Random Access Memory))、DRAM(Dynamic RAM)等易失性的半导体存储器构成。非易失性存储器1035由NVRAM(Non-Volatile RAM)、NAND型闪存等构成。易失性存储器1032和非易失性存储器1035用于临时保持各种程序、所需的数据。通过由CPU1031执行保存在易失性存储器1032和非易失性存储器1035中的程序,来执行后述存储节点103整体上的各种的处理。
存储设备1033由SSD(Solid State Drive)、SAS(Serial Attached SCSI(SmallComputer System Interface))硬盘驱动器、SATA(Serial ATA(Advanced TechnologyAttachment))硬盘驱动器等一种或多种大容量的非易失性的存储装置构成。存储设备1033响应于来自主机装置101的I/O请求,提供用于读取或写入数据的物理的存储区域。
通信装置1034是供存储节点103经由网络102与主机装置101、其他存储节点103或管理节点104通信的接口。通信装置1034由例如NIC、FC卡等构成。通信装置1034进行与主机装置101、其他存储节点103或管理节点104通信时的协议控制。
图3是表示存储节点103的逻辑结构之一例的图。
存储节点103包括前端驱动器1081(Front-end driver)、后端驱动器1087(Back-end driver)、一个或多个存储控制部1083(Storage Controller)、以及数据保护控制部1086(Data Protection Controller)。
前端驱动器1081由软件构成,其功能是,控制通信装置1034,对CPU1031提供主机装置101、其他存储节点103或管理节点104与存储控制部1083通信时的抽象化的接口。
后端驱动器1087由软件构成,其功能是,控制自身存储节点103内的各存储设备1033,对CPU1031提供与各存储设备1033通信时的抽象化的接口。
存储控制部1083是作为SDS的控制器发挥作用的软件。存储控制部1083接收来自主机装置101的I/O请求,将与该I/O请求对应的I/O命令发送到数据保护控制部1086。另外,存储控制部1083具有逻辑卷构成功能。逻辑卷构成功能的作用是,建立由数据保护控制部构成的逻辑块(Logical Chunk)与提供给主机的逻辑卷之间的关联。例如可以采取直接映射(将逻辑块和逻辑卷以1:1关联,使逻辑块的地址和逻辑卷的地址相同)方式,也可以采取虚拟卷功能(Thin Provisioning)方式(将逻辑卷和逻辑块划分为小尺寸的区域(页面),按页面单位使逻辑卷与逻辑块的地址彼此关联的方式)。
在本实施方式的情况下,将安装于存储节点103的各存储控制部1083按照与配置于别的存储节点103的其他存储控制部1083一起构成冗余结构的对(pair)来进行管理。以下,将该对(pair)称为存储控制部组1085。
图3表示了由两个存储控制部1083构成一个存储控制部组1085的情况。下文也按照两个存储控制部1083构成存储控制部组1085来进行说明,但也可以由三个以上的存储控制部1083构成一个冗余结构。
在存储控制部组1085中,一个存储控制部1083被设定为能够接收来自主机装置101的I/O请求的状态(为当前使用系统的状态,下称活动模式(active mode))。另外,在存储控制部组1085中,另一存储控制部1083被设定为不能接收来自主机装置101的I/O请求的状态(为待机系统的状态,下称待机模式(standby mode))。
而且,在存储控制部组1085中,在设定为活动模式的存储控制部1083(下称活动存储控制部)、配置有活动存储控制部的存储节点103发生故障等情况下,将此前设定为待机模式的存储控制部1083(下称待机存储控制部)的状态切换为活动模式。由此,在活动存储控制部不再能工作的情况下,能够利用待机存储控制部继承该活动存储控制部执行的I/O处理。
数据保护控制部1086由软件构成,其功能是,对各存储控制部组1085分配由自身存储节点103内或其他存储节点103内的存储设备1033提供的物理的存储区域,并且,响应于从存储控制部1083提供的上述I/O命令,在对应的存储设备1033中读取或写入指定的数据。
该情况下,数据保护控制部1086在对存储控制部组1085分配由其他存储节点103内的存储设备1033提供的物理的存储区域时,通过与安装于该其他存储节点103的数据保护控制部1086协作,在与该数据保护控制部1086之间经由网络102交互数据,从而响应于从该存储控制部组1085的活动存储控制部提供的I/O命令,在其存储区域读取或写入数据。
图4是表示由数据保护控制部1086管理的存储区域之一例的图。
如图4所示,数据保护控制部1086将各存储节点103内的存储设备1033分别提供的物理的存储区域分别分割成规定大小的物理存储区域1092(下称物理块(PhysicalChunk))进行管理。
另外,数据保护控制部1086对各存储控制部组1085分别关联专用的池(Pool),并对这些池适当分配与物理块相同大小的逻辑的存储区域即逻辑存储区域1091(下称逻辑块(Logical Chunk)),对每个逻辑块关联一个或多个物理块。
进而,在各存储控制部组1085的池上定义一个或多个虚拟的逻辑卷(下称虚拟卷或卷),将这些虚拟卷作为主机卷提供给主机装置101。
主机装置101在该虚拟卷上写入数据的情况下,向对应的集群内的任意存储节点103发送写入请求,其中,该写入请求指定了作为数据的写入目标的虚拟卷(下称写入对象卷)的标识符(LUN(Logical Number Unit)),和该写入对象卷中作为该数据的写入目标的存储区域(下称写入目标存储区域)。
接收到写入请求的存储节点103的前端驱动器1081,经由接收到的写入请求中指定的写入对象卷和池而关联到(确定出)存储控制部组1085,对配置有该存储控制部组1085的活动存储控制部或待机存储控制部的各存储节点103的前端驱动器1081,传输该写入请求和与该写入请求一起从主机装置101发送来的写入对象的数据(下称写入数据)。
并且,接收到写入请求和写入数据的存储节点103的前端驱动器1081,将写入请求和写入数据交给经由写入请求中指定的写入对象卷和池而关联到(确定出)的存储控制部组1085的存储控制部1083。
而且,收到写入请求和写入数据的存储控制部1083中的活动存储控制部,对于写入对象卷内的写入目标存储区域,从构成与该写入对象卷关联的池的逻辑块中根据需要分配存储区域(下称逻辑区域)。
另外,活动存储控制部生成作为写入命令的I/O命令,并将生成的I/O命令与写入数据一起发送到自身存储节点103内的数据保护控制部1086,其中,写入命令是将写入请求中指定的写入对象卷内的写入目标存储区域的地址,变换成已将逻辑区域分配到该写入目标存储区域的逻辑块的块编号和该逻辑区域的偏移位置而得到的I/O命令。
数据保护控制部1086在接收到I/O命令和写入数据时,将数据分别保存在各自提供与该I/O命令指定的逻辑块关联的各物理块的各存储设备1033内的、该偏移位置的存储区域中。
这样,在存储系统100中,来自主机装置101的数据被冗余化地保存在与对应的逻辑块关联的多个物理块中。因此,分配给逻辑块的物理块的数量,是根据存储系统100的冗余方式的设定内容而决定的。
例如,在采用双重化地存储数据的设定的情况下,两个物理块与一个逻辑块关联,在采用三重化以上、多重化地存储数据的设定的情况下,在设定成如EC(Erasure-Coding,纠删码)那样从数据生成冗余化数据并存储等情况下,三个以上的必要数量的物理块与一个逻辑块关联。
另一方面,主机装置101在从虚拟卷读取数据的情况下,将指定了该虚拟卷(下称读取对象卷)的LUN和该读取对象卷中的该数据的读取目标的存储区域(下称读取目标区域)的读取请求,发送到包含该读取对象卷的集群内的任意的存储节点103。
接收到读取请求的存储节点103的前端驱动器1081,经由接收到的读取请求中指定的读取对象卷和池而关联到(确定出)存储控制部组1085,对配置有该存储控制部组1085的活动存储控制部或待机存储控制部的各存储节点103分别传输读取请求。
并且,接收到读取请求的存储节点103的前端驱动器1081,将读取请求交给经由该读取请求中指定的读取对象卷和池而关联到(确定出)的存储控制部组1085的存储控制部1083。
收到读取请求的存储控制部1083中的活动存储控制部生成作为读取命令的I/O命令,将生成的I/O命令发送到自身存储节点103内的数据保护控制部1086,其中,读取命令是将读取对象卷内的读取目标区域的地址,变换成已将逻辑区域分配到该读取目标区域的逻辑块的块编号和该逻辑区域的偏移位置而得到的I/O命令。
数据保护控制部1086在接收到I/O命令时,在与该I/O命令指定的逻辑块关联的各物理块中的、设定为“master”的物理块内,从I/O命令指定的偏移位置的存储区域读取数据,并将读取的数据作为读取数据传输到I/O命令的发送方的活动存储控制部。读取数据随后由活动存储控制部经由网络102传输到读取请求的发送方的主机装置101。
(1-2)对逻辑块分配物理块
如上述,在采用使多个物理块与一个逻辑块关联,将数据分别保存于物理块来实现数据冗余化的冗余方式的情况下,从数据保护的观点考虑,期望从由不同的存储节点103提供的物理块中,分别地选择与一个逻辑块关联的多个物理块。这是因为,例如在使同一存储节点103内的多个物理块与一个逻辑块关联的情况下,在该存储节点103因故障等无法进行数据读取时,会发生数据丢失。
因此,在本存储系统100中,数据保护控制部1086在对存储控制部组1085分配逻辑块,并使多个物理块与该逻辑块关联时,从由互不相同的多个存储节点103提供的物理块中分别地选择多个物理块。
(1-3)写入命令的处理
图5是说明本发明的概要的图。图中的箭头表示针对从主机发出的写入IO的数据流,并且表示了数据流是否与主机IO同步进行。主机IO同步指的是,在对主机的写入命令回复成功响应前进行该处理。相反,主机IO非同步指的是,在对主机的写入命令回复成功响应后进行处理。
从主机写入的数据经由各存储节点的前端驱动器交给活动的存储控制部(图中省略了前端驱动器和后端驱动器)。在该图中,被交给属于存储控制部组1的活动的存储控制部。存储控制部执行写入处理,将写入的数据双重化(Mirroring,镜像)地保存到与属于存储控制部组1的Active模式的存储控制部和Standby模式的存储控制部所属的节点分别对应地配置的非易失性存储器上的缓存(cache)区域1中,并向主机回复针对写入命令的成功响应。
在向主机回复成功响应后,存储控制部调用数据保护控制的非同步离台处理,将缓存区域上的数据交给数据保护控制部。数据保护控制部使用镜像或EC将数据在节点间冗余化地保存。
(1-4)存储器和数据
图6是非易失性存储器的结构图的一个例子。在非易失性存储器内配置有缓存区域和缓存目录。缓存区域保存从主机写入的数据和用于读取到主机的数据。缓存目录是用于管理缓存区域的信息,对经过细分的缓存区域的部分区域(将其称为缓存段(cachesegment))分别记录对应的逻辑卷的地址。细节在图8中说明。
缓存目录和缓存区域以与配置于同一节点的存储控制部1083对应的形式存在相同的数量,例如,令与存储控制部组1对应的缓存目录为缓存目录1,与存储控制部组1对应的缓存区域为缓存区域1,与存储控制部组2对应的缓存目录为缓存目录2,与存储控制部组2对应的缓存区域为缓存区域2。
在与属于同一存储控制部组的存储控制部分别对应的缓存区域中,保存相同的缓存数据,在管理缓存数据的缓存目录中也保存相同的信息(镜像)。该镜像处理在后述的写入处理中进行。
图7是表示存储控制部1083、数据保护控制部1086的软件模块结构之一例的图。
存储控制部1083执行读取处理和写入处理、非同步离台处理、SC失效备援处理。
读取处理是响应于从前端驱动器接收到的读取命令而将读取对象数据从缓存区域或存储设备读出的处理。将从存储设备进行读取称作“登台(Staging)”,其是通过调用数据保护控制部的登台处理来进行的。
写入处理是响应于从前端驱动器接收到的写入命令而将写入对象数据写入缓存区域或存储设备的处理。将在存储设备中进行写入称为“离台”,其是通过调用数据保护控制部的离台处理来进行的。
非同步离台处理是将数据从缓存区域写入到存储设备的处理。
SC失效备援处理是在系统内的存储节点发生故障时执行的处理,其中,在存储控制部组内的存储控制部中,将Standby模式的存储控制部转移到Active模式,使其继承原本在发生故障的存储节点中执行的Active模式的存储控制部的结构和缓存区域。
数据保护控制部1086包括登台处理、离台处理。各处理的细节后面详述。
下面对控制信息进行说明。图8~图9所示的表是控制信息的一个例子。
图8是表示缓存目录之一例的图。缓存目录是缓存区域经细分得到的区域(缓存段)的管理信息,具有与缓存段分别对应的条目。
各条目中具有缓存地址、逻辑卷编号、逻辑卷地址、属性条目。缓存地址是指各条目对应的缓存段在存储器上的地址,逻辑卷编号和逻辑卷地址表示保存于该缓存段的数据是哪个逻辑卷的哪个地址的数据。在缓存段未保存数据的情况下,保存表示无值的“-”。在缓存段保存有数据的情况下,属性字段具有“脏数据”(Dirty)或“干净数据”(Clean)的值。Dirty表示该数据未被离台,未被写入到存储设备,Clean表示该数据已离台且与已写入存储设备的值一致。
图9是存储控制部管理表的一个例子。在本实施例中,存储控制部管理表被保存在易失性存储器上,但可以保存在非易失性存储器上,也可以保存在存储设备中,或在保存到存储设备中后再复制保持于易失性存储器中。
存储控制部管理表具有与存储控制部组分别对应的条目,各条目具有存储控制部组编号、活动配置目标节点编号、待机配置目标节点编号的条目。存储控制部组编号保持用于唯一地识别各存储控制部组的编号,活动配置目标节点编号和待机配置目标节点编号表示将属于该组的存储控制部中的活动模式的存储控制部和待机模式的存储控制部配置于哪个节点。
(1-5)动作的说明
图10是表示读取处理的流程图的例子。读取处理由存储控制部执行。存储控制部首先经由前端驱动器接收从主机发送来的读取命令,对其进行解释,得到读取对象的逻辑卷编号和逻辑卷地址(步骤S101)。接着,判断是否发生缓存命中(步骤S102)。具体而言,存储控制部参照缓存目录,在缓存目录中搜索与该逻辑卷编号和逻辑卷地址对应的条目,在存在的情况下(命中),从该条目中参照缓存地址,使分支进入“是”,从缓存区域读取数据(步骤S107),并将数据响应给主机(步骤S108)。
在缓存目录中没有与该逻辑卷编号和逻辑卷地址对应的条目的情况下(未命中),使分支进入到“否”,计算与该逻辑卷/地址对应的逻辑块编号/逻辑块地址(步骤S103)。以这样算出的逻辑块编号/逻辑块地址作为参数,调用登台处理(步骤S104)。登台处理是通过数据保护控制部执行的处理,其细节将在图14中说明,该执行的结果是,从存储设备读出了与该逻辑卷编号/逻辑卷地址对应的数据。存储控制部进行是否应将读出的数据保存到缓存的判断(步骤S105),在判断为应保存的情况下,保存到缓存(步骤S106),并与缓存命中的情况下同样地从缓存中读取数据(步骤S107)。在判断为不应保存的情况下,直接将数据响应给主机而不保存到缓存区域(步骤S108)。
作为是否应保存到缓存的判断条件,例如可举出这样的判断条件,即,统计缓存命中率,在缓存命中率低的情况下不保存到缓存。
此外,读取处理中保存到缓存的数据也可以发送至待机的存储器来进行双重化。通过在读取处理时也进行缓存数据的双重化,能够使活动侧和待机侧的缓存(cachememory)的内容一致。另一方面,如果要抑制存储节点间的通信负荷,则读取处理中保存到缓存的数据可以不进行双重化。
图11是表示写入处理的流程图的例子。写入处理由存储控制部执行。存储控制部首先经由前端驱动器接收从主机发送来的写入命令,对其进行解释,得到写入对象的逻辑卷编号和逻辑卷地址(步骤S201)。接着,判断是否发生缓存命中(步骤S202)。具体而言,参照缓存目录,在缓存目录中搜索与该逻辑卷编号和逻辑卷地址对应的条目,在存在的情况下(命中),从该条目中参照缓存地址,使分支进入“是”。接着,将数据分别保存到与相同存储控制部组对应的缓存区域(与Active和Standby的各存储控制部位于相同节点)(步骤S207,步骤S208)。接着,在各自对应的缓存目录中,将与该缓存段对应的条目的属性更新为脏数据(步骤S209,步骤S210)。然后,将写入成功响应给主机(步骤S211)。
在缓存未命中的情况下,使分支进入“否”,进行是否满足直写(Write-through)条件的判断,在不满足的情况下,使分支进入“否”并确保缓存段,之后与命中的情况同样,进行步骤S207~S211的处理。即,在不满足直写条件的情况下进行回写(Write-back)处理,其中,先将缓存的数据双重化再进行写入完成的响应。
在满足直写条件的情况下,将数据保存在临时缓冲(temporary buffer)区(步骤S205),并调用后述的离台处理。在离台处理完成后,将写入成功响应给主机。
这样,在满足直写条件时进行直写处理,其中,在与待机侧之间不进行缓存数据的双重化,在配置有活动状态的控制软件的存储节点的存储装置,和配置有属于同一冗余化组的待机(非活动)状态的控制软件的存储装置中进行写入,再进行写入完成的响应。
其结果,在满足直写条件的情况下,对主机的响应变慢,但能够降低存储节点间的网络负荷。
作为直写条件,例如能够使用以下的条件。
“存储节点间的通信负荷超过阈值”,
“写入请求的数据大小超过阈值”,
“执行活动状态的控制软件的处理器的负荷超过阈值”,
“接收到连续的写入请求”。
这些条件可以单独使用也可以组合使用。另外,并不限制采用示例以外的条件,能够设定任意的条件。
图12是非同步离台处理的流程图。在非同步离台处理中,从缓存目录中搜索属性为“脏数据”的条目(步骤S301),如果没有这种条目(步骤S302:“否”),则直接结束处理。如果有脏数据这样的条目(步骤S302:“是”),则以其缓存段为对象执行离台处理(步骤S303),在完成时从缓存目录中删除该条目(步骤S304)。该删除对与同一存储控制部组对应的Active缓存目录、Standby缓存目录的双方进行。
图13是失效备援处理的流程图。在存储节点产生了故障的情况下,由Active模式的存储控制部位于该节点的存储控制部组中的Standby模式的存储控制部执行该处理。首先,该存储控制部(Standby模式)从管理节点104接收要求切换到Active模式的指示(步骤S401)。存储控制部将设置有自身存储控制部的存储节点的缓存设定为有效(步骤S402),将自身存储控制部的模式从Standby变更为Active,改写存储控制部管理表(步骤S403)。
图14是登台(staging)处理的流程图。对从存储控制部收到的登台请求进行解释,得到读取对象的逻辑块编号和逻辑块地址(步骤S501)。判断保存有该逻辑块的主物理块的存储设备中是否存在故障(步骤S502),如果没有故障(步骤S502:“否”),则从保存该物理块的驱动器中读取数据(步骤S504)。在存在故障的情况下(步骤S502:“是”),从构成该逻辑块的其他物理块读取冗余数据(步骤S503),恢复数据并进行驱动器读取(步骤S504)。在此表示的是采用了EC保护的情况,但恢复方法依赖于由数据保护控制部进行的数据保护的方式。例如,在采用镜像保护的情况下,只要从镜像物理块读取即可。之后,将通过任意方法读取到的数据响应给作为调用方的存储控制部(步骤S505)。
图15是离台处理的流程图。数据保护控制部对从存储控制部收到的离台请求进行解释(步骤S601),得到写入对象的逻辑块编号和逻辑块地址。数据保护控制部通过镜像或EC将数据冗余化,保存到存储设备(步骤S602),并发出成功响应(步骤S603)。
[实施例2]
(1)第二实施方式
接着对第二实施例进行说明。与第一实施例的不同点在于,在第二实施例中,构成存储控制部组的存储控制部有三个,且配置于三个互不相同的存储节点。
图16表示第二实施例的软件模块图。在各存储节点各配置三个存储控制部,存储控制部组由配置于三个节点的存储控制部构成。一个存储控制部组由活动模式(Active)、待机l模式(Standby1)、待机2模式(Standby2)的存储控制部构成。由于具有两个Standby,即使两个存储节点发生故障,存储控制部组内必定留有一个正常的存储控制部,因此能够继续对数据的访问。
图17是第二实施例中的非易失性存储器结构图的一个例子。由于存储控制部采用3重化,非易失性存储器上的缓存目录和缓存区域也相应地被3重化。
如上所述,公开的实施例的存储系统包括多个存储节点和分别提供存储区域的一个或多个存储装置,其特征在于,所述存储节点包括:一个或多个控制软件,其响应于来自上级装置的请求,在对应的所述存储装置中读写所请求的数据;和缓存,其保持所述读写的缓存数据,其中,多个所述控制软件构成冗余化组,属于同一所述冗余化组的各所述控制软件被分别配置于不同的所述存储节点,构成所述冗余化组的多个所述控制软件中的、处于能够处理来自所述上级装置的请求的活动状态的控制软件,在接收到写入请求的情况下,向配置有活动状态的控制软件的存储节点的缓存,和配置有属于同一冗余化组的非活动状态的控制软件的存储节点的缓存,写入所述写入请求所请求的数据使之双重化,对所述上级装置进行写入完成的响应,再将写入到所述缓存的数据冗余化地保存在所述存储装置中。
采用该结构和动作,基于缓存的写入来向主机发出成功响应,从缓存对存储装置的写入能够与主机I/O非同步地进行,因此,能够提高响应性能。
另外,通过将缓存双重化,既能够提高主机响应性能也能够实现高可靠性。
另外,根据公开的实施例,所述活动状态的控制软件在不满足规定的条件的情况下进行回写处理,在所述回写处理中,在进行所述缓存的数据的双重化之后进行所述写入完成的响应,在满足规定的条件时进行直写处理,在所述直写处理中,对配置有所述活动状态的控制软件的存储节点的存储装置进行写入,之后对所述上级装置进行写入完成的响应。
因此,能够防止由于同时发生缓存的双重化和对存储装置的写入这两者,而导致网络的负荷过度增大的情况。
另外,根据公开的实施例,所述活动状态的控制软件能够使用存储节点间的通信负荷超过阈值作为所述规定的条件。
通过使用该条件,能够通过直接的反馈控制来抑制通信负荷。
另外,所述活动状态的控制软件能够使用所述写入请求所请求的数据大小超过阈值作为所述规定的条件。
通过使用该条件,能够根据数据大小事先预测网络负荷。
另外,能够使用执行所述活动状态的控制软件的处理器的负荷超过阈值作为所述规定的条件。
在该条件中,使用系统整体的负荷作为表示网络负荷的指标,因此,与反馈网络负荷的情况相比,不会引起负荷的波动,能够进行稳定的控制,并且对于处理器本身的负荷控制也是有效的。
另外,所述活动状态的控制软件能够使用接收到连续的写入请求作为所述规定的条件。
通过使用该条件,能够预测同时发生缓存的双重化和对存储装置的写入的情况。
另外,所述冗余化组也可以包括两个以上的非活动状态的控制软件。
另外,保存在所述存储装置中的数据被冗余化地保存,使得所述活动状态的控制软件和所述非活动状态的控制软件能够利用,在所述非活动状态的控制软件切换为活动状态的情况下,能够将保存在所述存储装置中的数据,和双重化地保存在设置有该控制软件的存储节点的缓存中的缓存数据,用于之后的请求的处理。即,在存储节点故障时,配置于该存储节点的控制软件使其所属的冗余化组内的另外的控制软件继承其处理,此时,通过继承相同节点上冗余化的非易失性存储器上的缓存,即使在存储节点故障时也不会丢失数据。
此外,本发明不限定于上述的实施例,包含各种的变形例。例如,上述的实施例是为了容易理解本发明而详细说明的示例,并不限定于具备所说明的全部结构。对其既可以进行结构的删除,也能够进行结构的置换、追加。
另外,上述的各结构、功能、处理部、处理方案等可以将它们的一部分或全部例如通过集成电路设计等方式用硬件实现。另外,本发明也能够通过实现实施例的功能的软件的程序代码来实现。在该情况下,将记录了程序代码的存储介质提供给计算机,由该计算机具备的处理器读取保存在存储介质中的程序代码。该情况下,由从存储介质读取的程序代码本身实现前述的实施例的功能,该程序代码本身、和存储它的存储介质构成本发明。作为用于提供这种程序代码的存储介质,例如使用软盘、CD-ROM、DVD-ROM、硬盘、SSD(SolidState Drive)、光盘、光磁盘、CD-R、磁带、非易失性的存储卡、ROM等。
附图标记说明
100:存储系统、101:主机装置、102:网络、103:存储节点、104:管理节点、1032:易失性存储器、1033:存储设备、1034:通信装置、1035:非易失性存储器、1081:前端驱动器、1083:存储控制部、1085:存储控制部组、1086:数据保护控制部、1087:后端驱动器、1091:逻辑存储区域、1092:物理存储区域。

Claims (9)

1.一种存储系统,包括多个存储节点和分别提供存储区域的一个或多个存储装置,其特征在于:
所述存储节点包括:
一个或多个控制软件,其响应于来自上级装置的请求,在对应的所述存储装置中读写所请求的数据;和
缓存,其保持所述读写所涉及的缓存数据,
其中,多个所述控制软件构成冗余化组,属于同一所述冗余化组的各所述控制软件被分别配置于不同的所述存储节点,
构成所述冗余化组的多个所述控制软件中的、处于能够处理来自所述上级装置的请求的活动状态的控制软件,在接收到写入请求的情况下,在配置有活动状态的控制软件的存储节点的缓存中,和配置有属于同一冗余化组的非活动状态的控制软件的存储节点的缓存中,写入所述写入请求所请求的数据使之双重化,对所述上级装置进行写入完成的响应,
将写入到所述缓存的数据冗余化地保存在所述存储装置中。
2.如权利要求1所述的存储系统,其特征在于:
所述活动状态的控制软件,
在不满足规定的条件的情况下进行回写处理,在所述回写处理中,在进行所述缓存的数据的双重化之后进行所述写入完成的响应,
在满足规定的条件时进行直写处理,在所述直写处理中,对配置有所述活动状态的控制软件的存储节点的存储装置进行写入,之后对所述上级装置进行写入完成的响应。
3.如权利要求2所述的存储系统,其特征在于:
所述活动状态的控制软件,使用存储节点间的通信负荷超过阈值作为所述规定的条件。
4.如权利要求2所述的存储系统,其特征在于:
所述活动状态的控制软件,使用所述写入请求所请求的数据大小超过阈值作为所述规定的条件。
5.如权利要求2所述的存储系统,其特征在于:
使用执行所述活动状态的控制软件的处理器的负荷超过阈值作为所述规定的条件。
6.如权利要求2所述的存储系统,其特征在于:
所述活动状态的控制软件,使用接收到连续的写入请求作为所述规定的条件。
7.如权利要求1所述的存储系统,其特征在于:
所述冗余化组包括两个以上的非活动状态的控制软件。
8.如权利要求1所述的存储系统,其特征在于:
保存在所述存储装置中的数据被冗余化地保存,使得所述活动状态的控制软件和所述非活动状态的控制软件能够利用,
在所述非活动状态的控制软件切换为活动状态的情况下,将保存在所述存储装置中的数据,和双重化地保存在设置有该控制软件的存储节点的缓存中的缓存数据,用于之后的请求的处理。
9.一种存储系统中的数据处理方法,
在所述存储系统中,构成冗余化组的多个控制软件被分散配置于多个存储节点,
所述数据处理方法的特征在于,包括:
由构成所述冗余化组的多个所述控制软件中的活动状态的控制软件,接收来自上级装置的写入请求的步骤;
由所述活动状态的控制软件,在配置有所述活动状态的控制软件的存储节点的缓存中,和配置有属于同一冗余化组的非活动状态的控制软件的存储节点的缓存中,写入所述写入请求所请求的数据使之双重化的步骤;和
由所述活动状态的控制软件,对所述上级装置进行写入完成的响应,并将写入到所述缓存的数据冗余化地保存在存储装置中的步骤。
CN202210151166.8A 2021-06-16 2022-02-15 存储系统和数据处理方法 Pending CN115480909A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021100322A JP2022191854A (ja) 2021-06-16 2021-06-16 記憶システムおよびデータ処理方法
JP2021-100322 2021-06-16

Publications (1)

Publication Number Publication Date
CN115480909A true CN115480909A (zh) 2022-12-16

Family

ID=84420588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210151166.8A Pending CN115480909A (zh) 2021-06-16 2022-02-15 存储系统和数据处理方法

Country Status (3)

Country Link
US (1) US11789613B2 (zh)
JP (1) JP2022191854A (zh)
CN (1) CN115480909A (zh)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4341571B2 (ja) * 2005-03-29 2009-10-07 日本電気株式会社 記憶装置システムおよびその制御方法、制御プログラム
US8868954B1 (en) * 2013-05-21 2014-10-21 Microsoft Corporation Low cost storage for rarely read data
US10296429B2 (en) * 2014-07-25 2019-05-21 Hitachi, Ltd. Storage device
JP6536160B2 (ja) * 2015-04-30 2019-07-03 富士通株式会社 ストレージシステム、制御装置および制御プログラム
JP6365557B2 (ja) * 2016-01-26 2018-08-01 日本電気株式会社 制御回路および制御方法
JP2018132964A (ja) * 2017-02-16 2018-08-23 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージシステム
WO2019049224A1 (ja) * 2017-09-06 2019-03-14 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法
JP6734251B2 (ja) 2017-11-30 2020-08-05 株式会社日立製作所 システム及びその制御方法並びにプログラム
JP6791834B2 (ja) * 2017-11-30 2020-11-25 株式会社日立製作所 記憶システム及び制御ソフトウェア配置方法
JP6961045B2 (ja) * 2017-11-30 2021-11-05 株式会社日立製作所 システム及びその制御方法並びにプログラム
JP6814764B2 (ja) * 2018-04-06 2021-01-20 株式会社日立製作所 情報処理システム及びパス管理方法

Also Published As

Publication number Publication date
US11789613B2 (en) 2023-10-17
JP2022191854A (ja) 2022-12-28
US20220404977A1 (en) 2022-12-22

Similar Documents

Publication Publication Date Title
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
JP4437489B2 (ja) 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
US8725981B2 (en) Storage system and method implementing online volume and snapshot with performance/failure independence and high capacity efficiency
US7917805B2 (en) Storage system for restoring data stored in failed storage device
US6912669B2 (en) Method and apparatus for maintaining cache coherency in a storage system
JP6009095B2 (ja) ストレージシステム及び記憶制御方法
US8751467B2 (en) Method and apparatus for quickly accessing backing store metadata
US10359967B2 (en) Computer system
US8412892B2 (en) Storage system and ownership control method for storage system
US20090100237A1 (en) Storage system that dynamically allocates real area to virtual area in virtual volume
US20020188802A1 (en) Memory device system and method for copying data in memory device system
US11204709B2 (en) Storage system and storage control method
US11307789B2 (en) Storage system and storage control method
JP7472341B2 (ja) ストレージシステム及びストレージシステムの制御方法
JP7113832B2 (ja) 分散ストレージシステム及び分散記憶制御方法
CN115480909A (zh) 存储系统和数据处理方法
JP7179947B2 (ja) ストレージシステム及びストレージ制御方法
US11609698B1 (en) Data storage system and storage control method including storing a log related to the stored data
US20240134575A1 (en) Storage system and storage control method
US20240176710A1 (en) Storage system and storage control method
JP2023152247A (ja) ストレージシステムおよびストレージ制御方法
JP2007334913A (ja) 記憶装置システム及び記憶装置システムにおけるデータの複写方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination