百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

ASM介绍及管理(四)--磁盘组,ASM磁盘及文件概念

sinye56 2024-10-03 00:39 4 浏览 0 评论

磁盘组概览

磁盘组是一个或多个磁盘的逻辑分组,ASM 将其作为一个集合来管理。每个磁盘组都包含与自身相关联的元数据。在概念上,ASM 磁盘组类似于典型存储区域网络中的逻辑卷。

从磁盘组内分配文件空间。磁盘组中存储的文件的内容将在该磁盘组的磁盘中平均分布或条带化,以便消除热点并在各磁盘上提供一致的性能。每个ASM 文件都完全包含在一个磁盘组中。但是,一个磁盘组可以包含属于多个数据库的文件,而一个数据库可以使用来自多个磁盘组的不同文件。

磁盘组的关键属性是它的冗余设置。有三种可能的磁盘组冗余设置:

? 外部冗余,其中ASM 不提供任何镜像,磁盘都假设为高度可靠。

? 正常冗余,其中ASM 默认支持双向镜像,从而保证在较不可靠的存储上实现数据完整性。

? 高冗余,其中ASM 默认支持三向镜像,从而更好地保证数据完整性。

ASM 最多支持创建63 个磁盘组;但是,对于大多数安装,你很少会需要很多磁盘组。

ASM磁盘组的管理方式比较多,比如DBCA、EM、SQL*PLUS等都可以操作,还有oracle专门提供了ASMCMD命令行方式,像操作文件系统一样来操作磁盘组。

ASM 磁盘

ASM 磁盘:

? 是为ASM 磁盘组预配的存储设备

? 通过正常O/S 接口来访问

? 必须可由ASM 所有者读取和写入

? 必须可由集群中的所有节点访问

? 在不同的节点上可以有不同的O/S 名称或路径

? 可以是:

– 整个物理磁盘或物理磁盘的分区

– 存储阵列中的磁盘或分区

– 逻辑卷(LV) 或逻辑单元(LUN)

– 网络连接文件(NFS)

ASM 磁盘组包含一个或多个ASM 磁盘。

ASM 磁盘必须可由集群中所有大,能够提供高效的后续访问

? 允许的AU 大小:

– 1、2、4、8、16、32 或64 MB 节点的ASM 所有者读取和写入。

ASM 磁盘可以是磁盘上的分区,但是Oracle 强烈建议不要与其它应用程序程序共享ASM 使用的物理磁盘。这是因为在应用ASM 条带化和镜像策略时,磁盘组内的各个ASM 磁盘的I/O 性能必须相似且一致,才能获得最佳性能。在ASM 和其它应用程序之间共享设备会难以确保磁盘性能相似且一致。

集群中不同节点上的ASM 磁盘的O/S 设备名称不必相同。ASM 通过读取ASM 磁盘的标头来识别磁盘组的成员。

通常,ASM 磁盘是以存储阵列中的裸LUN 提供给ASM 的。另外,ASM 磁盘还可以是远程NFS 文件器中的文件。

分配单元

ASM 磁盘划分为分配单元(AU):

? 在创建磁盘组时可以配置AU 大小。

? AU 默认大小为1 MB:

– 足够小,能够被数据库缓存;但又足够

– 在超大型数据库(VLDB) 中或使用专门的存储硬件时,较大的AU 可能非常有用

在ASM 磁盘内,空间划分为分配单元(AU)。AU 默认大小是1 MB,该大小足够小,不会变为热点,但又足够大,能够提供高效的后续访问。创建磁盘组时可以设置AU 大小。你无法更改磁盘组的AU 大小。在超大型数据库(VLDB) 中或使用专门的存储硬件时,较大的AU 大小可能会很有用。如果经常访问某个AU,则数据库内核会将其缓存以便实现更高的访问效率。

ASM 文件

ASM 文件:

? 是由AU 组成的ASM 区的集合

– 可变大小的区支持大型文件

? 对数据库内核显示为普通文件

? 文件名以“+”开头

– 例如,

+DATA/orcl/datafile/system.256.689832921

? 可以与可选的文件名别名相关联

– 例如,+DATA/dbfiles/mydb/system01.dbf

? 在磁盘组中的磁盘中平均分布

? 根据磁盘组中定义的策略进行镜像

