CN106201332B - 驱动器阵列策略控制 - Google Patents
驱动器阵列策略控制 Download PDFInfo
- Publication number
- CN106201332B CN106201332B CN201510359243.9A CN201510359243A CN106201332B CN 106201332 B CN106201332 B CN 106201332B CN 201510359243 A CN201510359243 A CN 201510359243A CN 106201332 B CN106201332 B CN 106201332B
- Authority
- CN
- China
- Prior art keywords
- write
- condition
- controller
- interface
- mode
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Power Sources (AREA)
Abstract
本申请涉及驱动器阵列策略控制。设备可以包括:接口;缓冲存储器;多个驱动器;以及控制器,该控制器包括检测电路、直写模式和回写模式,其中,直写模式将经由该接口接收的信息写入多个驱动器,其中,回写模式将经由该接口接收的信息写入缓冲存储器,并且将写入缓冲存储器的信息写入多个驱动器,并且其中,检测电路至少部分地基于对第一条件的检测来选择直写模式,以及至少部分地基于对第二条件的检测来选择回写模式,其中,第一条件和第二条件不同。
Description
技术领域
本文中公开的主题一般地涉及关于存储驱动器的科技和技术。
背景技术
存储驱动器阵列可以存储信息,并且可以例如是信息处理系统(例如,服务器、台式计算机等)的一部分。
发明内容
设备可以包括:接口;缓冲存储器;多个驱动器;以及控制器,该控制器包括检测电路、直写模式和回写模式,其中,直写模式将经由该接口接收的信息写入多个驱动器,其中,回写模式将经由该接口接收的信息写入缓冲存储器,并且将写入缓冲存储器的信息写入多个驱动器,并且其中,检测电路至少部分地基于对第一条件的检测来选择直写模式,以及至少部分地基于对第二条件的检测来选择回写模式,其中,第一条件和第二条件不同。还公开了各种其他设备、系统、方法等。
附图说明
参照结合附图进行的下面的描述可以更容易地理解所描述的实现的特征和优点。
图1是服务器的示例以及具有各种部件的板的示例的示意图;
图2是图1的具有RAID控制器卡的服务器的示例的示意图;
图3是系统的示例的示意图;
图4是系统的示例的示意图;
图5是系统的示例的示意图;
图6是系统的示例的示意图;
图7是包括策略电路的示例的系统的示例的示意图;
图8是系统的示例的示意图;
图9是方法的示例的示意图;
图10是方法的示例的示意图;
图11是系统的示例、服务器设施的示例以及方法的示例的示意图;以及
图12是机器(例如,装置、系统等)的各种部件的示例的示意图。
具体实施方式
下面的描述包括目前设想用于实践所描述的实现的最佳模式。该描述没有限制意思,而是为了说明所述实现的一般原理而作出的。所描述的实现的范围应当参照公布的权利要求来确定。
信息可以被存储至多个驱动器中的一个或更多个驱动器,其中,多个驱动器可以被定义为“冗余阵列”。例如,考虑独立驱动器的冗余阵列,其中所述驱动器可以是磁盘驱动器。这样的阵列可以被称为RAID,该RAID可以根据方案来操作。对于RAID而言,存在各种类型的方案,其中例如方案可以是形成一系列等级的多个方案的等级。例如,考虑RAID0、RAID1、RAID 2、RAID 3等。
作为示例,等级RAID 0可以包括不使用奇偶校验和镜像的条带化(striping)。RAID 0不提供数据冗余也不提供故障容差。然而,RAID 0可以通过多个驱动器之间的读操作和写操作的并行性来提高性能。RAID0不具有错误检测机制;从而,一个驱动器的故障可以导致阵列中的数据丢失。
作为示例,RAID 1可以包括不使用奇偶校验和条带化的镜像。在RAID 1中,数据可以同样地被写入两个(或更多个)驱动器以产生镜像的集合。对于RAID 1而言,关于数据的读请求可以访问包括所请求的数据的多个驱动器中之一。这样的方法可以提高性能,其中例如,数据以最少查找延迟和旋转延迟从驱动器被读取。然而,当更新被指定成更新阵列中的驱动器时,这造成最慢的驱动速率限制,写性能可能被降级为更新。对于RAID 1而言,只要至少一个驱动器正在运行,阵列就可以继续操作。
作为示例,RAID 2可以包括具有专用的汉明码奇偶校验的位级条带化。在RAID 2中,对于磁盘驱动器的阵列,磁盘主轴旋转可以被同步,并且数据可以被条带化,使得每个连续位在不同的驱动器上。在RAID 2中,汉明码奇偶校验可以在对应的位之间被计算,并且被存储在至少一个奇偶校验驱动器上。
作为示例,RAID 3可以包括具有专用的奇偶校验的字节级条带化。在RAID 3中,对于磁盘驱动器的阵列而言,磁盘主轴旋转可以被同步,并且数据可以被条带化,使得每个连续字节在不同的驱动器上。在RAID3中,奇偶校验可以在对应的字节之间被计算,并且被存储在专用的奇偶校验驱动器上。
作为示例,RAID 4可以包括具有专用的奇偶校验的块级条带化。作为示例,称为RAID-DP的等级可以利用RAID 4的一些方面来操作,在RAID 4中可以使用两个奇偶校验驱动器。
作为示例,RAID 5可以包括具有分布式奇偶校验的块级条带化。在RAID 5中,奇偶校验信息可以分布在驱动器之间。RAID 5的条件可以是除了一个驱动器以外的所有驱动器都呈现为(present for)基于RAID 5的操作。在RAID5中,当单个驱动器故障时,可以根据分布式奇偶校验来计算连续的读数,使得数据并未丢失。RAID 5的实现涉及至少三个驱动器。
作为示例,RAID 6可以包括使用双分布式奇偶校验的块级条带化。在RAID 6中,双奇偶校验可以提供多达两个故障的驱动器的故障公差。对于RAID 5而言,单个驱动器故障可以导致降低阵列的性能(例如,直到故障的驱动器被替换为止)。RAID 6的实现可以涉及具有来自多个源(例如,不同的制造商等)的驱动器的阵列。
存在其他类型的方案,例如,考虑可以创建次条带集以镜像主条带集的RAID 0+1以及可以根据一系列镜像的驱动器来创建条带集的RAID1+0(例如,还考虑RAID 10、RAID50、RAID 60等)。
关于将数据写入RAID,存在各种方法。例如,考虑直写缓存方法(write throughcache approach),在该方法中一旦数据被取回,则将数据写入缓存装置和驱动器。当数据被写入缓存装置和至少一个驱动器两者时,在数据被请求的情况下,可以从缓存装置取回数据,这与从驱动器取回相比时可以提供较快的访问。在直写缓存方法中,执行数据的写操作的时间量可以大于将数据写入非缓存装置的时间量。换言之,总的写时间可以是写入缓存装置的时间加上写入至少一个驱动器的时间。
作为另一示例,可以实现回写缓存方法。在回写缓存方法中,写操作不遭遇如在直写缓存方法中的写时间延迟。例如,数据块可以最初被写入缓存装置,并且在出现某条件的情况下,可以将该数据从该缓存装置写入驱动器。在这样的示例中,缓存满条件可以导致数据被从缓存装置写入驱动器。在回写缓存方法中,如果缓存装置故障,掉电等,则数据由于缓存装置的存储器的易失属性而丢失。从而,在回写缓存方法中,如果未实现一个或更多个预防措施,则会存在数据具有丢失的风险的时间段。作为示例,预防措施可以是电池备用模块。例如,在电源故障的情况下,该电池备用模块可以给缓存装置供电。
如上面所说明的,直写缓存方法可以将数据同步地写入缓存装置和非易失性存储装置(例如,一个或更多个驱动器);然而,回写缓存方法可以在最初将数据写入缓存装置,并且然后在一定时间量之后将该数据写入非易失性存储装置(例如,一个或更多个驱动器),其中,时间量可能依赖于缓存装置的缓存块,缓存块包括即将被修改和/或替换(例如,由不同的数据替换)。作为示例,直写缓存方法可以被称为将数据写入易失性存储器和非易失性存储器的并行方法,而回写缓存方法可以被称为将数据写入易失性存储器并且然后将该数据从易失性存储器写入非易失性存储器的串行方法。
作为示例,可以至少部分地基于一个或更多个参数来设置RAID方法。例如,可以在RAID控制器上设置跳接器以使RAID控制器以直写缓存方法操作或者使RAID控制器以回写缓存方法操作。在这样的示例中,跳接器(例如,或多个跳接器)可以在物理上移动以选择直写缓存操作或回写缓存操作。在跳接器被实现的情况下,这样的方法可以被称为可选择的且“硬接线的”(例如,跳接器可以电连接引脚)。作为示例,在方法通过经由跳接器设置参数,经由固件选项设置参数等而不是可选择的情况下,则这样的方法可以被称为“硬接线的”(例如,考虑相对于其RAID方法而固定的人造控制器)。RAID管理的硬接线方法可以被视为静态的,因为它们在RAID启动和正在运行(例如,准备好执行或正在执行输入和/或输出操作)时不允许操作变化。
作为示例,RAID操作的可调谐(tunable)方法可以允许当RAID启动并运动时对一个或更多个参数进行调整。例如,可调谐方法可以设置参数以选择直写缓存操作或回写缓存操作而无需使RAID离线(例如,下电等)。
作为示例,可调谐方法可以是动态,因为操作模式可以响应于一个或更多个条件而自动变化。例如,表示即将发生的电力稳定性问题的条件可以导致从回写缓存操作模式至直写缓存操作模式的变化。作为示例,这样的条件可以生成能够由RAID控制器接收的信号,其中,该信号的接收可以使RAID控制器改变其操作模式。作为示例,当稳定性条件消除(例如,电力不稳定性的风险减小等)时,可调谐方法可以导致另一变化,例如,从直写缓存操作模式至回写缓存操作模式。
作为另一示例,RAID控制的方法可以包括接收关于设备的配置的信息,并且基于该信息的接收来选择操作模式、操作调度表(schedule)等。例如,服务器(例如,基板管理控制器或“BMC”)的部件可以监视服务器的配置,并且将信息(例如,信号等)输出至RAID控制器。在这样的示例中,RAID控制器当接收到信息时可以选择适当的操作模式、操作调度表等。这样的方法可以被称为基于配置的调谐(tuning),可选地,其可以是动态的,其中,在设备的配置中出现变化,因为与该改变相关联的信息被发送至RAID控制器(例如,实时地等)。作为示例,当出现在配置变化之后可能发生的某条件时,配置的变化可以用于调谐。在这样的示例中,变化可以不立即更改当前设置(例如,在变化时),但是可以在未来时间影响对一个或更多个设置的调整。
作为示例,在高IOPS情形下,用户可能想要使用回写缓存和/或禁用一致性检查,企图优化性能。然而,在低IOPS情形(例如,数据细流)下,用户可能想要使用直写(非缓存)和/或启用一致性检查,企图优化完整性。
作为示例,RAID控制器可以包括启用以下项中的一项或更多项的电路:(i)IOPS的自动检测和基于IOPS(例如,可选地、实时地)设置RAID操作模式(例如,缓存方法);(ii)根据例如调度表(例如,可选地,其可以在逐日、逐小时地变化)对RAID操作模式进行人工编程;(iii)至少部分地基于历史IOPS自动调谐一个或更多个设置(例如,参数等)。
图1示出了服务器101的示例以及可以是服务器101的一部分的电路板103的示例。如图1的示例中所示,服务器101可以包括扩充卡(rise card)组件113、一个或更多个热插拔(hot-swap)电源114、一个或更多个PCI-express卡115、第一组DIMM 116(例如,处理器可访问的存储器插槽、存储器模块等)、光学驱动器117、右侧机架手柄118、驱动区域119、诊断模块120、VGA DB连接器121、USB端口122、左侧机架手柄123、前面板124、驱动器底板125、系统风扇126、第二组DIMM 127、散热片(例如,下方有处理器)128、电路板(例如,或系统板)129、电路板电池130、一个或更多个其他PCI-express卡131(例如,卡插槽)以及另一扩充卡组件132(例如,可选地提供另外的插槽等)。
对于电路板103而言,其可以适于用作服务器101的电路板129。如图1的示例中所示,电路板103可以包括平台控制器集线器或主机(PCH)140、前面板连接器141、内部USB连接器142、诊断模块连接器144、前VGA连接器145、SATA连接器146、电路板电池148、内部USB型A端口149、控制器150(例如,基板管理控制器)、另一内部USB型A端口151、TPM(可信平台模块)连接器152(例如,操作地耦接至TPM,另一类型的安全模块等)、扩充卡组件插槽154、另一扩充卡组件插槽155、电源连接器156、另一电源连接器157、背板电力连接器158、另一背板电力连接器159、存储器插槽160、164、166和170(例如,其可以由存储器占据),系统风扇连接器161、163、165、167、168和171,以及处理器插座162和169,其中,处理器插座162和169可以固定各自的处理器(参见,例如,处理器插座162和处理器110的透视图)。
作为示例,处理器可以是包括一个或更多个处理内核的芯片(例如,处理器芯片)的形式。作为示例,处理器插座可以包括突出引脚以与处理器芯片的焊盘接触,处理器芯片可以是例如多核处理器芯片(例如,多核处理器)。作为示例,处理器插座可以包括“SocketH2”(英特尔公司,圣克拉拉,加拿大)、“Socket H3”(英特尔公司,圣克拉拉,加拿大)、“Socket R3”(英特尔公司,圣克拉拉,加拿大)或其他插座的元件。作为示例,处理器芯片(例如,处理器)可以可选地包括多于大约10个内核(例如,英特尔公司的“Haswell-EP”、“Haswell-EX”等)。作为示例,处理器芯片可以包括缓存、嵌入式GPU等中的一个或更多个。
如图1的示例中所示,电路板103可以包括控制器连接器模块175,例如操作地耦接至控制器150(例如,经由导体、总线等)。控制器连接器模块175可以包括例如用于与控制器150进行网络通信的网路电路、电缆插头的插座(receptacle)等。
作为示例,通信(例如,信号发送、信号接收等)可以根据层级模型来发生。例如,这样的模型可以包括能够耦接至媒体访问控制(MAC)的物理层(PHY),反之亦然。例如,PHY可以与光缆或钢缆(wire cable)相关联,并且MAC可以与能够从PHY接收信息(例如,经由电缆接收)和将信息发送至PHY(例如,经由电缆传输)的装置(例如,链路层装置等)相关联。
作为示例,电路板103的控制器连接器模块175可以例如结合控制器150通过LAN和/或因特网提供远程“键盘、视频和鼠标”(KVM)访问和控制,所述控制器150可以是基板管理控制器(BMC)。作为示例,控制器连接器模块175可以提供对电路板103的一个或更多个电路的位置无关的远程访问,例如响应于意外事件、进行维修等。
作为示例,控制器连接器模块175可以包括用于以下元件的电路:如嵌入式Web服务器、经由KVM的软键盘、远程KVM、虚拟媒体重新定向、专用网络接口卡(NIC)、安全(例如,SSL、SSH、KVM加密、使用LDAP或RAIDUS的认证)、电子邮件提示等。
作为示例,控制器连接器模块175可以是网络适配器(例如,网络接口)。例如,在图1的示例中,控制器连接器模块175被示为可选地包括被配置成容纳插头(例如,电缆的插头等)的插座。作为示例,可以提供实用程序用于设置控制器150的IP地址(例如,静态IP地址或动态IP地址)。这样的程序可以包括BMC LAN配置选项,并且可以包括标识符和密码的选项。作为示例,控制器可以例如使用在机器上执行的Web浏览器程序经由IP地址(例如,http://10.223.131.36)来访问。
作为示例,控制器150可以包括一个或更多个MAC模块(例如,一个或更多个10/100/1000M bps MAC模块等),例如,这些模块可以操作地耦接至PHY电路。
作为示例,控制器连接器模块175可以包括PHY电路(例如,其可以是PHY装置或“PHYceiver”)。例如,控制器连接器模块175可以包括一个或更多个PHY芯片,例如,与控制器的每个MAC模块对应的一个PHY芯片,其中,这样的控制器包括多个MAC模块。以太网PHY芯片可以实现以太网帧的硬件发送和接收功能(例如,在一端处连接至线调制,并且在另一端处用信号发送二进制包)。作为示例,系统可以包括所谓的USB PHY电路(例如,与对接口的数字部分和调制部分进行桥接的USB控制器电路集成的PHY芯片)。
作为示例,控制器连接器模块175可以集成有例如控制器150作为集成管理模块。作为示例,集成管理模块可以包括由北卡罗来纳州莫里斯维尔市的联想(美国)公司销售的集成管理模块(IMM)的至少一些元件。作为示例,集成管理模块或控制器150以及控制器连接器模块175可以包括用于以下中的一个或更多个的电路:(i)专用或共享的以太网连接的选择;(ii)智能平台管理接口(IPM)和/或服务器处理器接口的IP地址;(iii)嵌入式动态系统分析(DSA);(iv)本地和/或远程更新其他实体的能力(例如,可选地,不需要服务器);(v)重新启动以开始更新处理;(vi)使用高级设置实用程序(ASU)来启用远程配置;(vii)应用程序和工具带内和/或带外访问IMM的能力;以及(viii)一个或更多个增强的远程存在(remote-presence)能力。
在图1的示例中,电路板103包括各种总线180,其提供至存储器(诸如与插槽160、164、166和170相关联的存储器)的访问。作为示例,控制器150可以操作地耦接至例如各种总线180中的一个或更多个,以访问存储在存储器中的信息,从而将信息存储在存储器中或访问信息并且将信息存储在存储器中。作为示例,控制器150可以经由PCH 140访问存储器,PCH 140可以包括例如存储器控制器主机(MCH)和嵌入式控制器(例如,基于ARC的控制器,基于ARM的控制器等)作为芯片组的一部分。作为示例,控制器150可以被配置成直接和/或间接访问存储器,诸如所谓的“系统”存储器(例如,与插槽160、164、166和170相关联的存储器)。
作为示例,控制器150可以例如经由对存储器的访问来提供电路板103的一个或更多个部件的监视、调试等操作。作为示例,控制器150可以提供对一个或更多个处理器(诸如处理器110)的状态的访问,处理器110可以包括多个内核和其他电路。作为示例,可选地,控制器150可以将处理器的状态设置为调试处理、重设处理等的一部分。作为示例,控制器150可以中断电路的操作,访问与电路相关联的信息(例如,存储器、状态信息等),并且然后恢复电路的操作。
作为示例,控制器150可以包括关于服务器101的配置的信息。例如,控制器150可以包括具有一系列部件(例如,现场可替换单元或“FRU”和/或其他部件)的存储器。在这样的示例中,在部件被替换的情况下,控制器150可以更新信息。作为示例,部件可以用不同的部件来替换。作为示例,控制器150可以针对设备的安装来监视服务器101。例如,在驱动器被替换、去除和/或插入的情况下,RAID控制器被替换、去除和/或插入(例如,在PCI槽等中;参见,例如,扩充卡132等),缓存模块被替换、去除和/或插入等,控制器150可以更新服务器101的配置信息。
作为示例,控制器150可以包括监视一个或更多个电源部件(包括例如一个或更多个稳压器)的状态的电路。作为示例,控制器150可以包括监视一个或更多个风扇(参见,例如,风扇连接器161、163、165、167、168和171;注意,服务器可以包括一个或更多个其他风扇连接器、具有风扇的一个或更多个部件等)的状态的电路。在这样的示例中,由控制器150进行的监视可以提供用于确定服务器的电力稳定性状态(例如,或多种状态)。例如,如果风扇故障,则会存在过热的风险,其中,这样的过热会触发服务器101关机。在这样的示例中,由于温度增加、风扇的故障等而导致的关闭的风险可以被视为表示电力不稳定的电力稳定性状态。作为另一示例,正故障的稳压器会引起关机的风险。
作为示例,控制器150可以包括能够在本地和/或远程条件变得已知的情形下关闭服务器101的电路(例如,企图减少对服务器的损害)。关于本地条件,其可以是与服务器101直接相关联的条件;然而,远程条件可以是与天气、计算机房空气调节(“CRAC”)等有关的条件。例如,远程条件可以是能够削弱设施的操作和/或对设施的电力供给的电风暴、洪水泛滥、疾风等。
在图1的示例中,服务器101包括策略电路190,其能够选择与将数据写入一个或更多个驱动器相关联的操作策略。作为示例,策略电路190可以是RAID控制器策略电路。作为示例,策略电路190可以包括能够至少部分地基于检测到的条件来选择一个或更多个策略的检测电路。作为示例,策略电路190可以包括分析检测到的信息并且确定与策略的选择相关联的一个或更多个参数。
作为示例,服务器(例如,或其他信息处理系统)可以包括接口;缓冲存储器;多个驱动器;以及控制器,该控制器包括检测电路、直写模式和回写模式,其中,直写模式将经由该接口接收的信息写入多个驱动器,其中,回写模式将经由该接口接收的信息写入缓冲存储器并且将写入缓冲存储器的信息写入多个驱动器,并且其中,检测电路至少部分地基于第一条件的检测来选择直写模式,以及至少部分地基于第二条件的检测来选择回写模式,例如,其中,第一条件和第二条件不同。在这样的示例中,检测电路可以是诸如图1的策略电路190的策略电路。
作为示例,控制器可以是诸如RAID控制器卡(例如,RAID适配器)、“片上RAID”(“ROC”)等的RAID控制器。在这样的示例中,控制器可以包括策略电路190。
作为示例,控制器可以是诸如缓存模块、备用电池模块(BBU模块)、基于电容器的能量存储模块等的RAID控制器外设。在这样的示例中,控制器可以包括策略电路190。
作为示例,控制器可以是基板管理控制器(参见,例如,控制器150)。在这样的示例中,控制器可以包括策略电路190。
作为示例,一个或更多个总线(参见,例如,各种总线180)可以在操作上耦接至能够接收RAID控制器(例如,RAID适配器等)的插槽。作为示例,诸如I2C总线等总线可以操作地耦接至例如RAID控制器卡的I2C接口以使得来自控制器150(例如,和/或一个或更多个其他部件)的信息能够被发送至RAID控制器卡。在这样的示例中,由RAID控制器卡接收的信息可以用于确定和/或实现一个或更多个策略(例如,至少一个或更多个写策略)。
图2示出了安装有特定部件以及策略电路190的服务器101的示例。例如,扩充卡132被示为至少包括RAID控制器卡231以及各种电缆235和237。如所示,电缆237延伸至光学驱动器117和驱动区域119,驱动区域119可以包括一个或更多个驱动器(例如,磁盘驱动器等)。驱动区域119可以包括形成可由RAID控制器卡231控制的RAID的多个驱动器。作为示例,策略电路190可以控制由RAID控制器卡231实现的一个或更多个策略。作为示例,策略电路190可以是RAID控制器卡231的一部分。
图3示出了系统300的示例以及系统301的示例,系统300包括RAID控制器卡310和电缆350,系统301包括可选择的扩展器卡330。此外,策略电路190也被示为系统300和/或系统301的一部分,策略电路190可以用于控制RAID控制器卡310的一个或更多个策略。
如图3所示,卡310和卡330可以由扩展卡302容纳,扩展卡302可以在操作上耦接至(例如,经由插槽等)电路板。如图3的示例中所示,电缆350由RAID控制器卡310的端口容纳。作为示例,电缆可以耦接至这样的端口,并且然后耦接至扩展器卡330的端口,使得更多端口可用(参见,例如,在扩展器卡330的边缘上的四个端口)。如图2中所示,电缆237从可以是扩展器卡(诸如图3的卡330)的卡延伸至驱动区域119的驱动器。
作为示例,RAID控制器可以根据一个或更多个写策略(例如,写操作方法或模式)来操作。作为示例,写策略可以限定RAID控制器在将数据写入驱动器时如何使用缓存。在回写模式下,当RAID控制器相关联的缓存已经接收交易中的所有数据时,RAID控制器可以将数据传输完成信号发送至主机。这样的模式可以与或不与RAID控制器相关联的缓存备用电池(BBU)一起来使用;注意,在没有电池的情况下,缓存可能不受保护,使得电力故障或关机会导致丢失缓存中的数据的风险。在直写模式下,当驱动器子系统已经接收了交易中的数据时,RAID控制器可以将数据传输完成信号发送至主机。在RAID控制器相关联的缓存备用电池(BBU)是RAID控制器的必备选项的情况下,RAID控制器固件在检测到坏的或故障的BBU时可以自动地切换至直写模式。在这样的方法中,在BBU不存在或坏掉的情况下,RAID控制器固定(例如,“硬接线”)至直写模式。在前面提到的情形中,可以存在某个选项以在BBU不存在或坏掉的情况下通过将RAID控制器固定操作在回写模式下来避免使用直写模式,然而,也可以考虑RAID控制的“硬接线”方法(即,RAID控制器固定至回写模式)。
作为示例,策略电路190可以实现一个或更多个写策略,这些写策略可以基于经由设备接收的信息。例如,策略电路190可以包括从基板管理控制器(BMC)接收关于设备配置、设备状态等的一个或更多个信号的接口。作为示例,策略电路190可以包括存储调度表的存储器,其中调度表可以基于操作者的输入(例如,经由网络连接、USB驱动器等)和/或基于感测的信息(例如,利用率、电力周期等)。作为示例,策略电路190可以包括能够对与RAID控制器卡310和/或扩展器卡330的操作相关联的一个或更多个参数进行调谐的调谐器。例如,一个或更多个参数可以是或者包括一个或更多个写策略参数。作为示例,策略电路190可以是控制器卡310和/或扩展器卡330的一部分。
图4是系统400的示例的框图,系统400包括可选的电池402、多个驱动器404-1、404-2、404-3至404-N的接口、非易失性存储器总线模块406、I2C模块408(例如,作为I2C接口的一部分)、PCIe接口409以及RAID控制器410。在图4的示例系统400中还示出了策略电路190。
系统400可以实现为控制可选地具有扩展器(例如,端口扩展器)的的驱动器,诸如SATA驱动器(例如,I、II、III等)。作为示例,I2C模块408可以允许与一个或更多个外设进行通信。非易失性存储器总线模块406可以是存储器总线,其为管线式同步丛发静态随机存取存储器(PSBRAM)、非易失性静态随机存取存储器(NVSRAM)和闪存ROM提供奇偶校验信号和芯片选择信号。
图5示出了系统500的示例,系统500包括外设总线模块506、SDRAM模块508、PCIe接口、RAID控制器510(例如,可选地,作为“片上RAID”)以及扩展器512-1和扩展器512-2。此外,在图5的示例系统500中还示出了策略电路190。作为示例,策略电路190可以是RAID控制器510的一部分,例如,“片上RAID”(例如,“ROC”)的一部分。
图6示出了具有缓存闪存模块630和缓存电力模块650的RAID控制器卡610的示例。作为示例,RAID控制器卡610可以被配置为能够控制大约八个SAS/SATA端口的大约6Gb/s控制器。缓存闪存模块630可以连接至例如缓存电力模块650,以在电力损耗的情况下提供数据的备份。此外,在图6的示例系统600中还出了策略电路190。作为示例,策略电路190可以是RAID控制器卡610的一部分,缓存闪存模块630的一部分和/或缓存电力模块650的一部分。
如提到的,回写缓存模式可以通过例如在高IOPS(例如,对写操作的高要求)期间将写数据存储至缓存来提高性能,其中,例如,在暂停期间,数据可以被从缓存写入阵列的一个或更多个驱动器。
在回写操作期间,作为示例,数据被写入缓存(例如,DRAM),IO(例如,向发出写请求的应用程序)被认为完成,并且稍后写被刷新至磁盘。如果在启用回写缓存时电力损失,则DRAM中的写会丢失。以及在控制器认为操作完整的情况下,应用程序可能不知道数据丢失。如所提到的,在由设备(例如,服务器)提供的电力中断时,BBU选项可以向RAID控制器(例如,RAID控制器相关联的缓存)提供电力。这样的方法旨在保护缓存中的数据,直到至缓存的电力能够被恢复并且缓存中的数据被写入一个或更多个驱动器为止。在图6的示例中,缓存闪存模块630和缓存电力模块650旨在以不招致各种BBU降低的方式提供对RAID控制器610的基于闪存的缓存保护。
作为示例,策略电路190可以控制由RAID控制器卡610、缓存闪存模块630和/或缓存电力模块650实现的策略。
图7示出了包括服务器101、系统300、系统301、系统400、系统500和系统600连同策略电路190的框图。在图7的示例中,策略电路190可以包括一个或更多个模块,诸如BMC接口模块191、风扇接口模块192、电力接口模块193、CRAC接口模块194、天气接口模块195和公共事业接口模块196。
作为示例,策略电路190可以在操作上耦接至总线,诸如I2C总线。作为示例,策略电路190可以经由总线接收信号,这些信号可以是例如由基板管理控制器(BMC)和/或设备的一个或更多个其他部件发送的一个或更多个信号。在这样的示例中,策略电路190可以包括模块191。作为示例,可以是热量管理系统的一部分的风扇控制电路可以操作地耦接至策略电路190。在这样的示例中,策略电路190可以包括模块192。作为示例,可以是电力管理系统的一部分的电力调整电路可以操作地耦接至策略电路190。在这样的示例中,策略电路190可以包括模块193。作为示例,可以是设施管理系统的一部分的CRAC电路可以操作地耦接至策略电路190。在这样的示例中,策略电路190可以包括模块194。作为示例,天气信息电路可以操作地耦接至策略电路190。在这样的示例中,策略电路190可以包括模块195。作为示例,电力公共事业电路(power utility circuit)可以操作地耦接至策略电路190。在这样的示例中,策略电路190可以包括模块196。
图8示出了系统800的示例,系统800包括用于处理器芯片802、用于PCH 840和用于控制器850的板801,其可以被称为基板管理控制器(BMC)(参见,例如,图1的控制器150)。图8还示出了策略电路190,其可以包括操作地耦接至控制器850的接口。作为示例,策略电路190可以是系统(诸如图7的系统中之一)的一部分。
如图8的示例中所示,处理器芯片802包括可以执行例如操作系统811以建立操作系统环境的处理器810。在图8的示例中,处理器芯片802操作地耦接至存储器控制器主机(MCH)843和输入/输出控制器主机(ICH)843,其可以是例如PCH 840的部件。MCH 843可以操作地耦接至系统存储器842(参见,例如,图1的电路板103的插槽160、164、166和170,其可以由存储器占据),以及ICH 845可以操作地耦接至网络接口控制器(NIC)860并且包括各种I/O接口。作为示例,ICH 845可以操作地耦接至闪存存储器846(例如,SPI闪存)。作为示例,MCH 843可以包括嵌入式控制器882。作为示例,芯片802可以为处理器810提供对存储器842的访问(参见,例如,其中处理器810包括适当的电路)。
示出为垂直叠加的部件(图8的右手侧)可以被视为“主机”部件(例如,主机820),这些部件使用例如处理器810执行应用程序(例如,利用操作系统811)来支持操作系统环境的建立。
在图8的示例中,控制器850包括“实时”操作系统(RTOS)854和各种接口。作为示例,控制器850可以经由电路875(例如,NIC、PHY电路等)包括例如专用网络支持。作为示例。NIC 860和/或电路875可以提供与控制器850的带外(out-of-band,OOB)通信(例如,经由网络805-1和/或网络805-2;参见,例如,图1的模块175)。作为示例,控制器850可以包括一个或更多个MAC模块(例如,其可以操作地耦接至一个或更多个PHY装置)。作为示例,控制器可以包括例如IP地址,其可以不同于与板上的主机部件相关联的IP地址(例如,控制器850可以包括与主机820的相关IP地址不同的相关IP地址)。
在图8的示例中,控制器850可以包括访问诸如DRAM 862、闪存864(例如,可选地,SPI闪存)等部件的接口。控制器850可以包括例如经由PCI-express接口(PCI-E)、USB接口、低引脚计数接口(LPC)等与MCH 843和ICH 845中的一个或更多个进行通信的接口。控制器850可以包括配置成遵循SMB规范(例如,“SMBus”规范)的接口。这样的接口可以被配置用于使用母板上的一个或更多个部件(例如,电力相关的部件、温度传感器、风扇传感器、电压传感器、机械开关、时钟芯片等)进行通信、控制、数据采集等。
作为示例,可选地,控制器850可以遵循智能平台管理接口(IPMI)标准。IPMI可以例如被描述为基于消息的硬件级接口规范。在一个系统中,IPMI子系统可以例如经由带外通信独立于操作系统(例如,主机操作系统)而操作。
在图8的示例中,关于OS 811,OS环境可以使用例如OS(例如,完全操作系统)、OS、OS或能够建立应用程序(例如,服务器,字处理、绘画、电子邮件等)的执行环境的其他操作系统来建立。作为示例,关于RTOS 854,控制器850可以使用诸如RTOS、RISC OS、嵌入式OS等RTOS来建立RTOS环境。
作为示例,控制器850可以是基于ARC的BMC(例如,具有I-缓存、D-缓存、SRAM、ROM等的ARC4处理器)。作为示例,BMC可以包括例如用于外部闪存PROM、外部SRAM和外部SDRAM的扩展总线。BMC可以是管理微控制器系统(MMS)的一部分,其例如使用存储在ROM(例如,可选地,可经由EEPROM、条带化等配置的)中的固件来操作。
作为示例,控制器850可以被配置成执行与一个或更多个传感器相关联的任务(例如,扫描、监视等),作为例如IPMI标准管理方案的一部分。作为示例,传感器可以是或者包括硬件传感器(例如,关于温度等)和/或软件传感器(例如,关于状态、事件等)。作为示例,控制器(例如,BMC)可以例如经由网络接口提供计算装置(例如,信息处理系统)的带外管理。
作为示例,控制器可以被配置成实现一种或更多种服务器相关的服务。例如,芯片组可以包括由BMC管理的服务器管理模式(SMM)接口。在这样的示例中,BMC可以对通过SMM接口发生的传输划分优先次序。在这样的示例中,BMC可以用作服务器管理软件(SMS)与IPMI管理总线(IPMB)接口之间的桥。这样的接口寄存器(例如,两个1字节宽度寄存器)可以提供用于BMC与一个或更多个主机部件之间的通信的机制。
作为示例,控制器(例如,控制器850)可以将配置信息存储在受保护的存储器(参见,例如,DRAM 862、闪存864等)中。作为示例,控制器可以存储信息,信息可以包括适当的“白名单”管理服务器(例如,关于一个公司等)的名称。作为示例,控制器850可以通过使用存储在存储器(如DRAM862和/或闪存864)中的指令来部分地可操作。作为示例,这样的指令可以提供一个或更多个方法的实现,这些方法包括由控制器850进行的处理器芯片802的监视、访问等操作。
作为示例,图8的系统800的NIC 860可以是被配置成监视例如在所谓的媒体独立接口(MII)、减小的媒体独立接口(RMII)、减小的吉比特媒体独立接口(RGMII)等处的网络流量的LAN子系统PCI总线网络适配器。作为示例,NIC 860可以包括各种元件,例如,网路适配器可以包括吉比特以太网控制器、LAN连接器、CSMA/CD协议引擎、在PCH与LAN控制器之间的LAN连接接口、PCI总线电力管理、ACPI技术支持、LAN唤醒能力、ACPI技术支持、LAN子系统软件等。
作为示例,控制器850可以经由SMBus(例如,SMLink)(例如,或其他总线)操作地耦接至一个或更多个主机部件。
作为示例,控制器850可以控制一个或更多个计时器,诸如一个或更多个看门狗计时器(WDT)。作为示例,计时器可以被编程成调用重设操作、掉电操作等,其可以更改存储器中的信息、处理器的状态等。通过控制一个或更多个计时器,控制器850可以用于保存信息。作为示例,通过控制计时器,控制器850可以通过降低计时器相关联的动作的干扰的风险来处理各种操作(例如,调试操作)。
作为示例,策略电路190可以从控制器850接收关于一个或更多个WDT的信息。例如,在控制器850调用重设操作、掉电操作等的情况下,策略电路190可以接收信号,并且至少部分地基于该信号来控制RAID控制器或相关联的电路的一个或更多个操作。例如,在控制器850调用可以中断电力的动作的情况下,策略电路190可以通过将RAID操作从一个写策略切换至另一写策略(例如,从回写切换至直写)来响应。
作为示例,控制器850可以被设置成访问与系统的一个或更多个其他部件相关联的信息。例如,在部件包括驱动器的情况下,控制器850可以访问关于驱动器的信息;在部件包括存储器(例如,缓存等)的情况下,控制器850可以访问该存储器;在部件具有操作状态的情况下,控制器850可以访问状态信息;等等。作为示例,控制器850可以例如变更驱动器、将值存储至存储器,在操作状态下放置装置等,作为监视处理、调试处理等的一部分。
作为示例,板801可以包括诸如由英特尔公司(圣克拉拉,加拿大)销售的那些部件等部件。作为示例,主机820的一个或更多个部件可以支持主动管理技术(AMT)作为用于在带外操作模式下在远程管理和保卫计算系统的基于硬件的技术。在图8的示例中,AMT可以使用主机820的部件来实现。例如,AMT可以使用ARC4芯片作为主机820的MCH 843中的嵌入式控制器882以经由驻留在与主机BIOS的闪存存储器(例如,经由ICH 845可访问)相同的闪存存储器(例如,闪存存储器846)中的代码而实例化管理引擎(ME)来实现。ME与主机(例如,主机OS)共享公共的LAN MAC,主机名和IP地址。ME依赖于所谓的带外滤波器来对经由LAN接口(参见,例如,图8的NIC 860)接收的信息进行滤波。
作为示例,系统800可以是服务器的一部分。作为示例,服务器可以包括RAID硬件(例如,RAID控制器、适配器等)。作为示例,服务器可以包括例如用于建立管理程序(hypervisor)环境的管理程序指令以支持虚拟OS环境等。作为示例,服务器可以包括控制器,诸如包括控制器的至少一些元件的控制器。
作为示例,图1的电路板103的控制器150或图8的板801的控制器850可以是控制器或包括这样的控制器的至少一些元件。作为示例,图1的电路板的控制器连接器模块175或图8的板801的电路875可以被配置成操作地耦接至控制器或包括这样的控制器的至少一些元件的控制器。作为示例,电路可以将网络接口(例如,网络适配器、PHY电路等)操作地耦接至例如控制器150或控制器850,其中控制器连接器模块175或电路875包括网络接口(例如,网络适配器、PHY电路等)。
作为示例,图1的服务器101(例如,或图1的电路板103或图8的板801)可以包括用于网络接口控制器(NIC)的插座,网络接口控制器(NIC)可以包括例如以太网控制器(例如GbE控制器等)的一个或更多个元件。
作为示例,策略电路190可以操作地耦接至网络接口。作为示例,网络接口可以对信号进行“解码”,其中该信号可以与电力状态有关。作为示例,信号可以来自天气服务,来自CRAC、来自公共事业公司等。作为示例,天气服务可以经由因特网发布信号,其中,该信号的接收表示一种或更多种天气条件,天气条件可以是当前的或即将来临的。例如,在龙卷风、飓风、电风暴等被预报或检测到(例如,经由雷达、报告等)的情况下,天气服务可以可选地以带外方式发布能够由设备接收的信号,这使设备变更例如与驱动器阵列相关联的写策略。
作为示例,在服务器设施(例如,服务器场)包括CRAC的情况下,该CRAC可以包括网络接口,该网络接口可以自动地发布能够由该设施中的设备(例如,直接或间接)接收的信号,使得一个或更多个写策略被设置、变更、调整、确保等。例如,如果CRAC采用离线服务,则设施中的温度会升高。这样的温度升高可以使设备置于关机或其他不稳定的风险中。在这样的示例中,CRAC(例如,或设施操作者/控制器)可以经由带内、带外或其他方式发布指令,通过该指令服务器作出响应以通过控制一种或更多个写策略来降低数据丢失的风险。
图9示出了方法910的示例,方法910包括用于提供、接收、确定、设置等多种写策略的写策略块912。方法910还包括用于判定是按照块920实现直写策略还是按照块940实现回写策略的判定块914。作为实例,判定块914可以包括从一个或更多个源接收信息。作为示例,判定块914可以包括基于信息——如调度表、时间(例如,一天的时间、一周的时间等)、配置信息、电力相关信息等——来作出一种或更多种判定。作为示例,判定块914可以判定来实现诸如块920的策略、块940的策略或可选地另外的策略(例如,中止操作等)等策略。
直写策略块920包括用于接收数据的接收块922、用于将数据写入缓存的写数据至缓存块924以及用于将数据写入一个或更多个驱动器的写数据至一个或更多个驱动器块926。如所示,写入块924和926并联。
回写策略块940包括用于接收数据的接收块942、用于将数据写入缓存的写数据至缓存块944以及用于将数据写入一个或更多个驱动器的写数据至一个或更多个驱动器块946。如所示,写入块944和946串联。
作为示例,方法可以包括用于判定是否实现一致性检查策略的判定块。例如,相对于驱动器阵列,一致性检查策略可以被实现用于验证驱动器阵列中的数据的正确性。例如,在使用奇偶校验的系统中,检查一致性可以包括计算数据驱动器的奇偶性,并且将该结果与奇偶校验驱动器的内容进行比较(参见,例如,前面提到的RAID等级等)。作为示例,判定块可以基于信息——如调度表、时间(例如,一天的时间、一周的时间等)、配置信息、电力相关信息等——来作出一种或更多种判定。作为示例,判定块914除了作出关于写入策略的一种或更多种判定以外还包括作出关于例如一致性检查的一个或更多个判定。
作为示例,一致性检查旨在检测奇偶性和块错误。作为示例,一致性检查处理可以包括例如报告、生成不一致性日志。作为示例,如果在一致性检查处理(例如,以及足够的冗余数据可利用)的期间出现个别读错误(例如,坏掉的块),则这样的块可以用正确的数据重写。作为示例,策略可以包括设置、调整、变更等检查处理。作为示例,检查处理可以是例如彻底的一致性检查处理、RAID阵列检查处理的随机扫描(例如,其旨在找出错误,其中如果发现错误,则可以实现彻底的一致性检查处理)等。
图10示出了写操作相对于时间的图表1010的示例、一个或更多个接口1020的示例、方法1050的示例以及方法1070的示例。
图表1010包括阈值(Th),其可以是能够用于确定何时可以实现特定写策略或多种写策略的阈值。例如,关于写操作的历史信息相对于时间表示大致重现的模式时,写策略的判定以及一种或更多个写策略的实现可以至少部分地基于该模式。例如,当针对在边缘内(例如,大约百分之20或更少的边缘内)的写操作的重现数量,时间在边缘内(例如,在开始时间和结束时间大约20百分比或更少的边缘内)大致重现时,调度表可以被公式化为相对于时间的写策略。如提到的,当在特定时间(例如,在阈值处或高于阈值处)出现大量的写操作时,回写策略可以被实现(参见,例如,图9的回写策略块940);然而,对于其他时间,直写策略可以被实现(参见,例如,图9的直写策略块920)。
在图10中,方法1050包括用于监视相对于时间的写操作的监视块1052、用于分析写操作的分析块1054以及用于确定相对于时间的一种或更多种写操作的确定块1056。在这样的示例中,一种或更多种确定的写策略可以根据调度表(例如,一天的时间、一周的时间等)来实现。
在图10中,方法1070包括用于可选地经由通过一个或更多个接口1020中的一个或更多个接收的信息来监视一个或更多个条件的监视块1072、用于分析一个或更多个条件的分析块1074以及用于覆写一个或更多个写策略的覆写块1076。例如,在方法1050可以调用来实现(例如,确定块1056的)一个或更多个写策略的情况下,方法1070的覆写块1076可以调用来覆写已实现或要实现的写策略。例如,在条件与不稳定的电力状态相关联的情况下,覆写块1076可以通过实现直写策略(参见,例如,图9的直写策略块920)来覆写已实现的回写策略(参见,例如,图9的回写策略块940),这可以在不稳定的电力状态导致电力故障(例如,与驱动器阵列相关联的对至少缓存的电力供给的故障)的情况下用于保护数据。
图11示出了系统1101的示例,系统1101包括管理单元1103、网络集线器1105(例如,网络设备)以及服务器1110-1、1110-2、…、1110-N。
图11还示出了系统1140的示例,系统1140可以包括服务器,诸如服务器1110-1、1110-2、…、1110-N中的一个或更多个服务器。具体地,系统1140被示为包括机架1141,其中,每个机架可以包括服务器。作为示例,系统1140可以包括例如CRAC1150以维护有助于服务器的操作的环境条件。作为示例,设施管理单元1103可以提供CRAC 1150的控制以及系统1140的其他方面(例如,经由网络集线器1105等)。作为示例,设施管理单元1103可以从CRAC1150接收信息,并且将这样的信息发送至例如一个或更多个服务器,使得该信息可以用于作出关于数据传输(例如,一个或更多个写策略)、数据的一致性检查、电力状态、制冷等的一个或更多个判定。
在图11的示例中,特定服务器111例如被识别成由工作者来管理。如所示,工作者可以携带部件1115(例如,FRU等)或例如能够包括由控制器、主机处理器等执行的指令的存储装置。在这样的示例中,服务器111可以每安装部件1115时就更新配置,其中,更新的配置被策略电路1190(参见,例如策略电路190等)接收作为配置信息。在这样的示例中,策略电路1190可以至少部分地基于这样的配置信息来更新一个或更多个写策略。这样的方法可以更新一个或更多个策略和/或实现一个或更多个策略的方式。作为示例,该部件可以是BBU、扩展器卡、缓存或可以是RAID系统的一部分的其他部件。
图11还示出了方法1160,该方法1160包括用于检测条件的检测块1162、用于确定策略的确定块1164和用于实现策略的实现块1166。这样的方法可以包括至少部分地基于检测到的条件来选择和实现写策略。作为示例,在存在相对于时间的写策略的调度表的情况下,条件可以是时间(例如,一天的时间等)。作为示例,检测到的条件可以与特定服务器相关联。作为示例,检测到的条件可以与系统(如系统1140)相关联。作为示例,检测到的条件可以与CRAC如CRAC 1150相关联。作为示例,检测到的条件可以是天气相关的条件。作为示例,检测到的条件可以是由例如给系统1140(例如,可经由设施管理单元等管理)供电的公共事业公司传送的条件。
作为示例,设备可以包括接口;缓冲存储器;多个驱动器;以及控制器,该控制器包括检测电路、直写模式(例如,并行)和回写模式(例如,串行),其中,直写模式(例如,并行)将经由接口接收的信息写入多个驱动器,其中,回写模式(例如,串行)将经由接口接收的信息写入缓冲存储器并且将写入缓冲存储器的信息写入多个驱动器,并且其中,检测电路至少部分地基于第一条件的检测来选择直写模式(例如,并行)以及至少部分地基于第二条件的检测来选择回写模式(例如,串行),其中,第一条件和第二条件不同。作为示例,这样的控制器可以包括一致性检查模式和非一致性检查模式,其中,检测电路至少部分地基于条件的检测来选择一致性检查模式或非一致性检查模式。作为示例,关于写策略,多个驱动器可以是少于系统中的驱动器数量的大量驱动器,或者例如,多个驱动器可以是全部数量的驱动器。
作为示例,第一条件可以是和与关联于接口的输入操作的第一速率相关联的第一时间,以及第二条件可以是与关联于接口的输入操作的第二速率相关联的第二时间,其中,第二速率超过第一速率。在这样的示例中,输入操作可以是写操作。
作为示例,输入操作的第一速率可以低于速率阈值,并且输入操作的第二速率可以超过速率阈值。在这样的示例中,输入操作可以是写操作。
作为示例,第一条件可以是第一电力状态,并且第二条件可以是第二电力状态(例如,与第一电力状态不同)。在这样的示例中,第一条件可以是不稳定的电力状态条件,并且第二状态可以是稳定的电力状态条件。
作为示例,第一条件和第二条件可以是或者包括环境状态条件。例如,考虑与稳压器、高功率要求、天气、温度、风扇、雷雨/电风暴、CRAC、水位、雨水、洪水泛滥等中的一个或更多个相关联的条件。
作为示例,第一条件可以是与不稳定的电力状态对应的环境状态条件,并且第二条件可以是与稳定的电力状态对应的环境状态条件。
作为示例,检测电路可以至少部分地基于检测到的条件来调整至少一个参数值,其中,至少一个参数值包括阈值参数值,并且其中,检测电路至少部分地基于阈值参数值来选择直写模式(例如,并行)或回写模式(例如,串行)。
作为示例,检测到的条件可以是时间。例如,检测到的第一条件可以是第一时间,并且检测到的第二条件可以是第二时间。作为示例,设备可以包括调度表,该调度表包括至少一个被调度的直写模式时间和/或包括至少一个被调度的回写模式时间。
作为示例,一个或更多个计算机可读存储介质可以包括处理器可执行的指令,指令包括执行以下操作的指令:检测第一条件;检测不同的第二条件;以及响应于第一条件的检测来选择直写模式(例如,并行),以及响应于第二条件的检测来选择回写模式(例如,串行),其中,直写模式(例如,并行)将经由接口接收的信息写入多个驱动器,并且其中,回写模式(例如,串行)将经由接口接收的信息写入缓冲存储器并且将写入缓冲存储器的信息写入多个驱动器。在这样的示例中,指令可以包括执行以下操作的指令:至少部分地基于检测到的条件来调整至少一个参数值,其中,所述选择至少部分地基于至少一个参数值。
作为示例,方法可以包括:经由接口接收信息;将该信息写入缓冲存储器;将该信息从缓冲存储器写入多个驱动器;经由接口接收额外信息;通过从基板管理控制器接收信息来检测条件;以及响应于该条件,将附加信息直接写入多个驱动器。在这样的示例中,条件可以是输入操作(例如,写请求、写操作等)的速率。作为示例,基板管理控制器可以是服务器的基板管理控制器。
作为示例,系统可以包括例如可执行来管理一个或更多个操作系统的管理程序。关于管理程序,管理程序可以是或包括管理程序(加利福尼亚州帕洛阿尔托市的恩索有限公司(XENSOURCE,LLC,LTD))的元件。在系统中,管理程序通常是最低且最有特权的层。在该层之上,可以支持一个或更多个客户机操作系统,管理程序在一个或更多个物理CPU之间调度客户操作系统。在术语中,第一“客户机”操作系统被称为“域0”(dom0)。在常规的系统中,dom0OS在管理程序启动时自动被启动,并且给出特定的管理特权,并且默认地直接访问所有物理硬件。关于操作系统,计算平台可以使用OS、OS、OS或其他OS。
如本文中所描述的,各种动作、步骤等可以被实现为存储在一个或更多个计算机可读存储介质中的指令。例如,一个或更多个计算机可读存储介质可以包括指导装置的计算机可执行(例如,处理器可执行)指令。作为示例,计算机可读存储介质可以是不为载波的计算机可读存储介质。
在发明内容、具体实施方式和/或权利要求中使用术语“电路(circuit)”或“电路(circuitry)”。如本领域中众所周知的,术语“电路”包括所有级别的可用集成,例如,从分立逻辑电路到最高级电路集成,如VLSI,并且包括被编程成执行实施方式的功能的可编程逻辑部件以及被编程有执行这些功能的指令的通用或专用处理器。
虽然已经讨论了各种示例电路(circuit)或电路(circuitry),但是图12描绘了示例性计算机系统1200的框图。系统1200可以是诸如北卡罗来纳州莫里斯维尔市的联想(美国)公司售卖的或系列个人计算机等台式计算机系统、诸如计算机中之一等工作站计算机、诸如北卡罗来纳州莫里斯维尔市的联想(美国)公司售卖的服务器等服务器;然而,根据本文中的描述,显然,另一机器可以包括其他元件或系统1200的元件中的仅一些元件。
在图12的示例中,芯片组1210具有特定体系结构,其可以根据品牌或制造商在某种程度上变化。芯片组1210的体系结构包括内核和存储器控制组1220以及I/O控制器集线器1250,其经由例如直接管理接口或直接媒体接口(DMI)1242或链路控制器1244来交换信息(例如,数据、信号、命令等)。在图12的示例中,DMI1242是芯片至芯片接口(有时被称为“北桥”与“南桥”之间的链路)。
内核和存储器控制组1220包括一个或更多个处理器1222(例如,单核或多核)以及存储控制集线器1226,其经由前端总线(FSB)1224来交换信息。如本文中所描述的,内核和存储器控制组1220的各种部件可以被集成在例如单个处理器模上,以制成取代常规的“北桥”式体系结构的芯片。
存储控制集线器1226与存储器1240对接。例如,存储控制集线器1226可以给DDRSDRAM存储器(例如,DDR、DDR2、DDR3等)提供支持。通常,存储器1240是一种随机存取存储器(RAM)。其通常被称为“系统存储器”。
存储控制集线器1226还包括低压差分信号接口(LVDS)1232。该LVDS 1232可以是支持显示装置1292(例如,CRT、平板、投影仪等)的所谓的LVDS显示接口(LDI)。块1238包括可以经由LVDS接口1232(例如,串行数字视频、HDMI/DVI、显示端口)支持的技术的一些示例。存储器控制器集线器1226还包括例如支持独立显卡1236的一个或更多个PCI-express接口(PCI-E)1234。使用PCI-E接口的独立显卡已经变成加速图形端口(AGP)的替选方法。例如,存储控制集线器1226可以包括外部的基于PCI-E的显卡的16通道(x16)PCI-E端口。系统可以包括支持图形的AGP或PCI-E。
I/O集线器控制器1250包括各种接口。图12的示例包括SATA接口1251、一个或更多个PCI-E接口1252(可选地,一个或更多个传统PCI接口)、一个或更多个USB接口1253、LAN接口1254(更普遍地,网络接口)、通用I/O接口(GPIO)1255、低引脚数(LPC)接口1270、电力管理接口1261、时钟发生器接口1262、音频接口1263(例如,用于扬声器1294)、操作总成本(TCO)接口1264、系统管理总线接口(例如,多主机串行计算机总线接口)1265以及串行外围闪速存储器/控制器接口(SPI闪存)1266。在图12的示例中,SPI闪存1266包括BIOS 1268和启动码1290。关于网络连接,I/O集线器控制器1250可以包括与PCI-E接口端口复用的集成的吉比特以太网控制器线。其他网络元件可以独立于PCI接口而操作。
I/O集线器控制器1250的接口提供与各种装置、网络等的通信。例如,SATA接口1251提供在一个或更多个驱动器1280(如HDD、SDD或其组合)上读、写或读和写信息。I/O集线器控制器1250还可以包括先进的主机控制器接口(AHCI)以支持一个或更多个驱动器1280。PCI-E接口1252允许至装置、网络等的无线连接1282。USB接口1253提供用于诸如键盘(KB)、鼠标等输入装置1284以及各种其他装置(例如,相机、电话、存储装置、媒体播放器等)。
在图12的示例中,LPC接口1270提供用于一个或更多个ASIC 1271、可信平台模块(TPM)1272、超级I/O 1273、固件集线器1274、BIOS支持1275以及各种类型的存储器1276(如ROM 1277、闪存1278和非易失性RAM(NVRAM)1279)。关于TPM 1272,该模块可以是能够用于认证软件装置和硬件装置的芯片的形式。例如,TPM能够执行平台认证,并且可以用于验证试图访问的系统或部件是期望的系统或部件。
系统1200在上电时可以被配置成执行存储在SPI闪存1266内的用于BIOS 1268的启动码1290,并且之后在一个或更多个操作系统和应用软件(例如,存储在系统存储器1240中)的控制下处理数据。
作为示例,系统1200可以包括用于经由蜂窝网络、卫星网络或其他网络进行通信的电路。作为示例,该系统1200可以包括电池管理系统,例如适用于管理一个或更多个锂离子电池的智能电池电路。
结论
虽然以针对结构元件和/或方法动作的语言描述了方法、装置、系统等的各种示例,但是应当理解,所附权利要求中限定的主题不一定限于所描述的特定元件或动作。而是,特定元件或动作被公开作为实现所要求保护的方法、装置、系统等的形式的示例。
Claims (14)
1.一种信息处理设备,包括:
接口;
缓冲存储器;
多个驱动器;以及
控制器,包括检测电路、直写模式和回写模式,
其中,所述直写模式将经由所述接口接收的信息写入所述多个驱动器,
其中,所述回写模式将经由所述接口接收的信息写入所述缓冲存储器,并且将写入所述缓冲存储器的信息写入所述多个驱动器,并且
其中,所述检测电路至少部分地基于第一条件的检测来选择所述直写模式,以及至少部分地基于第二条件的检测来选择所述回写模式,其中,所述第一条件和所述第二条件不同;
其中,所述控制器包括一致性检查模式和非一致性检查模式,其中,所述检测电路至少部分地基于第一条件或第二条件的检测来选择所述一致性检查模式或所述非一致性检查模式。
2.根据权利要求1所述的设备,其中,所述第一条件包括与关联于所述接口的输入操作的第一速率相关联的第一时间,并且其中,所述第二条件包括与关联于所述接口的输入操作的第二速率相关联的第二时间。
3.根据权利要求2所述的设备,其中,输入操作的所述第一速率低于速率阈值。
4.根据权利要求2所述的设备,其中,输入操作的所述第二速率超过速率阈值。
5.根据权利要求1所述的设备,其中,所述第一条件是第一电力状态,并且其中,所述第二条件是第二电力状态。
6.根据权利要求1所述的设备,其中,所述第一条件是不稳定的电力状态条件。
7.根据权利要求1所述的设备,其中,所述第二条件是稳定的电力状态条件。
8.根据权利要求1所述的设备,其中,所述第一条件和所述第二条件包括环境状态条件。
9.根据权利要求1所述的设备,其中,所述第一条件是与不稳定的电力状态相对应的环境状态条件。
10.根据权利要求1所述的设备,其中,所述第二条件是与稳定的电力状态相对应的环境状态条件。
11.根据权利要求1所述的设备,其中,所述检测电路至少部分地基于检测的条件对至少一个参数值进行调整,其中,所述至少一个参数值包括阈值参数值,并且其中所述检测电路至少部分地基于所述阈值参数值来选择所述直写模式或所述回写模式。
12.根据权利要求1所述的设备,其中,所述检测的条件包括时间。
13.根据权利要求12所述的设备,包括调度表,所述调度表包括至少一个被调度的直写模式时间。
14.根据权利要求12所述的设备,包括调度表,所述调度表包括至少一个被调度的回写模式时间。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/491,770 US9740426B2 (en) | 2014-09-19 | 2014-09-19 | Drive array policy control |
US14/491,770 | 2014-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201332A CN106201332A (zh) | 2016-12-07 |
CN106201332B true CN106201332B (zh) | 2020-04-24 |
Family
ID=55444915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510359243.9A Active CN106201332B (zh) | 2014-09-19 | 2015-06-25 | 驱动器阵列策略控制 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9740426B2 (zh) |
CN (1) | CN106201332B (zh) |
DE (1) | DE102015115533B4 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8898398B2 (en) * | 2010-03-09 | 2014-11-25 | Microsoft Corporation | Dual-mode and/or dual-display shared resource computing with user-specific caches |
US10057330B2 (en) * | 2014-11-04 | 2018-08-21 | Intel Corporation | Apparatus and method for deferring asynchronous events notifications |
US9734358B2 (en) * | 2015-01-02 | 2017-08-15 | High Sec Labs Ltd | Self-locking USB protection pug device having LED to securely protect USB jack |
US20160254858A1 (en) * | 2015-02-26 | 2016-09-01 | Spire Global, Inc. | System and method for communication with autonomous system in multiple bands |
US10503445B2 (en) | 2015-03-23 | 2019-12-10 | Netapp, Inc. | Data structure store and data management |
US20170091042A1 (en) * | 2015-09-25 | 2017-03-30 | Quanta Computer Inc. | System and method for power loss protection of storage device |
US9678682B2 (en) | 2015-10-13 | 2017-06-13 | International Business Machines Corporation | Backup storage of vital debug information |
TWI607313B (zh) * | 2015-11-26 | 2017-12-01 | 神雲科技股份有限公司 | 機箱的控制系統 |
US10390114B2 (en) * | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
US10635158B1 (en) | 2016-12-23 | 2020-04-28 | Western Digital Technologies, Inc. | Write data protection at emergency power off |
CN107220159A (zh) * | 2017-05-26 | 2017-09-29 | 济南浪潮高新科技投资发展有限公司 | 一种实现bmc获取板载raid芯片磁盘状态信息的系统及方法 |
US11119669B2 (en) * | 2017-08-02 | 2021-09-14 | Seagate Technology Llc | External indicators for adaptive in-field recalibration |
CN110941582B (zh) * | 2019-11-08 | 2021-06-29 | 浪潮(北京)电子信息产业有限公司 | 一种bmc芯片的usb总线结构及其通信方法 |
CN111179981A (zh) * | 2019-12-31 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列连接机构 |
US20230004200A1 (en) * | 2021-07-01 | 2023-01-05 | Portwell Inc. | Board device of single board computer |
CN113703683B (zh) * | 2021-08-28 | 2022-05-13 | 江苏华存电子科技有限公司 | 一种单一的优化冗余存储系统的装置 |
CN117311637B (zh) * | 2023-10-12 | 2024-07-19 | 汇钜存储科技(东莞)有限公司 | 性能和数据安全可调式存储系统 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571324B1 (en) | 1997-06-26 | 2003-05-27 | Hewlett-Packard Development Company, L.P. | Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system |
US6760807B2 (en) * | 2001-11-14 | 2004-07-06 | International Business Machines Corporation | System, apparatus and method providing adaptive write policy for disk array controllers |
US7233880B2 (en) | 2003-09-11 | 2007-06-19 | Intel Corporation | Adaptive cache algorithm for temperature sensitive memory |
CN100350371C (zh) * | 2003-10-07 | 2007-11-21 | 普安科技股份有限公司 | 磁盘阵列一致性初始化方法 |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US7380067B2 (en) | 2004-07-19 | 2008-05-27 | Infortrend Technology, Inc. | IO-stream adaptive write caching policy adjustment |
US7500115B2 (en) * | 2005-06-03 | 2009-03-03 | Dell Products L.P. | Information handling system including a memory device capable of being powered by a battery |
US7546432B2 (en) * | 2006-05-09 | 2009-06-09 | Emc Corporation | Pass-through write policies of files in distributed storage management |
EP2191532A4 (en) * | 2008-03-27 | 2015-03-04 | Lsi Corp | DEVICE AND METHOD FOR PROVIDING ENHANCED CYCLES FOR LEARNING BATTERY STATUS |
US20090293051A1 (en) * | 2008-05-22 | 2009-11-26 | Fortinet, Inc., A Delaware Corporation | Monitoring and dynamic tuning of target system performance |
WO2010055494A1 (en) * | 2008-11-17 | 2010-05-20 | Nxp B.V. | A cache management policy and corresponding device |
US8161237B2 (en) | 2009-03-27 | 2012-04-17 | Lenovo (Singapore) Pte. Ltd. | Asymmetric load balancing for RAID storage systems |
JP5402693B2 (ja) | 2010-02-05 | 2014-01-29 | 富士通株式会社 | ディスクアレイ装置の制御方法及びディスクアレイ装置 |
US8719495B2 (en) | 2010-03-30 | 2014-05-06 | Lenovo (Singapore) Pte. Ltd. | Concatenating a first raid with a second raid |
JP5002719B1 (ja) * | 2011-03-10 | 2012-08-15 | 株式会社東芝 | 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法 |
US8700972B2 (en) * | 2011-08-17 | 2014-04-15 | Broadcom Corporation | Adaptive ultra-low voltage memory |
US9767032B2 (en) * | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US10025711B2 (en) * | 2012-01-16 | 2018-07-17 | Qualcomm Incorporated | Hybrid write-through/write-back cache policy managers, and related systems and methods |
US8949544B2 (en) * | 2012-11-19 | 2015-02-03 | Advanced Micro Devices, Inc. | Bypassing a cache when handling memory requests |
US9122588B1 (en) * | 2013-03-15 | 2015-09-01 | Virident Systems Inc. | Managing asymmetric memory system as a cache device |
JP5924819B2 (ja) * | 2013-06-10 | 2016-05-25 | 日本電気株式会社 | データ保全処理装置及びデータ保全処理プログラム |
US9183099B2 (en) * | 2013-11-12 | 2015-11-10 | Vmware, Inc. | Replication of a write-back cache using a placeholder virtual machine for resource management |
US20150186160A1 (en) * | 2014-01-02 | 2015-07-02 | Advanced Micro Devices, Inc. | Configuring processor policies based on predicted durations of active performance states |
US9274713B2 (en) * | 2014-04-03 | 2016-03-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache |
US20150293699A1 (en) * | 2014-04-11 | 2015-10-15 | Graham Bromley | Network-attached storage enhancement appliance |
-
2014
- 2014-09-19 US US14/491,770 patent/US9740426B2/en active Active
-
2015
- 2015-06-25 CN CN201510359243.9A patent/CN106201332B/zh active Active
- 2015-09-15 DE DE102015115533.8A patent/DE102015115533B4/de active Active
Also Published As
Publication number | Publication date |
---|---|
US20160085451A1 (en) | 2016-03-24 |
DE102015115533A1 (de) | 2016-03-24 |
DE102015115533B4 (de) | 2023-07-27 |
CN106201332A (zh) | 2016-12-07 |
US9740426B2 (en) | 2017-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201332B (zh) | 驱动器阵列策略控制 | |
US8639964B2 (en) | Systems and methods for improving reliability and availability of an information handling system | |
US9378145B2 (en) | Storage controller cache synchronization method and apparatus | |
CN109313473B (zh) | 处理设备的基于电压的热控制 | |
US8214610B2 (en) | Managing backup device metadata in a high availability disk subsystem | |
US20170091042A1 (en) | System and method for power loss protection of storage device | |
US20170090896A1 (en) | Automatic system software installation on boot | |
US8219851B2 (en) | System RAS protection for UMA style memory | |
US10459652B2 (en) | Evacuating blades in a storage array that includes a plurality of blades | |
CN103929465A (zh) | 用于远程环境的数据存储 | |
CN106557143B (zh) | 用于数据存储设备的装置和方法 | |
US8195874B2 (en) | Storage apparatus and method for shredding storage medium | |
TW202137034A (zh) | 自動偵測及警示計算裝置組件變更的方法和系統 | |
CN106250051A (zh) | 磁盘驱动器速度管理方法与系统 | |
CN110618785A (zh) | 双控存储系统 | |
US9047190B2 (en) | Intrusion protection for a client blade | |
US7177782B2 (en) | Methods and arrangements for capturing runtime information | |
US20110296236A1 (en) | Information Processing Apparatus | |
CN107294759B (zh) | 服务器系统及数据存取方法 | |
TW202026938A (zh) | 經由邊帶介面恢復場域可程式閘陣列韌體之系統及方法 | |
CN113050896A (zh) | 一种支持nvdimm的国产飞腾服务器及数据保护方法 | |
US11385815B2 (en) | Storage system | |
CN113419884B (zh) | 防止bmc镜像文件损坏的方法、装置、终端及存储介质 | |
US11226862B1 (en) | System and method for baseboard management controller boot first resiliency | |
US9836359B2 (en) | Storage and control method of the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210610 Address after: 23 / F, Lincoln building, 979 King's road, Quarry Bay, Hong Kong, China Patentee after: Lenovo PC International Limited Address before: Singapore City Patentee before: Lenovo (Singapore) Pte. Ltd. |