存储管理高级课程
文件系统详解
一. EXT4文件系统
1.简介
Ext4(英文全称:Fourth extended filesystem,中文名:第四代扩展文件系统)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。ext4原始的开发目标是一系列的向下兼容ext3、移除其64位限制与提升其性能的延伸包。
2.类型
ext2具有极快的速度和极小的CPU占用率,可用于硬盘和移动存储设备
ext3增加日志功能,可回溯追踪
ext4日志式文件系统,支持1EB(1024*1024TB),最大单文件16TB,支持连续写入可减少文件碎片。rhel6默认文件系统
xfs可以管理500T的硬盘。rhel7默认文件系统
brtfs文件系统针对固态盘做优化,
3.名词解释及操作
1)inode
理解inode,要从文件存储说起。
文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”(sector)。每个扇区存储512字节(相当0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。
文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期,文件的大小等。这种存储文件元信息的区域就叫做inode,中文译名为“索引节点”。
df -i
查看索引节点
1代表全部的Inode数量(以/dev/sdd1/分盘为例,全部Inode有51200个)
2代表已经使用的Inode数量(已用11个)
3代表还剩余多少Inode可以使用(剩余51189可用)
在sdd1创建一个文件,观察Inode的区别
可以看到每新建一个文件就会消耗一个Inode节点,当节点消耗完毕,将无法新建文件。
如下图,我将在sdd1中新建51188个文件,使用完Inode
可以看到Inode已经被消耗完,无法新建文件。
2)block
存储文件的实际数据。
实际存储文件的内容,若文件较大,会占用多个block。
这种由多个扇区组成的“块”(block),是文件存取的最小单位。“块”的 大小,最常见的是4KB,即连续8个sector组成一个block。
可以看到即使Inode消耗完毕,磁盘仍有空间,这些就是block的空间
如下图使用
dd if=/dev/zero of=/disk1/5.txt bs=1M count=300
将sdd1盘其中一个文件写300M,由于磁盘大小只有200,最后结果就是磁盘被塞满
磁盘空间的限制根据inode和block两方面
请清理掉填满的分区。避免不必要的报错。
3)superblock
级块(SuperBlock)包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。
大部分UNIX文件系统种类具有类似的通用结构,即使细节有些变化。其中心概念是超级块superblock, i节点inode, 数据块data block,目录块directory block, 和间接块indirection block。超级块包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。 i节点包括除了名字外的一个文件的所有信息,名字与i节点数目一起存在目录中,目录条目包括文件名和文件的i节点数目。 i节点包括几个数据块的数目,用于存储文件的数据。 i节点中只有少量数据块数的空间,如果需要更多,会动态分配指向数据块的指针空间。这些动态分配的块是间接块;为了找到数据块,这名字指出它必须先找到间接块的号码
4)block group
硬盘分区上所有的block被聚在一起分成几个大的block group。其中每个block group中有多少个block是固定的。
二.文件链接
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接,即符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
1.软连接(Symbolic Link)
1)名词解释:
软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息
从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是完全不同的。
2)语法:
ln -s 源文件 软链接的名字
3)示例:
1 创建一个文件,并输入内容。
2 创建一个软连接。
3 观察软连接
4 观察软连接文件
5 查看两个文件,内容一致。
当源文件丢失后,链接文件闪烁不可用
软连接像快捷方式,可以对文件和目录做软连接。
软连接记录的只是源文件的绝对路径。
2.硬链接(Hard Link)
1)名词解释:
硬连接指通过索引节点号来进行连接。inode是可以对应多个文件名的在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。
在Linux中,多个文件名可以指向同一索引节点。一般这种连接就是硬连接。
2)语法:
ln 源文件 软链接的名字
3)示例:
硬链接只能针对文件做。不能对目录做。
硬链接只能在同分区做。
当源文件消失后,硬连接仍可用(文件的副本)
三.RAID
1.简介:
RAID 的意思是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),但现在它被称为独立磁盘冗余阵列(Redundant Array of Independent Drives)。早先一个容量很小的磁盘都是非常昂贵的,但是现在我们可以很便宜的买到一个更大的磁盘。Raid 是一系列放在一起,成为一个逻辑卷的磁盘集合。
RAID 包含一组或者一个集合甚至一个阵列。使用一组磁盘结合驱动器组成 RAID 阵列或 RAID 集。将至少两个磁盘连接到一个 RAID 控制器,而成为一个逻辑卷,也可以将多个驱动器放在一个组中。一组磁盘只能使用一个 RAID 级别。使用 RAID 可以提高服务器的性能。
2.作用:
容错、提升读写速率
3.类型:
硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。
软RAID: 通过操作系统实现,比如Windows、Linux
RAID0技术,简单来说就是把至少2块的硬盘设备通过硬件或者软件的方式把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。
优点:理想的情况下,硬盘设备的读写性能会提升2倍,能够有效地提升硬盘数据的吞吐速度
缺点:RAID0技术不具备数据备份和错误修复能力,若任意一块硬盘发生故障,那么整个系统的数据就会受到损坏。
RAID1技术,是将至少两块的硬盘绑定,数据同时写入多个物理硬盘中
优点:由于数据同时写入多块硬盘,这些硬盘作为镜像或者是备份,当一块硬盘故障后,其他硬盘会自动以热交换的方式来恢复数据的正常使用
缺点:硬盘读写能力降低,可用率降低,利用率是100%/N,如果是两块,那可用率是50%左右,如果是3块,那就是33%左右。
RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中,而不是单独存储到某一块硬盘设备中。
优点:当硬盘设备出现问题后,可以通过其他硬盘中保存的奇偶校验信息来尝试重建损坏的数据。磁盘空间利用率较高(N-1/N),读写速度较快(N-1倍)。
4.RAID5操作
先准备4块未使用过的硬盘
创建RAID
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}
格式化并挂载
查看RAID信息
持续查看状态
==watch -n 0.5 ‘mdadm -D /dev/md0 | tail’ ==
模拟损坏磁盘并移除
mdadm /dev/md0 -f /dev/sde -r /dev/sde
可以看到当sde损坏后,热备盘sdg就代替sde工作