Oracle 存储类型
Oracle 数据库支持的主要存储类型包括:
1) 普通文件系统
2) 集群文件系统
3) 裸设备
4) 自动存储管理 (ASM)

文件系统

1 文件系统:

操作系统用于明确存储设备(常见的是磁盘,也有基于 NAND Flash 的固态硬盘)或分区上的文件的方法和数据结构;
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在存储设备上组织文件的方法。
从系统角度来看, 文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统
具体地说,它 负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件 等。

2 文件系统由三部分组成:

1) 文件系统的接口
2) 对对象操纵和管理的软件集合对象
3) 对对象操纵和管理的软件集合属性

3 文件系统分类:

1 FAT:FAT16;FAT32
2 NTFS:NTFS4.0;NTFS5.0
3 CDFS:CD-R;CD-W
4 exFAT
5 RAW
6 EXT:Ext2;Ext3;Ext4
7 Btrfs
8 ZFS
9 HFS
10 HFS+
11 ReiserFS
12 JFS
13 VMFS
14 XFS
15 UFS
16 VXFS
17 ReFS

集群文件系统

1 集群文件系统是指 :

运行在多台计算机之上,之间通过某种方式相互通信从 , 而将集群内所有存储空间资源整合、虚拟化并对外提供文件访问服务的文件系统。
其与 NTFS 、 EXT 等本地文件系统的目的不同,前者是为了扩展性,后者运行在单机环境,纯粹管理块和文件之间的映射以及文件属性。

2 集群文件系统分为多类

按照对存储空间的访问方式 :

1) 可分为共享存储型集群文件系统
2) 分布式集群文件系统
前者是多台计算机识别到同样的存储空间,并相互协调共同管理其上的文件,又被称为共享文件系统;
后者则是每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。
Veritas 的 VxFS/VCS ,昆腾 Stornext ,中科蓝鲸 BWFS , EMC 的 MPFS ,属于共享存储型集群文件系统。
而 HDFS 、 Gluster 、 Ceph 、 Swift 等互联网常用的大规模集群文件系统无一例外都属于分布式集群文件系统。
分布式集群文件系统可扩展性更强,目前已知最大可扩展至 10K 节点。
按照元数据的管理方式 :
3) 可分为对称式集群文件系统
4) 非对称式集群文件系统。
前者每个节点的角色均等,共同管理文件元数据,节点间通过高速网络进行信息同步和互斥锁等操作,典型代表是 Veritas 的 VCS 。
而非对称式集群文件系统中,有专门的一个或者多个节点负责管理元数据,其他节点需要频繁与元数据节点通信以获取最新的元数据比如目录列表文件属性等等,后者典型代表比如 HDFS 、 GFS 、 BWFS 、 Stornext 等。
对于集群文件系统,其可以是分布式 + 对称式、分布式 + 非对称式、共享式 + 对称式、共享式 + 非对称式,两两任意组合。
对于分布式集群,其对文件元数据的管理方式又可以分为 :
1)single path image
2)single filesystem image
按照文件访问方式 :
5) 可分为串行访问式
6) 并行访问式 ( 俗称为并行文件系统 )
串行访问是指客户端只能从集群中的某个节点来访问集群内的文件资源,而并行访问则是指客户端可以直接从集群中任意一个或者多个节点同时收发数据,做到并行数据存取,加快速度。
HDFS 、 GFS 、 pNFS 等集群文件系统,都支持并行访问,需要安装专用客户端,传统的 NFS/CIFS 客户端不支持并行访问。

裸设备

1 裸设备 (raw device):
也叫裸分区(原始分区),是一种 没有经过格式化 ,不被 Unix 通过文件系统来读取的特殊块设备文件。
由应用程序负责对它进行读写操作。 不经过文件系统的缓冲 。它是不被操作系统直接管理的设备。
这种设备少了操作系统这一层, I/O 效率更高。不少数据库都能通过使用裸设备作为存储介质来提高 I/O 效率。
2 裸设备和文件系统性能对比:
1) 联机交易操作 ( 并发用户多,事务小 )
删除,插入,查询,更新 操作在 裸设备 上执行的 响应时间 ,比在文件系统执行的响应实现 更快
2) 全表扫描操作 ( 并发用户少,事务大 )
第一次进行查询: 裸设备响应时间 低于 文件系统
第二次进行查询: 裸设备响应时间 高于 文件系统
充分缓存后查询: 裸设备响应时间 高于 文件系统
3)
顺序读:文件系统快
顺序写:裸设备快
随机读:裸设备快
随机写:裸设备快
3 文件系统和裸设备的原理分析:
基于 文件系统 的数据库操作,对数据的 I/O 操作需要经过操作系统的内存缓冲区,同时也要存储在数据库的 SGA 区,这样不仅在内存保存两份数据,也导致了访问开销的增加;
基于 裸设备 的数据库操作, I/O 操作不需要存储在操作系统的内存缓冲区,同时也支持异步 I/O ,支持更大批量的读写操作。
因此裸设备总体上 I/O 操作开销小,而性能更佳。
但是在 大批量数据进行顺序读时 ,也就是 数据仓库等系统进行大型统计操作 的情况下,特别是进行 全表扫描 时,由于 Oracle Buffer Cache 采用 LRU 算法,这些数据保存在 LRU 列表的尾部,比按索引访问的数据会更快的淘汰出 Buffer Cache 。
如果采用 裸设备 技术,这些数据的重复访问将很可能导致磁盘 I/O 操作。
如果采用 文件系统技术 ,这些数据虽然不在 Oracle 内存中,但只要操作系统内存足够,这些数据还保存在操作系统内存中。
因此,文件系统情况下,大量统计运算操作,特别是重复数据的访问反而会更快些。

自动存储管理 (ASM)

1 ASM 将传统文件系统和裸设备的优点尽量结合起来。
ASM 不需要在操作系统内存进行缓存,因此 ASM 也是一种 裸设备 ,具有与裸设备相当,甚至更优势的性能。
而 ASM 的 自动管理特性 又大大降低了裸设备方式的管理负担,特别是 11G 的 ASM 集群管理系统 (ACFS), 使用户访问和管理 ASM 更加方便和快捷。
2 Oracle 即将不支持裸设备
所谓部分不支持裸设备是指不能通过 DBCA 工具将数据库建立在裸设备上,而只能通过命令行方式进行。
11gR2 不能将 OCR 和 Voting Disk 建立在裸设备上。
3 ASM 和裸设备性能对比:
并行 模式下, Oracle ASM 模式速度略 ,而在 单线程 模式下, 裸设备更快 些。
也就是说在 OLTP 系统中, 裸设备略快 些,而在 大批量数据 访问情况下,由于 Oracle ASM 更容易将数据 均匀分布 到多个存储单元中,所有表现更好。

最后修改:2022 年 02 月 21 日
如果觉得我的文章对你有用,请随意赞赏