ASM 呈现一组文件供ASM 的客户机使用。ASM 文件由一组分配单元组成,这些文件对数据库内核显示为普通文件。

每个ASM 文件都具有唯一的系统生成的名称。

生成格式为:+diskgroup/dbname/file_type/file_type_tag.file.incarnation ,

? +diskgroup :磁盘组名称;

? dbname :数据库的DB_UNIQUE_NAME参数值;

? file_type :创建的文件类型,比如CONTROLFILE/DATAFILE/ONLINELOG/ARCHIVELOG/TEMPFILE/BACKUPSET/FLASHBAC

K等等;

? file_type_tag :文件类型的标签,比如表空间对应的通常为该表空间名称;

? file.incarnation :文件序号+incarnation,用来确保文件的唯一;

sys@mesdbbackup> alter tablespace INVENTORY add datafile '+DATA';

Tablespace altered.

ASMCMD> pwd

+data/test0924/datafile

ASMCMD> ls

INVENTORY.266.829658135

示例显示了一个完全限定的ASM 文件名的示例。完全限定的ASM 文件名表示一个层次结构,其开头是加号与磁盘组名称的组合。磁盘组名称后是数据库名称和文件类型。最后的元素由标记名称、文件编号和原型编号组成。可以创建别名(可选),为管理员提供一种更用户友好的方式来引用ASM 文件。

文件使用条带化和镜像所有内容(SAME) 策略在磁盘组的各ASM 磁盘中平均分布。

ASM 本身支持大多数与数据库相关的文件类型,例如数据文件、日志文件、控制文件、

RMAN 备份及其它文件。在Oracle Database 11g发行版2 之前,ASM 仅支持与Oracle DB 相关的文件,无法用于存储和管理ASCII 跟踪文件和预警日志、Oracle 二进制文件、

Oracle 集群注册表(OCR) 和集群表决磁盘。Oracle Database 11g发行版2 提供在ASM 上运行通用文件系统的方式,从而消除了上述限制。

区映射

ASM 通过称为区映射的元数据跟踪文件的分布。区映射是一个表,将文件中的数据区映射到磁盘上的分配单元。

文件区与分配单元之间的关系如下所示。区包含:

? 一个AU 用于前20,000 个区(0-19999)

?4 个AU 用于接下来的20,000 个区(20000-39999)

? 16 个AU 用于40,000 以上的区

将可变大小的区与大型分配单元结合使用,可满足非常大的ASM 文件的需要。

条带化粒度

ASM 用于负载平衡的条带化策略与用于等待时间的条带化策略不同:

? 对于负载平衡,粗粒度条带化将多个分配单元连接起来使用。

– 例如:

在ASM 中,条带化主要具有两种用途:

? 在磁盘组的所有磁盘中执行I/O 负载平衡。

? 改善I/O 等待时间。

粗粒度条带化在磁盘组的各磁盘中分布分配单元。这用于为磁盘组提供负载平衡。分配文件时,ASM 会在所有磁盘中平均分布分配单元。有时分布无法非常平均,但是随着时间的流逝,会变得几乎相等。上图显示了一个具有五个分配单元的文件,这些分配单元在条带化之后,分布在一个外部冗余磁盘组的五个磁盘中,该磁盘组共包含八个磁盘。

对于前20,000 个区,区大小等于AU 大小。从第20,001 个区到第40,000 个区,该区组总是一次分配8 个区,区大小等于4 倍AU 大小。如果AU 大小为1 MB,这意味着ASM 文件将一次增大64 MB (8 * 4 * 1 MB)。如果文件采用粗粒度条带化,则它将在8 个区中进行条带化,条带大小为1 AU。条带化始终在AU 级别进行,而不是在区级别。因此,无论文件多大,粗粒度文件的每个AU 都与该文件的前一个AU 所在的磁盘不同。在第40,000 个区之后,仍旧是每次分配8 个区,但区大小等于16 倍AU 大小。

细粒度条带化

细粒度条带化在分配单元组中放置128 KB 条带单元来改善等待时间。

? 磁盘组具有8 个磁盘和外部冗余

? 使用默认的AU 大小:1 MB

? 第一个1 MB 区在8 个AU 中以128 KB 条带形式写入

细粒度条带化将数据区拆分为128 KB 的块,然后在许多磁盘中分布每个区的负载,从而改善特定类型文件的等待时间。默认情况下,细粒度条带化用于控制文件和联机重做日志文件。

