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
下一篇 2015-12-15

相关推荐

  • HAProxy实战(一)

    实验目的 测试基于haproxy的反代和负载均衡配置 测试keepalived高可用haproxy的效果 实验要点 (1) 动静分离discuzx,动静都要基于负载均衡实现;(2) 进一步测试在haproxy和后端主机之间添加varnish缓存;(3) 给出拓扑设计;(4) haproxy的设定要求: (a) 启动stats;(b) 自定义403、502和5…

    Linux干货 2017-02-13
  • nfs的简单配置及引用

    nfs: Network File System RPC:Remote Procedure Call NFS: sun公司研发, 协议;     NFSv1,没有走出实验室     NFSv2(不安全), NF…

    Linux干货 2016-10-19
  • 从零开始搭建双主模型的nginx proxy高可用集群

    实验简介 本文主要介绍双主模型的nginx proxy高可用集群的搭建方式。实验环境: 使用nfs/ftp服务器,nfs提供页面数据共享,ftp提供程序下载 使用单独的mariadb服务器提供关系型数据库 使用两台httpd服务器提供页面服务,包括静态的html和动态的php(phpmyadmin、wordpress、phpinfo) 使用两台nginx作为…

    Linux干货 2017-06-25
  • date用法心得

    Linux时间格式极大程度的遵循了人类习惯,以下为部分常见时间。
    date命令本身提供了日期的加减运算,shell编程时灵活运用

    2017-11-09
  • Linux文件类型及颜色标示

    在Linux系统中,有多种文件类型,不同的文件类型有不同的颜色。 ls -l 目录,这个命令可以在显示的类容中的第一个位置查看目录里面文件的类型。 Linux下用字符表示的文件类型 -:普通文件 d:目录文件 l:链接文件 b:块设备文件 c:字符设备文件 p:管道文件 同时 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝…

    Linux干货 2016-10-17
  • python使用paramiko 模块建立ssh通讯

    一 paramiko简介 下文是我从别人博客那里copy下来的: paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOSX, Windows…

    Linux干货 2017-03-07