Linux系统配置及服务管理_第07章_存储管理2

本文详细介绍了文件系统的inode、block和superblock概念,并通过实例展示了inode的使用。接着,讨论了软链接和硬链接的区别,包括它们的创建、特点及删除源文件后的不同影响。最后,阐述了RAID的基本原理,分析了RAID0、RAID1和RAID5的特性及应用场景,并给出了创建软RAID5的步骤。
摘要由CSDN通过智能技术生成

一、文件系统详解

1、名词解释

inode(索引节点):
一个文件占用一个inode,同时记录此文件数据所在的block numbber。inode大小 为 128 bytes
block:
存储文件的实际数据。实际存储文件的内容,若文件较大,会占用多个block。block大小 为默认为4K
superblock:
1 block 与 inode 的总量; 2未使用与已使用的 inode / block 数量;
block group:
块组

2、示例

前提:拥有一个分区(以/dev/sdf1为例)
1.用df -i查看inode节点数

[root@localhost ~]# df -i
文件系统                  Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs                 478410     495  477915       1% /dev
tmpfs                    482667       1  482666       1% /dev/shm
tmpfs                    482667    1611  481056       1% /run
tmpfs                    482667      16  482651       1% /sys/fs/cgroup
/dev/mapper/centos-root 8910848  156090 8754758       2% /
/dev/sda1                524288     341  523947       1% /boot
tmpfs                    482667       6  482661       1% /run/user/42
tmpfs                    482667      18  482649       1% /run/user/0
/dev/sr0                      0       0       0        - /run/media/root/CentOS 7 x86_64
/dev/sdf1                 25688      11   25677       1% /mnt/sdf1

2.在/mnt/sdf1/中创建一个file.txt文件

[root@localhost ~]# touch /mnt/sdf1/file.txt

3.再使用df -i查看,发现已用由11变为12

[root@localhost ~]# df -i
文件系统                  Inode 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs                 478410     495  477915       1% /dev
tmpfs                    482667       1  482666       1% /dev/shm
tmpfs                    482667    1611  481056       1% /run
tmpfs                    482667      16  482651       1% /sys/fs/cgroup
/dev/mapper/centos-root 8910848  156090 8754758       2% /
/dev/sda1                524288     341  523947       1% /boot
tmpfs                    482667       6  482661       1% /run/user/42
tmpfs                    482667      18  482649       1% /run/user/0
/dev/sr0                      0       0       0        - /run/media/root/CentOS 7 x86_64
/dev/sdf1                 25688      12   25676       1% /mnt/sdf1

4 创造大量文件。观察inode使用情况。touch file{1…30000}

[root@localhost ~]# touch /mnt/sdf1/file{1..30000}
touch: 无法创建"/mnt/sdf1/file25677": 设备上没有空间
touch: 无法创建"/mnt/sdf1/file25678": 设备上没有空间
touch: 无法创建"/mnt/sdf1/file25679": 设备上没有空间
touch: 无法创建"/mnt/sdf1/file25680": 设备上没有空间
略

5.结论:inode决定了文件系统中文件的数量。
6.之后向目标分区写入大量数据,填满

[root@localhost ~]#dd   if=/dev/zero     of=/mnt/sdf1/file.txt    bs=1k    count=100000(分区为100M大小)

7.结论:block决定了文件存储的空间。

二、文件链接:

1、软连接

除了硬链接以外,还有一种特殊情况文件。A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(softlink)或者"符号链接(symbolic link)。

这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:“No such file ordirectory”。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。

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

[root@localhost ~]# echo 111 > /file1

2.建一个软连接。

[root@localhost ~]# ln -s /file1 /home/file11  //-s  软连接

3.观察软连接

[root@localhost ~]# ll /home/file11 
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

4.观察软连接文件

[root@localhost ~]# ll  /file1 /home/file11 
-rw-r--r-- 1 root root 4 Dec 20 17:57 /file1
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

5.查看两个文件,内容一致。

[root@localhost ~]# cat /file1 
111
[root@localhost ~]# cat /home/file11 
111

6.删除源文件,软连接闪烁,不可用。

[root@localhost ~]# rm -rf /file1 
[root@localhost ~]# ll /home/file11 
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

总结:

  1. 软连接像快捷方式,可以对文件和目录做软连接。
  2. 软连接记录的只是源文件的路径。
  3. 软连接失去源文件不可用。

2、硬链接

一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。
这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hardlink)。