图显示了细粒度条带化的工作原理。在此示例中,新文件的第一个1 MB 区最终占用8 个不同分配单元中的第一个128 KB 块,这8 个分配单元分布在磁盘组的八个磁盘中。因此,1 MB 的读取或写入分布在八个磁盘(而不是一个磁盘)中。

  • 细粒度条带化

示例:

? 磁盘组具有8 个磁盘和外部冗余

? 使用默认的AU 大小:1 MB

? 下一个1 MB 区以128 KB 条带的形式在相同的8 个分配单元中写入,直到这些分配单元写满

继续前面的示例,空间中的下一个1 MB 区将分布在相同分配单元组的每个单元的第二个128 KB 块中。这种模式将继续,直到第一组分配单元写满,然后分配另一组。

相关推荐

Linux两种光驱自动挂载的方法

环境:CentOS6.4西昆云服务器方式一修改fstab文件/etc/fstab是系统保存文件系统信息?静态文件,每一行描述一个文件系统;系统每次启动会读取此文件信息以确定需要挂载哪些文件系统。参...

linux系统运维,挂载和分区概念太难?在虚机下操作一次全掌握

虚拟机的好处就是可以模拟和学习生产环境的一切操作,假如我们还不熟悉磁盘操作,那先在虚机环境下多操作几次。这次来练习下硬盘扩容操作。虚拟机环境:centos8vm11linux设备命名规则在linux中...

Linux 挂载 NFS 外部存储 (mount 和 /etc/fstab)

mount:手工挂载,下次重启需再重新挂载,操作命令:mount-tnfs-ooptionsserver:/remote/export/local/directory上面命令中,本地目录...

在Linux中如何设置自动挂载特定文件系统(示例)

Linux...

Linux环境中的绑定挂载(bind mount)

简介:Linux中的mount命令是一个特殊的指令,主要用于挂载文件目录。而绑定挂载(bindmount)命令更为特别。mount的bind选项将第一个目录克隆到第二个。一个目录中的改变将会在...

Linux挂载CIFS共享 临时挂载 1. 首先

如何解决服务器存储空间不足的问题?大家好,欢迎回来。在上一期视频中,我为大家介绍了如何利用Linux挂载来扩容服务器存储空间。这一期视频,我将以Linux为例,教大家如何进行扩容。群辉使用的是Linu...

Linux 硬盘挂载(服务器重启自动挂载)

1、先查看目前机器上有几块硬盘,及已挂载磁盘:fdisk-l能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区。(下面以/dev/vdb磁盘进行分区、挂载为例,挂载点设置为/data)df...

linux 挂载磁盘

在Linux中挂载硬盘的步骤如下:...

笨小猪教您Linux磁盘挂载

本教程针对Linux系统比较熟悉或者想学习Linux基础的用户朋友,本教程操作起来比较傻瓜式,跟着步骤就会操作,本文使用的工具是XShell同时多多注意空格(文中会有提示)。【问答】什么是磁盘挂载?答...

Linux 磁盘挂载和docker安装命令

本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录。...

Linux设置开机自动挂载分区

有时候,我们在安装完Linux系统之后,可能在使用过程中添加硬盘或者分区进行使用,这时候就需要手动把磁盘分区挂载到某个路径,但是开机之后就会消失,需要重新挂载,非常麻烦,那么我们应该如何设置开机自动挂...

在linux挂载一个新硬盘的完整步骤

以下是在Linux中挂载新原始磁盘的完整步骤,包括分区、创建文件系统以及使用UUID在/etc/fstab中启动时挂载磁盘:将新的原始磁盘连接到Linux系统并打开电源。运行以下命令,...

Linux系统如何挂载exFAT分区

简介:Linux系统中不能像Windows系统那样自动识别加载新设备,需要手动识别,手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织,文件树的根目录是:/,从根目开始录逐级展开。这些文...

Linux系统挂载硬盘

fdisk-l查看可挂载的磁盘都有哪些df-h查看已经挂载的磁盘...

WSL2发布,如何在Win10中挂载Linux文件系统

WSL2是最新版本的架构,它为Windows子系统提供支持,使其能够在Windows上运行ELF64Linux二进制文件。通过最近的更新,它允许使用Linux文件系统访问存储在硬盘中的文件。如果你...

取消回复欢迎 发表评论: