Linux LVM 逻辑卷管理

Logical Volume Manager,逻辑卷管理

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

三大概念:

物理卷PV基于硬盘或分区设备创建而来,生成N多个PE,一个PE默认大小4M
卷组VG由多个物理卷组成的资源池
逻辑卷LV从卷组中划分出指定容量大小的存储卷

主要命令 :

创建并使用LVM:

1)添加硬盘

[fdisk分区,分区类型ID设置为8e]

 新建三块磁盘

[root@localhost ~]# fdisk -l   //查询硬盘分区状况  以长格式形式

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ec77

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM

磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan   //在线刷新
[root@localhost ~]# echo "- - -" > /sy class/scsi_host/host1/scan
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
[root@localhost ~]# fdisk -l   //查询硬盘分区状况  以长格式形式

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ec77

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM

磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

[root@localhost ~]# 


 设置8e //分区类型改为LVM

/dev/sdb 

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

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

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

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

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

 0  空              24  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 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69908427

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM

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

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# 

[root@localhost ~]# fdisk -l /dev/sdb

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69908427

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM
[root@localhost ~]# 

/dev/sdc 

[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

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

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

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

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

 0  空              24  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 获取帮助):p

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x50a62702

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM

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

Calling ioctl() to re-read partition table.
正在同步磁盘。

/dev/sdd 

[root@localhost ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。

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

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

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

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

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

Calling ioctl() to re-read partition table.
正在同步磁盘。

 检查一下

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ec77

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM

磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69908427

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x50a62702

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM

磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x08636a19

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048    41943039    20970496   8e  Linux LVM
[root@localhost ~]# 

2)创建物理卷

pvcreate 硬盘/分区设备文件...

[root@localhost ~]# pvscan /dev/sdb1  //扫描物理卷/dev/sdb1  
  Command does not accept argument: /dev/sdb1.    //没有发现
[root@localhost ~]# 


[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1  //创建物理卷  简写: /dev/sd[bc]1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# 

查看

[root@localhost ~]# pvdisplay /dev/sdb1       //显示/dev/sdb1
  "/dev/sdb1" is a new physical volume of "<20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               TBJs55-V0WA-DDxx-erfD-0acu-EY68-dWzT5E
   


[root@localhost ~]# pvdisplay /dev/sdc1        查看/dev/sdc1
  "/dev/sdc1" is a new physical volume of "<20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name               
  PV Size               <20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               shyAaH-XaeC-YnY5-8pVR-DhoQ-4KXX-iGagf1
   
[root@localhost ~]# 

3)创建卷组    

vgcreate 卷组名 物理卷....

 [root@localhost ~]# vgcreate vgyz /dev/sdb1 /dev/sdc1     //创建卷组vgyz
                   // 缩写=vgcreats vgyz /dev/sd[bc]1  


Volume group "vgyz" successfully created
[root@localhost ~]# 

查看 

[root@localhost ~]# 
[root@localhost ~]# vgdisplay vgyz     //查看卷组vgyz
  --- Volume group ---
  VG Name               vgyz
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.99 GiB     //基于/dev/sdb1 /dev/sdc1创建的卷组大小
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       0 / 0   
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               z0crII-63ZD-vIiS-cS8H-Vdzj-2Rdm-hduJJT
   
[root@localhost ~]# 

4)创建逻辑卷  

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

[root@localhost ~]# lvcreate -L 30G -n lvhf vgyz   
   Logical volume "lvhf" created.       //创建逻辑卷 -L 容量大小 -n 新建逻辑卷名  卷组名
[root@localhost ~]# 

查看

[root@localhost ~]# 
[root@localhost ~]# lvdisplay vgyz  查看逻辑卷
  --- Logical volume ---
  LV Path                /dev/vgyz/lvhf
  LV Name                lvhf
  VG Name                vgyz
  LV UUID                7dEfgM-GdOB-y1sA-AebS-Gk8W-xOCM-v8MMAf
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-04-16 21:40:11 +0800
  LV Status              available
  # open                 0
  LV Size                30.00 GiB
  Current LE             7680
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
[root@localhost ~]# 

 5)格式化

mkfs -t xfs/ext4 /dev/卷组名/逻辑卷名      

[root@localhost ~]# 
[root@localhost ~]# mkfs -t xfs /dev/vgyz/lvhf   格式化/dev/vgyz/lvhf
meta-data=/dev/vgyz/lvhf         isize=512    agcount=4, agsize=1966080 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=7864320, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3840, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# 

 查看

