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)
liang555856liang555856
上一篇 2015-12-14 23:20
下一篇 2015-12-15 22:43

相关推荐

  • FHS文件系统各目录功能

    前言 FHS将文件根据不同的用途和特性分成了可共享的(shareable)和不可共享的(unshareable),可变的(variable)和静态的(static)。不同的文件位于不同的目录里面,将目录分开了将有利于对文件的管理。 文件系统 可共享的 文件可以被存储于某一个主机上,然后供其他主机使用。如果想访问其他主机上可共享的文件,可以将其他主机目录挂载到…

    Linux干货 2016-10-17
  • 关于touch/>/>>创建同名文件的总结

    一、简介 1、touch     即创建文件或修改文件时间     语法:touch [options] file-list 2、>     创建文件,可直接把内容生成到指定文件,会覆盖源文件中的内容;也可以直接生成一个空白文件。     语法:> file…

    2017-02-18
  • N25 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。   4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt…

    Linux干货 2017-01-04
  • 马哥教育网络班22期+第1周课程练习

    1、描述计算机的组成及其功能 CPU:运算器、控制器、寄存器、缓存 存储器:内存,RAM(Random Access Memory) Input:下指令,提供数据等 Output:输出数据加工的结果 2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 Debian系列         ubuntu &n…

    Linux干货 2016-08-15
  • 二、(4)bash的基础特性之:alias命令及文件名通配

    alias命令 在bash中,允许用户使用和创建命令的别名 用法: 查看:可以使用alias命令来获取当前可用的命令别名: 如第一行:alias cp=’cp -i’,将cp -i命令定义别名为:cp 创建:上图中,alias所展示的也是创建别名的方法,即:alias NAME=’COMMAND’ 注意:图中举例将ls -l命令创建别名为ls,此时原命令ls…

    2018-01-12
  • N25第三周作业

    一、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@centos01 ~]# who | cut -d " " -f1 | uniq -u root qufudcj 二、取出最后…

    Linux干货 2016-12-26