Linux:逻辑卷管理(LVM)&磁盘配额

Linux:逻辑卷管理(LVM)&磁盘配额

一、逻辑卷

 逻辑卷管理有助于更加轻松地管理磁盘空间。如果托管逻辑卷的文件系统需要更多空间,可以将其卷组中的可用空间分配给逻辑卷,并且可以调整文件系统的大小。如果磁盘开始出现错误,可以将替换磁盘注册为物理卷放入卷组中,并且逻辑卷的区块可迁移到新磁盘

逻辑卷三个概念

  • 物理卷(PV):基于硬盘或分区设备创建而来,是由多个PE组成,生成n多个PE,一个PE默认大小为4M

  • 卷组(VG):将多个物理卷组成的资源池。

  • 逻辑卷(LVM):从卷组中划分指定容量大小的存储卷。

在这里插入图片描述

LVM三个概念

LVM的管理命令

语法

pvcreate [设备文件]			##准备物理卷
vgcreate [vg-name]	[设备分区]	##创建卷组
lvcreate -l [lv-name] [vg-name]		##创建逻辑卷
命令PVVGLVM
Scan(扫描)pvscanvgscan
Create(建立)pvcreatevgcreatelvcreate
Display(显示)pvdisplayvgdisplaylvdisplay
Remove(移除)pvremovevgremovelvremove
Extend(扩展)---------vgextendlvextend
Reduce(减少)----------vgreducelvreduce
LVM基本管理命令

二、实施LVM存储

在这里插入图片描述

LVM实施步骤

2.1、创建逻辑卷

根据如下要求,创建新的逻辑卷:

  • 逻辑卷取名为wl,属于xy101卷组,大小为5G

  • 使用xfs文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到/mnt/qa下

步骤:

  • 准备物理设备

在这里插入图片描述

  • 新建分区
fdisk /dev/sdb        # 在sdb中新建分区
    n        ## 新建分区
    p        ## 分区类型,使用默认值
   1        ##分区号,使用默认值
   2048        ##起始扇区,使用默认值
    +10G    ##分区结束位置,+10G
    t        ##标记分区类型
    8e        ## 分区类型,8e
    w        ##保存分区表更改

在这里插入图片描述

新建分区
  • 创建物理卷
 pvcreate /dev/sdb1             ##创建物理卷 

在这里插入图片描述

创建物理卷
  • 创建卷组
vgcreate xy101 /dev/sdb1      # 创建卷组,卷组名为xy101

在这里插入图片描述

创建卷组
  • 创建逻辑卷
lvcreate -n wl -L 5G xy101        ## 创建逻辑卷,-L选项指定逻辑卷大小,-n指定逻辑卷名称

在这里插入图片描述

创建逻辑卷
  • 创建文件系统并挂载使用
mkfs.xfs /dev/xy101/wl            ##格式化逻辑卷
mkdir /mnt/qa            ## 创建挂载点
blkid /dev/xy101/wl            ##查看设备/dev/xy101/wl UUID
echo 'UUID=165c485d-bb01-4d44-9218-a7e21c6d1ec1 /mnt/qa xfs defaults 0 0' >> /etc/fstab        ### 设置永久挂载
mount /dev/xy101/wl           ##激活新增分区

在这里插入图片描述

创建文件系统并挂载使用
[root@host-1 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x17ac63db 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L

 024  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@host-1 ~]# 
[root@host-1 ~]# lsblk 
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                       8:0    0   40G  0 disk 
├─sda1                    8:1    0    1G  0 part /boot
└─sda2                    8:2    0   39G  0 part 
  ├─centos_host--1-root 253:0    0   35G  0 lvm  /
  └─centos_host--1-swap 253:1    0    4G  0 lvm  [SWAP]
sdb                       8:16   0   20G  0 disk 
└─sdb1                    8:17   0   10G  0 part 
sr0                      11:0    1  4.4G  0 rom  
[root@host-1 ~]#  pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@host-1 ~]# vgcreate xy101 /dev/sdb1
  Volume group "xy101" successfully created
[root@host-1 ~]# lvcreate -n wl -L 5G xy101
  Logical volume "wl" created.
