做过大型IT系统维护的人员大多会遇到这样的情况:IT系统上线时运行速度比较快,但运行一段时间(如1年多)后,系统的运行速度明显降低,远远没有达到系统的设计目标,需要紧急扩容等。出现这种情况时,系统的运行质量往往会大幅度降低,影响业务部门或客户的满意度,而进行扩容需要大量的硬件和软件投资,而且变更会带来很大的风险。
上述情况中,既有业务超常发展的原因,也有业务复杂度的提高增加系统资源开销的原因,而没有实施信息生命周期管理也是一个重要的原因。
信息增长带来的压力
信息快速增长给维护管理带来了挑战。1997年,山东移动业务支撑系统全省的信息量只有76GB,短短几年,目前在线存储总量达到了330TB。
数据量快速增长的主要原因有几方面:业务量增长——从1997年到2004年,用户数增长了十几倍,目前用户数以每年几百万的速度发展,并且每用户通话使用量(MOU)也大幅增长;服务质量的提高——公司为客户提供包括市话、短信等详细话单在线6个月的查询,这需要很大的空间,而为了给客户提供不间断的业务处理能力,公司投入巨资正在进行容灾系统的建设;管理精细化——新建的经营分析系统提供了主动营销、资费预演等强大功能,为公司经营和客户服务提供了有力支撑,而内部业务管理的精细化也需要很大的存储空间进行支撑。
从数据量的增长分布来看,用户数增长占数据增长的60%,经营管理占24%,服务质量的提高占16%。
如何应对挑战
1.存储安全性挑战
从网络安全角度分析,安全的基本原则包括三个方面:机密性(confidentiality)、可用性(availability)、完整性(integrity)。
数据丢失:这是最严重的,相当于网络安全定义中的完整性。出现数据丢失时,往往会造成长时间的数据不可用。造成数据丢失的原因很多,从发生部位可以分为硬件、数据库、应用软件等;从丢失造成的原因上可分为人为和非人为。
可用性:造成不可用的原因很多,有数据丢失造成的不可用,也有存储设备出现问题导致的不可用。
非法访问:对应于网络安全的机密性。因山东移动的系统是专网系统,从存储角度很难出现非法访问,但在数据库及应用方面,非法访问的控制压力是很大的。
数据迁移:在进行数据迁移时,存在数据一致性等风险。从本质上讲,访问效率也属于安全性问题,当访问效率出现严重问题,将严重影响系统正常运行,从而引起业务系统崩溃。
存储本身的效率:存储本身的效率包含存储本身的性能及发挥。
数据访问的效率:数据访问主要与应用有关,包含应用程序执行效率和数据分布等。
对安全性进行排序,金字塔最上面的是数据丢失,对系统造成的影响最大,依次往下是可用性、非法访问、访问效率和数据迁移,影响逐渐降低。
2.应对存储安全性问题
在集中和分散中寻找一个平衡,将单点故障对整个系统的影响降至最低,在集中带来的维护方便性和分散带来的安全性中寻找一个平衡点。
进行信息生命周期管理(ILM),依重要性不同对数据进行分级。
以面向客户服务为基准,对业务系统进行优先级管理。从面向客户服务的业务中,梳理出提供服务的业务系统,进而找出支撑业务系统的数据。从面向客户角度可以进行分类,如营业系统、计费系统等面向客户的业务,非面向客户的业务如结算系统等。面向客户的服务优先级要比非面向客户的服务高。
制定可行的维护体系。首先要制定可恢复的备份规则。备份的目的是恢复,一定要进行恢复测试,证明备份规则是有效的。另外,不要过分依赖或迷信设备技术,如RAID、容错、冗余等,提防小概率事件的发生。其次是建立资源管理模型,一方面从时间和空间域上对资源利用情况进行分析,另一方面将资源利用与业务量模型相结合,制定设备资源的KPI模型。
如何进行平衡存放呢?主要有以下两个方面要考虑:一是鸡蛋不要放在一个篮子里,即使存储的容量能够满足,但对于很庞大的系统,也不要选择一台存储设备,而要根据信息重要性进行分类,通过多台存储可以降低风险;二是同一个篮子里的蛋也要进行相对隔离,目的是在故障出现时,把对整个系统的影响降至最低。
如何应对数据量庞大的问题呢?主要是以信息生命周期管理(ILM)理念来解决信息量庞大的问题。信息生命周期管理分为创建、保护、访问、迁移、归档、回收六个阶段,包含系统的开发设计阶段,也包含系统维护阶段。
信息生命周期管理首先要对业务进行梳理,根据业务数据重要性进行分类,确定不同的包含方式。其次,通过将数据按优先级进行分类,在确保系统总体拥有成本的前提下,确定相应的数据所需要的存储系统。通过对数据进行分类,可以提高整个系统的安全级别,做到重要数据重点保护,还可以对关键业务、关键数据实施容灾保护。通过对数据进行分类,可以降低系统总体拥有成本。成本与安全是一对矛盾,需要寻找一个平衡,在满足业务需求的前提下,降低系统投资,而且可以针对不同业务服务级别提供针对性的维护,从而降低整个系统的总体拥有成本。
3.提高数据的访问效率
数据的访问效率与存储、应用等都有关系,但存储作为数据访问的最低端,是系统运行效率的基础和根本。通过“开源节流”的方式可以提高数据的访问效率。开源就是在设计阶段发挥整个存储的性能,节流就是在设计和维护阶段,降低应用对存储的资源需求。
(1)设计阶段
规划设计对整个系统的运行质量是至关重要的,要引起足够重视,不能草率完成。
对上线应用应该进行测试或测算,评估需求模型,在条件允许的情况下,最好进行实际数据测试,可以减少系统上线风险。要相信测试值,不要相信理论值,因理论值测试的环境与生产环境相差很大,不具有可比性。要发挥整个存储阵列的性能,避免热盘瓶颈。当某些资源出现瓶颈时,将影响整个系统的运行效率。对速度要求敏感的系统,可以空间换效率。在一个系统内部,也存在资源需求不均的情况,如数据重做日志,产生的写数据量较大,对速度要求较高,划分时要进行考虑,否则将影响整个数据库的运行。
(2)维护阶段
从设备角度看,要对存储定期进行分析,提出优化和扩容建议。首先,从时间域和空间域上对存储运行情况进行分析,找出运行瓶颈。其次,制定KPI运行曲线,为扩容提供依据。根据系统自身的应用特点,制定可行的KPI曲线,可以得到不同时间磁盘阵列的利用率情况,从而为优化和扩容提供依据。
从应用角度分析,主要目的是减少读写磁盘数量。将读写磁盘最高的应用从高到低进行排序,优先优化前面的应用。优化的方式有尽量使用索引、迁移历史数据等。很多系统上线初期运行很好,一段时间后,系统运行效率明显降低,产生的历史数据对应用效率影响很大。我们曾经做过一次系统优化,只是清理了历史数据,系统的运行效率就提高了20%。此外,在设计阶段可能会有考虑不周全的情况,或者在使用一段时间后,系统出现磁盘数据不平衡的状况,这时就需要进行调整。总之,历史数据的整理应该纳入例行的维护任务,而不应该在出现性能瓶颈时再处理。另外,在软件设计时,应该多考虑磁盘节流,从源头上进行控制。
信息生命周期管理的六个阶段
小结
面对信息的快速增长,应以最优的TCO为基础,充分利用人员、流程、技术三大要素,通过设计阶段平衡存放、信息生命周期管理,以及维护阶段的可实施的维护体系管理,最终达到合适的安全性目标,就能解决信息快速增长带来的挑战。