Loading... <p style="margin-top:5px;margin-right:0;margin-bottom:5px;margin-left: 0;text-indent:32px">存储系统是<span style="font-family: Arial, sans-serif">linux</span>系统非常重要,也是非常基础的知识点。整个存储系统涉及到知识点也非常的多。</p> <p style="text-indent: 48px;line-height: 15px"><span style="font-family: 微软雅黑, sans-serif">本文主要通过磁盘简介</span><span style="font-family: Arial, sans-serif">-></span><span style="font-family: 微软雅黑, sans-serif">分区管理</span><span style="font-family: Arial, sans-serif">-></span><span style="font-family: 微软雅黑, sans-serif">文件系统管理</span><span style="font-family: Arial, sans-serif">-></span><span style="font-family: 微软雅黑, sans-serif">文件存储结构</span><span style="font-family: Arial, sans-serif">-></span><span style="font-family: 微软雅黑, sans-serif">软连接和硬链接</span><span style="font-family: Arial, sans-serif">-></span><span style="font-family: 微软雅黑, sans-serif">挂载原理</span><span style="font-family: Arial, sans-serif">-></span><span style="font-family: 微软雅黑, sans-serif">常见存储相关操作命令,这一条主线来让大家对</span><span style="font-family: Arial, sans-serif">linux</span><span style="font-family: 微软雅黑, sans-serif">的整个存储系统有个初步,清晰的了解</span><span style="font-family: Arial, sans-serif">.</span></p> <p style="margin: 5px 0;text-indent: 32px"><strong><span style="font-family: Arial, sans-serif">1.</span></strong><strong><span style="font-family: 宋体">磁盘简介</span></strong></p> <p style="margin: 5px 0;text-indent: 32px"><span style="font-family: Arial, sans-serif"> </span>众所周知,磁盘是数据存储的基础物理元件。现在我们来对这个基础原来进行解剖,看看其的内部结构以及工作原理。</p> <p style="margin-top:5px;margin-right:0;margin-bottom:5px;margin-left:0;text-align:center"><span style="font-family: Arial, sans-serif"><img src="//cto.wang/usr/uploads/2016/07/20160703180645-96.jpg" title="1450020949698010.jpg" alt="19d40b1223046092f80be528e3859173.jpg" /></span></p> <p style="margin: 5px 0px;text-align: center">图<span style="font-family: Arial, sans-serif">1.1</span></p> <p><span style="font-size:16px"> </span>如图<span style="font-size:16px">1.1</span>所示,硬盘的内部就是由盘片,磁头,转轴等物理元件组成的。那么我们在来看看一些在其工作原理之上的一些虚拟概念以便我们能够更好的去了解它其更细微的工作原理。</p> <p><span style="font-size:16px"> </span>首先是从盘片开始,对单个盘片来说,我们要掌握的两个非常重要的概念就是磁道和扇区,盘片转一圈画出来的圆就是磁道。而磁道再往下细分就有个扇区的概念,记住<strong>扇区是硬盘的最小存储物理量</strong>,通常一个扇区的存储大小约为<span style="font-size:16px">512</span>字节。对多了盘片来说,我要掌握另一个非常重要的概念就是柱面,多个盘片的同一个磁道,所抽象出来的概念就叫柱面。记住<strong>柱面是分区时的最小单位。</strong></p> <p><strong><span style="font-size:16px"> </span></strong>接着就是磁头,磁头的主要工作就是在盘片上里外来回往返的读取和写入数据。</p> <p><span style="font-size:16px"> <strong>2.</strong></span><strong>分区管理</strong></p> <p><strong><span style="font-size:16px"> </span></strong>从分区开始往后的概念,已经和磁盘的物理组件没有什么直接关系了。概念也会越来越抽象,也容易混淆。先说说磁头的运作是很机械的,只能是在一个方向上来回的运动而已。怎么才能让磁头高效的准确的定位到所需要的数据上呢?于是有了分区,分了区后,磁头就会知道哪些数据靠盘片外一点,哪些数据靠盘片的里面一点。前面已经提醒过,分区的最小单位是柱面,分区的时候也就是按第<span style="font-size:16px">1</span>到第<span style="font-size:16px">1000</span>个柱面设定为一个分区。</p> <p><span style="font-size:16px"> </span>大家有没有想过,在分区时候的这些约定信息存放在哪里呢?其实这些信息存在的主引导区(<span style="font-size:16px">MBR</span>)上,也就是硬盘的第<span style="font-size:16px">0</span>个柱面上。<span style="font-size:16px">MBR</span>只提供四个分区信息的记忆能力,所以一般情况下就有个<span style="font-size:16px">3</span>个主分区<span style="font-size:16px">+1</span>个扩展分区。</p> <p><span style="font-size:16px"> <strong>3.</strong></span> <strong><span style="font-family: 微软雅黑, sans-serif">文件系统管理</span></strong></p> <p><span style="font-size:16px"> </span>就想一个机器人,没有给它注入系统,它也就是一堆破铁。硬盘也是一样,要想让磁盘能够工作也同样需要注入一个系统。为分区格式化就是给分区注入一个让操作系统能够识别的文件系统。因为每个操作系统能够识别的文件系统都不相同。每个分区都应该对应一个文件操作系统。</p> <p><span style="font-size:16px"> </span>每个大的概念下,都会存在一些小的单位概念。所以在文件系统上也就有了“块”的概念。<strong>块是文件系统下的最小存储单位</strong>。一个块的存储大小为扇区的<span style="font-size:16px">2^n</span>倍数。<span style="font-size:16px"><br /> <strong> 4.</strong></span><strong>文件存储结构</strong></p> <p><strong><span style="font-size:16px"> </span></strong>有个文件系统,那接下来,可以来了解一下文件系统的结构组成。以一个正统的<span style="font-size:16px">linux</span>文件系统<span style="font-size:16px">ext2</span>为例。</p> <p style="text-align:center"><span style="font-size:16px"><img src="//cto.wang/usr/uploads/2016/07/20160703180645-73.png" title="1450021007487766.png" alt="b41d5898-3e07-4773-92a6-3081fece898b.png" /></span></p> <p style="text-align:center">图<span style="font-size:16px">4.1</span></p> <p><span style="font-size:16px"> </span>如图<span style="font-size:16px">4.1</span>所示,文件系统分成了若干个组块,而每个组块大体上分为了两个区域,数据区以及源数据区。数据区存放的是数据的内容本身,而源数据区存放的是一些与数据的内容本身无关的一些为了达到某种管理机制的数据。</p> <p><span style="font-size:16px"> </span>在源数据区中,<span style="font-size:16px">inode</span>表,记录的是文件的属性和文件所在数据块的地址。由于<span style="font-size:16px">inode</span>表中的数据量大,为了提高检索效率,所以建立了<span style="font-size:16px">inode</span>位图索引,同理,也为数据块建立了块位图索引。于是乎我们就可以很好的理清楚整个流程是这样的:</p> <p><span style="font-size:16px"> </span>操作系统向<span style="font-size:16px;font-family:Wingdings">à</span>文件系统发来数据读写指令<span style="font-size:16px;font-family:Wingdings">à</span>文件系统根据<span style="font-size:16px">inode</span>位图索引<span style="font-size:16px;font-family:Wingdings">à</span>找到对应的<span style="font-size:16px">inode</span><span style="font-size:16px;font-family:Wingdings">à</span>从对应的<span style="font-size:16px">inode</span>中找到文件存放的数据块地址<span style="font-size:16px;font-family:Wingdings">à</span>块位图索引<span style="font-size:16px;font-family:Wingdings">à</span>根据地址找到对应的数据块。</p> <p><span style="font-size:16px"> </span>同样的问题,那么文件系统本身的信息和数据结构信息存放在哪里呢?这些信息存放在“超级块”中。</p> <p><span style="font-size:16px"> <strong>5.</strong></span> <strong><span style="font-family: 微软雅黑, sans-serif">软连接和硬链接</span></strong></p> <p><strong><span style="font-size:16px"> </span></strong>有个<span style="font-size:16px">inode</span>的概念后,我们再来探讨<span style="font-family: 微软雅黑, sans-serif">软连接和硬链接就容易理解多了。</span></p> <p style="text-indent:48px;line-height:15px"><strong><span style="font-family: 微软雅黑, sans-serif">硬连接</span></strong><span style="font-family: 微软雅黑, sans-serif">:就是把一个文件指向同一个</span><span style="font-size:16px">inode</span>,也就是让这个文件共享同一个<span style="font-size:16px">inode</span>以及<span style="font-size:16px">inode</span>所指向的数据块。</p> <p style="text-indent:48px"><strong>软连接:</strong>也叫符号连接<span style="font-size:16px">,</span>他只是对源文件在新的位置建立一个“快捷方式”。</p> <p style="text-indent:48px">复制跟硬链接是不同的机制:</p> <p style="text-indent:48px">复制,会使用新的<span style="font-size:16px">inode</span>,而且会启用新的磁盘块;复制时会发现使用空间变大了。硬链接,不使用新的<span style="font-size:16px">inode</span>,也不会启用新的数据块,所以硬链接不会让使用空间变大。</p> <p style="text-indent:48px"><strong><span style="font-size: 16px;font-family: Arial, sans-serif">6.</span></strong><strong><span style="font-size: 16px;font-family: 微软雅黑, sans-serif">文件挂载原理</span></strong></p> <p style="text-indent:48px">操作系统有了,文件系统也有了,那么接下来要启用文件系统,操作系统怎么找到文件系统呢?是不是应该给一个入口才是呢?所以我们要使用“挂载”来建立这个访问入口。</p> <p style="text-indent:48px"><strong>挂载:</strong>将额外的文件系统与根文件系统某现存的目录建立关联关系,并使得此目录作为其他文件访问入口的行为。</p> <p style="text-indent:48px;line-height:15px"><strong><span style="font-family: Arial, sans-serif">7.</span></strong><strong><span style="font-family: 微软雅黑, sans-serif">常见存储相关操作命令</span></strong></p> <p style="text-indent:48px;line-height:15px"><span style="font-family: 微软雅黑, sans-serif">以上已经把整个存储相关的概念和流程都梳理了一下,下面回到实际操作中来,如何在</span><span style="font-size:16px">centos6</span><span style="font-family: 微软雅黑, sans-serif">中通过相关命令来完成这些流程。</span></p> <p style="text-indent:48px;line-height:15px"><span style="font-family: 微软雅黑, sans-serif">有了磁盘设备后,先通过</span><strong><span style="font-size:16px">fdisk</span></strong>来对磁盘进行分区<span style="font-size:16px;font-family:Wingdings">à</span><strong><span style="font-size:16px">kpartx</span></strong>加载分区表<span style="font-size:16px;font-family:Wingdings">à</span><strong><span style="font-size:16px">mkfs</span></strong>或<strong><span style="font-size:16px">mke2fs</span></strong>来为分区创建文件系统<span style="font-size:16px;font-family:Wingdings">à</span><strong><span style="font-size:16px">mount</span></strong>将创建好的文件系统挂载到<span style="font-size:16px">linux</span>系统中<span style="font-size:16px;font-family:Wingdings">à</span><strong><span style="font-size:16px">blkid</span></strong>查看块设备属性信息<span style="font-size:16px;font-family:Wingdings">à</span><strong><span style="font-size:16px">tune2fs</span></strong>查看指定文件系统信息<span style="font-size:16px;font-family:Wingdings">à</span><strong><span style="font-size:16px">dumpe2fs</span></strong> 查看超级块信息和组块信息</p> <p style="text-indent:48px"><span style="font-size:16px"> </span></p> <p> </p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信