当前位置: 移动技术网 > 科技>操作系统>Linux > 第十三周学习笔记

第十三周学习笔记

2019年05月28日 Linux 我要评论
文件系统: block: 文件系统以block为单位,一般大小为1024bytes(1k)或2K或4K。块的出现用以提升读写性能,一般来讲不到一个block的文件也以一个block来存储,虽然浪费,但是比起速度来讲还是很值得 inode 一个大的文件包含多个block,block在磁盘上分散,如果不 ...

文件系统:

block:
文件系统以block为单位,一般大小为1024bytes(1k)或2k或4k。块的出现用以提升读写性能,一般来讲不到一个block的文件也以一个block来存储,虽然浪费,但是比起速度来讲还是很值得


inode
一个大的文件包含多个block,block在磁盘上分散,如果不予以指针,每次读取需要扫描整个磁盘。所以inode中主要记录了元数据(inode号、文件类型、权限、文件所有者、大小、时间戳等)另外最重要的是还存储了指向属于该文件的block的指针


bmap
在写入文件的时候,如果需要找出空闲的block而整个磁盘扫描的话就会很慢,bmap能够标识block,从而更快的找出空闲的block,bmap的一个字节能够标识8个block,bmap自身需要占用一些block


inode表
用一个1k的block来存储一个128字节的inode太浪费了。所以将ionde组合起来成为inode表(ionde table)来存储,当一个文件系统创建时,所有的inode已经成为ionde表的形式进行管理了

块组(block group)
bmap和inode表都需要存储空间,如果数据大了,也需要不小的存储空间来存储,主要是解析起来也慢,所以利用块组来进行优化。每个组中都存有本组的inode table范围, bmap等。块组的大小根据一个block的大小能够标识多少个block来划分,一个完整占用的bmap能够标识1024*8=8192个block(这些block存储数据区和元数据区)。所以一个块组的大小大概是8m

超级块(superblock)
用以存放一个文件系统究竟存放了多少个块组,每个块组又有多少block和多少inode号等等信息,还有本间系统本身的属性信息如各种时间戳。block总数量和空间数量、inode总数量和空闲数量,以及当前文件系统是否正常等等。用df -ht命令就能读取每个文件系统的超级块。超级块对文件系统及其重要,超级块的丢失或者损坏都将会导致文件系统的损坏,所以一般会在多个块组中备份。ext家族的文件系统可以使用dumpe2fs -h来获取

 

磁盘raid

 

raid0
raid0至少需要两块磁盘,将一个数据切割,写入到两个磁盘的block上。这样做能大大提高磁盘的读写能力。但是坏处是非常的不安全,当有一个磁盘损坏,另一块磁盘因为数据的不完整,也随之废弃。

raid1
raid1至少也需要两块磁盘,将一个数据同时写入到两个磁盘的block上,就相当于将一份数据复制成两份写到不同的磁盘上。这样做的好处是大大提高了磁盘的安全性,即使一块磁盘损坏了,另一块磁盘也能立刻投入工作。缺点是:增加了磁盘的成本的同时,容量却没有增大,仅仅只有一个磁盘的容量。另外虽然写入磁盘的速度不变,但是同时又系统调用io写入磁盘的压力就会变大,增加了系统的压力。另外理论上来说,读的速度和raid0的速度是一样的

raid10
raid10至少需要4块磁盘,如字面意思先对两两磁盘进行raid1操作,形成两个raid1,再对两个raid1进行raid0操作。这样当数据写入的时候,就能分片写入到raid1中,raid1又会对其进行“备份"。即使一个raid1中的一个磁盘废弃,这样也不会导致数据的丢失,除非同组的raid1全部报废,那么就会造成数据的丢失。所以,这样大大提高了数据的安全和读写速度

raid01

raid10至少需要4块磁盘,如字面意思先对两两磁盘进行raid0操作,形成两个raid0,然后对这两个raid0进行raid1操作。
这种方案安全性完全得不到保证,因为一个raid0中的磁盘损坏,这个raid0就会损坏,读写压力也就完全的到了另外一个raid0上。所以这种方案很少人使用,基本可以忽略。

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。

发表评论

验证码:
移动技术网