第7章 文件系统及磁盘阵列

文件系统详解

简介

文件系统详解.png

问题1:文件是如何准确放到磁盘的某个位置的?

问题2:文件是如何在磁盘(渺茫的空间中)快速定位的?

答案:文件系统

文件系统类型:

Windows:FAT16、FAT32、NTFS

Linux:EXT3、EXT4、XFS(最新的)

EXT3/4文件系统

简介

类型

索引(index)文件系统

系统限制

EXT3:文件系统最大16TB

EXT4:文件系统最大16TB

XFS:文件系统最大100TB

图示

文件系统详解.png

名词

inode

记录文件的属性(文件的元数据metadata)

元数据:文件的属性,大小,权限,属主,属组,连接数,块数量,块的编号

一个文件占用一个inode,同时记录此文件数据所在的block number。

inode大小 为128 bytes

block

存储文件的实际数据

存储文件的内容,若文件较大,会占用多个block。

block大小 默认为4K

superblock

1 block与inode的总量;

2 未使用与已使用的inode/block数量;

示例1:inode

创建一个文件,观察inode信息

ll -i 文件名
[root@localhost disk1]# ll -i 1.txt 
12 -rw-r--r--. 1 root root 0 Sep  7 18:01 1.txt

示例2:block

问题1:分区中,文件的数量和什么有关系

1、观察某个分区中inode节点数

df -i
[root@localhost ~]# df -i
Filesystem               Inodes IUsed   IFree IUse% Mounted on
/dev/sdb1                 65536    11   65525    1% /mnt/disk1

2、创建一个文件名

touch 文件名
[root@localhost disk1]# touch 1.txt

3、再次观察inode节点数

df -i
[root@localhost disk1]# df -i
Filesystem               Inodes IUsed   IFree IUse% Mounted on
/dev/sdb1                 65536    12   65524    1% /mnt/disk1

4、创造大量文件,观察inode使用情况

touch file{1..65527}
[root@bogon disk1]# touch file{1..65527}
touch: cannot touch ‘file65527’: No space left on device

5、在另一个shell,观察inode变化情况

watch -n 2 'df -i'

image.png

6、请问最后,还能否创建新文件呢?

不能

结论:inode决定了文件系统中文件的数量。

7、但是,是否能向已存在的文件中写入内容呢?

答案:是

问题2:当分区空间大小消耗完毕,还能否新增文件?

1、向目标分区写入大量数据,填满

dd if=/dev/zero of=/mnt/disk1/file1 bs=1M count=1000
[root@localhost disk1]# dd /dev/zero of=/mnt/disk1/file1 bs=1M count=1000
dd: unrecognized operand ‘/dev/zero’
Try 'dd --help' for more information.
[root@localhost disk1]# dd if=/dev/zero of=/mnt/disk1/file1 bs=1M count=1000
dd: error writing ‘/mnt/disk1/file1’: No space left on device
956+0 records in
955+0 records out
1001951232 bytes (1.0 GB) copied, 38.0367 s, 26.3 MB/s

2、查看目标分区容量,已满

df -Th
[root@localhost disk1]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/sdb1               ext4      976M  960M     0 100% /mnt/disk1

3、创建新文件

touch new.txt
[root@localhost disk1]# touch net.txt
touch: cannot touch ‘net.txt’: No space left on device

4、得出结论,磁盘空间的限制根据inode和block两方面

请清理掉填满的分区,避免不必要的报错。

文件链接

一、符号链接

名词解释

示例

1、创建一个文件,并输入内容

echo 11111 >> /file1

2、创建一个软链接

ls -s /file1 /home/file1.soft

3、观察软连接

ls -l /file1
ls -l /home/file1.soft
[root@localhost disk1]# ls -l /file1
-rw-r--r--. 1 root root 6 Sep  7 18:39 /file1
[root@localhost disk1]# ls -l /home/file1.soft
lrwxrwxrwx. 1 root root 6 Sep  7 18:39 /home/file1.soft -> /file1

