Linux-管理文件系统及存储

文章目录

  • 文件系统基础概念
    • 文件系统
      • 文件系统概述
      • 文件系统类型及使用场景
    • 系统交换分区
      • 系统交换空间
      • swap分区配置
  • 磁盘存储挂载与使用
    • 磁盘基础
      • 磁盘类型
      • 磁盘接口说明
      • LIinux查看磁盘信息
    • 磁盘分区
      • 分区的概念
      • 磁盘分区类型
      • 磁盘分区命名规则
      • 磁盘分区方案 - MBR
        • MBR分区方案
        • fdisk分区工具使用
        • fdisk硬盘分区操作
      • 磁盘分区方案 - GPT
        • GPT分区方案
        • parted分区工具使用
        • parted硬盘分区操作 - 交互式
        • parted硬盘分区操作 - 非交互式
    • 格式化与挂载
      • 磁盘格式化
      • 磁盘格式化命令 - mkfs
      • 磁盘挂载
        • fstab介绍
        • fstab重要参数说明
  • 逻辑卷管理
    • 逻辑卷基础
      • 逻辑卷概念
      • 逻辑卷原理
      • 逻辑卷的优点
    • 管理逻辑卷
      • 逻辑卷创建流程
      • 逻辑卷管理 - pv的使用
        • 逻辑卷管理 - pv的使用举例
      • 逻辑卷管理 - vg的使用
        • 逻辑卷管理 - vg的使用举例
      • 逻辑卷管理 - lv的使用
        • 逻辑卷管理 - lv的使用举例
    • 动态调整逻辑卷
      • 逻辑卷扩容
      • 逻辑卷缩容
      • 逻辑卷容量变更

文件系统基础概念

文件系统

文件系统概述

文件系统是操作系统用于明确存储设备或分区上的文件的方法数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

三大特征:

  • 提供用户人性化接口
  • 磁盘管理软件,类似于中间件
  • 底层存储硬件,如磁盘或分区

文件系统类型及使用场景

Linux-管理文件系统及存储_第1张图片

系统交换分区

系统交换空间

Linux系统交换空间(swap)就是磁盘上的一块区域,可以是一个分区,也可以是一个文件,简单的说就是当物理内存资源紧张时,将内存中不常访问的资源保存到预先设定的硬盘上的交换空间,来释放该资源占用的内存,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问swap上存储的内容时,再将swap上的数据加载到内存中。

物理内存和交换空间的和就是系统可提供的虚拟内存的总量。

为什么需要swap分区?

  • 增加系统可用内存空间—当物理内存不够用时,增加swap分区比增加物理内存更经济;
  • 提高系统整体性能—将不常用数据移动到swap后,系统会有更多内存用于缓存,加快系统I/O;
  • 许多linux发行版(如ubuntu)的休眠功能依赖于swap分区—当系统休眠时,会将内存数据保存到swap分区,下次启动时再加载到内存。

swap分区配置

Linux有两种形式的交换空间:交换分区交换文件。交换分区就是一个独立的硬盘,没有文件或内容,即swap分区;交换文件是文件系统中的一个特殊文件,独立于系统和数据文件之外。

  创建swap分区:fdisk创建分区,mkswap创建swap分区,swapon启用swap分区;
  创建swap文件:创建文件,mkswap格式化文件,swapon启用swap文件。

推荐的swap大小配置
Linux-管理文件系统及存储_第2张图片

磁盘存储挂载与使用

磁盘基础

磁盘类型

按硬盘材质分:HDD(机械硬盘)、SSD(固态硬盘)
按接口类型分:IDE、SCSI、SATA、SAS、FC

磁盘接口说明

Linux-管理文件系统及存储_第3张图片

LIinux查看磁盘信息

  • fdisk -l 用于查看系统所有磁盘的信息,包括已挂载和未挂载磁盘
  • df -h 命令查看系统挂载、磁盘空间大小和利用率

磁盘分区

分区的概念

磁盘分区可以将硬盘驱动器划分为多个逻辑存储单元,这些单元称为分区。通过将磁盘划分为多个分区,系统管理员可以使用不同的分区执行不同功能。

磁盘分区的好处:

  • 限制应用或用户的可用空间。
  • 允许从同一磁盘进行不同操作系统的多重启动。
  • 将操作系统和程序文件与用户文件分隔。
  • 创建用于操作系统虚拟内存交换的单独区域。
  • 限制磁盘空间使用情况,以提高诊断工具和备份映像的性能。