[root@youngfit.com ~]# echo 222 > /file2
[root@youngfit.com ~]# ll -i /file2                 #-i:显示inode编号
34045994 -rw-r--r-- 1 root root 4 Dec 29 20:52 file2
[root@youngfit.com ~]# ln /file2 /file2-h1
[root@youngfit.com ~]# ll -i /file2 /file2-h1       #查看inode号
34045994 -rw-r--r-- 2 root root 4 7月  30 22:25 /file2
34045994 -rw-r--r-- 2 root root 4 7月  30 22:25 /file2-h1

[root@youngfit.com ~]# rm -rf /file2                #删除源文件
[root@youngfit.com ~]# ll -i /file2-h1              #查看链接文件
34045994 -rw-r--r--. 3 root root 4 Nov  9 15:01 /file2-h1
查看:
[root@youngfit.com ~]# cat /file2-h1
222

运行上面这条命令以后,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中有一项叫做"链接数",记录指向该inode的文件名总数,这时就会增加1。

反过来,删除一个文件名,就会使得inode节点中的"链接数"减1。当这个值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。

注:

  1. 硬链接不能跨文件系统
  2. 不支持目录做硬链接

3、面试题

软链接和硬链接的区别:

  • 软链接可以跨文件系统,硬链接不可以;
  • 软链接可以对目录进行连接,硬链接不可以;
  • 删除源文件之后,软链接失效,硬链接无影响;
  • 两种链接都可以通过命令 ln 来创建;
  • ln 默认创建的是硬链接;
  • 使用 -s 参数可以创建软链接。

三、RAID

RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
注意:所有服务器在安装操作系统之前必须先做raid【常识】

1、RAID 分类

(1)RAID 0

在这里插入图片描述

单独的一个磁盘可以被认为是一个RAID 0 阵列。在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有容错功能的,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

读写速率快 100%N,但不容错

(2)RAID 1

在这里插入图片描述

RAID 1至少要有两个(只有两个)硬盘才能组成,因此也称为镜像(Mirroring)方式。这种硬盘模式的安全性是非常高的,RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。
利用率50%,容错最高

(3)RAID 5

在这里插入图片描述

RAID 5 和RAID 3极为相似,都是数据分条,奇偶校验产生冗余。但是,它不采用一个固定的硬盘来存储奇偶校验值,所有数据和校验值都分布在所有硬盘上。RAID5最大的好处是在一块盘掉线的情况下,RAID照常工作,相对于RAID0必须每一块盘都正常才可以正常工作的状况容错性能好多了。因此RAID5是RAID级别中最常见的一个类型。
利用率 (n-1)/n 读写速率快,容错较好
1+1=2 其中某一个损坏,另外两个磁盘可以反推出损坏盘的数据

2、软RAID示例

1.准备4块硬盘。

[root@localhost ~]# ll /dev/sd*  //RAID5 :(3块数据盘) + (1块热备硬盘)

2.创建RAID

[root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}
  • -C 创建RAID /dev/md0 第一个RAID设备
  • -l5 RAID5
  • -n RAID成员的数量
  • -x 热备磁盘的数量
  • 可用空间2G

3.格式化,挂载

[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# mount /dev/md0 /mnt/raid5
[root@localhost ~]# cp -rf /etc /mnt/raid5/etc1

4.查看RAID信息

[root@localhost ~]# mdadm -D /dev/md0 //-D 查看详细信息
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 13 16:28:47 2016
Raid Level : raid5		//raid类型
Array Size : 2095104 (2046.34 MiB 2145.39 MB)
Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
Raid Devices : 3		//组中设备的数量
Total Devices : 4	//总设备数
Persistence : Superblock is persistent

Update Time : Mon Jan 13 16:34:51 2016
State : clean 	//状态,卫生的,哈哈
Active Devices : 3	//活跃3个
Working Devices : 4  //4个在工作
Failed Devices : 0		//坏了1就危险了,2个就完蛋了
Spare Devices : 1		//热备的1个。

Layout : left-symmetric
Cunk Size : 512K	//校验码大小
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd		//同步
1 8 64 1 active sync /dev/sde		//同步
4 8 80 2 active sync /dev/sdf			//同步

3 8 96 - spare /dev/sdg

5.模拟一块硬盘损坏,并移除

模拟一块硬盘损坏,并移除
终端一:
[root@localhost ~]# watch -n 0.5 'mdadm -D /dev/md0 | tail' //watch持续查看
终端二:
[root@localhost ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde 
//模拟坏了并移除
 -f --fail
 -r --remove
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值