day25学习笔记(4月7日)
磁盘管理二(inode、软链接、硬链接、Raid磁盘冗余阵列)
文件属性的查看
方法一:
ls -l filename
方法二:
stat filename
inode是什么
操作系统中专门用于管理和存储文件的信息软件成为文件系统
一个新的磁盘,格式化文件系统后,就有了2个存储空间。
一个叫做inode存储空间,存储设备上所有文件名,对应的元数据信息(通过stat
命令查看文件的属性信息)
一个叫做block存储空间,存储设备上所有的文件的内容和数据
inode数量和block数量由磁盘的容量决定
linux文件系统存储的文件其实分为两部分【元数据】+【文件内容】
- 元数据(存储元数据信息的空间,被称之为Inode)
就是文件的属性信息,可以通过stat
命令查看,包括文件名、文件大小、创建信息、修改信息等
- 文件内容(存储文件数据的空间,被称之为block)
文件内容数据存放在扇区(sector),是磁盘的最小存储单位(512bytes),多个相邻的扇区就称为block块,文件系统最小的读取单位是8个扇区即block块(8*512butes=4096bytes=4KB)
Linux读取文件内容的过程
文件名 > inode编号 > block
表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
inode号的查询
命令如下:
ls -i filename
为什么linux要设计inode
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
inode存储的内容
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
inode的作用
df -h
查看磁盘block空间的使用情况,如果看到分区快满了,可以去删除大容量的文件
df -i
inode存储文件属性的
当机器上有大量的无用的小文件,空文件,白白消耗inode数量
查看磁盘分区inode空间的使用情况
如果可用的不多的,删除大量的4kb小文件即可
因为它们真用了太多的无效inode编号
df -h看到磁盘还是有空间,但是写入数据
系统提示no space for disk
虽然还有block空间可以存数据,但是inode数量已经用完
文件夹和文件的关系
目录是一个特殊的文件,目录保存的是当前目录下的文件名字
简单说,文件夹就是方便人类记忆文件存在哪、然后通过这个文件名吗,找到对应的文件inode号
inode号里记录了文件数据所处的block位置,最终访问到数据
block是什么
block是linux实际存储数据的空间,是8个连续的扇区,(8*512bytes=4KB)
单个大文件需要用多个block来存储
特别小的文件即使不满足4KB,也只能按照4KB计算。
1 block =4kb
删除文件原理
软连接
Linux系统中的软连接可以理解为Windows下的快捷方式。
软链接文件储存的是源文件的路径。
创建软连接 ln -s参数去创建软连接
↓
当访问软连接文件,其实是
↓
访问到源文件的路径,源文件的文件名
↓
访问源文件的inode编号
↓
inode找到block,访问到数据
软链接特点
1.软连接文件的inode号和源文件不同,作用是存储源文件的路径
2.命令ln -s创建
3.删除普通软连接,不影响源文件
4.删除源文件,软连接找不到目标,报错提示。
5.可以操作软链接完成对源文件的修改。
硬链接
硬链接,就是一个数据(block)被多个相同inode号的文件指向。
创建语法
ln 源文件 目标文件
硬链接的特点
1.可以对已存在的文件做硬链接,该文件的硬链接数,至少是1,为0就表示文件不存在
2.硬链接的文件,inode相同,属性一致
3.只能在同一个磁盘分区下,同一个文件系统下创建硬链接
4.不能对文件夹创建硬链接,只有文件可以
5.删除一个硬链接,不影响其他相同inode号的文件
6.文件夹的硬链接,默认是2个,以及是2+(第一层子目录总数)=文件夹的硬链接数量
7.可以用任意一个硬链接作为入口,操作文件(修改的其实是block中的数据)
8.当文件的硬链接数为0时,文件真的被删除
Raid磁盘冗余阵列
RAID,全称为Redundant Arrays of Independent Drives,即磁盘冗余阵列。
这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。
计算机一直是在飞速的发展,更新,整体计算机硬件也得到极大的提升,由于磁盘的特性,需要持续、频繁、大量的读写操作,相比较于其他硬件设备,很容易损坏,导致数据丢失。
硬raid和软raid
硬raid
1、通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID。
2、RAID卡就是用来实现RAID功能的板卡,通常是由I/O处理器、硬盘控制器、硬盘连接器和缓存等一系列零组件构成的。
3、不同的RAID卡支持的RAID功能不同。支持RAlD0、RAID1、RAID4、RAID5、RAID10不等。
软raid
软RAID运行于操作系统底层,将SCSI或者IDE控制器提交上来的物理磁盘,虚拟成虚拟磁盘,再提交给管理程序来进行管理。软RAID有以下特点:
占用内存空间
占用CPU资源
如果程序或者操作系统故障就无法运行
区别:
1、软件RAID额外消耗CPU资源,性能弱
2、硬件RAID更加稳定,软件RAID可能造成磁盘发热过量,造成威胁
3、兼容性问题,软件RAID依赖于操作系统,硬件RAID更胜一筹
raid 0
raid0磁盘总容量
将两个或两个以上相同型号、容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和。
raid0特点
- 至少需要两块磁盘
- 数据条带化分布到磁盘,高读写性能,100%存储(空间利用率)
- 数据没有冗余策略,一块磁盘故障,数据将无法恢复
- 应用场景:
- 对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储。
备注
条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术
磁盘条带化是指利用条带化技术就是将一块连续的数据分成很多小部分并把它们分别存储到不同磁盘上去。
raid 1
由于raid 0的特性,数据依次写入到各个物理硬盘中,数据是分开放的,因此损坏任意一个硬盘,都会对完整的数据破坏,对于企业数据来说,肯定是不允许。
Raid 1技术,是将两块以上硬盘绑定,数据写入时,同时写入多个硬盘,因此即使有硬盘故障,也有数据备份。
raid1特点
- 至少需要2块磁盘
- 数据镜像备份写到磁盘上(工作盘和镜像盘),可靠性高,磁盘利用率为50%
- 读性能可以,但写性能不佳,写入数据要同步,因此速度很慢。
- 一块磁盘故障,不会影响数据的读写,因为是镜像盘,冗余性好,只要有一块是好的,数据还是玩转的。
- RAID 1应用场景:
- 对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。
raid 10
raid 10特点:
RAID10是raid1+raid0的组合
- 至少需要4块磁盘
- 两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
- 兼顾数据的冗余(raid1镜像)和读写性能(raid0数据条带化)
- 磁盘利用率为50%,成本较高
- 只要坏的不是同一个组中,所有的硬盘,就算坏掉一半硬盘都不会丢数据。
raid 5
raid5特点:
- 至少需要3块磁盘
- 数据条带化存储在磁盘,读写性能好,磁盘利用率为(n-1)/n
- 一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据(消耗性能)
- 校验算法是计算机二进制的的异或运算(了解即可)
- 只能允许坏掉一块盘。
- 是目前综合性能最佳的数据保护解决方案
- 兼顾了存储性能、数据安全和存储成本等各方面因素(性价比高)
- 适用于大部分的应用场景
- 可以看到raid 5 是两两数据就会计算出一个校验值,存储在一个硬盘上
- 如果遇见磁盘损坏,且只能挂掉一块,还是可以用其他磁盘恢复数据的。
raid 6
RAID6特点:
- 至少需要4块磁盘
- 数据条带化存储在磁盘,读取性能好,容错能力强
- 采用双重校验方式保证数据的安全性
- 如果2块磁盘同时故障,可以通过两个校验数据来重建两个磁盘的数据
- 成本要比其他等级高,并且更复杂
- 一般用于对数据安全性要求非常高的场合