[root@localhost ~]# 
[root@localhost ~]# df -hT   //查看显示显示系统类型 以人性化的方式查看文件系统使用情况和挂载情况
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        36G  4.6G   31G   13% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M   28K  378M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgyz-lvhf   xfs        30G   33M   30G    1% /opt/xy101
[root@localhost ~]# 

6)挂载使用    

mount    /etc/fstab 

挂载 

[root@localhost ~]# mkdir /opt/xy101   //新建空目录并指定位置在/opt/下
[root@localhost ~]# mount /dev/vgyz/lvhf /opt/xy101      
                                   //逻辑卷dev/vgyz/lvhf挂载到/opt/xy101目录下
[root@localhost ~]# 
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        36G  4.6G   31G   13% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M   28K  378M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgyz-lvhf   xfs        30G   33M   30G    1% /opt/xy101
[root@localhost ~]# 

 使用

[root@localhost ~]# 
[root@localhost ~]# cd /opt/xy101/   //切换到/opt/xy101/ 
[root@localhost xy101]# 


[root@localhost xy101]# touch file{1..9}   //新建文件file1~9 共九个文件
[root@localhost xy101]# 
[root@localhost xy101]# ls    //查看
file1  file2  file3  file4  file5  file6  file7  file8  file9
[root@localhost xy101]# 
[root@localhost xy101]# mkdir -p aa/bb/cc4   //一次性创建多层目录
[root@localhost xy101]# 
[root@localhost xy101]# ls -R        //以递归方式显示目录中所有子目录内容
.:
aa     file2  file4  file6  file8
file1  file3  file5  file7  file9

./aa:
bb

./aa/bb:
cc4

./aa/bb/cc4:
[root@localhost xy101]# 

扩容:

扩容卷组:        

vgextend 卷组名 物理卷....

[root@localhost xy101]# 
[root@localhost xy101]# pvcreate /dev/sdd1    //添加磁盘/dev/sdd1
  Physical volume "/dev/sdd1" successfully created.
[root@localhost xy101]# 
[root@localhost xy101]# vgextend vgyz /dev/sdd1   //扩容卷vgyz  把磁盘/dev/sdd1加进去
  Volume group "vgyz" successfully extended

[root@localhost xy101]# vgdisplay vgyz   //查看卷vgyz
  --- Volume group ---
  VG Name               vgyz
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <59.99 GiB   //已经扩容成功
  PE Size               4.00 MiB
  Total PE              15357
  Alloc PE / Size       8960 / 35.00 GiB
  Free  PE / Size       6397 / <24.99 GiB
  VG UUID               z0crII-63ZD-vIiS-cS8H-Vdzj-2Rdm-hduJJT
   
[root@localhost xy101]# 

扩容逻辑卷:

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

# -r选项可实现自动刷新逻辑卷文件系统容量大小

[root@localhost xy101]# lvextend -L +5G -r /dev/vgyz/lvhf
  Size of logical volume vgyz/lvhf changed from 30.00 GiB (7680 extents) to 35.00 GiB (8960 extents).
  Logical volume vgyz/lvhf successfully resized.
meta-data=/dev/mapper/vgyz-lvhf  isize=512    agcount=4, agsize=1966080 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=7864320, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3840, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7864320 to 9175040
[root@localhost xy101]# 

手动刷新:

xfs_growfs      resize2fs


磁盘限额:

为什么进行磁盘配额 :

当Iinux根分区的磁盘空间耗尽时,linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。

为了避免在服务器中出现类似磁盘空问不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空问、文件数是进行限制,以防止个别用户恶意或无意问占用大量磁盘空问,从而保持系统存储空问的稳定性和持续可用性。
在 centos 系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,X5S 文件系统通过 xis gota 工具进行管理: BXT3/4 文件系统通过 gota 工具进行管理

磁盘限额:
1)安装软件

 xfsprogs  quota

检查是否已安装xfsprogs和xfs_quota软件包
rpm -q xfsprogs quota
yum install -y xfsprogs quota

[root@localhost ~]# rpm -q xfsprogs xfs_quota    //查看是否安装xfsprogs  quota
xfsprogs-4.5.0-22.el7.x86_64
未安装软件包 xfs_quota         //没有安装
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   13M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   36G  4.6G   31G   13% /
/dev/sda1               1014M  187M  828M   19% /boot
tmpfs                    378M   24K  378M    1% /run/user/0
/dev/sr0                 4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
[root@localhost ~]# 

