Linux--存储结构与磁盘划分

一切从“/”开始

“Linux系统中一切都是文件”

Linux系统中还有一个重要的概念-----路径。绝对路径指的是从根目录( / )开始写起的文件或目录名称,相对路径则是指相对于当前路径的写法。

物理设备的命名规则

一般的硬盘设备都以“/dev/sd”开头;而一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也很讲究。

  1. 主分区或扩展分区的编号从1开始,到4结束。
  2. 逻辑分区从编号5开始。

上述中的sda并不是主板上第一个插槽上的存储设备,而是由系统内核的识别顺序来决定的,而恰巧很多主板的插槽顺序就是系统内核的识别顺序,因此才会被命名为/dev/sda。同时,sda3不是表示设备上的第三个分区,因为分区的数字编码不一定是强制顺延下来的,可能是手工指定的。因此sda3只能表示编号为3的分区,不能判断sda设备上已经存在了3个分区。

文件系统与数据资料

Linux系统支持数十种的文件系统,而最常见的文件系统如下所示:

  1. Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料消失,并能自动修复数据的不一致与错误。
  2. Ext4:Ext3的改进版本,它支持的存储容量高达IEB(IEB=1,073,741,524GB),且能够有无限多的子目录。另外,该文件系统能够批量分配block块,从而极大地提高了读写效率。
  3. XFS:是一种高性能的日志文件系统,而且是RHEL7中默认的文件管理系统。在意外宕机后,能够快速的恢复可能被损坏的文件,强大的日志功能只用话费极低的计算和存储性能,最大可支持的存储容量为18EB。

日常在硬盘需要保存的数据太多了,因此Linux系统中有一个名为super block的“硬盘地图”,里面记录着整个文件系统的信息;Linux只是把每个文件的权限与属性记录在inode中,而且每个文件占用一个独立的inode表格,该表格大小为128字节,里面记录着如下信息:

  1. 文件的访问权限(read、write、execute)
  2. 文件的所有者与所属组(owner、group)
  3. 文件的大小(size)
  4. 文件的创建或内容修改时间(ctime)
  5. 文件的最后一次访问时间(atime)
  6. 文件的修改时间(mtime)
  7. 文件的特殊权限(SUID、SGID、SBIT)
  8. 文件的真实数据地址(point)

文件的内容保存再block中,一个inode的默认大小为128字节(Ext3),记录一个block则消耗4B。当inode被写满后,Linux系统会自动分配出一个block块,专门用于像inode那样记录其他block块的信息,这样把每个block块的内容串到一起,就能够让用户读到完整的文件内容了。

为了使用户在读取或写入文件时不用关心底层的硬盘结构,Linux内核中的软件层为用户程序提供了一个VFS(虚拟文件系统)接口,这样用户实际上在操作文件时就是统一对这个虚拟文件系统进行操作。

挂载硬件设备

一块全新的硬盘存储设备要先分区,然后格式化,最后才能挂载并正常使用。

mount命令

  1. 作用:用于挂载文件系统
  2. 格式:mount  文件系统  挂载目录
  3. 只需使用mount命令把硬盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据了。

参数解释:

  • 一般不需要使用-t参数,系统会自行进行判断。
  • -a参数会在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作

例如,把设备/dev/sda1挂载到./practice目录,命令如下:

【注】文件挂载会在系统重启后失效,也就是说我们每次启动机器都需要挂载一次;但如果希望硬件设备和目录永久地进行自动关联,就必须把挂载信息按指定的填写格式“设备文件   挂载目录   格式类型   权限选项   是否备份   是否自检”写入到/etc/fstab文件中。

 

umount命令

  1. 作用:用于撤销已经挂载的设备文件
  2. 格式:umount  【挂载点/设备文件】
  3. 挂载文件系统是为了使用硬件资源,而卸载文件系统就意味着不再使用硬件的设备资源。

添加硬盘设备

添加硬盘设备的操作思路:首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后进行分区、格式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否添加成功。

fdisk命令

  1. 作用:管理硬盘设备,用于管理磁盘分区
  2. 格式:fdisk  【磁盘名称】
  3. 提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”

du命令

  1. 作用:用于查看文件数据占用量
  2. 格式:du  【选项】 【文件】
  3. 主要用来查看一个或多个文件占用了多大的硬盘空间;还可以用du -sh /*命令来查看Linux系统根目录下所有一级目录分别占用的空间大小。

添加交换分区

交换分区(swap)是一种通过在硬盘中预先划分一定空间,然后将内存中咋那是不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计的目的是为了解决真实物理内存不足的问题。

操作如上一点,但会出现无法查找到对应的空间,这个时候使用“partprobe”命令来使得想内核写入分区信息,此时就能找到对应的空间名。

磁盘容量配额

硬件资源是固定且有限的,如果某些用户不断地在 Linux 系统上创建文件或者存放电影,硬盘空间总有一天会被占满。针对这种情况, root 管理员就需要使用磁盘容量配额服务来限制某位用户或某个用户组针对特定文件夹可以使用的最大硬盘空间或最大文件个数,一旦达到这个最大值就不再允许继续使用。

可以使用 quota 命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。
quato命令还有软限制和硬限制两种功能:

  1. 软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
  2. 硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。

xfs_quota命令

  1. 作用:专门针对XFS文件系统来管理quota磁盘容量配额服务的命令
  2. 格式:xfs_quota 【参数】配额  文件系统
  3. 参数
    1. -c:用于以参数形式设置要执行的命令
    2. -x:专家模式,让运维人员对quota服务进行更多复杂的配置

edquota命令

  1. 作用:用于编辑用户的quota配额限制
  2. 格式:edquota 【参数】【用户】
  3. 参数
    1. -u:表示要针对哪个用户进行设置
    2. -g:表示要针对哪个用户组进行设置

软硬方式链接

  • 硬链接:指向原始文件inode的指针,系统不为它分配独立的inode和文件。
  • 软链接:也称符号链接,仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。
  • 详细可看《计算机操作系统》 文件管理部分

In命令

  1. 作用:用于创建链接文件
  2. 格式:In 【选项】 目标

猜你喜欢

转载自blog.csdn.net/weixin_37160123/article/details/89408120