文章目录

  • 一、LVM
  • 1.1、逻辑卷管理(Logical Volume Manager)
  • 1.2、LVM机制的基本概念
  • 1.3、LVM的管理命令
  • 二、LVM的管理命令
  • 2.1、主要命令
  • 2.2、推荐步骤
  • 三、扩容卷组
  • 四、调整xfs分区大小(只能增大)
  • 五、修复命令(不明白)
  • 六、磁盘配额(限定用户使用率)
  • 七、编辑用户和组账号的配额设置
  • 八、启用磁盘配额支持
  • 九、验证磁盘容量超限


一、LVM

1.1、逻辑卷管理(Logical Volume Manager)

能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
/boot分区用于存放引导文件,不能基于LVM创建

1.2、LVM机制的基本概念

PV ( Physical Volume,物理卷)

物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE) ,从而构成物理卷。(例:/dev/)

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

LV(Logical volume,逻辑卷)
逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中"切出"一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统。

PE的值可以是4、8、16、32、64。PE越小硬盘利于率高,但是每个VG块的最大数65543,所以PE大小决定了VG卷组大小。

可以随时往卷组中增添物理卷(PV)。

PV单独的硬盘,多个pv组在一起称为VG卷组,当想要分区(lv)则分VG卷组组成下图的40G不是直接从PV60G里拿(组成VG卷然后再分),而是PV划分为一个个PE(4M)然后有PE组到一起凑够40G。(PE越小越好)

VOLUME文件wince .volume_逻辑卷

1.3、LVM的管理命令

功能 PV管理命令 GV管理命令 LV管理命令
scan(扫描) pvscan vgscan lvscan
create(建立) pvcreate vgcreate lvcreate
display (显示) pvdisplay vgdisplay lvdisplay
remove(移除) pvremove vgremove lvremove
extend(扩展) vgextend lvextend

reduce(减少) vgreduce lvreduce

减少会产生数据丢失所以不建议减少

二、LVM的管理命令

2.1、主要命令

pvcreate 设备名1 【设备名2…】

vgcreate 卷组名(可修改) 物理卷名1 物理卷名2

lvcreate -L 容量大小 -n 逻辑卷名 卷组名

lvextend -L +大小 /dev/卷组名/逻辑名

2.2、推荐步骤

VOLUME文件wince .volume_云计算_02

(1)关闭主机,添加两块新硬盘,重启主机

或echo“- - -” > /sys/class/scsi_host/host0/scan 扫描

(2)先使用fdisk工具讲磁盘设备/dev/sdb、 /dev/sdc划分主分区sdb1、sdc1,并且把分区类型的ID标记号改为“8e”

fdisk /dev/sdb

fdisk /dev/sdc

(3)创建物理卷

pvcreate /dev/sdb1 /dev/sdc1

(4)创建卷组,卷组名为vgname1

vgcreate vgname1 /dev/sdb1 /dev/sdc1

(5)创建逻辑卷,逻辑卷名为lvname1,容量为20GB,生产的文件路径为/dev/vgname1/lvname1

lvcreate -L 20G -n lvname1 vgname1

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

mkfs -t xfs /dev/vgname1/lvname1

mount /dev/vgname1/lvname1 /opt目录下

df -Th

下面截图为创建步骤:

查看sdb,sdc两个盘

VOLUME文件wince .volume_文件系统_03

建立sdb1逻辑分区

VOLUME文件wince .volume_逻辑卷_04

建立sdc逻辑分区

VOLUME文件wince .volume_centos_05

建立sdb、sdc的物理卷

VOLUME文件wince .volume_VOLUME文件wince_06

查看所建物理卷

VOLUME文件wince .volume_centos_07

建立卷组,卷组名为luo

VOLUME文件wince .volume_文件系统_08

查看所建卷组

VOLUME文件wince .volume_逻辑卷_09

建立逻辑卷,大小分配20G,逻辑卷名为nj,卷组名为luo

VOLUME文件wince .volume_VOLUME文件wince_10

查看所建逻辑卷

VOLUME文件wince .volume_云计算_11

格式化(逻辑卷组)

VOLUME文件wince .volume_云计算_12

挂载(下图为永久怪载方式)

补充挂载新命令:echo “/dev/luo/nj /home/12-28 xfs defaults 0 0” >> /etc/fstab(注意:这里一定是>>(添加),>的话就把fstab里的所有东西覆盖了)

VOLUME文件wince .volume_云计算_13

VOLUME文件wince .volume_VOLUME文件wince_14

在12-28目录下建立一个test.txt的文件

VOLUME文件wince .volume_文件系统_15

VOLUME文件wince .volume_云计算_16

dd:是测试的软件,if=/dev/zero (这里的空格是往里面丢数据,无间止的) of=指定 你要输出的位置(不得是目录) bs=是选择多少M count=选择的个数

空间已满写不了数据了(要在挂载的目录下进行测试)

VOLUME文件wince .volume_逻辑卷_17

VOLUME文件wince .volume_VOLUME文件wince_18

扩展逻辑卷 加10G

VOLUME文件wince .volume_逻辑卷_19

刷新一下

VOLUME文件wince .volume_云计算_20

VOLUME文件wince .volume_云计算_21

扩展后,再添6G内容成功

VOLUME文件wince .volume_VOLUME文件wince_22

三、扩容卷组

vgextend vgnamel /dev/sdc2
lvextend -L +10G /dev /vgname1/lvnamel

xfs_growfs /dev/vgname1/lvnamel //刷新xfs文件系统容量
resize2fs /dev/vgname1/lvname1 //刷新ext4类型文件系统容量
创建LVM流程:
pvcreate 创建pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv格式化 -> mount 挂载
删除 LVM 流程:
umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷 -> vgremove vg 移出卷组 -> pvremove 移出 pv

