磁盘管理与LVM

目录

前言

磁盘分区结构

硬盘的接口

磁盘分区表示

1,MBR

2.磁盘分区的表示

3.linux系统使用的文件系统类型

管理磁盘及分区

fdisk的命令

管理文件系统

创建文件系统

1.mkfs命令使用

挂载,卸载文件系统

mount命令的基本使用格式:

U盘的挂载

卸载文件系统

LVM组成

LVM的管理命令

LVM使用

pv(物理卷)相关操作

逻辑卷(LV)操作

5.格式化并挂载LV

本章总结


前言

在计算机系统中,磁盘作为核心存储设备,承载这操作系统,应用程序及用户数据的管理和存储任务。静态分区的局限性逐渐显现,如容量固定·难以动态调节等问题。

对于解决传统分区的不足,逻辑卷管理(LVM)技术应运而生。LVM通过在物理磁盘和文件系统之间引入逻辑层,实现存储资源的动态分配和扩展。本章讲解磁盘结构·分区操作·文件系统管理及LVM配置流程,帮助读者掌握高效管理磁盘的技术。

磁盘分区结构

  • 物理机构:由盘片和磁头组成,都是每面一个

  • 数据结构:每个盘片被划分为一个个磁道,每个磁道又划分为一个个扇区。每个盘面对应一个磁头。所有的磁头都是连在同一个磁臂上的,因此所有磁头只能“共进退”。所有盘面中相对位置相同的磁道组成柱面

介绍了磁盘分区了,那它们是如何工作的?

由于计算机只认识二进制,而数据都在盘面上

  • 所以*盘面上就存储了大量的二进制*

类比到磁铁的正负极,盘面是通过*磁性来区分0,1*

  • 读取操作时,*磁头*感应磁性场盘面上的*磁变化*,并将其转换为对应的数据

  • 写入操作时,磁头*改变磁场的极性*,将数据写入磁性盘面

硬盘的接口

硬盘按数据接口不同,大致分为ATA(IDE)和SATA以及SCSI和SAS。

现在流行的是SAS(Serial Attached SCSI)是新的SCSI技术,和SATA相同,都是以序列技术传输。

磁盘分区表示

1,MBR

MBR是主引导记录(Master BOOT Record),位于第一个物理扇区。它包括主引导程序和硬盘分区表。分区表有四个记录区,每一个占16个字节。

2.磁盘分区的表示

硬盘分为主分区·扩展分区和逻辑分区,一般情况下主分区只有四个,而扩展分区可以作为特殊的主分区。在扩展分区上建立逻辑分区。主分区放操作系统,扩展分区放其他文件数据。

在windows系统中使用盘符的方式表示主分区和扩张分区。

在linux系统中是如何表示的,具体情况如下:

  • 硬盘:对于“IDE”接口的硬盘设备,表示“hdx”形式的文件名,对于“SCSI”接口的硬盘设备,表示“sdx”形式的文件名。其中“x“为a,b,c,d的字母顺序来填写

  • 分区:表示分区时,在硬件设备的文件名作为基础,后面添加相对应的数字序号。

注意:由于主分区只能有四个,所以主分区和扩展分区序号只能在1~4之间,逻辑分区从5开始。

3.linux系统使用的文件系统类型

Linux 文件系统是用于在磁盘和分区上命名、存储、检索和更新文件的方式。它由用户数据和元数据(如文件名、创建时间、修改时间、大小以及目录层次结构中的位置等)组成。Linux 支持多种文件系统类型,包括但不限于 Ext2、Ext3、Ext4、BtrFS、GlusterFS 等。

常见的 Linux 文件系统类型

  • Ext2/Ext3/Ext4: Ext3 是 Linux 中常见的默认文件系统,它是 Ext2 的升级版本,采用日志式管理机制,具有快速恢复能力。Ext4 是 Ext3 的进一步发展,提供了更高的存储限制和更好的性能。

  • Swap: Linux 中用作交换分区的文件系统,安装 Linux 时必须建立。

  • vfat: Linux 中的 FAT 文件系统,包括 FAT12、FAT16 和 FAT32。

  • NFS: 网络文件系统,允许在局域网内实现文件共享。

  • ISO9660: 光盘使用的文件系统,Linux 对光盘有很好的支持。

  • XFS: 适合高容量磁盘和大型文件,具有高性能,在windows系统中使用较多。

  • SAS:是现在Linux服务器主要使用的接口,具有超强的传输速度。