[root@host-1 ~]# ll /dev/xy101/wl
lrwxrwxrwx. 1 root root 7 417 19:32 /dev/xy101/wl -> ../dm-2  
[root@host-1 ~]# mkfs.xfs /dev/xy101/wl
meta-data=/dev/xy101/wl          isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0 
[root@host-1 ~]# mkdir /mnt/qa
[root@host-1 ~]# blkid /dev/xy101/wl
/dev/xy101/wl: UUID="165c485d-bb01-4d44-9218-a7e21c6d1ec1" TYPE="xfs" 
[root@host-1 ~]# echo 'UUID=165c485d-bb01-4d44-9218-a7e21c6d1ec1 /mnt/qa xfs defaults 0 0' >> /etc/fstab
[root@host-1 ~]# mount /mnt/qa
[root@host-1 ~]# df -h /mnt/qa
文件系统              容量  已用  可用 已用% 挂载点
/dev/mapper/xy101-wl  5.0G   33M  5.0G    1% /mnt/qa

2.2、设置逻辑卷大小

  • 将逻辑卷wl及其文件系统的大小调整到7G。确保文件系统内容保持不变。

步骤:

  • 确保卷组中有足够的容量

    df -h |grep wl            # 查看文件系统大小
    lvs        # 查看逻辑卷大小
    vgs        # 查看卷组空间是否够扩容
    

    在这里插入图片描述

确保卷组中有足够的容量
  • 扩展逻辑卷及文件系统容量

    lvextend -rL 7G /dev/mapper/xy101-wl            # 逻辑卷和文件系统一起扩容,其中-r选项代表文件系统一起扩展。
    

    在这里插入图片描述

扩展逻辑卷及文件系统容量
[root@host-1 ~]#  df -h |grep wl
/dev/mapper/xy101-wl             5.0G   33M  5.0G    1% /mnt/qa
[root@host-1 ~]# lvs
  LV   VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cenos_host-1 -wi-ao---- <35.00g                                                    
  swap centos_host-1 -wi-ao----   4.00g                                                    
  wl   xy101         -wi-ao----   5.00g                                                    

[root@host-1 ~]# vgs
  VG            #PV #LV #SN Attr   VSize   VFree 
  centos_host-1   1   2   0 wz--n- <39.00g     0 
  xy101           1   1   0 wz--n- <10.00g <5.00g
[root@host-1 ~]# lvextend -rL 7G /dev/mapper/xy101-wl
  Size of logical volume xy101/wl changed from 5.00 GiB (1280 extents) to 7.00 GiB (1792 extents).
  Logical volume xy101/wl successfully resized.
meta-data=/dev/mapper/xy101-wl   isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1310720 to 1835008
[root@host-1 ~]#  df -h |grep wl
/dev/mapper/xy101-wl             7.0G   33M  7.0G    1% /mnt/qa
[root@host-1 ~]# lvs
  LV   VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos_host-1 -wi-ao---- <35.00g                                                    
  swap centos_host-1 -wi-ao----   4.00g                                                    
  wl   xy101         -wi-ao----   7.00g                                         

三、磁盘配额

磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)

  • 限制对象:用户帐号、组帐号

  • 限制类型:磁盘容量、文件数量

  • 限制方法:软限制、硬限制

实现磁盘限额的条件

  1. 需要Linux内核支持

  2. 安装xfsprogs与quota软件包

设置磁盘配额

  • 安装xfsprogs与quota软件包
yum install -y xfsprogs quota        ##安装软件

在这里插入图片描述

安装xfsprogs与quota软件包
  • 以支持配额功能的方式挂载文件系统
mount -o usrquota,grpquota /dev/mapper/xy101-wl   /mnt/qa        ##以支持配额功能的方式挂载

在这里插入图片描述

安装xfsprogs与quota软件包
  • 编辑用户和组账号的配额设置
 xfs_quota -x -c 'limit -u isoft=4 ihard=5 tj' /mnt/qa/        ##编辑配额

在这里插入图片描述

编辑配额
  • 验证
chmod +777 /mnt/qa            ##添加权限    
su tj                        ##切换用户tj
cd /mnt/qa                    ##切换当前目录到/mnt/qa
touch abc{1..20}            ##新建空文件abc1至abc20

在这里插入图片描述

