目录
前言
许多Linux使用者在安装操作系统时都会遇到这样的问题:如何精确评估和分配各个硬盘分区的容量,如果当初估计不准确,一旦系统分区不够用时不得不备份删除相关数据,甚至要重装系统规划分区;本篇介绍了LVM逻辑卷管理机制,根据其动态调整Linux分区容量。
一、LVM概述
1. Logical Volume Manager,逻辑卷管理
- 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
- /boot(系统内核)分区用于存放引导文件,不能基于LVM创建。
2. LVM机制的基本概念
- PV(物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷。 - VG (卷组)
由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷。 - LV(逻辑卷)
逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统。
一个PE是4M,多个PE组成物理卷(PV);多个物理卷(PV)组成卷组(VG);对卷组(VG)进行划分,就是建立逻辑分区(LV)。
二、LVM的管理命令
主要命令:
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
Scan扫描 | pvscan | vgscan | lvscan |
Create建立 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Extend扩展 | —— | vgextend | lvextend |
Reduce 减少 | —— | vgreduce | lvreduce |
命令格式如下:
pvcreate [设备名1][设备名2......]
vgcreate [卷组名 物理卷名1 物理卷名2 ...]
lvcreate [-L 容量大小 -n 逻辑卷名 卷组名]
lvextend [-L +大小 /dev/卷组名/逻辑卷名]
三、LVM的操作实例
LVM操作主要命令步骤
1.关闭主机,添加两块新硬盘,重启主机
或echo "- - - " > /sys/class/scsi_host/host0/scan 扫描
2.先使用fdisk工具讲磁盘设备/dev/sdb、/dev/sdc划分主分区sdb1、sdc1,并且把分区类型的ID标记号改为“8e”(创建分区时要学会使用m获取帮助,更改分区类型时学会使用L列出所有代码)
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
创建 LVM 流程:
pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载
删除 LVM 流程:
umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷-> vgremove vg 移出卷组-> pvremove 移出 pv
四、磁盘配额概述
1.实现磁盘配额的条件
- 需要Linux内核支持
- 安装xfsprogs与quota软件包 (可以使用rpm -q 查看是否安装)
2.磁盘配额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户帐号、组帐号
- 限制类型:磁盘容量、文件数量
- 限制方法:软限制、硬限制
3.CentOS7中设置磁盘配额步骤
1.检查是否已安装 xfsprogs和 xfs_quota 软件包
[root@localhost ~]#rpm -q xfsprogs quota
xfsprogs-4.5.0-12.el7.x86_64
quota-4.01-14.el7.x86_64
2.以支持配额功能的方式挂载文件系统
umount / dev/ vgname1 / lvnamel
vim /etc/ fstab
/dev/vgname1/ lvname1 /opt xfs defaults, usrquota, grpquota 0 0
umount /dev/vgname1/ lvname1
mount -a
3.编辑用户和组账号的配额设置
useradd cc #创建用户
passwd [密码] #设置密码
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 cc' /opt/
详细选项如下:
选项 | 说明 |
---|---|
-x | 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用 |
-u | 指定用户账号对象 |
-g | 指定组账号对象 |
-c | 表示直接调用管理命令 |
bsoft | 设置磁盘容量的软限制数值(默认单位为KB) |
bhard | 设置磁盘容量的硬限制数值(默认单位为KB) |
isoft | 设置磁盘文件数的软限制数值 |
ihard | 设置磁盘文件数的硬限制数值 |
4.验证磁盘配额功能
chmod 777 /opt
su cc
cd /opt
#验证磁盘容量超限
dd if=/dev/zero of=/opt/kgc.txt bs=1OM count=12
#验证磁盘文件数超限
touch {1..6} .txt
dd命令是一一个设备转换和连续复制命令
“if=” 指定输入设备(或文件)
"of="指定输出设备(或文件)
"bs=" 指定读取数据块的大小
"count=”指定读取数据块的数量
/dev/zero “零"设备文件,可以无限的提供空字符。常用来生成-一个特定大小的文件
#仅限制磁盘容量
xfs_ quota -x -c 'limit -u bsoft=80M bhard=100M cc' /opt/
#仅限制文件数
xfs quota -x -c 'limit -u isoft=4 ihard=5 cc' /opt/
#查看cc磁盘容量限制
xfs_ quota -C 'quota -uv cc' /opt/
#查看cc文件数限制
xfs quota -c 'quota -i -uv cc' /opt
4.查看配额使用情况
查看所有可用分区的磁盘容量配额使用情况
xfs_ quota - X -C ' report -abih'
report 常用选项如下:
选项 | 说明 |
---|---|
-u | 对用户查看 |
-g | 对组查看 |
-a | 查看所有可用分区的配额使用报告 |
-b | 查看磁盘容量 |
-i | 查看文件数 |
-h | 单位以KB,MB等形式友好显示 |
总结
使用LVM动态磁盘方案,可以灵活地扩展磁盘空间。
创建及使用LVM方案的基本过程:
1.创建物理卷
2.创建卷组
3.创建逻辑卷
4.格式化文件系统
5.挂载使用