linux存储系统流程简介

存储系统是linux系统非常重要,也是非常基础的知识点。整个存储系统涉及到知识点也非常的多。

本文主要通过磁盘简介->分区管理->文件系统管理->文件存储结构->软连接和硬链接->挂载原理->常见存储相关操作命令,这一条主线来让大家对linux的整个存储系统有个初步,清晰的了解.

1.磁盘简介

    众所周知,磁盘是数据存储的基础物理元件。现在我们来对这个基础原来进行解剖,看看其的内部结构以及工作原理。

19d40b1223046092f80be528e3859173.jpg

1.1

   如图1.1所示,硬盘的内部就是由盘片,磁头,转轴等物理元件组成的。那么我们在来看看一些在其工作原理之上的一些虚拟概念以便我们能够更好的去了解它其更细微的工作原理。

   首先是从盘片开始,对单个盘片来说,我们要掌握的两个非常重要的概念就是磁道和扇区,盘片转一圈画出来的圆就是磁道。而磁道再往下细分就有个扇区的概念,记住扇区是硬盘的最小存储物理量,通常一个扇区的存储大小约为512字节。对多了盘片来说,我要掌握另一个非常重要的概念就是柱面,多个盘片的同一个磁道,所抽象出来的概念就叫柱面。记住柱面是分区时的最小单位。

   接着就是磁头,磁头的主要工作就是在盘片上里外来回往返的读取和写入数据。

   2.分区管理

   从分区开始往后的概念,已经和磁盘的物理组件没有什么直接关系了。概念也会越来越抽象,也容易混淆。先说说磁头的运作是很机械的,只能是在一个方向上来回的运动而已。怎么才能让磁头高效的准确的定位到所需要的数据上呢?于是有了分区,分了区后,磁头就会知道哪些数据靠盘片外一点,哪些数据靠盘片的里面一点。前面已经提醒过,分区的最小单位是柱面,分区的时候也就是按第1到第1000个柱面设定为一个分区。

    大家有没有想过,在分区时候的这些约定信息存放在哪里呢?其实这些信息存在的主引导区(MBR)上,也就是硬盘的第0个柱面上。MBR只提供四个分区信息的记忆能力,所以一般情况下就有个3个主分区+1个扩展分区。

   3. 文件系统管理

   就想一个机器人,没有给它注入系统,它也就是一堆破铁。硬盘也是一样,要想让磁盘能够工作也同样需要注入一个系统。为分区格式化就是给分区注入一个让操作系统能够识别的文件系统。因为每个操作系统能够识别的文件系统都不相同。每个分区都应该对应一个文件操作系统。

   每个大的概念下,都会存在一些小的单位概念。所以在文件系统上也就有了“块”的概念。块是文件系统下的最小存储单位。一个块的存储大小为扇区的2^n倍数。
   4.
文件存储结构

   有个文件系统,那接下来,可以来了解一下文件系统的结构组成。以一个正统的linux文件系统ext2为例。

b41d5898-3e07-4773-92a6-3081fece898b.png

4.1

   如图4.1所示,文件系统分成了若干个组块,而每个组块大体上分为了两个区域,数据区以及源数据区。数据区存放的是数据的内容本身,而源数据区存放的是一些与数据的内容本身无关的一些为了达到某种管理机制的数据。

   在源数据区中,inode表,记录的是文件的属性和文件所在数据块的地址。由于inode表中的数据量大,为了提高检索效率,所以建立了inode位图索引,同理,也为数据块建立了块位图索引。于是乎我们就可以很好的理清楚整个流程是这样的:

   操作系统向à文件系统发来数据读写指令à文件系统根据inode位图索引à找到对应的inodeà从对应的inode中找到文件存放的数据块地址à块位图索引à根据地址找到对应的数据块。

   同样的问题,那么文件系统本身的信息和数据结构信息存放在哪里呢?这些信息存放在“超级块”中。

   5. 软连接和硬链接

   有个inode的概念后,我们再来探讨软连接和硬链接就容易理解多了。

硬连接:就是把一个文件指向同一个inode,也就是让这个文件共享同一个inode以及inode所指向的数据块。

软连接:也叫符号连接,他只是对源文件在新的位置建立一个“快捷方式”。

复制跟硬链接是不同的机制:

复制,会使用新的inode,而且会启用新的磁盘块;复制时会发现使用空间变大了。硬链接,不使用新的inode,也不会启用新的数据块,所以硬链接不会让使用空间变大。

6.文件挂载原理

操作系统有了,文件系统也有了,那么接下来要启用文件系统,操作系统怎么找到文件系统呢?是不是应该给一个入口才是呢?所以我们要使用“挂载”来建立这个访问入口。

挂载:将额外的文件系统与根文件系统某现存的目录建立关联关系,并使得此目录作为其他文件访问入口的行为。

7.常见存储相关操作命令

以上已经把整个存储相关的概念和流程都梳理了一下,下面回到实际操作中来,如何在centos6中通过相关命令来完成这些流程。

有了磁盘设备后,先通过fdisk来对磁盘进行分区àkpartx加载分区表àmkfsmke2fs来为分区创建文件系统àmount将创建好的文件系统挂载到linux系统中àblkid查看块设备属性信息àtune2fs查看指定文件系统信息àdumpe2fs 查看超级块信息和组块信息

 

 

原创文章,作者:liang555856,如若转载,请注明出处:http://www.178linux.com/9960

(1)
上一篇 2015-12-14 23:20
下一篇 2015-12-15 22:43

相关推荐

  • 根分区伸缩实验

    众所周知LVM是Linux环境下对 磁盘进行管理的一种机制。用户在安装Linux操作系统时,难以分配合适的硬盘空间,当一个分区存放不下某个文件时,这个文件因为文件系统的限制,也不能 跨越多个分区来存放。而遇到出现某个分区耗尽时,只有使用调整分区大小的工具。随着LVM功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方 便…

    Linux干货 2015-05-27
  • Linux系统终端类型

    引言 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。在早期计算机系统中,由于计算机主机昂贵,因此一个主机一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成,在个人计算机时代,个人计算机可以运行称为终端仿真器的程序来模仿一个终端的工作。 &…

    Linux干货 2016-10-19
  • 一键搭建mysql集群系列二

    mysql 5.7  主从复制 本节是在上一节的基础之上做的操作,上节我们通过脚本实现了一键自动化安装mysql5.7,这次我们要在三台机器上部署msyql5.7,并实现主从复制,实现的宗旨是,能自动化,就尽量自动化,实在不能自动化,那就手工化 用的脚本和文件说明1.install_mysql.sh 自动化安装mysql脚本2.ntpdate.sh 时间同步…

    2017-05-21
  • Linux命令学习总结:cp命令

    Linux命令学习总结:cp命令 命令简介:      cp命令用来复制文件或目录。指令英文原义:copy,copy files and directories      指令所在路径:/bin/cp 命令语法: cp [OPTION]… [-T]   SO…

    Linux干货 2017-07-23
  • Linux基础知识点(一)

    此篇博客只是记录第一周未掌握或不熟悉的知识点,用来加深印象。

    2018-03-13
  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-29