前言
上期为各位介绍的扇区管理技术,是一个高效能、有弹性、可延展的电子商务数据库基础之一,具备初期与后续硬件投资成本较低及主机架构的扇区可补充RAID磁盘子系统等优点。除了扇区管理技术外,另一个储存管理的重要技术则为文件系统,它可强化数据库表格与索引的效能、弹性与管理,本期将为各位进行深入的探讨。
文件系统功能的充分发挥
文件系统[File Syetem]虽可强化数据库表格[Table]与索引[Index]的效能、弹性与管理,但当作数据库使用时的最大限制就是:
1.脆弱的永续性保证
大部分的文件系统在数据实际写入磁盘之前,就发出I/O完成讯号给应用软件。数据库管理系统因而无法保证数据的永续性,甚至于数据完整性。
2.缺乏效率的传输特性
大部份的文件系统会在写入磁盘之前,先将数据移动到核心暂存区的高速缓存,而产生极高的处理时间。
3.不适切的分享方式
大部份的文件系统会要求应用软件写入档案至核心。对数据库管理系统而言,这是多余的步骤,会降低效能。
但好的文件系统基础架构就没有这些限制,而且,还提供额外的优势,可将档案当作电子商务数据库表格使用。以下介绍几项具优势的文件系统功能。
延伸基础[Extend-Based]的文件系统
延伸基础的文件系统会以各种长度来分配储存空间,而非以UNIX传统的8Kbyte固定长度。每个延伸都是一群依序任意编码的磁盘区块,可以精确地运用起始区块号码与区块数而描述。延伸描述程序内含在磁盘中的档案描述程序中[内部节点, inodes]。因为每个延伸都很大,单一内部节点可以将极大的档案对应至扇区的区块上,且费用极低。请参考(图一)。
对数据库管理系统而言,延伸的主要好处就是可以获得更大的连续储存区域,而支出较少的结构损失。大规模连续储存区域可为数据库管理系统提供下列利益:
1.更小的储存描述程序架构
因为每个描述程序可以对应更多的区域,而且对应一个档案仅需更少的描述程序。更少的描述程序意指在应用软件要求的档案,与I/O要求所指定的磁盘或扇区定位之间的更快速转译。
2.更有效率的I/O
更大的连续储存区域可提供更大规模的I/O使用,进行连续的数据库表格扫瞄。这样可减少I/O处理费用和时间,而无需等待磁盘转动到起点以供进行下一个数据库传输。甚至,大规模的连续储存区域还可以减少磁盘分裂[disk fragmentation],磁盘分裂就是个别数据对象被分割储存于磁盘的多个不连续位置。磁盘分裂会造成较差的全面I/O效率,因为某些应用软件要求会被分割成多重磁盘要求,以对应非连续的数据要求。
3.积极的连续I/O政策
连续放置的数据可在连续数据库表格扫描时优先读取,可减少存取延迟。并且,若数据连续放置,文件系统还可以将某些应用软件写入要求整合为一[有时称为I/O要求丛集],减少处理时间并增加I/O效率。
4.更大规模的档案
延伸基础的储存配置可支持更大的档案。
预先分派以提高效率和应用软件的卓越性
对于非数据库的应用软件,档案新增、更新和删除是非常频繁的。然而相对地,数据库是静态的库表格架构。数据库表格空间之新增、更新与删除是非常少见的。
文件系统若能容许在新增档案时保留储存空间,这样对电子商务数据库有两大优点:
1.优化的数据规划
数据库管理者建立可使用空间保留的全新数据库,为已知的要求建立最佳的数据库表格空间规划。
空间分配失败率极低
文件系统会在配置新档案空间之前,进行事先的空间保留。若既有的数据表空间已经保留以备未来成长之需,交易与批作业将不会因为可避免的空间分配不当而失败。
迅速恢复,强化系统可用性
即使是做了最好准备的电子商务系统,仍然可能出现问题。应用软件、硬件零组件或操作的程序都可能导致系统故障,因此必须要有应变的恢复计划。而恢复计划最重要的就是尽快让应用软件重新启动。
当忙碌的系统故障时,其文件系统结构的完整性就令人怀疑了。可能档案已经被新增、更新或删除了,而后续文件系统的数据却仍未更新。在不当的时机发生系统故障,可能会引起档案或储存空间的丧失,甚至一个区块重复配置数个档案。
通常确认文件系统数据完整性的方法,就是执行程序检查与修理文件系统架构的完整性,然后才加以使用。在UNIX系统,这个程序通常叫fsck [文件系统检查]。Windows操作系统也具备相同的能力。
fsck程序与其他类似的程序会确认文件系统的结构,并确定没有磁盘区块丧失或重复配置。可能会恢复部份的数据变更,导致遗失一些最近的更新,但文件系统在架构上仍然完整无缺。而在电子商务上使用fsck的问题在于,大规模文件系统必需花费较长时间执行[估计每一gigabyte的数据约需2-5分钟]。而且恢复时间可能需要很久,在fsck完成之前没有一个软件可以开始执行[包括数据库管理系统],此举将降低系统的可用性。
当系统故障恢复之后,文件系统会读取更动记录,然后确保全部数据更新的一致性。由于与大型文件系统中的全体数据数量相比,不完全数据更新的数量实在微乎其微,回放更动记录的速度一定比执行完整的fsck更快。这样可以让文件系统更快检查完成并可使用,使数据库管理系统更早恢复数据库,强化了系统的可用性。
在线管理,时势所趋
因为电子商务仍在萌芽,各企业的电子商务信息系统仍将继续成长和改变。成长与改变两者都必须将大量的数据从某位置移动到其他位置:
- ● 数据库的成长超过储存容量,而被迫要扩大或更换;
- ● 数据库必需形成整块扇区以改善效能;
- ● 数据库必需从某计算机上或实际储存位置移动到其他计算机或储存位置;
重整、扩大与重新定位数据的需求对电子商务非常重要,可提高数据的可用性。
在线重整
在应用软件执行时,若档案被新增、更新、截断或删除,随着时间过去,扇区会变成残破不全的片段。而在残破的扇区,如(图二)右边所示,档案和自由空间混杂在一起,可供新档案运用的自由空间会被分割得零零落落,导致即使在扇区中仍有许多空间,但要求大型连续空间的档案新增要求仍会失败。此时非连续配置的要求会成功,但存取片断档案需花费许多时间,导致效能低落。
文件系统需能重整[defragement]扇区来加以补救。文件系统可以将档案从一组区块移动到另一组区块,并更新内容以反映档案的新位置。这对应用软件是透通的,可以在移动前与后存取档案。若同一扇区的所有档案是连续的,则该扇区的自由空间会更稳定,也就是说这个扇区已重整了,如图二左边所示。
移动未使用的档案很容易,但是移动应用软件正在使用的档案就是难题了。例如,要移动100个区块的档案,当已经移动50个区块之后,某应用软件使用旧的数据来更改第一区块,则数据更新时该区块可能被遗漏。
(图三)说明文件系统如何在旧的位置与新的位置,反映移动档案时的应用软件更新。若应用软件更新的区块已经复制,文件系统会完整地复制更新至新旧位置。如此一来,即使数据库仍在使用中,仍可让数据库表格与其他档案就定位。
移动数据库容纳档案
数据库表格空间、数据表与索引通常是相对静态的,在数据库建置和重新规划之前就已经被定义。更改结构则是少数的例外。因此,虽然电子商务数据库储存装置偶而需要重整,但绝非在线档案重新配置功能的主要用途。
数据库管理者之所以在数据库表格空间被使用中仍加以移动,以满足延伸、重新定位或重新架构的需求,这是因为电子商务环境的快速成长所导致。例如:
- ● 储存政策改变。例如:当数据库表格的重要性与更新频率增加时需从单一磁盘或RAID 5扇区改变成镜射扇区时,,则可在数据库表格使用当中即予变更;
- ● 数据库表格成长至空间即将用完,而需移动到有更大容量的装置上;
- ● 从预期将发生故障的储存装置上移出档案,例如透过VERITAS LookOut预言式故障分析技术;
在使用当中移动档案,需要高度管理能力,以保证电子商务运算环境的成功。
在线扩充
在电子商务移动使用中档案最常见的原因就是扩充在线容量。随着电子商务益趋成熟:
- ● 产品组合和服务会增加;
- ● 会获得更多客户;
- ● 事务历史记录会堆积如山;
- ● 在线应用软件会大幅扩充;
这些因素都需要让更多信息保持上线,也就是必须扩充储存容量。Oracle可使空间以自动或由数据库管理者手动进行在线扩充。原始分割与某些平常的文件系统可以允许扩充,但仅可达分割或文件系统的容量为止。而VERITAS的基础技术,则可以透过加装储存容量而使在线扇区扩充,允许使用新增之容量来扩充文件系统,当然这也是在在线进行的。
或者,可能需要在使用中将部分的数据库表格移动到其他扇区,例如为了细分以增强平行处理能力。
快照[Snapshot]
电子商务永不停顿的可用性需求与定期备份的传统方式大相径庭。除非恢复的数据库能够维持最新数据,否则数据备份就没有价值可言。因此当数据库没有交易时,是最佳的数据备份作业时机。然而由于在线数据随时都可能更新,因此难以保证在在线备份的数据库是否可以获得永不停顿的数据存取效果。
有一个方法可以达成实时备份的要求,就是在备份期间停用数据库。这种方式的备份作业通常称为冷数据库备份[cold database backup]。因为备份期间,数据库是没有活动的,这是最快速的完整数据库备份方法。执行冷数据库备份时,系统管理者必须找出数据库可以不接受使用的备份时间,备份时间可以在深夜或周末。然而对电子商务而言,在全天24小时的营业时间中,任何数据都必须随时可得。因此,冷数据库备份无法满足电子商务可用性需求。甚至随着业务成长,电子商务的在线数据量还会增加,备份时间也会成正比增长,但是可用的备份时间却仍维持不变。冷数据库备份作业越来越难执行了。
快照是文件系统本身实时的状态映像。除了在建立当时,快照对数据库管理系统是完整的。建立快照的文件系统就称为有快照的文件系统。快照启动后,就可以像平常一样让应用软件更新了。此一建立的快照档案对应用软件而言,是一个称为快照的只读文件系统。
建立快照需要一些时间。文件系统运用未配置的空间创造一个修正区块对应区[modified block map],用来记录有快照文件系统的变更。同时也会安排一些空间供变更区块使用,记录先前的内容。一旦架构建立后,两个快照文件系统都可供应用软件使用了。
快照是非常好用的备份方式,不仅呈现文件系统的实时印象,也呈现数据库的静态状况,因此绝无部份完成的交易,所有已完成的交易都会被反映到磁盘[而非仅在快取]。
快照的效能冲击
由于快照可将备份时间从数小时缩短到数秒钟,当然对应用软件有很大的影响。更新有快照的文件系统至少需要比正常更新多三倍的I/O活动,因为在写入更新之前,被更新的区块必需被读取和复制到快照变更区块。经验显示,当快照发生影响时,运用Oracle数据库的在线事务处理应用软件会降低15%效能。然而对于同步备份而维持永不停顿的数据库可用性而言,这实在是极小的代价。
基础总结
电子商务数据库的需求不外乎三点,即可靠性、效能、具延展性的成长。在这两期的基础篇中说明基础文件系统与扇区管理技术如何协助您满足这些需求。例如以源自于扇区管理软件RAID和镜射技术,当磁盘与其他硬件组件故障时,仍能维持在线数据的完整恢复,以达到可靠性要求。在运作当中扩充扇区、文件系统与数据库本身的能力,也可达成具延展性的成长。
基础技术提供了电子商务数据库永不间断可用性所需的大部份储存管理能力。以此为基础,本白皮书后续章节将讨论其他的关键技术,包括复制、丛集架构及数据管理等,带领您完成全面数据储存管理的理想。
(本白皮书系列由精业公司主机外围事业部提供,精业公司为VERITAS台湾区总代理)