4、查看两个文件,内容一致,证明是同一个文件

[root@localhost disk1]# cat /file1
11111
[root@localhost disk1]# cat /home/file1.soft 
11111

5、删除源文件,软链接闪烁,不可用

[root@localhost disk1]# rm -rf /file1
[root@localhost disk1]# cat /home/file1.soft
cat: /home/file1.soft: No such file or directory

总结

软链接像快捷方式,可以对文件和目录做软链接。

软链接记录的知识源文件的绝对路径。

软链接失去源文件不可用。

二、硬链接

名词解释

示例

1、创建同分区硬链接成功,创建不同分区硬链接失败。

echo 222 >> /file2
ln /file2 /home/file2.h1

2、硬链接的inode号相同,但并不占用block。使用df -k观察硬链接数量无变化。

[root@localhost ~]# ls -l /file2
-rw-r--r--. 2 root root 4 Sep  7 18:49 /file2
[root@localhost ~]# ls -l /home/file2.h1
-rw-r--r--. 2 root root 4 Sep  7 18:49 /home/file2.h1
[root@localhost ~]# ln /file2 /home/file2.h2
[root@localhost ~]# ls -l /home/file2.h2
-rw-r--r--. 3 root root 4 Sep  7 18:49 /home/file2.h2
[root@localhost ~]# ls -l /home/file2.h1
-rw-r--r--. 3 root root 4 Sep  7 18:49 /home/file2.h1
[root@localhost ~]# ls -l /file2
-rw-r--r--. 3 root root 4 Sep  7 18:49 /file2

3、不允许将硬链接指向目录。

总结

硬链接只能针对文件做,不能对目录做。

硬链接只能在同分区做,在同一个磁盘不在同一分区也不可以。

一般使用软链接,硬链接基本不用。

RAID(了解)

保障数据的安全性

提高数据的读写速率

简介

RAID:独立磁盘冗余阵列(Redundant Array of Independent Disk)

作用:容错、提升读写速率

类型

RAID0

RAID0条带集2块磁盘以上,读写速率快100%*N,但无容错。

image

RAID1

RAID镜像卷(镜像集)2块磁盘,容量50%,读写速率一般,容错。

image

RAID4

读性能提升,写性能略有下降

可用空间:N*MIN

有冗余特性(有一块专门的校验盘)

最少磁盘数:4

RAID5(最优使用方案)

至少3块磁盘,必须大小相同,数据分N-1份,剩下一块盘做校验盘。4块盘,数据分两份,2块数据盘,1块校验盘,1块热备盘。

RAID5带奇偶校验条带集3块磁盘以上,利用率:(n-1)/n,读写速率快,容错。

image

RAID10

读写性能提升

可用空间:N*MIN/2

冗余特性:1块盘

最少磁盘数:4

先做RAID 1再做RAID 0

image

RAID01

读写性能提升

可用空间:N*MIN/2

冗余特性:1块盘

先存储再备份

一、不同的场景RAID的使用

硬RAID:需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。

软RAID:通过操作系统实现,比如Windows、Linux

二、软RAID示例

1、准备4块磁盘

RAID5:(3块数据盘sdd、sde、sdh)+(1块热备硬盘sdi)

ll /dev/sd*

image.png

2、创建RAID

mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,h,i}

-C 创建RAID

/dev/md0 第一个RAID设备

-l5 RAID5

-n RAID成员的数量

-x 热备磁盘的数量

可用空间

3、格式化,挂载

mkfs.ext4 /dev/md0
mkdir /mnt/raid5
mount /dev/md0 /mnt/raid5
cp -rf /etc /mnt/raid5/etc1

4、查看RAID信息

mdadm -D /dev/md0 # -D查看详情信息

5、模拟一块磁盘损坏,并移除

终端1:

watch -n 0.5 'mdadm -D /dev/md0 | tail' # watch持续查看

终端2:

mdadm /dev/md0 -f /dev/sdd -r /dev/sdd # 模拟坏了并移除

-f --fail

-r --remove

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值