磁盘分区类型

通常所说的“硬盘分区”就是指修改磁盘分区表,注意以下情况:

  1. 考虑到磁盘的连续性,一般建议将扩展分区放在最后面的柱面内。
  2. 一个硬盘只有一个扩展分区,除去主分区,其它空间都分配给扩展分区。
  3. 硬盘容量=主分区+扩展分区;扩展分区容量=各个逻辑分区容量之和
    Linux-管理文件系统及存储_第4张图片

磁盘分区命名规则

在Linux中,没有盘符这个概念,通过设备名来访问设备,设备名存放在 /dev 目录中。

命名规则如下:/dev/xxyN

  • xx 代表设备类型,通常是hd(IDE磁盘),sd(SCSI磁盘),fd(软驱),vd(virtio磁盘)
  • y 代表分区所在的设备,例如 /dev/hda(第一个IDE磁盘)或 /dev/sdb(第二个SCSI磁盘)
  • N 代表分区,前4个分区(主分区或扩展分区)用数字1到4,逻辑分区从5开始,例如 /dev/hda3 是第一个IDE磁盘上第三个主分区或扩展分区;/dev/sdb6 是第二个SCSI硬盘上的第二个逻辑分区。

注:Linux中,SSD、SAS、SATA类型的硬盘,都用sd来标识,IDE硬盘属于IDE接口类型的硬盘,用 hd 来标识。

磁盘分区方案 - MBR

MBR分区方案

主启动记录(Master Boot Record) 分区方案指定了在运行BIOS固件的系统上应如何对磁盘进行分区,它是存在于驱动器开始部分的一个特殊的启动扇区。

如果是SCSI接口硬盘则最多只能有15(其中扩展分区不能直接使用所以不计算)个分区,其中主分区最多4个,逻辑分区最多12个。IDE接口硬盘最多只能有63(其中扩展分区不能直接使用所以不计算)个分区,其中主分区最多4个,逻辑分区最多60个。
由于分区大小数据以32位值存储,使用MBR方案分区时, 最大磁盘和分区大小限制为2TB。

fdisk分区工具使用

fdisk是传统的Linux硬盘分区工具,也是Linux系统中最常用的一种硬盘分区工具之一,但不支持大于 2TB 的分区

命令格式如下:
语法:fdisk(选项)(参数)
常用选项释义如下:
    -b <分区大小>:指定每个分区的大小;
    -l:列出指定的外围设备的分区表状况;
    -s <分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
    -u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
    -v:显示版本信息。

fdisk硬盘分区操作

选择好具体某块硬盘后,进入交互模式进行分区操作。如:
  fdisk /dev/sdb #交互式命令参数如表格所示
Linux-管理文件系统及存储_第5张图片

创建主分区的流程:
Linux-管理文件系统及存储_第6张图片

创建扩展分区的流程:
Linux-管理文件系统及存储_第7张图片

注:扩展分区创建完成后不能直接使用,必须要创建逻辑分区。

磁盘分区方案 - GPT

GPT分区方案

随着硬盘驱动器容量的不断增长,老旧的MBR分区方案的 2TB磁盘和分区大小限制已不再是理论上的限制,而是在生产环境中越来越经常遇到的实际问题,因此,GPT正在取代传统的MBR方案进行磁盘分区。

GPT意为GUID分区表,驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID),对于运行统一可扩展固件接口(UEFI) 固件的系统,GPT是在物理硬盘上布置分区表的标准。

没有主分区和逻辑分区之分,每个硬盘最多可以有128个分区,GPT 为逻辑块地址分配64位 ,因此最大支持18EB的分区大小。

parted分区工具使用

parted是另一款在linux下常用的分区软件,可支持创建2T以上磁盘分区,相对于fdisk,它的使用更加方便,同时提供了动态调整分区大小的功能,命令格式如下:

语法:parted [options] [device  [command [options...]...]]
其中的命令选项说明如下:
	-h :显示帮助信息。
	-i :交互模式。
	-s :脚本模式。
	-v :显示parted的版本信息。
	device :磁盘设备名称,如/dev/sda。
	command :parted指令,如果没有设置指令,则parted将会进入交互模式。

parted硬盘分区操作 - 交互式

选择好具体某块硬盘后,进入交互模式进行分区操作。
如:parted /dev/sdb #交互式命令参数如表格所示。
Linux-管理文件系统及存储_第8张图片

