Linux磁盘分区与LVM

目录

Linux磁盘分区

命令

fdisk

lsblk

gdisk

mount

创建系统文件(格式化)

df

分区步骤

LVM

概述

物理卷(PV)

卷组(VG)

逻辑卷(LV)

LVM管理命令

LVM操作步骤

创建

扩容

总结


1. Linux磁盘分区

Linux磁盘分区是将物理硬盘划分为多个独立区域的过程,每个区域可以单独使用文件系统进行管理。这些独立区域称为分区。磁盘分区的主要目的是为了更好地组织和管理数据,提高系统性能,以及在多操作系统共存时提供隔离。

分区创建后需要格式化为特定的文件系统,以便操作系统可以存储和读取数据。常见的文件系统类型有:

XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万 T 字节的存储空间。由于 XFS 文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复。

SWAP:交换文件系统,用于为 Linux 系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的 1.5~2 倍。例如,对于拥有 512MB物理内存的主机,其交换分区的大小建议设置为 1024MB。如果服务器的物理内存足够大(如 8GB 以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。

EXT4:第 4 代扩展文件系统,用于存放文件和目录数据的分区,是 Linux 系统中默认使用的文件系统(CentOS 7 默认使用 XFS)。EXT4 是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。

1.1 命令

接下来讲一下磁盘分区常用的命令

1.1.1 fdisk

使用主启动记录(MBR) 磁盘分区,MBR总共512字节, 前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中。分区表有4个分区记录区,每个分区记录区占16字节 主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩"展分区里面分多个逻辑分区。

fdisk -l 查看硬盘的整体情况和分区情况

a     设置可引导标记  

b     修改bsd的磁盘标签  

c     设置DOS操作系统兼容标记  

d     删除一个分区  

l      显示已知的分区类型,其中82为  Linux swap分区,83为Linux分区  

m    显示帮助菜单  

n     增加一个新的分区  

o     创建一个新的空白的DOS分区表  

p     显示磁盘当前的分区表  

q     退出fdisk程序,不保存任何修改  

s     创建一个新的空白的Sun磁盘标签  

t      改变一个分区的系统号码

u     改变显示记录单位  

v     对磁盘分区表进行验证  

w    保存修改结果并退出fdisk程序  

x     特殊功能,不建议初学者使用

注:以上选项都是在交互模式下使用,在分区步骤里会讲如何使用。

1.1.2 lsblk

以树形查看磁盘分区

-a 显示所有设备

-b 以bytes方式显示设备大小

-e 排除设备

-f 显示文件系统信息

-h 显示帮助信息

-r 使用原始格式显示

-t 显示拓扑结构信息

1.1.3 gdisk

gdisk类似于fdisk,用法也不尽相同,只是gdisk专门设计用于处理 GPT 分区表,而且支持的磁盘容量远大于MBR的2TB限制,也支持更多分区,并使用 CRC 校验,提供更高的数据完整性。

b 将GPT数据备份到一个文件

c 更改分区名称

d 删除一个分区

i 显示分区详细信息

l 列出已知分区类型。此处8200是Linux swap,8300是Linux filesystem(对应fdisk的82和83)。还有一个8e00是Linux LVM

n 增加一个新的分区

o 创建一个新的空白的GPT分区表

p 显示当前磁盘的分区表

q 退出gdisk程序,不保存任何修改

r 恢复和转换选项(仅限专家)

s 排序分区

t 改变分区的类型

v 验证磁盘分区表

w 将分区表写入裁判并退出(保存并退出)

x 额外功能(仅限专家)

? 显示帮助信息

1.1.4 mount

挂载文件系统、ISO镜像到指定文件夹

mount [-t 类型] 存储设备 挂载点目录

umount命令用来卸载已挂载的文件系统

1.1.5 创建系统文件(格式化)

mkfs -t xfs /dev/sdb1 或者 mkfs.xfs /dev/sdb1

1.1.6 df

df命令用来检查文件系统的磁盘空间占用情况

df -a  递归地显示指定目录中各文件及子目录中各文件占用的数据块数

-s:对每个Names参数只给出占用的数据块总数

-T:显示文件系统类型。

-k:以1024字节为单位列出磁盘空间使用情况。

-x:跳过在不同文件系统上的目录不予统计。

-l:计算所有的文件大小,对硬链接文件则计算多次。

-i:显示inode信息而非块使用量。

-h:以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB。

1.2 分区步骤

接下来讲一下详细步骤

首先打开虚拟器设置,挂不挂起都无所谓,能打开就行

点击下方添加,添加一块硬盘,然后全部默认点到头,然后添加完后记得确定。

添加完后我们打开虚拟机,输入fdisk -l查看磁盘的整体情况和分区情况。

这里我们并没有发现新的硬盘,我们需要通过命令来重新扫描SCSI总线。

输入命令:echo "- - -" > /sys/class/scsi_host/host0/scan

echo "- - -" > /sys/class/scsi_host/host1/scan

echo "- - -" > /sys/class/scsi_host/host2/scan

有时候写入host0后效果不明显,三个都输入一下就好了。

现在我们再fdisk -l 就可以发现刚才新添加的硬盘了

我这里是因为添加的时候添加了两个,所以除了sdb还有sdc

添加完硬盘之后我们就可以开始对硬盘进行分区啦。

选择想要进行分区的硬盘 比如我选择sdc,键入命令:fdisk /dev/sdc

回车后我们便进入了交互模式

根据上述命令选项,我们首先键入'n' 新建一片分区,然后按'p'选择主分区,注意,这里的p是选择主分区,不是显示当前磁盘的分区表。然后给主分区编号'1',接下来都敲击回车,代表选择默认值。之后再键入't',输入'8e',这里8e代表着将分区的类型更改为LVM,接下来会讲,暂时先这么设置。

这时候我们再输入'p',显示当前磁盘的分区表,可以看到,sdc1显示出来了,至此磁盘的分区便完成了,最后,输入'w'保存退出,不然功亏一篑。

这里磁盘分区完成后,我们一般会对磁盘的分区进行格式化,使用命令

mkfs.xfs /dev/sdc1  或者  mkfs -t xfs /dev/sdc1

2. LVM

2.1 概述

LVM全称Logical Volume Manager,是一种用于在 Linux 环境中管理磁盘驱动器和存储卷的系统。它提供了一个更高层次的抽象,使得磁盘和分区的管理更为灵活和方便。LVM由物理卷(PV)、卷组(VG)、逻辑卷(LV)组成,用户可以动态调整卷的大小,添加或移除物理卷,以及在逻辑卷上创建快照。

2.1.1 物理卷(PV)

物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷(例:/dev/sdb1 /dev/sdc1)。PE的值可以是4、8、16、32、64。PE越小硬盘利于率高,但是每个VG块的最大数65534,所以PE大小决定了VG卷组大小

2.1.2 卷组(VG)

由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷

2.1.3 逻辑卷(LV)

逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就成为逻辑卷。

2.2 LVM管理命令

scan扫描    如:  pvsacn   、vgscan  、 lvscan

create创建     create也和上面一样

display显示

remove移除

extend扩展     特别的,物理卷无法扩展

reduce减少     同样的物理卷也无法减少

2.3 LVM操作步骤

2.3.1 创建

前置步骤和硬盘分区一样,前面我们讲到了,硬盘分区成功后键入'w'保存并退出。

接下来我们先创建物理卷 pvcreate /dev/sdc1   ,显示创建成功

然后创建卷组,卷组名为vgnamec

vgcreate vgnamec /dev/sdc1,显示创建成功

然后再创建逻辑卷,逻辑卷名为lvnamec,容量为1GB(这里容量要注意,当时我们创建硬盘分区的时候,假如回车那一波,没有选择默认,自己输入了大小,那么这里就得根据当时输入的那个大小做相应调整,比那个小就行),生产的文件路劲为/dev/vgnamec/lvnamec

lvcreate -L 1G -n lvnamec vgnamec   

显示已创建,我这里就用的1G,因为我之前创建硬盘分区的时候只分了5GB,上面的每一步操作完成后都可以进行比如pvdisplay,vgdisplay等命令展示出来看一下。

最后对逻辑卷进行格式化,创建XFS文件系统,并且挂载到/opt目录下

mkfs -t xfs /dev/vgnamec/lvnamec            格式化

mount /dev/vgnamec/lvnamec /opt              挂载到目录下

这里直接跟着敲就行了,挂在完成后这个目录的其他文件暂时都被隐藏了,卸载挂载就可以了。

但是这里的mount挂载命令是临时挂载,想要永久挂载需要vim /etc/fstab文件,进入文件编辑模式后,在后面添加需要挂载的设备和挂载点,如 /dev/sdc1    /opt/guazai   ext4   defaults   0   2

2.3.2 扩容

vgextend vgnamec /dev/sdc2

lvextend -L +10G /dev/vgnamec/lvnamec

xfs_growfs /dev/vgnamec/lvnamec                      刷新xfs文件系统容量

resize2fs /dev/vgnamec/lvnamec                        刷新ext4类型文件系统容量

2.3.3 总结

创建 LVM 流程:

pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载

删除 LVM 流程:

umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷-> vgremove vg 移出卷组-> pvremove 移出 pv

3. 磁盘配额

当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。

为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可在Centos系统中,不同的文件系统使用不同磁盘配额配置管理工具。

3.1 步骤

首先检查是否已安装xfs_quota软件包

rpm -q xfsprogs quota

如果没有安装的话

yum install xfsprogs quota -y

然后以支持配额功能的方式挂载文件系统

umount /dev/vgnamec/lvnamec  先卸载挂载

重新挂载,添加挂载参数"usrquota, grpquota"用于增加对用户、组配额功能的支持

mount -o usrquota, grpquota /dev/vgnamec/lvnamec /opt   

或者用如下命令

vim /etc/fstab

/dev/vgname1/lvname1/opt xfs defaults, usrquota, grpquota 00

umount /dev/vgname1/lvname1

mount -a #-a选项,将/etc/ fstab的所有内容重新加载

添加一个新用户

useradd zhangsan 

passwd zhangsan  设置密码

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=10 ihard=20 zhangsan' /opt

-x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。

-c: 表示直接调用管理命令。

-u: 指定用户账号对象

-g: 指定组账号对象

bsoft: 设置磁盘容量的软限制数值(默认单位为KB)。

bhard:设置磁盘容量的硬限制数值(默认单位为KB)。

isoft:设置磁盘文件数的软限制数值。

ihard:设置磁盘文件数的硬限制数值。

软限制是指用户或组的磁盘使用量可以达到的最大值。当达到软限制时,系统通常会发出警告,但用户仍然可以继续使用磁盘空间,直到达到硬限制为止。

硬限制是指用户或组的磁盘使用量的绝对最大限制。一旦达到硬限制,用户或组将无法再分配更多的磁盘空间,除非管理员干预或者释放了足够的空间。

#查看zhangsan磁盘容量限制

xfs_quota -c 'quota -uv zhangsan' /opt/

#查看zhangsan文件数限制

xfs_quota -c 'quota -i -uv zhangsan' /opt/

接下来我们来验证磁盘配额功能

chmod 777 /opt   给opt文件赋予所用用户最高权限

su zhangsan    切换到zhangsan用户

cd /opt           

#验证磁盘容量超限

dd if=/dev/zero of=/opt/test.txt bs=10M count=12

#验证磁盘文件数超限

touch {aa,bb, cc,dd,ee, ff} .txt

dd命令是一一个设备转换和连续复制命令

“if=” 指定输入设备(或文件)

"of="指定输出设备(或文件)

"bs=" 指定读取数据块的大小

"count=”指定读取数据块的数量 /dev/zero “零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值