一、文件系统详解
文件是因为文件系统而准确放到磁盘的某个位置的。
文件是因为文件系统而在磁盘庞大的空间中快速定位读取。
文件系统:
Windows: FAT16 FAT32 NTFS
Linux: EXT3 EXT4 XFS
EXT3/4文件系统:
简介:
类型:索引(index)型文件系统系统限制:
EXT3:文件系统最大16T
EXT4:文件系统最大16T
XFS:文件系统最大100T名词:
Inode:
记录文件的属性(文件的元数据metadata(其中有文件属性,大小,权限,属主,属组,连接块,块数量,块编号))一个文件占用一个inode,同事记录此文件数据所在的block number
Inode大小为128bytes
ll -i 文件名
查看文件的inode信息,第一位的就是文件的inode信息df -i
查看文件系统的inode总数,已用,可用,挂载点等信息。inode决定了文件系统中文件的数量,Inode满了之后,就无法再次创文件了。但是,inode满了之后,是可以往其中的某个文件中存入数据的,因为整个磁盘,只是inode满了,但是block没满。
结论:一个磁盘空间的限制是根据inode和block两方面的。
Block:
存储数据的最基础单位
存储文件的实际数据
实际存储文件的内容,若文件较大,会占用多个block。
Block大小默认4k
每个文件会占领一个到多个块,如果文件小于4k,也会占领一个块。
Superblock:
block和inode的总量未使用与已使用的inode/block数量
二、文件链接
1.符号链接
名词解释:
symbolic link/软连接
示例:
创建一个文件,输入内容:
echo 123 > /mnt/disk2/1.txt
创建一个软连接:
ln -s 1.txt 2.txt
观察软连接:
观察软连接文件的inode是新的:
查看两个文件,内容一致:
删除源文件,软连接闪烁,不可用:
总结:
软连接像快捷方式,可以对文件和目录做软连接。
软连接记录的只是源文件的绝对路径。
软连接失去源文件不可用。
注意:软连接可以跨分区。
删除软连接的源文件后,重新创建源文件是依然可用的,但是内容会变成这个新的软连接的内容。
2.硬链接
创建统分区硬链接成功,创建不同分区硬链接失败:
echo 321 > file2
ln /root/file2 /file2-ln
创建了一个硬链接
ln /root/file2 /mnt/disk2/file2
硬链接无法跨分区
我们删除源文件再查看硬链接文件:
rm -rf /root/file2
cat /file2
仍然可以读取内容。
硬链接是指向block块的链接,inode是没有变化的,所以删除源文件后,依然可以指定查看到内容。
硬链接的inode号相同,但是并不占用block。使用df -k观察硬链接数量无变化:
可以看到,inode号是没有变化的,那个2是链接数量,是根据一个文件的硬链接数量变化的,软链接则都是1
不允许将硬链接指向目录:
三、RAID(软raid,这里只是作为一个知识点,市场上有也都是硬raid)
简介:
Raid:廉价磁盘冗余阵列(Redundant Array of Independent Disks)
作用:容错、提升独写速率
技术类型上分为:
RAID0:条带集2块及以上,读写速率块,100%*N,不能容错,但是快。RAID1:镜像集,镜像卷,两块磁盘一起用的,少了不行,多了不好,最高容量50%,剩余50%用作备份,读写效率一般,特点是有容错。
RAID2,3,4…
RAID5:带奇偶校验条带集(就当作一个算法),3块磁盘及以上,最好是同大小的磁盘,假设200G、300G、400G也可以,但是会产生300G的只能看到200G,400G的也只能看到200G。而RAID5的利用率为(n-1)/n,剩余的1/n就是这个奇偶校验条带集的结果。读写效率快。有容错和数据可靠就是因为算法和算法结果存在,哪怕其中一个硬盘损坏,也可以根据算法和算法结果进行数据的逆推,恢复,所以有容错且可靠,但是虽坏多个硬盘的情况,那么raid5也不行了,因为数据可靠性没了。
不同场景的RAID的使用:
硬RAID:需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。软RAID:通过操作系统实现,比如windows、Linux。
软RAID实例:
1.准备4块硬盘(都要新盘,不要旧盘)
RAID5(三块数据盘,一块热备盘)
2.创建RAID
首先确定创建RAID的命令是可以使用的。没有命令的可以先下载安装。
Yum -y install mdadmMdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{f,g,h,i}
-C 创建RAID
/dev/md0 第一个RAID设备
-l5 RAID的类型,RAID5
-n3 RAID成员的数量,3个数据盘嘛
-x1 热备磁盘的数量
3.格式化,挂载
Mkfs.ext4 /dev/md0
Mkdir /mnt/raid5
Mount /dev/md0 /mnt/raid5
4.查看RAID信息
可以lsblk查看
df -Th
这里可以看到,4个盘每个都是5G,但是一共只有10G可用,这是因为我4个盘里,两个是数据盘,一个是校验盘,最后一个是热备盘。所以最后只有10G可用。
Mdame -D /dev/md0查看raid5信息
5.模拟一块硬盘损坏,并移除
Mdadm /dev/md0 -f /dev/sdg -r /dev/sdg
模拟/dev/sdg坏了,并且以触
-f --fail强制的
-r --remove移除
注意这里模拟别干掉自己的热备盘。
6.设置的RAID开机生效
此时我们配置的热备盘已经生效了。
直接mdadm -D /dev/md0就可以查看到