架构设计:系统存储(3)——块存储方案(3)

本文深入探讨Linux系统中的EXT系列文件系统,包括EXT2、EXT3和EXT4。从磁盘阵列设备到EXT文件系统的结构,如Super block、Group description table、Block bitmap、Inode bitmap和Inode Table,详细解析了文件系统如何管理和组织数据。EXT系列文件系统在Linux中的应用广泛,理解其工作原理对于系统存储和文件管理至关重要。

(接上文《架构设计:系统存储(2)——块存储方案(2)》)

5-2、磁盘阵列设备

目前磁盘阵列设备被广泛应用在从民用级计算到工业级计算的各个基础领域,本小节的内容就带各位读者进行一些概要性了解。

  • 集成在主板上的阵列控制器

最廉价的,也是在民用级市场上最普遍的做法,是将阵列控制器直接集成在主板上。RAID 0、RAID 1、RAID 5、RAID 10等阵列组织结构都可以在这种集成方式下提供支持。这些主板的价格可以做得很亲民,但是这样的阵列控制器集成方案也存在比较明显的问题:支持的磁盘数量有限制,总的I/O吞吐性能也存在瓶颈。

这里写图片描述

  • 磁盘阵列盒

另一种做法是将阵列控制器至于计算机以外,民用级市场和企业级市场上也经常使用这种集成方式,并且效果要好得多,因为至少从可集成的磁盘数量上来说就比上一种做法要好得多。但是由于制造成本的原因,这些外挂的磁盘阵列盒一般还是采用USB3.0等接口进行数据传输,所以吞吐性能上基本不会有太大提升:

这里写图片描述

  • 磁盘阵列柜

企业级和工业级项目中,进行磁盘阵列方案实施时更多使用磁盘阵列柜和光纤接口。这样可以缓解磁盘横向扩展的问题和数据传输吞吐性能的问题。例如EMC提供的大型磁盘阵列设备:

这里写图片描述

6、文件系统

通过以上1-5节的内容,我们向读者介绍了位于块存储方案最底层的磁盘设备和阵列控制设备的工作原理和具体应用。特别是阵列控制设备,目前大量应用在商业级系统和工业及系统中,这样的存储方案也是应用最成熟的方案。那么操作系统为了抽象化这些底层设备的控制,就需要在操作系统层面组织一个管理文件数据逻辑地址的统一结构,以便向上层开发者屏蔽硬件操作细节。这样的管理结构称为文件系统。

目前主流的文件系统包括windows下的NTFS文件系统、Linux下的EXT系列文件系统(管理规则已升级到EXT4)、XFS文件系统和Btrfs文件系统。由于本专题的知识体系全部基于Linux操作系统,所以我们不会对NTFS文件系统做过多介绍。在本文中我们主要介绍两种Linux下的文件系统:EXT系列文件系统和XFS文件系统。

6-1、EXT系列文件系统

EXT文件系统英文全称:Extended file system。最初的EXT文件系统于1992年发布,用于替换之前使用的MINIX文件系统。经过多年的发展,目前EXT文件系统已经发展出4个版本,Ext1、Ext2、Ext3和Ext4。这些不同版本的文件系统中,虽然一些结构细节发生了变化(例如采用更快的Data blocks查找方式、采用更宽的索引位等),但这几个版本中提现的文件系统设计思想却没有太大的改变。

本节将从一个统一的文件系统数据组织结构开始讲起,首先说明结构中重要区块的作用,然后说明区块间的关联关系并推导一些关键的数据计算公式,最后再阐述几个Ext文件系统版本的重要改进。

这里写图片描述
(Ext文件系统主要结构图)

上图描述了Ext文件系统主要结构。就如上文描述的那样,不同的Ext文件系统版本对以上结构都有一定的调整,但是文件系统管理结构中的重要区块的作用却没有发生什么变化,所以不会影响我们下文的讲解。首先需要说明,操作系统层面建立文件系统的单位都是磁盘分区,也就是说操作系统可以在一个物理磁盘上或者一个阵列管理设备上建立多种不同的文件系统。很多第三方分区工具都可以帮助开发人员/运维人员完成物理磁盘的分区操作。但是有一个问题需要特别说明一下:Linux系统下自带的fdisk工具只能支持2TB的最大分区容量,如果需要分割出大于2TB容量的分区,则需要使用Linux操作系统下的另一个工具parted,其根本原因是fdisk工具建立的是MBR分区表,而parted工具可以建立GPT分区表。

Ext系列文件系统的组织结构都是在进行格式化的时候就基于磁盘分区建立完毕的,以下示例脚本是针对一个名叫sdb1的磁盘分区成功建立Ext3文件系统后的显示信息。

[root@localhost ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241198 blocks
262059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值