而后,

  • 输入 mklable gpt 创建gpt分区表,2T以上只能用gpt,其他还有些确认信息,确认后通过print查看分区表是否为gpt格式。
  • 输入 mkpart 新建分区,如果输入mkpart指令不带任何参数,parted会一步步提示用户输入相关信息最终完成创建。
  • 输入 q 保存退出

parted硬盘分区操作 - 非交互式

选择某块硬盘,采用非交互式即命令行式配置,如
parted /dev/sdb
Linux-管理文件系统及存储_第9张图片

格式化与挂载

磁盘格式化

格式化是指对磁盘或磁盘中的分区进行初始化的一种操作,将分区格式化成不同的文件系统,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。
Linux-管理文件系统及存储_第10张图片

磁盘格式化命令 - mkfs

mkfs命令是make filesystem的缩写,用来在特定的分区建立Linux文件系统,命令格式如下:

语法:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
其中的命令选项说明如下:
	device : 预备检查的硬盘分区,例如:/dev/sda1
	-V : 详细显示模式
	-t : 给定档案系统的型式,Linux 的预设值为 ext2
	-c : 在制做档案系统前,检查该partition 是否有坏轨
	-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
	block : 给定 block 的大小

磁盘挂载

格式化完成以后,我们还不能使用磁盘,必须挂载以后才能用,原因如下:

Linux的宗旨是一切皆文件,要项使用磁盘,必须先建立一个联系,这个联系就是一个目录,建立联系的过程我们叫做挂载;当我们访问sdb2底下的这个目录的时候,实际上我们访问的才是sdb2这个设备文件。这个目录相当于一个访问sdb2的入口,可以理解为一个接口,有了这个接口才可以访问这个磁盘。

  • 挂载点目录 根目录下已有media 和 mnt 这两个目录被叫作挂载点目录。除此之外,我们也可以自己创建一个目录作为一个挂载点目录。
  • 临时挂载 使用命令:mount /dev/sda5 /test,意思就是说将 /dev/sda5 挂载到test目录中,重启后失效。
  • 永久挂载 使用永久挂载,就意味着它开机会自动挂载,使用 vim 编辑 /etc/fstab

fstab介绍

/etc/fstab文件的作用
用来存放文件系统的静态信息的文件,统启动的时候,会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录,这样我们只需要将磁盘的挂载信息写入这个文件中就不需要每次开机启动之后手动进行挂载了。

fstab文件格式:
<file system>     <dir>      <type>       <options>             <dump>  <pass>
 tmpfs             /tmp        tmpfs      nodev,nosuid             0        0
/dev/sda1          /           ext4       defaults,noatime         0        1
/dev/sda2          none        swap       defaults                 0        0

fstab重要参数说明

Linux-管理文件系统及存储_第11张图片

逻辑卷管理

逻辑卷基础

逻辑卷概念

LVM-逻辑卷管理是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。

  • 物理单元(PE) :Physical Extents–具有唯一编号的PE是能被LVM寻址的最小单元,PE的大小可以指定,默认为4MB。PE的大小一旦确定将不能改变,同一个卷组中的所有的物理卷的PE的大小是一致的;
  • 逻辑单元(LE):Logical Extents–是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小,在同一个卷组中,LE的大小和PE是相同的,通常一一对应;
  • 物理卷(PV):Physical Volume–底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等;
  • 卷组(VG):Volume Group–建立在物理卷之上,它由一个或多个物理卷组成,即把物理卷整合起来提供容量分配,一个LVM系统中可以只有一个卷组,也可以包含多个卷组;
  • 逻辑卷(LV):Logical Volume–逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间,它是最终用户使用的逻辑设备,逻辑卷创建之后,其大小可以伸缩。

逻辑卷原理

逻辑卷(lv)是将几个磁盘分区或者块设备(pv,pv可以位于不同的磁盘分区里,pv大小可以不一)组织起来形成一个大的扩展分区(vg卷组,一个vg至少要包含一个pv),该扩展分区不能直接用,需要将其划分成逻辑卷(lv)才能使用,lv可以格式化成不同的文件系统,挂载后直接使用。
Linux-管理文件系统及存储_第12张图片

逻辑卷的优点

  • 灵活的容量
  • 可伸缩的存储池
  • 在线的数据再分配
  • 方便的设备命名
  • 磁盘条带化
  • 卷镜像和卷快照

管理逻辑卷

逻辑卷创建流程

Linux-管理文件系统及存储_第13张图片

逻辑卷管理 - pv的使用

