专家博客:Linux 集群文件系统简介
博客 Sheryl Calish 发表于:12年05月16日 14:26 [转载] DOIT.com.cn
可以运行 Oracle 的集群文件系统
Oracle RAC 技术已经提供了诸如负载均衡、冗余、故障切换、可伸缩性、高速缓存和锁定等特性,因此当 Oracle 数据文件位于安装有传统 Linux 文件系统(如 ext2/ext3)的块设备上时会出现功能的重复。在这种情况下性能降低了,因为 Oracle 和文件系统的高速缓存消耗了内存资源。
到写本文时为止,除了第三方集群文件系统之外,还有四种可选用的运行 Oracle RAC 的文件系统。按 Oracle 的推荐顺序,它们依次为:
Oracle 自动存储管理
Oracle 集群文件系统
网络文件系统
原始设备。
Oracle 自动存储管理 (ASM) Oracle 的一个特点就是,无论它在哪种环境中运行,一旦您获得一个 Oracle API,则所有的外观、体验和操作都相同。Oracle ASM 是 Oracle 数据库 10g 的一个特性,它将这种一致的环境扩展到存储管理方面,使用 SQL 语句、Oracle Enterprise Manager 网格控制或数据库配置助手程序来创建和管理存储内容和元数据。将 ASM 用于 Oracle 数据库 10g 数据文件存储被认为是最佳方法。
ASM 中的基本数据结构是磁盘组,它由一个或多个磁盘组成。在该语境中,“磁盘”可以是一个磁盘分区、一个完整的磁盘、一个级联磁盘、一个存储设备的分区或者一个完整的存储设备。
一定要认识到,ASM 并非通用集群文件系统。相反,ASM 是一个具有集群感知的文件系统,专门为处理 Oracle 数据库文件、控制文件和日志文件而设计。ASM 不应与逻辑卷管理器 (LVM) 共用,这是因为后者会使 ASM 无法识别磁盘。
ASM 执行以下功能:
通过磁盘头中的 ASM ID 识别磁盘。
在磁盘组中的所有存储器间动态分配数据,提供可选的冗余保护,并且具有集群感知能力。
允许在 Oracle 数据库处于完全运转状态时进行主要的存储操作 — 无需停机即可添加、删除、甚至将磁盘组移到新的存储阵列(尽管少见)
当添加或删除磁盘时,进行自动负载均衡和重新均衡
通过使用故障组,提供额外的冗余保护
优化存储资源的使用。
当安装在原始设备或者安装在 Oracle 所推荐的那些使用 ASM 库驱动程序的块设备上时,ASM 自身作为实例来运行,该实例先于数据库实例启动。它使 DBA 能够创建、扩展和缩小磁盘,并将这些变化映射到共享访问这些组的其他节点上的磁盘组。数据库实例能够在集群的多个节点间共享存储器的集群池。
ASM 由 Oracle 通用安装程序安装。如果将 ASM 添加到一个现有的数据库中,则要确保将数据库设置为从属于 ASM 实例,以便在启动时 ASM 实例先于所从属数据库启动。例如:
$ srvctl modify instance -d O10G -i O10G1 -s +ASM1
使 o10G1 实例从属于 +ASM1 实例。
ASM 实例与 Oracle 数据库实例的区别表现在以下几方面:
尽管可以使用几个 V$ 视图来获得关于 ASM 实例的信息,但没有数据字典:V$ASM_DISKGROUP、V$ASM_CLIENT、V$ASM_DISK、V$ASM_FILE、 V$ASM_TEMPLATE、V$ASM_ALIAS 和 V$ASM_OPERATION。
您只能以 SYSDBA 或 SYSOPER 连接 ASM 实例。
有五个初始化参数用于 ASM 实例,其中 INSTANCE_TYPE 是必要的,并应该设置如下:INSTANCE_TYPE = ASM。
在 ASM 实例中,DBA 可以使用 SQL 语法或 Enterprise Manager 来:
使用一个或多个磁盘为存储池定义一个磁盘组