管理磁盘及分区

在Linux系统中,我们使用fdisk磁盘及分区管理工具,它时Linux系统自带的工具之一

fdisk的命令

 Linux fdisk命令的基本语法
 fdisk命令的基本语法如下:
 ​
 fdisk [选项] 设备文件名
 其中,设备文件名指定要进行分区操作的硬盘设备,如/dev/sda。
 ​
 Linux fdisk命令的常用选项说明
 以下是fdisk命令的一些常用选项说明:
 ​
 -l:显示设备的分区表信息。
 -n:创建一个新的分区。
 -d:删除一个分区。
 -p:打印分区表的内容。
 -t:更改分区的类型。
 -u:以扇区单位显示分区信息。
 -w:将分区表写入磁盘。
 -q:不保存,直接退出磁盘

管理文件系统

当建立完分区后,还需对分区进行格式化并挂载到指定目录,才能用于使用。

创建文件系统

在linux系统在使用mkfs(Make Filesystem,)命令工具进行格式化转换不同类型的文件系统。而SWAP交换分区使用MKswap命令进行格式化。

1.mkfs命令使用

 mkfs的命令格式为:
 mkfs -t 文件系统类型 分区设备

实例:创建xfs文件系统

 [root@localhost ~]# mkfs -t xfs /dev/sda1
 meta-data=/dev/sda1              isize=512    agcount=4, agsize=655360 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=1, sparse=1, rmapbt=1
          =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
 data     =                       bsize=4096   blocks=2621440, imaxpct=25
          =                       sunit=0      swidth=0 blks
 naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
 log      =internal log           bsize=4096   blocks=16384, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
 realtime =none                   extsz=4096   blocks=0, rtextents=0
 ​

2.Mkswap命令使用

首先在fdisk工具中将目标分区的ID号设为82,在使用mkswap命令进行添加”虚拟内存“

实例:

 Hex 代码或别名(输入 L 列出所有代码):82
 ​
 已将分区“Linux”的类型更改为“Linux swap / Solaris”。
 分区表记录没有按磁盘顺序。
 [root@localhost ~]# mkswap /dev/sda5
 正在设置交换空间版本 1,大小 = 5 GiB (5368705024  个字节)
 无标签,UUID=261a1a87-1f0e-4f1b-8d4e-5f7ea0dcd7c0
 ​
 ​

对于新添加的swap分区,需使用swapon命令启用,swapoff进行关闭。

实例:

 [root@localhost ~]# cat /proc/meminfo |grep "SwapTotal"
 SwapTotal:       4194300 kB  //查看分区大小
 [root@localhost ~]# swapon /dev/sda5   打开交换分区
 [root@localhost ~]# cat /proc/meminfo |grep "SwapTotal"
 SwapTotal:       9437176 kB //查看已打开交换分区
 [root@localhost ~]# swapoff /dev/sda5  //关闭交换分区
 

3.如何在Linux系统中搭建windows文件系统

dnf -y install nrfsgrops #下载ntfs相关的软件包,才能进行构建ntfs系统

 mkfs  -t  ntfs  /dev/sda1
 ​

挂载,卸载文件系统

mount命令的基本使用格式:

mount [ -t 文件系统类型 ] 存储设备 挂载点

我们一般情况下经常会把磁盘文件挂载在linux系统中。下面主要介绍如何把U盘、等挂载到linux系统中。

U盘的挂载

 USB接口的U盘对于linux系统而言是当作SCSI设备对待的,插入U盘后,再次使用“fdisk -l”命令,发现磁盘列表中多了一个硬盘/dev/sdb,容量大小2G,和插入的U盘容量大小一致。同时系统多了一个/dev/sdb1的磁盘分区。这个磁盘分区就是要挂载的U盘。新建一个目录作为U盘的挂接点。比如说要把U盘挂载到 /mnt/usb,那么需要采用下列命令新建 /mnt/usb。
 ​
    mkdir /mnt/usb
 ​
    然后就可以采用mount命令把U盘挂载在/mnt/usb。
 ​
    mount /dev/sdb1 /mnt/usb
 ​
    输入命令 cd /mnt/usb进入目录/mnt/usb,然后输入 ls命令就可以查看U盘里的内容了。

