存储分析:专家漫谈Scale-out和Scale-up

近来在存储界,有大量关于scale-out(横向扩展)和scale-up(纵向扩展)技术架构的讨论,而有些人可能还不知道这两个术语究竟是不是一回事儿。对于IT专业的人员来说,理解这两个技术的区别能够避免混淆,对他们的产品采购规划,以及评估这两类产品能给他们的应用环境带来多少价值、成本和复杂度具有重要的意义。

出于采购决策的需要,IT专业人员必须理解scale-up 和scale-out之间究竟有哪些不同。以下是一些最基本的信息,可为我们更详细的评估提供参考。

Scale-up,即纵向扩展架构。从下面的拓扑图我们可见,纵向扩展是利用现有的存储系统,通过不断增加存储容量来满足数据增长的需求。

纵向扩展架构不必增加基础设施设备 ——比如扩展网络连接能力 ——就可以完成容量的升级。然而,在容量增长的同时,仍然需要增加物理空间、电力消耗和散热能力。它不会通过控制器扩容的方式来响应主机端额外的处理请求。这也意味着用户不必为了额外的控制功能而增加开销。

因此纵向扩展架构的扩容成本不会线性增长,只需要增加存储介质设备。

Scale-out横向扩展架构的升级通常是以节点为单位,容量和性能会同步增长。与那些控制器固定配置的存储系统不同,它会扩展更多的功能性部件(通常是控制器或控制卡)。但Scale-out架构的存储系统在扩展之后,从用户的视角看起来仍然是一个单一的系统,这一点与我们将多个相互独立的存储系统简单的叠加在一个机柜中是完全不同的。

有几种方法可以实现scale-out,即横向扩展,包括集群存储系统和网格存储。这两类产品的定义同样容易混淆,但无论是哪种类型的系统,能够以一个单一系统的形式被访问和使用是scale-out解决方案的基本前提。

下图展示了scale-out存储方案的架构。在图中,系统只能通过增加具有完整功能的节点进行扩展,但一个scale-out系统可以有很多节点,而且节点之间的内部物理互联距离也可以很远。

上图的例子中,scale-out系统在扩展控制功能和容量的同时仍然保持一个单一的访问界面。而这背后,是存储和控制器以及集群或网格中节点之间的互联。因此,这种扩展也可能需要增加额外的基础设施来实现,比如说存储交换机。

系统横向扩展时同样需要电力、散热和机房空间,整体扩展成本包括增加容量、增加控制部件和基础设施。从上面的图例可见,容量增长和性能扩展(即增加额外的控制器)是同时进行。

Scale-up和scale-out并非不能融合在一起,很多存储系统就可以同时实现纵向扩展和横向扩展。下面的示意图就展示了这种方案。

我们需要考虑的事项

究竟选择scale-up还是scale-out架构?我们主要考虑以下因素:

Scale-up架构只有容量升级的成本,不会增加控制器或基础设施的开销。如果我们主要衡量每GB存储的单位价格,scale-up的扩展方式无疑更便宜一些。

容量。两种解决方案都可以满足容量需求,但scale-up架构也许会有些限制,主要取决于单个系统最大支持多少个磁盘数量和多大的容量。

性能。Scale-out架构在性能上具有扩展潜力,在多个存储控制器下,IOPS处理能力和吞吐带宽都可以聚合。虽然节点之间的通信会引发延迟,但那是部署时的细节问题。

管理。Scale-up架构本身就是以单一系统的方式来进行管理的。而Scale-out架构通常有聚合管理的能力,但每个厂商提供的产品可能会有所不同。

复杂性。Scale-up架构的存储相对简单,而scale-out架构的系统会更复杂一些,毕竟每个节点都需要管理。

可用性。多个节点可以提供更好的可用性,假使有一个部件故障或失效,系统也不至于整体宕机。这一点与具体的实施方案也有关系。

在选择scale-up还是scale-out的时候,我们要考虑大量的因素。而结果往往取决于哪个厂商有比其他人更好的整体方案、实施能力和技术优势。但我们最好从了解最基本的信息起步,了解这两种技术及其之间的差别。