四、调整xfs分区大小(只能增大)

lvextend -L 120G /dev/mapper/centos-root #增大至120G

lvextend -L +20G /dev/ mapper/centos-root #增加20G

xfs_growfs /dev/mapper/centos-root #执行调整
注: ext2/ext3/ext4的调整命令是resize2fs,如下:
lvextend -L 120G /dev/mapper/centos-root #增大至120G

lvextend -L +20G /dev/mapper/centos-root #增加20G(原来基础上)

lvreduce -L 50G /dev/mapper/centos-home #减小至50G

lvreduce -L -8G /dev/mapper/centos-home #减小8G

resize2fs /dev/mapper/centos-root #执行调整

五、修复命令(不明白)

xfs_repair /dev/sdb1
注:以下分别是Jfs,Ext2,Ext3的修复命令:

fsck.jfs -y /dev/sdb1
fsck.ext2 -y /dev/sdb1

fsck.ext3 -y /dev/sdb1

调整中遇到的问题:
(1)对xfs文件系统使用mke2fs命令后变为ext2,需要修改文件/etc/fstab中对应的文件系统类型

(2)不同文件系统类型对应的创建、检查、调整命令不同,要注意区分
lvextend /dev/vg1/lv1 -L 500M //将LV扩大至500M
xfs_growfs /dev/vg1/ lv1 //xfs文件系统扩展方法
resize2fs /dev /vg1/ lv1 // ext4文件系统扩展方法
(3) 未知的文件系统类型"(null)"
[root@kgc / ]# mount /dev/mapper/web_kgc-njzb /opt/
mount: /dev/mapper/web_kgc-njzb 写保护,将以只读方式挂载

mount:未知的文件系统类型" (null)"
解决方法:重新更新文件系统
mkfs.xfs

六、磁盘配额(限定用户使用率)

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

磁盘限额的特点

(1)磁盘配额的作用范围
xfs_quota
设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其他未设置 配额的文件系统时,将不会受到限制。
(2)磁盘配额的限制对象

xfs_quota
主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。
(3)磁盘配额的限制类型
磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB。
文件数量:限制用户能够拥有的文件个数。在 Linux操作系统中,每一个文件都有一个对应的数字标记,称为i结点(Inode)编号,这个编号在同一个文件系统内是唯一的,因此xfs_quota通过限制i结点的数量来实现对文件数量的限制。
(4)磁盘配额的限制方法
软限制:指定一个软性的配额数值(如480MB磁盘空间、180个文件),在固定的宽限期(默认为七天)内允许暂时超过这个限制,但系统会给出警告信息。
硬限制:指定一个硬性的配额数值(如500MB磁盘空间、200个文件),是绝对禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。
从以上描述中可以看出,在实施磁盘配额的实际过程中,只有当用户(或组)、文件系通(分区)及配额数值都满足限额条件时,xfs_quota才会对操作进行限制。

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

useradd lisi

passwd lisi

xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=40 ihard=50 list’ /opt/
-x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。

-c:表示直接调用管理命令。
-u:指定用户账号对象
-g:指定组账号对象
bsoft:设置磁盘容量的软限制数值(默认单位为KB)。

bhard:设置磁盘容量的硬限制数值(默认单位为KB)。isoft:设置磁盘文件数的软限制数值。
ihard: 设置磁盘文件数的硬限制数值。
#仅限制磁盘容量
xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M lisi’ /opt/

#仅限制文件数
xfs_quota -x -c ‘limit -u isoft=4 ihard=5 lisi’ /opt/

#查看zhangsan磁盘容量限制
xfs_quota -c ‘quota -uv lisi’ /opt/

#查看zhangsan文件数限制

xfs_quota -c ‘quota -i -uv lisi’ /opt/

八、启用磁盘配额支持

chmod 777 /njzb_xm

su lisi
cd /njzb xm

#查看所有可用分区的磁盘容量配额使用情况

xfs__quota -x -c ‘report -aibh’
查看磁盘配额
report常用选项:

-u:对用户查看

-g:对组查看
-a:查看所有可用分区的配额使用报告

-b:查看磁盘容量

-i:查看文件数

九、验证磁盘容量超限

dd if=/dev/zero of=/njzb_xm/ kgc.txt bs=10M count=12 #验证磁盘文件数超限
touch {aa, bb,cc,dd, ee,ff}.txt

touch test { 1…6}.txt
dd命令是一个个设备转换和连续复制命令

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

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

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

查询是否有xfs_quota的数据包,诺无则yum下载,我这里已经有了

VOLUME文件wince .volume_VOLUME文件wince_23

添加usrquota、grpquota挂载参数

VOLUME文件wince .volume_云计算_24

mount查询

VOLUME文件wince .volume_centos_25

VOLUME文件wince .volume_centos_26

这里指定lisi为/home/12-28目录的用户对象,磁盘(bsoft,bhard)软限制数大小为80M,硬限制数大小为100M,(注意软限制不能限制住用户,但是会提示),文件(isoft,ihard)软限制数目为8个,硬限制数目为10个

VOLUME文件wince .volume_VOLUME文件wince_27

a:查看所有分区,b:查看磁盘分区,i:查看文件数量,h以友好的方式

VOLUME文件wince .volume_云计算_28

给予/home/12-28这个目录最高权限,同时lisi也获得最高权限

VOLUME文件wince .volume_文件系统_29

超出硬设置所限定的数额

VOLUME文件wince .volume_VOLUME文件wince_30

VOLUME文件wince .volume_centos_31

VOLUME文件wince .volume_逻辑卷_32

lisi已经用完了hard设置的文件空间,无法再添加了

VOLUME文件wince .volume_VOLUME文件wince_33