U盘使用完毕后,为了避免损坏U盘或者丢失数据,可以采用 umount命令解挂U盘,类似于windows下的弹出U盘操作。

mount命令的”-o”选项关在镜像到指定地方

 mount [-0 挂在参数] 存储设备 挂载点

卸载文件系统

 [root@localhost ~]# mount /dev/sda1 /a1
 [root@localhost ~]# umount /a1   //通过挂载店卸载对应目录
 ​

查看磁盘使用情况

 用法:df [选项]... [文件]...
 参数:
     -h : 显示容量单位
     -T: 显示对应文件类型
     
  [root@localhost ~]# df -hT
 文件系统                   类型      大小  已用  可用 已用% 挂载点
 /dev/mapper/openeuler-root ext4      191G  1.8G  180G    1% /
 devtmpfs                   devtmpfs  4.0M     0  4.0M    0% /dev
 tmpfs                      tmpfs     1.7G     0  1.7G    0% /dev/shm
 tmpfs                      tmpfs     4.0M     0  4.0M    0% /sys/fs/cgroup
 tmpfs                      tmpfs     675M  9.1M  666M    2% /run
 tmpfs                      tmpfs     1.7G     0  1.7G    0% /tmp
 /dev/nvme0n1p2             ext4      974M  174M  733M   20% /boot
 

设置文件的自动挂载

打开/etc/fstab目录,该目录是mount命令的配置文件,下面该图说明配置,以后每个命令都可以这样写

磁盘管理与LVM_第1张图片

LVM组成

多个物理卷组成卷组,卷组是一个整体,在里面创建逻辑卷。

1、物理卷 (PV,Physical Volume) 一个可供存储LVM的块设备. 如硬盘分区(MBR或GPT分区)、SAN 的硬盘、RAID 或 LUN,一个回环文件, 一个被内核映射的设备 (例如 dm-crypt),它包含一个特殊的LVM头,它是 LVM 构建的实际硬件或存储系统。

2、卷组 (VG,Volume Group) 卷组是对一个或多个物理卷的集合,并在设备文件系统中显示为 /dev/VG_NAME。

3、逻辑卷 (LV,Logical Volume) 逻辑卷是可供系统使用的最终元设备,它们在卷组中创建和管理,由物理块组成,实际上就是一个虚拟分区,并显示为 /dev/VG_NAME/LV_NAME,通常在其上可以创建文件系统。

4、物理块 (PE,Physical Extends) 一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。

LVM的管理命令

功能 pv(物理卷)命令 VG(卷组)命令 LV(逻辑卷)命令
scan(扫描) pvscan vgscan lvscan
create(创建) pvcreate vgcreate lvcreate
display(显示) pvdisplay vgdisplay lvdisplay
remove(删除) pvremove vgremove lvremove
extend(添加) vgextend lvextend
reduce(减少) vgereduce lvreduce

LVM使用

pv(物理卷)相关操作

①创建物理卷 格式:pvcreate device1 device2

 [root@localhost ~]# pvcreate /dev/sda4
   Physical volume "/dev/sda4" successfully created.
 ​

②查看当前物理卷信息 格式:pvs pvscan pvdisplay

 [root@localhost ~]# pvdisplay /dev/sda4
   "/dev/sda4" is a new physical volume of "20.00 GiB"
   --- NEW Physical volume ---
   PV Name               /dev/sda4
   VG Name               
   PV Size               20.00 GiB
   Allocatable           NO
   PE Size               0   
   Total PE              0
   Free PE               0
   Allocated PE          0
   PV UUID               xzPpoB-ryOE-n1ZZ-j8fj-zhFv-dWS5-Lmwdmd
 ​

③删除pv 格式:pvremove device1 device2

 [root@localhost ~]# pvremove /dev/sda4
   Labels on physical volume "/dev/sda4" successfully wiped.
 ​

vg(卷组)相关操作

①创建卷组 格式:vgcreate vg_name pv1 pv2 创建卷组vg_test1,并把/dev/sda1和/dev/sda2加入到卷组中

 [root@localhost ~]# vgcreate vg_test1 /dev/sda1 /dev/sda2
   Volume group "vg_test1" successfully created
 ​

