一、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越小越好)
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、推荐步骤
(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两个盘
建立sdb1逻辑分区
建立sdc逻辑分区
建立sdb、sdc的物理卷
查看所建物理卷
建立卷组,卷组名为luo
查看所建卷组
建立逻辑卷,大小分配20G,逻辑卷名为nj,卷组名为luo
查看所建逻辑卷
格式化(逻辑卷组)
挂载(下图为永久怪载方式)
补充挂载新命令:echo “/dev/luo/nj /home/12-28 xfs defaults 0 0” >> /etc/fstab(注意:这里一定是>>(添加),>的话就把fstab里的所有东西覆盖了)
在12-28目录下建立一个test.txt的文件
dd:是测试的软件,if=/dev/zero (这里的空格是往里面丢数据,无间止的) of=指定 你要输出的位置(不得是目录) bs=是选择多少M count=选择的个数
空间已满写不了数据了(要在挂载的目录下进行测试)
扩展逻辑卷 加10G
刷新一下
扩展后,再添6G内容成功
三、扩容卷组
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下载,我这里已经有了
添加usrquota、grpquota挂载参数
mount查询
这里指定lisi为/home/12-28目录的用户对象,磁盘(bsoft,bhard)软限制数大小为80M,硬限制数大小为100M,(注意软限制不能限制住用户,但是会提示),文件(isoft,ihard)软限制数目为8个,硬限制数目为10个
a:查看所有分区,b:查看磁盘分区,i:查看文件数量,h以友好的方式
给予/home/12-28这个目录最高权限,同时lisi也获得最高权限
超出硬设置所限定的数额
lisi已经用完了hard设置的文件空间,无法再添加了文章来源:https://www.toymoban.com/news/detail-492334.html
文章来源地址https://www.toymoban.com/news/detail-492334.html
到了这里,关于LVM的概念以及相关命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!