本文内容
- ASM(自动存储管理)
- 参考资料
在海量数据库环境中,为了提高 I/O 性能,DBA 可能会花很多时间来整理磁盘,比如,当数据量不断增加,表空间快占满整个磁盘时,DBA 需要再添加一块磁盘,再在新的磁盘上创建新的表空间数据文件。如果是单个磁盘,倒不麻烦。可我们之前要是使用 RAID(或者说是LVM),那么,之前大量的数据仍然分布在以前的那些磁盘上。而我们希望数据均匀地分布在以前和新添加的磁盘上,这可能要花费很多时间对数据进行导出/入。
因此,假如有一种方法,在向系统添加一块新磁盘后,告诉 Oracle 我们要使用这块磁盘,剩下的工作由 Oracle 自己完成,就理想多了——这就是 Oracle ASM(Automatic Storage Management)所做的。从 Oracle 10g 开始提供 ASM(自动存储管理)功能。ASM 帮助 DBA 从繁琐的磁盘空间治理中解放出来,同时,还提供了条带化(striping)[1]和镜像(Mirroring)[2]功能,这些功能原先需要通过单独地配置 RAID 来实现。
ASM 自动存储管理
ASM 是一个卷(volume)[3]管理,和 Oracle 数据库文件的文件系统(file system)[4],它支持单实例(磁盘)Oracle 数据库和实时应用程序集群(Oracle RAC)配置。ASM 是 Oracle 推荐的存储管理解决方案,它提供了一个除传统的卷标管理(volume managers)、文件系统(file systems)和裸设备(raw devices)以外,另一个可选方法。
也就是说,操作系统有自己管理文件的方式——卷标和文件系统,数据库自己也可以有。
ASM 使用磁盘组(disk groups)来存储数据文件;ASM 磁盘组是一个磁盘集合,作为 ASM 管理单元。在磁盘组内,ASM 向 Oracle 数据库文件公开文件系统接口。存储在磁盘组中的文件内容被平均分布,或条带化,以消除热点,为磁盘提供一致的性能。其性能与裸设备的性能相媲美。
当数据库从磁盘组访问文件时,你可以向/从一个磁盘组添加/删除磁盘。当添加或删除磁盘时,ASM 自动地重新分布文件内容,并且消除重新分布内容时的离线时间。
ASM 卷管理器功能提供了灵活的基于服务器的镜像选择。ASM 正常的和高冗余磁盘组会分别启用两路和三路镜像。你可以启用 RAID,使用外部冗余,执行镜像保护功能。
ASM 还采用了 Oracle 管理文件(Oracle Managed Files,OMF)[5]功能,以简化数据库文件的管理。OMF 自动地在指定的位置创建文件。当表空间或文件被删除时,OMF 命名文件,删除它们并释放空间。
ASM 降低了管理数据库的开销,它把在一起的数据整合到磁盘组。让你能整合多个数据库的存储,改善 I/O 性能。
ASM 文件可以与其他存储管理的选择共存,如裸磁盘和第三方文件系统。这简化了把 ASM 整合到现有的环境。
Oracle 企业管理器(Oracle Enterprise Manager)包括一个向导,可以让你把非 ASM 的数据库文件迁移到 ASM 上。使用管理界面也可以很容易地使用 ASM,如 SQL*Plus,ASMCMD 命令行和 Oracle 企业管理器。
参考资料
- Oracle Database Structure and Storage http://docs.oracle.com/cd/B28359_01/server.111/b28310/part2.htm#i996730
- Administering ASM with Oracle Enterprise Manager http://docs.oracle.com/cd/B28359_01/server.111/b31107/asmwithem.htm#CACHBFDE
- ASM Command-Line Utility http://docs.oracle.com/cd/B28359_01/server.111/b31107/asm_util.htm#BJEGEAAJ
[1] striping(条带化)
在存储系统方面,条带化是相对于在单个磁盘存储数据,而是把数据分散到多个磁盘的手段。条带化通常会提高性能。一般地,条带化可以以两种方式的任何一种来部署。多数情况下,作为一个 RAID 存储阵列,被存储在单个磁盘上的固定大小的物理存储空间被一致地条带化到多个磁盘。通过存储阵列软件,主机把在多个磁盘上,物理条带化的空间视为单个磁盘。条带化的另一种方法是,条带化已连接到主机的多个磁盘上的一个固定的文件段。ASM 使用第二种方法,以获得最大性能。
[2] mirroring(镜像)
在一个或多个磁盘上维护数据完全相同的副本。通常,镜像是在操作系统级别上执行复制磁盘,因此,如果其中一个磁盘不可用,那么其他磁盘无需终端就可以服务请求。
[3] volume(卷)
卷的含义在存储领域有很多定义。卷通常被认为是表示为一个逻辑单元号(Logical Unit Number,LUN)的虚拟实体。卷往往是看作多个磁盘碎片的聚集。把磁盘碎片的集合映射到一个卷是由软件组件来管理的,称为卷管理器(Volume Manager)。
[4] file system(文件系统)
文件系统是一个软件组件,它提供结构化访问磁盘。文件系统表示对象,如文件,应用程序。通常应用程序用一个定义在操作系统中标准的 API,如 Open/Close 和 Read/Write 来访问文件。文件系统通常是作为操作系统的一个组件来提供的,但可以作为一个独立的软件组件。
[5] Oracle Managed Files (OMF) Oralce 管理文件
OMF 是一个服务,它基于初始化参数,自动命名、定位和删除数据库文件,如控制文件、重做日志文件、数据文件和其他文件。