②查看卷组 格式:vgs vgscan vgdisplay

 [root@localhost ~]# vgdisplay vg_test1
   --- Volume group ---
   VG Name               vg_test1
   System ID             
   Format                lvm2
   Metadata Areas        2
   Metadata Sequence No  1
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                0
   Open LV               0
   Max PV                0
   Cur PV                2
   Act PV                2
   VG Size               19.99 GiB
   PE Size               4.00 MiB
   Total PE              5118
   Alloc PE / Size       0 / 0   
   Free  PE / Size       5118 / 19.99 GiB
   VG UUID               COE9ed-pYFY-y5UH-jZui-cJYL-7ZC8-ry7HDA
 ​

③删除卷组 格式:vgremove 卷组名

 [root@localhost ~]# vgremove vg_test1
   Volume group "vg_test1" successfully removed
 ​

④扩容卷组 格式:vgextend 卷组名 device

 [root@localhost ~]# vgextend vg_test1 /dev/sda4
   Volume group "vg_test1" successfully extended
 ​

⑤缩小卷组 格式:vgreduce 卷组名 device

 [root@localhost ~]# vgreduce vg_test1 /dev/sda4
   Removed "/dev/sda4" from volume group "vg_test1"
 ​
逻辑卷(LV)操作

①创建逻辑卷 格式:lvcreate -L -n lvcreate -L 指定要给的lv的大小 卷组的名称 -n 给逻辑卷命名

 [root@localhost ~]# lvcreate -L 15G vg_test1 -n lv_test
   Logical volume "lv_test" created.
 ​

②查看逻辑卷 格式:lvs lvscan lvdisplay

 [root@localhost ~]# lvscan
   ACTIVE            '/dev/openeuler/swap' [4.00 GiB] inherit
   ACTIVE            '/dev/openeuler/root' [194.99 GiB] inherit
   ACTIVE            '/dev/vg_test1/lv_test' [15.00 GiB] inherit
 ​

③删除逻辑卷 格式:lvremove /dev/vg_test1/lv_test lvremove 逻辑卷路径

④扩容逻辑卷 格式:lvextend -L lvextend -L 扩容数量 逻辑卷路径

 [root@localhost ~]# lvextend -L +3G /dev/vg_test1/lv_test 
   Size of logical volume vg_test1/lv_test changed from 15.00 GiB (3840 extents) to 18.00 GiB (4608 extents).
   Logical volume vg_test1/lv_test successfully resized.
 ​

5.格式化并挂载LV

①格式化逻辑卷 格式:mkfs. /dev/vg_test1/lv_test mkfs. 逻辑卷路径

 [root@localhost ~]# mkfs.xfs /dev/vg_test1/lv_test
 meta-data=/dev/vg_test1/lv_test  isize=512    agcount=4, agsize=1179648 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=1, sparse=1, rmapbt=1
          =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
 data     =                       bsize=4096   blocks=4718592, imaxpct=25
          =                       sunit=0      swidth=0 blks
 naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
 log      =internal log           bsize=4096   blocks=16384, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
 realtime =none                   extsz=4096   blocks=0, rtextents=0
 ​

②挂载逻辑卷 格式:mount /dev/vg_test1/lv_test 目录 mount 逻辑卷路径 目录

 [root@localhost ~]# mount /dev/vg_test1/lv_test test
 [root@localhost ~]# df -HT
 文件系统                     类型      大小  已用  可用 已用% 挂载点
 /dev/mapper/openeuler-root   ext4      205G  1.9G  193G    1% /
 devtmpfs                     devtmpfs  4.2M     0  4.2M    0% /dev
 tmpfs                        tmpfs     1.8G     0  1.8G    0% /dev/shm
 tmpfs                        tmpfs     4.2M     0  4.2M    0% /sys/fs/cgroup
 tmpfs                        tmpfs     708M  9.5M  698M    2% /run
 tmpfs                        tmpfs     1.8G     0  1.8G    0% /tmp
 /dev/nvme0n1p2               ext4      1.1G  183M  768M   20% /boot
 /dev/mapper/vg_test1-lv_test xfs        20G  403M   19G    3% /root/test

如 ​

本章总结

希望读者可以通过这篇文章掌握从基础磁盘分区到高级存储管理的全流程操作,理解LVM在提升存储资源利用率的优势,为实际运维场景中

你可能感兴趣的:(Linux系统管理,运维,开源,网络)