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

相关推荐

  • 马哥教育网络班第19期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:一种网路装置,负责网路桥接,将网络的多个网段在数据链路层连接起来。 集线器:将多条以太网线或光纤集合连接在同一段物理介质下的装置。工作在物理层。 二层交换机:工作在数据链路层,交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通…

    Linux干货 2016-08-22
  • linux磁盘管理及文件系统介绍

        硬盘是计算机必备组成部分,现在的硬盘分固态硬盘和传统机械硬盘,这里要介绍的是传统机械硬盘。     一.硬盘最基本结构         1.硬盘是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。…

    Linux干货 2016-06-22
  • rsync+inotify实现实时同步案例

    随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,…

    Linux干货 2016-10-30
  • 计算机相关简介和linux相关简介

    一、计算机相关简介与linux的一些概念 计算机系统 由硬件(Hardware)系统和软件(Software)系统两大部分构成: 硬件系统 :CPU(控制器、运算器),内存储器(RAM、ROM),外存储器(硬盘等),输入设备(键盘、鼠标等),输出设备(显示器等),其他设备相关设备。  软件系统 :系统软件(操作系统,数…

    Linux干货 2017-02-18
  • N28-第三周

    1. 列出當前系統上所有已經登入的用戶的用戶名,注意:同一個用戶登入多次,則只顯示一次即可。
    2. 取出最後登入到當前系統的用戶的相關信息。
    3. 取出當前系統上被用戶當做其默認shell的最多的那個shell。
    4. 將/etc/passwd中的第三個字段數值最大的後10個用戶的信息全部改為大寫後保存至/tmp/maxusers.txt文件中。
    5. 取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。
    6. 列出/etc目錄下所有以.conf結尾的文件的文件名,並將其名字轉換為大寫後保存至/tmp/etc.conf文件中。
    7. 顯示/var目錄下一級子目錄或文件的總各數。
    8. 取出/etc/group文件中第三個字段數值最小的10個組的名字。
    9. 將/etc/fstab和/etc/issue文件的內容合併為同一個內容後保存至/tmp/etc.test文件中。
    10. 請總結描述用戶和組管理類命令的使用方法並完成以下練習:
    (1) 創建組distro,其GID為2016。
    (2) 創建用戶mandriva,其ID號為1005,基本組為distro。
    (3) 創建用戶mageia,其ID號為1100,家目錄為/home/linux。
    (4) 給用戶mageia添加密碼,密碼為mageedu。
    (5) 刪除mandriva,但保留其家目錄。
    (6) 創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin。
    (7) 修改slackware的默認shell為/bin/tcsh。
    (8) 為用戶slackware新增附加組admins。

    2017-12-19