一、磁盘结构及分区表示
1、磁盘基础
1.1、硬盘的结构
物理结构
盘片 硬盘有多个盘片,每盘片2面 磁头 每面一个磁头
数据结构
扇区 磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区 磁道 当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道(Track) 柱面 在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面(Cylinder) 1.2、存储容量
硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数。
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,用'fdisk -l'查看分区信息。1.3、硬盘的接口
ATA 全称 Advanced Technology Attachment,已逐渐被 SATA 所取代 SATA 全称 Serial ATA,抗干扰性强,支持热插拔等功能 SCSI 全称是 Small Computer System Interface(小型机系统接口),广为工作站级个人电脑以及服务器所使用 SAS (Serial Attached SCSI)是新一代的 SCSI 技术,传输速度可达到 6Gb/s NVME 极致低延迟、超高吞吐量、高并发处理能力、PCIe原生优化、高效能硬件适配、智能管理增强
二、管理磁盘分区
管理磁盘及分区:fdisk:磁盘及分区管理工具,系统自带
规划硬盘中的分区
fdisk /dev/nvme0n2 进入交互式页面
m 查看各种指令的帮助信息 p 列出硬盘中的分区情况 n 新建分区 e 新建扩展分区 p 新建主分区 d 删除分区 t 变更分区的类型 w 保存分区 q 退出fdisk分区工具
重启生效
#列出指定硬盘设备及分区情况 fdisk -l /dev/nvme0n2
三、管理文件系统
在Linux操作系统中,使用fdisk工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中的指定目录,然后才能用于存储文件、目录等数据。
1、mkfs命令的使用
实际上mkfs命令是一个前端工具,可以自动加载不同的程序来创建各种类型的文件系统,而后端包括多个与mkfs命令相关的工具程序,这些程序位于/sbin/目录中,如支持EXT4文件系统的mkfs.ext4程序等。
例子:
#查看当前操作系统中与mkfs命令相关的工具程序 ls -l /sbin/mkfs*
格式:
mkfs -t 文件类型 分区设备
mkfs.文件类型 分区设备
2、创建文件系统
创建文件系统即格式化分区的过程,在Linux操作系统中使用mkfs (Make Filesystem,创建文件系统)命令工具可以将分区格式化成XFS、EXT4、FAT等不同类型的文件系统,而Swap交换分区是使用mkswap命令来进行格式化的。
2.1、创建XFS文件系统
例子:
#创建xfs文件系统 mkfs.xfs /dev/nvme0n2p1 mkfs -t xfs /dev/nvme0n2p1
2.2、创建FAT32文件系统
一般来说,不建议在Linux操作系统中创建或使用Windows操作系统中的文件系统类型,包括FAT16、FAT32等,但一些特殊情况,如Windows操作系统不可用、U盘系统被病毒破坏等情况除外。
若要在Linux操作系统中创建FAT32文件系统,可结合“-t vfat”选项指定类型,并添加“-F 32”选项指定FAT的版本。例如,执行以下操作将把分区/dev/nvme0n2p5格式化为FAT32文件系统。
例子:
#安装dosfstools工具 yum -y install dosfstools #格式化文件系统 mkfs.vfat -F /dev/nvme0n2p5
3、mkswap 命令的使用
在Linux操作系统中,Swap分区的作用类似于Windows操作系统中的“虚拟内存”,可以在一定程度上缓解物理内存不足的情况。当Linux主机运行的服务较多,需要更多的交换空间支撑应用时,可以为其增加新的交换分区。使用mkswap命令工具可以在指定的分区上创建交换文件系统,目标分区应先通过fdisk工具将ID号设为82。
例子:
#格式化分区的文件系统为交换分区 makeswap /dev/nvme0n2p2
4、挂载、卸载文件系统
4.1、挂载文件系统
在Linux操作系统中,对各种存储设备中的资源访问(如读取、保存文件等)都是通过目录结构进行的。虽然操作系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源。当然,在安装Linux操作系统的过程中,建立的分区通常会由操作系统自动完成挂载,如“/”分区、“/boot”分区等。然而对于后来增加的硬盘分区、光盘等设备,需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统。挂载一个文件系统时,必须为其指定一个目录作为挂载点(或称为挂载点),用户通过这个目录访问设备中的文件、目录数据。
格式:
mount 【-t 文件系统类型】 存储设备 挂载点
#创建挂载点 mkdir /media/cdrom #挂在系统光盘 mount /dev/cdrom /media/cdrom
4.2、自动挂载
系统中的/etc/fstab文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据。Linux操作系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。默认的fstab文件中包括了根分区、/boot分区、交换分区挂载配置。执行如下命令可以查看当前系统内自动挂载的设备或分区。
/etc/fstab中各个字段的作用
第1字段
设备名或设备卷标名 第2字段 文件系统的挂载点目录的位置 第3字段 文件系统类型,如XFS、Swap等 第4字段 挂载参数,即mount命令“-o”选项后可使用的参数。例如,defaults、rw、ro、noexec分别表示默认参数、可写、只读、禁用执行程序 第5字段 表示文件系统是否需要dump备份(dump是一个备份工具)。一般设为1时表示需要,设为0时将被dump忽略 第6字段 该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1,其他分区设为2。通过在/etc/fstab文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区
4.3、卸载文件系统
需要卸载文件系统时使用的命令为umount,使用挂载点目录或对应设备的文件名作为卸载参数。 Linux 操作系统中,由于同一个设备可以被挂载到多个目录下,所以一般建议通过挂载点的目录位置来进行卸载。
例子:
#通过挂载点目录卸载挂载 umount /media/cdrom #通过设备文件卸载光盘 umount /dev/cdrom
4.4、查看磁盘使用情况
不带选项及参数的mount命令可以显示分区的挂载情况,若要了解系统中已挂载各文件系统的磁盘使用情况(如剩余磁盘空间比例等),可以使用df命令。df命令使用文件或者设备作为命令参数,较常用的选项为“-h”和“-T”。其中,“-h”选项可以显示更易读的容量单位,而“-T”选项用于显示对应文件系统的类型。例如,执行“df-hT”命令可以查看当前系统中挂载的各文件系统的磁盘使用情况
#查看磁盘使用情况 df -hT
四、LVM逻辑卷管理
LVM 是Linux操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上、文件系统之下的一个逻辑层。以下是提取的图片中的文字信息:
LVM能够在建立文件系统时屏蔽下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性。
在安装CentOS系统的过程中选择自动分区时,就会默认采用LVM分区方案,不需要再进行手动配置。如果有特殊需要,也可以使用安装向导提供的磁盘定制工具调整LVM分区。需要注意的是,/boot分区不能基于LVM创建,必须独立出来。
在学习LVM的管理操作之前需要了解LVM的几个基本术语:
1、PV(Physical Volume,物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE)
2、VG(Volume Group,卷组)
由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
3、LV (Logical Volume,逻辑卷)
逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux操作系统中的目录下使用。
4、LVM的管理命令
LWM 管理命令主要包括三大类:物理卷(PV)管理、卷组(VG)管理、逻辑卷(LV)管理
功能 PV 管理命令 VG 管理命令 LV 管理命令 Scan(扫描) pvscan vgscan lvscan Create(建立) pvcreate vgcreate lvcreate Display(显示) pvdisplay vgdisplay lvdisplay Remove(移除) pvremove vgremove lvremove Extend(扩展) vgextend lvextend Reduce(减少) vgreduce lvreduce
4.1、物理卷管理
4.1.1、pvscan命令
#扫描系统中的物理卷 pvscan
4.1.2、pvcreate命令
#创建物理卷 pvcreate /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6
4.1.3、pvdisplay命令
#显示物理卷的信息 display
4.2、卷组管理
4.2.1、vgscan命令
#扫描系统中的卷组 vgscan
4.2.2、vgcreate命令
#创建卷组 vgcreate aaa /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6
4.3、逻辑卷管理
4.3.1、lvscan命令
#扫描系统中的逻辑卷 lvscan
4.3.2、lvcreate命令
#创建逻辑卷 lvcreate -L 30G -n bbb aaa
4.3.3、lvdisplay命令
#查看逻辑卷的信息 lvdisplay
4.3.4、lvextend命令
#增加逻辑卷的容量 lvextend -L +20G /dev/aaa/bbb
五、磁盘配额
1、代码
#创建物理卷 pvcreate /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 #创建卷组 vgcreate AAA /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 #创建逻辑卷 lvcreate -L +50G -n BBB AAA #支持XFS文件系统的创建与管理 yum -y install xfsprogs #制作文件系统 mkfs.xfs /dev/AAA/BBB #创建挂载点 mkdir /aaa #配置开机自动挂载 vim /etc/fstab #以支持配额的方式挂载 mount -o usrquota,grpquota /dev/AAA/BBB /aaa #创建测试用户 useradd lisi #编辑配额文件 xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=2 ihard=4 lisi' /aaa #查看限制空间限制 xfs_quota -c 'quota -uv lisi' /aaa #查看限制文件数量限制 xfs_quota -c 'quota -uvi lisi' /aaa
2、以支持配额的方式挂载
3、编辑配额文件
4、查看限制
5、文件数量验证
6、空间验证
dd if=/dev/zero of=/mailbox/aaa bs=70M count=2
if 指定输入设备 of 指定输出设备 bs 数据块大小 count 数据块数量 #if:指定输入设备 #of:指定输出设备 #bs:数据块大小 #count:数据块数量 dd if=/dev/zero of=/aaa/bbb bs=70M count=2