pvcreate命令用于创建物理卷,可以使用物理磁盘或者磁盘分区创建。

语法:pvcreate [选项] 设备文件名
其中的命令选项说明如下:
	-f :强制创建物理卷,不需要用户确认。
	-u :指定设备的UUID。
	-y :所有的问题都回答yes。

其中的参数说明如下:指定要创建的物理卷对应的设备文件名。

注:使用分区创建时,磁盘分区后的id为83,需要将id改为8e,才能创建物理卷,可用fdisk修改id

逻辑卷管理 - pv的使用举例

将磁盘hda的6-9分区创建成pv,注意大括号的使用。

在命令行中输入下面的命令:

 pvcreate /dev/hda{6,7,8,9}

使用pvdisplay、pvscan、pvs查看物理卷信息。

  • 如使用pvs查看:
pvs #查看物理卷概要信息
  • 输出信息说明
PV            VG         fmt     Attr   PSize     PFree          
/dev/sdb1  vg1000        lvm2    --    100.00M    100.00M  
/dev/sdb2                lvm2    --    101.98M    101.98M

逻辑卷管理 - vg的使用

vgcreate命令用于创建LVM卷组。卷组将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。

语法:vgcreate [选项] 卷组名 物理卷列表
其中的命令选项说明如下:
	-l :卷组上允许创建的最大逻辑卷数。
	-p :卷组中允许添加的最大物理卷数。
	-s :卷组上的物理卷的PE大小。

其中的参数说明如下:
  卷组名:要创建的卷组名称。
  物理卷列表:要加入到卷组中的物理卷列表。

逻辑卷管理 - vg的使用举例

使用vgcreate命令创建卷组 “vg1000”,并且将物理卷/dev/sdb1和/dev/sdb2添加到卷组中。

在命令行中输入下面的命令:

vgcreate vg1000 /dev/sdb1 /dev/sdb2

使用vgdisplay、vgscan查看卷组信息。

  • 如使用vgdisplay:
vgdisplay vg1000

注:不指定vg1000卷组则显示所有卷组信息

逻辑卷管理 - lv的使用

lvcreate命令用于创建LVM的逻辑卷,逻辑卷是创建在卷组之上的。

语法:lvcreate [选项] 逻辑卷名称
其中的命令选项说明如下:
	-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节。
	-l :指定逻辑卷的大小(LE数)。

其中的参数说明如下:逻辑卷:指定要创建的逻辑卷名称。

注:逻辑卷创建完成后,同样需要格式化,挂载后才能使用,方式同2.4章节介绍的方法一致,即用mkfs格式化创建文件系统,mount挂载至目录

逻辑卷管理 - lv的使用举例

使用lvcreate命令在卷组“vg1000” 上创建一个200MB的逻辑卷。

在命令行中输入下面的命令:

lvcreate -L 200M vg1000

使用lvdisplay、lvscan查看卷组信息。

  • 如使用lvscan:
lvscan #扫描所有逻辑卷

动态调整逻辑卷

逻辑卷扩容

无需卸载,在线就能扩容。

  1. 扩容前先查看确认是否有足够vg空间:vgs
  2. 使用扩容命令:lvextend -L +SIZE lv_device
  3. 调整文件系统的大小:resize2fs device lv_device

逻辑卷缩容

缩容有风险,操作需谨慎!

  1. 先确定缩减后的目标大小,并确保对应的目标逻辑卷大小中有足够的空间可容纳原有所有数据。
  2. 卸载文件系统:umount,并要执行强制检测:e2fsck -f
  3. 缩减文件系统:resize2fs DEVICE
  4. 缩减逻辑卷:lvreduce
  5. 重新挂载使用

逻辑卷容量变更

lvresize指令用于调整逻辑卷空间大小,可以增大空间和缩小空间,实际上包含了lvextend和lvreduce的功能,因此扩容及缩容步骤相同。

语法:lvresize [选项] 逻辑卷名称
其中的命令选项说明如下:
	-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节。
	-l :指定逻辑卷的大小(LE数)。

其中的参数说明如下:

  • 逻辑卷:指定要创建的逻辑卷名称。

如使用lvresize指令增加容量:

lvresize -L +200M /dev/vg1000/lvo10 #将逻辑卷空间增加200M

创作不易,如果这篇【文章】有帮助到你,希望可以给作者点个赞,你的鼓励是我最大的动力!

你可能感兴趣的:(Linux,linux,文件系统,磁盘存储挂载与使用,逻辑卷管理)