基于通用控制器的i/o卡架構的制作方法
【專利說明】
【背景技術】
[0001]網絡附屬存儲(NAS)設備可以包括用于其存儲設備的各種盤位(bay)。然而,隨著驅動器數量的增長,NAS設備通常需要更強大的處理器和不同的主板,獨立磁盤冗余陣列(RAID)、以及電源和機殼(enclosure)管理架構,以用于支持不同數量的驅動器。這使得硬件和軟件開發以及不同NAS產品的花費變得難以管理。
[0002]NAS系統通常使用具有受限的尋址能力的I2C端口擴展器,用于檢測/控制固定數量的驅動器。這樣的I2C端口擴展器僅能夠通過在另一個I2C地址上添加另一個端口擴展器而是可擴充的。然而,這些機殼管理技術使用所有受限的I2C尋址空間,并且僅能夠控制有限數量的驅動器。令人遺憾的是,當使用端口擴展器時,軟件和控制系統必須被不同地修改或者配置來對設備進行尋址。這使得硬件和軟件設計二者更復雜并且花費更高。
【附圖說明】
[0003]在所有附圖中,可以再使用附圖標記來指示所引用的元素之間的相關性。提供附圖來示出本文描述的示例實施例,并且附圖并不是要限制本公開的范圍。
[0004]圖1不出了根據實施例的設備。
[0005]圖2示出了根據一個實施例的圖1的設備的中平面(midplane)的框圖。
[0006]圖3是根據一個實施例的方法的流程圖。
【具體實施方式】
[0007]—個實施例包括存儲設備(例如,NAS)的I/O卡(或可擴充的底板,這兩個短語在本文中可互換地使用)。1/0卡可以包括接口,所述接口被配置為使得I/O卡能夠耦合到存儲設備的主板。根據一個實施例,接口可擴充用于多個范圍的存儲。I/O卡上的I/O卡控制器可以被配置為識別所述接口并且基于所述接口的識別來確定底板的一個或多個配置。
[0008]另一個實施例與如下的存儲設備相關,所述存儲設備可擴充用于多個范圍的存儲,并且包括機殼;主板;耦合到主板的I/O卡以及耦合到I/O卡的驅動器的集合。I/O卡可以被配置為基于能夠選擇性地對不同數量的存儲設備進行尋址的通用架構來在多個范圍的存儲上與主板進行連接。
[0009]—個實施例與如下的I/O卡相關,所述I/O卡包括被配置為耦合到存儲設備的主板的接口 ; I/o控制器,其被配置為識別所述接口并且基于對所述接口的識別來確定在底板中提供的模塊化的接口的集合的配置。例如,模塊化的接口可以與驅動器的電源管理、機殼管理(ECM)、LED狀態/活動、電源控制/定序、RAID的控制器、以及在串行附連的小型計算機系統接口(SAS)或串行高級技術附件(SATA)接口之間的轉換相關。
[0010]如所指出的,公知的存儲設備(例如,NAS設備)可以包括多個盤位以用于容納多個存儲介質。實施例與采用通用架構的方法和系統有關,其可以被擴展用于多個存儲設備的不同范圍的盤位。特別地,根據實施例的架構包括可以適合于一數量范圍的盤位的可擴充的接口。在一個實施例中,通用架構包括采用串行寄存器以及串行尋址而不是端口擴展器來連接到盤位的底板架構。
[0011]實施例可以被配置為自動檢測底板變體(variant)以及耦合到主板的驅動器的數量。例如,每一個底板變體可以具有如下標識符,其具有指示底板的各種特性的格式,所述各種特性例如是其品牌類型、接口的數量、可選擇的部件等等。在一些實施例中,標識符可以包括嵌入在其格式中指定位置處的由主板可識別的字段。主板然后基于I/O卡104提供的標識符來對其操作的一個或多個配置設置進行選擇或映射。
[0012]由此,主板可以識別I/O卡(其可以被配置為轉接卡(risercard)),并且可以配置其它部件以用于配合。特別地,主板控制器對于所有類型的設備可以是相同的。類似地,在主板控制器上執行的軟件在配置上可以是相同的或者基本上相同的。在一個實施例中,自動檢測可以由主板控制器使用來配置例如LED配置、電源定序等。
[0013]值得注意的是,通用架構是靈活的,并且能夠與諸如安裝在機架上的形狀因子以及機架形狀因子之類的不同的形狀因子一起使用。另外,實施例能夠使通用I/O卡用于任何類型的主板控制器,例如,Intel的Xeon或者雙核Xeon。因而,設備驅動器的設計和維護也是簡化的,這樣因為不管所支持的盤位的數量,應用程序編程接口(API)保持為相對不變的。換句話說,設備的數量變為僅僅是參數而不是主要標準。
[0014]本公開與可以在不同的平臺上采用的用于I/O卡的方法和系統有關。在一個實施例中,不是將這樣的功能實現在中平面中,I/O卡可以被配置為確定系統的個性,例如,機殼管理、與溫度控制、驅動器的錯誤狀態、驅動器存在檢測、電源定序、風扇控制等有關。另外,在一個實施例中,系統控制和存儲管理(RAID)可以被控制為單個卡上的一個個性。該特征簡化了設備的軟件設計,這是因為它消除或減少了存儲API和機殼管理API的單獨的軟件研發的需要。之前,這些單獨的API需要相對應的單獨的軟件研發努力,這導致了延遲以及增加的花費。因此,根據一個實施例的I/O卡能夠但是不要求將機殼管理和RAID管理進行集成。例如,實施例能夠對哪個驅動器被配置為引導驅動器,以及哪個驅動器被配置為數據驅動器進行定制。
[0015]本文在安裝在機架上的NAS設備的上下文中來描述實施例的方面。然而,本文中的實施例適用于任何形狀因子,例如,底座形狀因子或桌面型形狀因子。另外,實施例可以適用于不同類型的設備,例如,服務器、路由器等。此外,實施例可以容易地用于普通磁盤簇(JB0D)和 RAIDB0D 的擴充。
[0016]如圖1所示,根據一個實施例的設備100包括控制器板(也被稱為主板)102、1/0卡104(在本文中也被稱為可擴充底板)、以及驅動器或存儲設備的集合106。驅動器的集合106可以被配置為RAID,并且設備100可以被配置為NAS。在圖1中示出的示例性實現中,相同的主板102和主板控制器108可以在具有不同的配置和不同數量的盤位的NAS設備上使用。I/O卡104可以被配置用于RAID控制、電源控制以及機殼管理職責,以及其它可能的功能。I/O卡104在物理上可以被配置為耦合到主板102的轉接卡,使得主板/控制器102能夠容納不同數量的驅動器以及不同類型的接口,例如,SAS或SATA。在一個實施例中,I/O卡104可以是獨立的卡,其雖然與主板102耦合,但是其是與主板102分離的。另外,在一些實施例中,機殼管理和/或其它職責也可以由單獨的、獨立的卡來進行履行。
[0017]如所示出的,設備100的控制器板102可以包括耦合到接口(例如,外圍部件互連(PCI)接口或快速PCI (PCI e)接口 100)的主板控制器108。接口 110可以耦合到可擴充底板或I/O卡104。1/0卡104可以包括I/O卡控制器112,其被配置為(除其它功能以外)經由例如串行外圍接口(SPI)信號118來檢測存儲驅動器106何時存在于接口 124上,并且經由電源控制器116來接通到存儲驅動器106的電源信號120。電源控制器116可以被配置為例如經由I/O卡104上的16針驅動器電源連接器向驅動器106供應5V和12V。電源控制器116可以被配置為提供其它電壓電平。I/O卡104可以進一步被配置為控制風扇126。根據一個實施例,I/O卡控制器112可以耦合到風扇126并且可以被配置為經由接口來與主板控制器108進行通信,以動態地控制風扇126。
[0018]接口124根據一個實施例可以被配置為可擴充的驅動器接口,其被配置為實現串行尋址方案以訪問存儲驅動器106。為實現所述目標,包括所述可擴充驅動器接口 124的中平面122可以包括一個或多個移位寄存器,以實現串行尋址格式。中平面122還被配置為包括機載SATA連接器,其被配置為從I/O卡控制器112和/或RAID控制器114傳送電源信號120和SATA信號118。
[0019]如所示出的,圖1的架構可以被擴展為不同配置中的不同數量的驅動器。例如,可以實現包括通用主板控制器108和I/O卡104的1U(機架單元)NAS,其可以被擴展為4盤位以及10盤位,如128和130所示出的。可替代地,在圖1中示出的架構可以實現具有通用控制器板102和I/O卡104的2U NAS,其可以被擴展為12盤位和24盤位,如在132和134所分別示出的。其它實現和配置是可能的。
[0020]重要的是,因為如圖1所示