一、文件系统详解(EXT4文件系统)
1.EXT4:
是第四代扩展文件系统(Fourth extended filesystem),是Linux系统下的日志文件系统,是ext3文件系统的后继版本。
还有其他文件系统:
XFS:(existing filesystem)一种高性能的日志文件系统,特别擅长处理大文件,同时提供平滑的数据传输。
FAT:文件配置表(File Allocation Table),是一种由微软发明并拥有部分专利的文件系统,供MS-DOS使用,也是所有非NT核心的微软窗口使用的文件系统。
2.类型:索引(index ) 文件系统
限制:
Ext3: 文件系统最大16TB
Ext4: 文件系统最大16TB
XFS: 文件系统最大100TB
3.有关名词
- inode:索引节点,记录文件属性。一个文件占用一个inode,同时记录此文件数据所在的block numbber。inode大小为 128 bytes。
- block:存储文件的实际数据。若实际存储文件的内容,若文件较大,会占用多个block,block大小为默认为4K。块越大,读写效率越高,利用率越低。
- superblock:超级块,是block与inode的总量或未使用与已使用的inode / block 数量。
- block group:块组。
4.示例
#df -i //查看某个分区的节点数
-
现在在一个分区创建一个文件,观察前后节点数
-
创建大量文件填满分区之后查看节点数
-
创建大量文件填满之后不能继续创建新文件,但可以修改已创建文件内容
所以可以得出来:block决定了文件存储的空间。
同样:
-
将分区写入大量数据,填满
-
然后查看,创建文件
-
得出结论:磁盘空间的限制根据inode和block两方面,清理掉填满的分区,避免不必要的报错。
二、链接文件
1.种类
软连接(symbolic link)和硬链接
2.软连接
图像示例:
特点:
- 软连接像快捷方式,可以对文件和目录做软连接,也可以跨磁盘分区建立软连接。
- 软连接记录的只是源文件的路径。
- 软连接失去源文件不可用。
3.硬链接
示例:
#echo 222 > /qq
#ln /qq /cc/ee
#cat /cc/ee
#rm -rf /qq
#cat /cc/ee
特点:
- 硬链接只能针对文件做,只能在同分区做,不能对目录做,但不受源文件影响。
三、 了解RAID
1.简介
RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)
作用:容错、提升读写速率
2.类型
基本的类型有RAID0、RAID1、RAID5,其他类型基本上都是在这三种的基础上改进的。
RAID0:
RAID0是条带集,是由两块磁盘以上组成的,上图是四块,然后每一块分成了四个区,数据写入就是安装字母顺序一样依次写入,读写速率100%,但没有容错。
RAID1:
RAID1是镜像集,由两块磁盘组成,容量使用率50%,读写速率一般,可以有容错。如图所示的最左边两块磁盘,若左A数据出现错误,则右A替补,防止数据丢失。
RAID5:
RAID5是带奇偶校验条带集,需要三块及以上磁盘组成,容量利用率为(n-1)/n,
n为磁盘数量,读写速率块,有容错。运行原理为当进行一次数据写入时,一个磁盘作为校验磁盘,不参与写入,这也是为什么利用率为(n-1)/n的原因,当某个磁盘数据都是或者磁盘损坏时,运用反推算得出数据。如上图,把A0,B0,C0,D0当做数字1,进行加法运算,得出E0为4,当A0磁盘损坏时,反运算4-1-1-1=1得出数据,如果始终把一个磁盘作为校验磁盘,则过多的运输会导致写入速率比较慢,所以如上图所示,每一次数据的写入都会换一个磁盘进行校验。
3.使用
-
硬RAID:需要RAID卡,有自己的CPU,处理速度快,有的会有电池,防止设备关机时数据未校验完毕。
图示:
-
软RAID:通过操作系统实现,比如Windows、Linux。
4.软RAID示例
准备四块硬盘,三块数据盘,一块作为热备硬盘(备用硬盘)
#ll /dev/sd*
创建RAID
#mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{h,i,j,k}
(-C 创建RAID,md0 RAID设备名,-l5 RAID5,-n RAID成员的数量,-x 热备磁盘的数量,若显示命令不可用需安装mdadm: yum -y install mdadm)
格式化、挂载、写入数据
#mkfs.ext4 /dev/md0
#mkdir /mnt/raid5
#mount /dev/md0 /mnt/raid5
#cp -rf /etc /mnt/raid5/etc1
查看RAID信息
#mdadm -D /dev/md0
模拟一块磁盘损坏并移除,实时查看RAID信息变化
#watch -n 0.5 ‘,mdadm -D /dev/md0 | tail’ (watch持续查看)
#mdadm /dev/md0 -f /dev/sde -r /dev/sde (模拟磁盘损坏-f并移除-r)
移除之后dev/sde/瞬间消失,/dev/sdh直接上位,几秒之后变成活跃状态