[root@localhost ~]# 
[root@localhost ~]# mount /dev/sr0 /mnt  把光盘挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /etc/yum.repos.d   //切换目录到/etc/yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo       CentOS-Sources.repo
CentOS-CR.repo         CentOS-Vault.repo
CentOS-Debuginfo.repo  CentOS-x86_64-kernel.repo
CentOS-fasttrack.repo  local.repo
CentOS-Media.repo
[root@localhost yum.repos.d]# 

 


[root@localhost yum.repos.d]# cat local.repo   //原仓库配置文件
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
#gpgkey=file:///mut/RPM-GPG-KEY-Centos-7



[root@localhost yum.repos.d]# [root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# yum install -y xfsprogs quota
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 xfsprogs-4.5.0-22.el7.x86_64 已安装并且是最新版本
软件包 1:quota-4.01-19.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost yum.repos.d]#

2)以支持磁盘限额的方式挂载文件系统  

  mount -o usrquota,grpquota  ....

[root@localhost yum.repos.d]# cd /opt/xy101   //切换
[root@localhost xy101]# ls 
aa     file2  file4  file6  file8
file1  file3  file5  file7  file9
[root@localhost xy101]# 
[root@localhost xy101]# 

[root@localhost xy101]# rm -rf *    //删除
[root@localhost xy101]# 
[root@localhost xy101]# 
[root@localhost xy101]# ls   //查看
[root@localhost xy101]# cd    //切换
[root@localhost ~]# 

[root@localhost ~]# mount -o usrquota,grpquota /dev/vgyz/lvhf /opt/xy101
//以支持磁盘限额的方式挂载文件系统

[root@localhost ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1913548k,nr_inodes=478387,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14677)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=386128k,mode=700)
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
/dev/sr0 on /run/media/root/CentOS 7 x86_64 type iso9660 (ro,nosuid,nodev,relatime,uid=0,gid=0,iocharset=utf8,dmode=0500,mode=0400,uhelper=udisks2)
/dev/sr0 on /mnt type iso9660 (ro,relatime,uid=0,gid=0,iocharset=utf8,dmode=0500,mode=0400)
/dev/mapper/vgyz-lvhf on /opt/xy101 type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@localhost ~]# 



 

[root@localhost ~]# 
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# 

 

 

 

3)配置磁盘限额

xfs_quota -x -c 'limit -u/-g    bsoft=XX    bhard=XX     isoft=XX   ihard=XX  用户名/组名'  挂载点目录

编辑用户和组账号的配额设置
useradd zhangsan
echo 123456 | passwd --stdin zhangsan    #免交互式更改用户密码
passwd zhangsan
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan' /opt/

#仅限制磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt/

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

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

#查看 zhangsan 文件数限制
xfs_quota -c 'quota -i -uv zhangsan' /opt/

 

-x表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c表示直接调用管理命令
-u指定用户账号对象
-g指定组账号对象
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# echo abc123 | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd lisi
[root@localhost ~]# echo abc123 | passwd --stdin lisi
更改用户 lisi 的密码 。
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt
[root@localhost ~]# xfs_quota -x -c 'limit -u isoft=8 ihard=10 lisi' /opt
[root@localhost ~]#

 

4)验证磁盘限额

容量验证 dd if=/dev/zero of=挂载点目录/XX文件  bs=每次复制的数据大小  count=复制次数
数量验证 touch   mkdir

验证磁盘配额功能
chmod 777 /opt
su zhangsan
cd /opt
#验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12

#验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff}.txt 

5)查看磁盘限额使用情况

xfs_quota -x -c 'report -abih'

chmod 777 /opt
su zhangsan
cd /opt
#验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12

#验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff}.txt

[root@localhost ~]# su lisi
[lisi@localhost root]$ cd /opt
[lisi@localhost opt]$ ll
总用量 0
drwxr-xr-x. 2 root root 6 4月  16 13:46 xy101
[lisi@localhost opt]$ cd
[lisi@localhost ~]$ chmod 777 /opt
chmod: 更改"/opt" 的权限: 不允许的操作
[lisi@localhost ~]$ exit
exit
[root@localhost ~]# chmod 777 /opt
[root@localhost ~]# su lisi
[lisi@localhost root]$ cd /opt
[lisi@localhost opt]$ touch file{1..9}
[lisi@localhost opt]$ touch file10
[lisi@localhost opt]$ touch file11
touch: 无法创建"file11": 超出磁盘限额
[lisi@localhost opt]$

 

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值