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

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

sinye56 2024-10-03 00:39 7 浏览 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 查看当前应用内存状况,以及内存参数含义

1、查看进程号ps-ef|greptomcat2、查看当前内存分配,200ms打印一次jstat-gc进程号2001jstat-gc344802001S0CS1C...

如何显示 Linux 系统上的可用内存?这几个命令很好用!

在Linux系统中,了解可用内存是优化系统性能、故障排查以及资源管理的重要一环。本文将详细介绍如何在Linux系统上显示可用内存,包括多种方法和工具的使用。在讨论可用内存之前,我们需要了解一些...

Linux 下查看内存使用情况方法总结

Q:我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢?在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内...

2、linux命令-用户管理

linux命令-用户管理用户切换[root@eric~]#sueric#切换到用户eric[eric@ericroot]$[eric@ericroot]$su#切换到rootPas...

Centos 7 进入单用户模式详解

1、开机在启动菜单按e进入编辑模式找到linux16行,在最后添加init=/bin/sh编辑完后,按ctrl+x退出2、进单用户模式后,使用passwd修改密码,提示以下错误:passwd:Aut...

每日一个Linux命令解析——newusers

newusers:在Linux系统中,newusers是一个用于批量创建用户的命令。它从一个文件中读取多行用户信息,每行描述一个用户的详细信息,并根据这些信息创建多个用户或对现有用户进行批量修改。一...

openEuler操作系统管理员指南:管理用户与用户组

在Linux中,每个普通用户都有一个账户,包括用户名、密码和主目录等信息。除此之外,还有一些系统本身创建的特殊用户,它们具有特殊的意义,其中最重要的是管理员账户,默认用户名是root。同时Linux也...

Linux用户管理

1、用户信息文件/etc/passwdroot:x:0:0:root:/root:/bin/bash第一列:用户名第二列:密码位第三列:用户ID0超级用户UID。如果用户UID...

centos7基础-用户、组、权限管理

用户和组(1)用户、组、家目录的概念linux系统支持多用户,除了管理员,其他用户一般不应该使用root,而是应该向管理员申请一个账号。组类似于角色,系统可以通过组对有共性的用户进行统一管理。每个用户...

LINUX基础 ----------组及用户的概念

在Linux中,用户和组都是非常重要的概念,可以控制文件访问权限和资源的管理。用户是标识一个进程、应用程序或系统管理员的账号,Linux中每个用户用一个用户ID(UID)来标识。对于一个...

从零入门Linux(四)用户与权限管理

在Linux系统中,用户和权限管理是系统安全的重要组成部分。通过合理配置用户和权限,可以确保系统的安全性和资源的合理分配。以下是一些与用户和权限管理相关的常用命令和概念。1.用户管理1.1添加...

如何在 Linux 中管理用户?

在Linux系统中,用户是系统资源的主要使用者,每个用户都有一个唯一的标识符(用户ID)。为了更好地组织和管理用户,Linux还引入了用户组的概念。用户组是用户的集合,有助于更有效地分配权限和资...

在 Linux 中将用户添加到特定组的四种方法

在Linux多用户操作系统中,用户组管理是系统安全架构的基石。通过合理的组权限分配,管理员可以实现:精确控制文件访问权限(chmod775project/)简化批量用户权限管理(setfacl-...

我不是网管 - 如何在Ubuntu Linux下创建sudo用户

Sudo用户是Linux系统的普通用户,具有一定的管理权限,可以对系统执行管理任务。在Linux中,root是超级用户,拥有完全的管理权限,但不建议将root凭证授予其他用户或作为r...

Linux创建普通用户,为密钥方式登录做准备

Hi,我是聪慧苹果8,就是江湖上人见人爱、花见花开,土到掉榨的Linux爱好者,一起学习吧!上一篇关于SSH安全加固的文字,有网友点评通过密钥登录更加安全,先创建一个普通用户,拒绝直接使用密码登录,这...

取消回复欢迎 发表评论: