200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Linux—LVM与磁盘配额

Linux—LVM与磁盘配额

时间:2021-05-14 04:49:27

相关推荐

Linux—LVM与磁盘配额

文章目录

前言一、LVM概述1.PV(物理卷)2.VG (卷组)3.LV(逻辑卷) 二、管理LVM1.常用管理命令2.主要命令 三、LVM应用案例四、磁盘配额1.实现磁盘配额的条件2.特点3.CentOS7中设置磁盘配额步骤4.查看配额使用情况 总结

前言

当你在使用Linux系统时,为了满足当下工作需求你装了一个80GB的磁盘,但是你发现随着公司的发展和需要储存数据的空间的增大,你会不会考虑重新买内存更大的磁盘呢?每装一次重新分配一次磁盘,就复制一次数据,那这样对于工作中的你,是不是非常的麻烦?但是如果我们用LVM就能解决这类的磁盘管理问题。

一、LVM概述

LVM 是 Linux 系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下次的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。

这里需要注意的是 /boot分区用于存放引导文件,不能基于 LVM 创建,必须独立出来!

1.PV(物理卷)

物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷。物理卷一般直接使用设备文件名称,如/dev/sdb1、/dev/sdb2、/dev/sdd等对于转换成物理卷的普通分区,可以先使用 fdisk 工具将分区类型的ID标记号改为“8e”,若是整块硬盘,可以将所有得磁盘空间划分为一个主分区后再做相应调整

从下图可以看出物理卷是由多个基本存储单元组成:

2.VG (卷组)

由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷,如下图所示,多个物理卷可以分别组成不同的卷组,卷组的名称由用户自行定义。

3.LV(逻辑卷)

逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中"切出"一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。如下图所示,使用mkfs等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux 系统中的目录下使用。

通过上面对物理卷,卷组,逻辑卷的解释可以看出,建立LVM分区管理机制的过程为:

首先,将普通分区或整个硬盘创建为物理卷接下来,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷。逻辑卷就是最终用户可以格式化并挂载使用的存储单位。

二、管理LVM

1.常用管理命令

LVM管理命令主要包括三大类:PV物理卷管理、VG卷组管理、LV逻辑卷管理,对应的命令程序文件如下所示:

2.主要命令

格式如下:

pvcreate [设备名1][设备名2......]vgcreate [卷组名 物理卷名1 物理卷名2 ...]lvcreate [-L 容量大小 -n 逻辑卷名 卷组名]lvextend [-L +大小 /dev/卷组名/逻辑卷名]

三、LVM应用案例

案例场景:公司准备扩建业务范围,考虑到新业务需要更大的内存,考虑到动态扩容的需要,计划增加两块硬盘(SCSI)并构建LVM逻辑卷,挂载到 “/group” 目录下。

根据上述要求操作如下:

1.关闭服务器主机,挂接上两块SCSI新硬盘

2.开启服务器主机,执行命令“fdisk -l” 进行检查是否添加成功

3.对两块新磁盘进行分区,将分区类型改为“8e”

设置完后查看结果如下:

4.创建物理卷

[root@localhost ~]#pvcreate /dev/sdb1 /dev/sdc1Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdc1" successfully created.

5.将上述二个物理卷整合,创建名为vgname1的卷组

[root@localhost ~]#vgcreate vgname1 /dev/sdb1 /dev/sdc1Volume group "vgname1" successfully created

6.在vgname 卷组中创建一个名为lvname1的逻辑卷,设置容量为60GB

[root@localhost ~]#lvcreate -L 60G -n lvname1 vgname1 Logical volume "lvname1" created.[root@localhost ~]#lvdisplay --- Logical volume ---LV Path/dev/vgname1/lvname1LV Namelvname1VG Namevgname1LV UUIDXKliug-mriz-NPP1-2eOY-rPOM-OmQp-70C9tOLV Write Access read/writeLV Creation host, time localhost.localdomain, -08-14 15:01:39 +0800LV Status available# open 0LV Size60.00 GiBCurrent LE 15360Segments2Allocation inheritRead ahead sectorsauto- currently set to8192Block device 253:2

7.使用mkfs 命令对逻辑卷进行格式化,创建XFS文件系统,并挂载到 /opt 目录下

[root@localhost ~]#mkfs.xfs /dev/mapper/vgname1-lvname1 meta-data=/dev/mapper/vgname1-lvname1 isize=512 agcount=4, agsize=3932160 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0data= bsize=4096 blocks=15728640, imaxpct=25= sunit=0swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log=internal log bsize=4096 blocks=7680, version=2= sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0[root@localhost ~]#mount /dev/vgname1/lvname1 /opt/[root@localhost ~]#df -h文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/centos-root 56G 3.7G 52G 7% /devtmpfs 1.9G0 1.9G 0% /devtmpfs 1.9G0 1.9G 0% /dev/shmtmpfs 1.9G 9.1M 1.9G 1% /runtmpfs 1.9G0 1.9G 0% /sys/fs/cgroup/dev/sda1497M 172M 326M 35% /boottmpfs 378M 40K 378M 1% /run/user/0/dev/mapper/vgname1-lvname1 60G 33M 60G 1% /opt

8.扩容

[root@localhost ~]#lvextend -L +10G /dev/vgname1/lvname1 #给逻辑卷扩容10GSize of logical volume vgname1/lvname1 changed from 60.00 GiB (15360 extents) to 70.00 GiB (17920 extents).Logical volume vgname1/lvname1 successfully resized.[root@localhost ~]#xfs_growfs /dev/vgname1/lvname1 meta-data=/dev/mapper/vgname1-lvname1 isize=512 agcount=4, agsize=3932160 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0data= bsize=4096 blocks=15728640, imaxpct=25= sunit=0swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log=internalbsize=4096 blocks=7680, version=2= sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from 15728640 to 18350080[root@localhost ~]#lvdisplay #查看是否成功--- Logical volume ---LV Path/dev/vgname1/lvname1LV Namelvname1VG Namevgname1LV UUIDXKliug-mriz-NPP1-2eOY-rPOM-OmQp-70C9tOLV Write Access read/writeLV Creation host, time localhost.localdomain, -08-14 15:01:39 +0800LV Status available# open 1LV Size70.00 GiB#成功扩容Current LE 17920Segments2Allocation inheritRead ahead sectorsauto- currently set to8192Block device 253:2

这里要注意的是如果是ext4文件系统则需要使用如下的命令:

root@localhost ~]#resizefs /dev/vgname1/lvname1

四、磁盘配额

当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续性。

1.实现磁盘配额的条件

需要Linux内核支持安装xfsprogs与quota软件包 (可以使用rpm -q 查看是否安装)

2.特点

作用范围:针对指定的文件系统(分区)限制对象:用户帐号、组帐号限制类型:磁盘容量、文件数量限制方法:软限制、硬限制

3.CentOS7中设置磁盘配额步骤

①检查是否已安装 xfsprogs和 xfs_quota 软件包

[root@localhost ~]#rpm -q xfsprogs quotaxfsprogs-4.5.0-12.el7.x86_64quota-4.01-14.el7.x86_64

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

umount /dev/vgname1 /lvname1mount -o usrquota,grpquota /dev/vgname1 /lvname1 /opt (#添加挂载参数“usrquota,grpquota”用于增加对用户,组配额功能的支持)或者vim /etc/fstab#设置永久挂载/dev/vgname1 /lvname1 xfsdefaults,usrquota,grpquota 0 0mount -a#将etc/fstab下所有内容重新加载

③编辑用户和组账号的配额设置

useradd lisi #创建用户passwd [密码] #设置密码xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 lisi' /opt/

仅限制磁盘容量:

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M lisi' /opt/

仅限制文件数:

xfs_quota -x -c 'limit -u isoft=40 ihard=50 lisi' /opt/

查看zhangsan磁盘容量限制:

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

查看张三文件数限制:

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

④验证磁盘配额功能

chmod 777 /optsu lisicd /opt

验证磁盘容量超限

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

验证文件超限

#限制文件数xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=6 ihard=8 lisi' /opt/xfs_quota -c 'quota -i -uv lisi' /opt/ #查看文件数限制touch{1..60}.txt #验证磁盘文件数超限

⑤dd命令

dd命令是一个设备转换和连续复制命令"if=”指定输入设备(或文件)"of="指定输出设备(或文件)"bs=”指定读取数据块的大小"count="指定读取数据块的数量/dev/zero "零"设备文件,可以无限的提供空字符。常用来生成-一个特定大小的文件。

4.查看配额使用情况

用下面的命令可以查看所有可用分区的磁盘容量配额使用情况

xfs_ quota - X -C ' report -abih'

report 常用选项如下:

总结

在多用户系统中,如果没有对用户使用的磁盘空间做出限制,用户无限制地存放数据和文件,可能会导致系统磁盘空间告警。如果存放的是无用数据,就会导致磁盘空间白白浪费。磁盘配额可以限制用户或组在磁盘上存放文件的空间,这样既可以让用户拥有一定的存储空间,又可以避免用户无限制地存放数据导致系统磁盘空间不足。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。