验证
[root@host-1 ~]# yum install -y xfsprogs quota
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
软件包 xfsprogs-4.5.0-22.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 quota.x86_64.1.4.01-19.el7 将被 安装
--> 正在处理依赖关系 quota-nls = 1:4.01-19.el7,它被软件包 1:quota-4.01-19.el7.x86_64 需要
--> 正在处理依赖关系 tcp_wrappers,它被软件包 1:quota-4.01-19.el7.x86_64 需要
--> 正在处理依赖关系 rpcbind,它被软件包 1:quota-4.01-19.el7.x86_64 需要
--> 正在检查事务
---> 软件包 quota-nls.noarch.1.4.01-19.el7 将被 安装
---> 软件包 rpcbind.x86_64.0.0.2.0-49.el7 将被 安装
--> 正在处理依赖关系 libtirpc >= 0.2.4-0.7,它被软件包 rpcbind-0.2.0-49.el7.x86_64 需要
--> 正在处理依赖关系 libtirpc.so.1()(64bit),它被软件包 rpcbind-0.2.0-49.el7.x86_64 需要
---> 软件包 tcp_wrappers.x86_64.0.7.6-77.el7 将被 安装
--> 正在检查事务
---> 软件包 libtirpc.x86_64.0.0.2.4-0.16.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

==========================================================================================================================================
 Package                            架构                         版本                                    源                          大小
==========================================================================================================================================
正在安装:
 quota                              x86_64                       1:4.01-19.el7                           base                       179 k
为依赖而安装:
 libtirpc                           x86_64                       0.2.4-0.16.el7                          base                        89 k
 quota-nls                          noarch                       1:4.01-19.el7                           base                        90 k
 rpcbind                            x86_64                       0.2.0-49.el7                            base                        60 k
 tcp_wrappers                       x86_64                       7.6-77.el7                              base                        78 k

事务概要
==========================================================================================================================================
安装  1 软件包 (+4 依赖软件包)

总计:497 k
总下载量:89 k
安装大小:1.6 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
libtirpc-0.2.4-0.16.el7.x86_64.rpm                                                                                 |  89 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:quota-nls-4.01-19.el7.noarch                                                                                        1/5 
  正在安装    : tcp_wrappers-7.6-77.el7.x86_64                                                                                        2/5 
  正在安装    : libtirpc-0.2.4-0.16.el7.x86_64                                                                                        3/5 
  正在安装    : rpcbind-0.2.0-49.el7.x86_64                                                                                           4/5 
  正在安装    : 1:quota-4.01-19.el7.x86_64                                                                                            5/5 
  验证中      : libtirpc-0.2.4-0.16.el7.x86_64                                                                                        1/5 
  验证中      : tcp_wrappers-7.6-77.el7.x86_64                                                                                        2/5 
  验证中      : 1:quota-4.01-19.el7.x86_64                                                                                            3/5 
  验证中      : rpcbind-0.2.0-49.el7.x86_64                                                                                           4/5 
  验证中      : 1:quota-nls-4.01-19.el7.noarch                                                                                        5/5 

已安装:
  quota.x86_64 1:4.01-19.el7                                                                                                              

作为依赖被安装:
  libtirpc.x86_64 0:0.2.4-0.16.el7   quota-nls.noarch 1:4.01-19.el7   rpcbind.x86_64 0:0.2.0-49.el7   tcp_wrappers.x86_64 0:7.6-77.el7  

完毕!
[root@host-1 ~]# mount -o usrquota,grpquota /dev/mapper/xy101-wl   /mnt/qa
[root@host-1 ~]# xfs_quota -x -c 'limit -u isoft=4 ihard=5 tj' /mnt/qa/
[root@host-1 ~]# chmod +777 /mnt/qa
[root@host-1 ~]# su tj
[tj@host-1 root]$ cd /mnt/qa
[tj@host-1 qa]$ touch abc{1..20}
touch: 无法创建"abc6": 超出磁盘限额
touch: 无法创建"abc7": 超出磁盘限额
touch: 无法创建"abc8": 超出磁盘限额
touch: 无法创建"abc9": 超出磁盘限额
touch: 无法创建"abc10": 超出磁盘限额
touch: 无法创建"abc11": 超出磁盘限额
touch: 无法创建"abc12": 超出磁盘限额
touch: 无法创建"abc13": 超出磁盘限额
touch: 无法创建"abc14": 超出磁盘限额
touch: 无法创建"abc15": 超出磁盘限额
touch: 无法创建"abc16": 超出磁盘限额
touch: 无法创建"abc17": 超出磁盘限额
touch: 无法创建"abc18": 超出磁盘限额
touch: 无法创建"abc19": 超出磁盘限额
touch: 无法创建"abc20": 超出磁盘限额
[tj@host-1 qa]$ 
  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值