2008年(8065)
分类: 服务器与存储
2008-07-08 16:19:45
体会到双机与存储阵列为应用带来的巨大好处,我们将另外一套生产中的单机系统换成了双机,当时因为经费的原因,没有选择磁盘阵列,选择了散盘。选择散盘柜之后,经过对这组盘经过认真仔细的划分,根据应用需要对应作成了不同的RAID级别,而后就将两台主机与散盘柜通过光纤交换机相连,配制成高可靠性集群。大家都非常期待见到该应用系统运转良好,客户反馈好评如潮。没想到压力上来后,运转效率低下的远远超乎我们的想象。由于散盘其本身没有控制器,它所有的运算,分配,读写操作的负担全部压在主机一侧,盘的读写操作、运算工作负荷和外界对服务器应用的访问使用压得服务器动弹不得,万般无奈之下,增加了一个磁盘阵列来做智能化的存储。换过磁盘阵列后,提供服务的效果方才转变。
看到此处,相信很多人都会皱眉头说,这不是显而易见的嘛,散盘柜的运行效率怎么可能会比拥有控制器的智能化存储阵列相比。既然已经用了磁盘阵列,怎么还会倒退回去使用散盘柜,来用主机的CPU进行计算和分配呢。话虽然是这么说,但如果没有这一次的弯路,我们对存储阵列(这里所说的存储阵列是比较早期的低端些的存储)究竟比散盘柜的好多少的的感觉只是一个大概的感觉,甚至我们可能还抱有一些幻想,就是如果散盘配制合理得当,其效率不见得会比磁盘阵列慢。但事实胜于雄辩,更换使用磁盘阵列之后系统效率的提高不仅仅是成倍的关系,运行速度的提高了一个数量级。
如果从现在看来,这种选择的弯路的确可以避免,但当时,因为这样的选择和弯路,我们却因此切身的体会到存储自身提供的虚拟化和本身控制器的效能会给应用充分的加分。
伴随这应用的逐渐增多,管理的系统也呈现了两种,一个是SAN的数量变多(不同类型的应用被部署在不同的SAN),另一个是每个SAN需要管理的服务器和存储数量增加。SAN的数量上增加仅仅是从量上的变化,其基本结构不足以引起我们的兴趣,但一个SAN内的设备数量的增加,对虚拟存储的支持力度就越来越大了。智能化的存储,有内置的算法,作磁盘存储的默认算法,这些算法负责掌管数据怎么读出来,怎么写进去,哪些东西从cache里请出去,哪些可以留下来,数据坏了怎么使用热备盘等等。这些规矩定下之后,这个存储对我们而言就是透明的了。我们不关心磁盘的数据存在哪里,只关系把那些逻辑盘究竟给了哪个服务器,我们最终可以使用的存储空间有多少。在一个较大范围的SAN里面,我们用多个存储支持着多个主机,也用一个存储支持着多个主机,多个存储支持着一个主机。多对多的虚拟化在不同程度上得到了实现和发挥。
我们得到了一个SAN,里面的数据存储已经实现了虚拟化,然而,这距离信息生命周期的完整闭环仍然距离遥远。存储行业中的分类和策略服务、整合、业务连续性、恢复和归档、法规遵从和内容 管理等存储策略,体现了信息生命周期管理的不同应用领域。在这个里面,我们已经根据不同数据的存储情况,对经常访问的数据,使用了较快的硬盘存储,对可靠性要求高的数据,做了镜像,保证了数据的存储的分类和策略。同时,目前使用的Ultrium二代的磁带作数据的备份存储,归档保存和恢复,可以基本保证数据的可靠性。为保证业务的连续性,重要应用均采用双机Fail over切换,Oracle数据库也采用高可靠性的RAC(Real Application Cluster),这些都在一定程度上保证了业务的连续性。
上述设备和应用,虽然在一定程度上保证了信息在生命周期的各个阶段的有效性和可靠性,但其中的几个问题仍然是今后需要仔细解决的。接下来,我们会详细看看目前现有系统可能存在的问题和今后对问题解决的方法。
按照信息生命周期来思考,磁带备份并不是作为数据恢复的最佳媒介,磁盘的快速恢复对业务的恢复。而由于可以异地存放和保留较长时间,是归档保存的不二选择。保证业务连续性的恢复更好的方法是有双套存储系统,一套远程,一套眼前。然后夜晚做异步复制(对于一般业务)。这样即使本地发生什么意外,都可以立刻切换到灾备中心。但这种大手笔的方法,实在不是一般的业务所能承受的。其次的方式就是选择一套低端磁盘作存储使用。磁带作离线保存。这个就是我们正在计算准备的数据保存方法。也会在提高业务连续性的同时,体现信息生命周期的管理。
这里,选择低端磁盘的使用,或者利用现有旧的磁盘阵列,都涉及到虚拟化。目前,我们购买的 hp 的XP12000(即HDS的USP系列)。XP12000已经对某些特定的存储作了支持,可以支持在存储阵列端的虚拟化。这样,在我们将某些特定的磁盘阵列加到这个盘阵的存储池中,就可以成为一个大的虚拟存储。或者,我们可以依靠SAN,在这个存储网络里增加低端硬盘,成为近线存储,在离线和在线存储中减少过度的跨度。而低端的硬盘盘阵,对于主机,同样是一个有着一定空间的挂接点,对于存储备份软件,它却是存储和备份的虚拟磁带机。
想法不错,但实施起来需要软件的帮助。大家都知道,很多存储软件早就已经作到了将硬盘虚拟成磁带机来进行数据存储的方法。用这种方法,我们就可以将在线的数据以快于备份到磁带上的速度存储在近线的磁盘存储上。而后,我们可以将这份数据保存到磁带上。这种做法说起来很容易,维护起来也可以实现,只是需要考虑很多因素。比如磁盘的数据保存周期,哪些数据copy到磁带上,Oracle数据库的归档日志维护改变等等。最近,我使用的备份软件,升级后可以在一个完整作业中维护磁盘和磁带两套备份。其具体步骤是目标地点可以同时选择磁盘和磁带,并可以分别对它们的保留时间和磁带、磁盘的擦除时间作出循环规定。通过这个方法,我们很容易的就可以定义在磁盘上的多份近线备份(建议不要留太多份),同时,可以在磁带上留下离线的备份数据,增加可靠性。在软件的帮助下,已经开始做一些不太大,但变化很多,很重要的数据的磁盘近线的临时备份,等到有便宜的大型存储接入存储网络后,就可以将很多重要数据快速存储在两个不同地点,进一步提高系统的可靠性和业务连续性了。
存储的虚拟化作为技术,简化了与存储有关的上下游的工作人员的需要考虑的问题。它对用户而言变成透明的,在存储数据的时候,用户并不关系他存储的数据究竟在物理位置的哪块盘上,具体哪个存储设备上。对我们的工作而言,它帮助信息在日趋复杂的异构平台上完满的完成生命周期,让数据更,更可靠。