IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux档案系统(filessystem) -> 正文阅读

[系统运维]linux档案系统(filessystem)

linux档案系统(filesystem)

硬盘的物理组成

首先简单认识一下硬盘的物理结构,总体来说,硬盘结构包括: 盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部份。 所有的盘片(一般硬盘里有多个盘片,盘片之间平行)都固定在一个主轴上。 在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。 磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。

一个磁盘由多个圆环组成,这些圆环就叫做磁道,而一个磁轨又分为多个扇区(sector)一个一个扇区是512Byte,硬盘所有磁盘相同位置的圆环组成一个磁柱(Cylinder)。硬盘容量为:512Byte * 扇区数 * 磁柱数*磁头数

前面三个数都好理解,可能有人不理解乘以磁头数是干嘛,因为前面三个数相当于计算一个圆的存储量,而一个磁头读取一个圆,所以乘以磁头数量就相当于圆面积乘以圆数量。

磁盘的分割

磁盘分割的最小单位是磁柱(Cylinder)

磁盘的分割其实就是记录一个分割区(partition)的起始磁柱与结束磁柱,而这些被记录的信息都存放在主要开机扇区( Master Boot Recorder, MBR )。事实上, MBR 就是在一块硬盘的第零轨上面,这也是计算机开机之后要去利用该硬盘时, 必须要读取的第一个区域。

思考一个问题:MBR的大小是不是固定的?

我们这么想,数据的存储顺序为 : MBR + 其他数据 。如果MBR的大小不固定,比如原来MBR中存放了3个partition的信息,现在我们要新增一个partition,会出现什么后果?后果就是所有的“其他数据”都要顺序的向后移动一个partition信息的距离。是不是想到了数组的增删了。所以我们希望将MBR固定,事实也是如此MBR被固定为只能存放4个partition的信息。这样似乎好多了,但是只有四个partition,够用吗?设计者当然也想到了这个问题,所以将partition分为Primary和Extended两类(E最多只能有一个)。其中P是可以直接使用的,而E不能直接使用,E相当于一个指针,指向扩展的partition的位置信息存储处。

filesystem

filesystem也即文件系统,每个oartition都可以由自己的filesystem,例如fat32,ntfs之类的

不同的partuition虽然filesystem不一样,但是都是用来存储数据的。前面我们介绍了硬盘的最小存储单元为sector(扇区,一般为512Byte),但是filesystem的最小存储单元却不是sector而是block。block是sector的2的次方倍数,磁头一次读取一个block的数据。所以如果block过小,则读取一个文件时磁头需要读取较多数量的block,这样效率很低,但是block也不能过大,应为一个block中只能存在一个档案,例如block大小为100M,那么如果有一个100.1M的文件,则需要占用两个block,浪费了大量空间。

superblock

每个filesystem中的第一个block称为superblock。superblock的作用是存储filesystem的大小,空的和填满的区块以及其他的总书和诸如此类的信息。也就是说如果你要使用一个filesystem的时候,第一个要经过的就是superblock这个块了,如果superblock坏了,这个partition大概也回天乏术了。

linux的EXT2文件系统

我们既然是学习linux,自然要学习linux的filessystem,我们以linux最标准的EXT2做说明。

EXT2中的filesystem分为inode区和block区,其中 inode存储文件的相关属性等信息,而block区存储文件的内容,每个inode都充当指针pointer的作用,它能描述文件的相关属性并指向该文件所在block的位置。blocks与inodes的数量在一开始格式化的时候就已经固定了。

整个filesystem示意图:

在这里插入图片描述

  • SuperBlock:如前所述, Superblock 是记录整个 filesystem 相关信息的地方, 没有 Superblock ,就没有这个 filesystem 了。他记录的信息主要有:
    • block 与 inode 的总量;
    • 未使用与已使用的 inode / block 数量;
    • 一个 block 与一个 inode 的大小;
    • filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等档案系统的相关信息;
    • 一个 valid bit 数值,若此档案系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1 。
  • Group Description:纪录此 block 由由何处开始记录;
  • Block bitmap:此处记录那个 block 有没有被使用;
  • Inode bitmap:此处记录那个 inode 有没有被使用;
  • Inode table:为每个 inode 数据存放区;
  • Data Blocks:为每个 block 数据存放区。

linux档案系统的运作

我们知道硬盘的存取速度相对于内存来说是很慢的,linux为了提高整体的速度,采用异步处理的方式。

什么是异步呢?举例来说:『当系统读取了某一个档案, 则该档案所在的区块数据会被加载到内存当中,所以该磁盘区块就会被放置在主存储器的缓冲快取区中, 若这些区块的数据被改变时,刚开始数据仅有主存储器的区块数据会被改变, 而且在缓冲区当中的区块数据会被标记为『 Dirty 』,这个时候磁盘实体区块尚未被修正! 所以亦即表示,这些『 Dirty 』区块的数据必需回写到磁盘当中, 以维持磁盘实体区块上的数据与主存储器中的区块数据的一致性。』

所以linux的关机真的要注意,否则可能会造成文件的丢失甚至是磁盘的损毁!!!

mount point

所以linux的关机真的要注意,否则可能会造成文件的丢失甚至是磁盘的损毁!!!

mount point

我们上面提到的都是关于档案系统 (filesystem),但是要能够让我们的 Linux 使用的话, 非得『挂载 (mount)』上我们的 Linux 系统才行啊! 刚刚我们上面提到了目录可以记录文件名与 inode 的相关信息,此外, 目录也是让我们得以跟 filesystem 产生对应的入口点。因此,我们称那个入口点目录为『 挂载点 (mount point) 』

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:58:21  更:2022-03-16 22:59:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:48:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码