Linux基础-----动态调整LVM逻辑卷与用户磁盘配额设置

目录

一.LVM逻辑卷概述

二.创建逻辑卷

三.磁盘配额的概述

四.磁盘配额的步骤和相关命令

五.磁盘配额的具体实例


一.LVM逻辑卷概述

  • LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制
  • LVM是建立在硬盘和分区之上,文件系统之下的一个逻辑层
  • LVM逻辑卷可以保持现有数据不变的情况下动态调整磁盘容量,提高磁盘管理的灵活性
  • CentOS系统在安装时自动分区,会默认采用LVM分区,不需要手工配置,另外“/boot”分区不能基于LVM创建,必须独立出来

 

  • PV物理卷,是LVM机制的基本存储设备,通常对应一个普通分区或整个硬盘,且创建物理卷时,会在分区或者硬盘的头部创建一个保留分区,来记录LVM的属性。此外,物理卷的基本单位是大小为4MB,叫做PE。一般物理卷直接使用设备文件名称,/dev/sdb1、/dev/sdd等
  • VG卷组,由一个或者多个物理卷组成一个整体,在卷组中可以动态的添加或移除物理卷,卷组名由用户自定义
  • LV逻辑卷,逻辑卷创建在卷组上和物理卷无直接关系,逻辑卷就是从卷组这个整体中分出来的一块

二.创建逻辑卷

  • 对于已经分好区的硬盘,其中必须使用fdisk工具将分区类型的ID标记号改为8e,先将分区创建为物理卷,再把各个物理卷组成卷组,最后基于卷组,创建逻辑卷。对于逻辑卷用户可以格式化且挂载使用。
  • 常用的LVM管理命令
功能PV管理命令VG管理命令LV管理命令
扫描(scan)pvscanvgscanlvsacn
建立(create)

pvcreate

vgcreatelvcreste
显示(display)pvdisplayvgdisplaylvdisplay
移除(remove)pvremovevgremovelvremove
扩展(extend) vgextendlvextend
减少(reduce) vgreducelvreduce

 

 

 

 

 

 

 

 

注:物理卷不在命令上可以扩展和减少

  • 创建LVM卷的步骤
  • 添加三个新的硬盘,并用fdisk -l 查看
[root@localhost ~]# fdisk -l

磁盘 /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 字节


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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    33556479    10485760   83  Linux
/dev/sda3        33556480    41945087     4194304   82  Linux swap / Solaris
/dev/sda4        41945088    83886079    20970496    5  Extended
/dev/sda5        41947136    62918655    10485760   83  Linux
[root@localhost ~]# 
  • 对这三个磁盘进行分区,并且把分区类型的ID标记号改为8e(fdisk /dev/sdb  选择n创建主分区  默认  选择t修改ID标记号 )
[root@localhost ~]# fdisk -l

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

   设备 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
磁盘标识符:0x9111388c

   设备 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
磁盘标识符:0x7aae2e1b

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    33556479    10485760   83  Linux
/dev/sda3        33556480    41945087     4194304   82  Linux swap / Solaris
/dev/sda4        41945088    83886079    20970496    5  Extended
/dev/sda5        41947136    62918655    10485760   83  Linux
[root@localhost ~]# 
  • 把这三个分区创建为物理卷
[root@localhost ~]# pvscan
  No matching physical volumes found
[root@localhost ~]# pvcreate /dev/sd[b-d]1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.
  Physical volume "/dev/sdd1" successfully created.
[root@localhost ~]# pvdisplay /dev/sd[b-d]1
  "/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               sPJc3c-Oxdd-bq9V-N0la-G1l2-Vakq-iCNwdY
   
  "/dev/sdd1" is a new physical volume of "<20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdd1
  VG Name               
  PV Size               <20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               r82AWI-1IDd-0a8c-4MI7-F4Ec-hWQW-dEIzP5
   
  "/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               XHggtF-rSZf-HioB-NRpE-wfaR-VkM7-QCDOMo
   
[root@localhost ~]# 

注:其中pv命令的使用可以在命令后面一个一个加上设备目录用空格隔开,如果是连续的分区号可以用上述命令实现

  • 把物理卷创建为卷组
[root@localhost ~]# vgscan
  Reading volume groups from cache.
[root@localhost ~]# vgcreate aaa /dev/sd[b-d]1
  Volume group "aaa" successfully created
[root@localhost ~]# vgdisplay aaa
  --- Volume group ---
  VG Name               aaa
  System ID             
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               <59.99 GiB
  PE Size               4.00 MiB
  Total PE              15357
  Alloc PE / Size       0 / 0   
  Free  PE / Size       15357 / <59.99 GiB
  VG UUID               NdfS3h-V8Pk-nxOx-sCMp-BE0j-fvg3-a74uSZ
   
[root@localhost ~]# 
  • 从卷组中创建一个大小为30G的逻辑卷
[root@localhost ~]# lvscan
[root@localhost ~]# lvcreate -L 30G -n bbb aaa
  Logical volume "bbb" created.
[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/aaa/bbb
  LV Name                bbb
  VG Name                aaa
  LV UUID                Nuvrdt-mxbA-qrCg-kpsN-FrEt-1b1p-zrbvn1
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2019-11-02 15:15:04 +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:0
   
[root@localhost ~]# 

注:使用lvcreate命令时,需要跟参数 -L代表容量大小,-n代表逻辑卷名

基本格式为:lvcreate  -L   容量大小  -n   逻辑卷名   卷组名

  • 对逻辑建卷进行格式化
[root@localhost ~]# mkfs.xfs /dev/aaa/bbb
meta-data=/dev/aaa/bbb           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 ~]# 

注:mkfs格式化工具的两种基本格式

mkfs.文件系统类型   逻辑卷的路径

mkfs -t  文件系统类型   逻辑卷的路径

  • 对逻辑卷进行挂载并且使用该逻辑卷
[root@localhost ~]# mkdir ccc
[root@localhost ~]# mount /dev/aaa/bbb ./ccc
[root@localhost ~]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/sda2           xfs        10G  3.3G  6.8G   33% /
devtmpfs            devtmpfs  474M     0  474M    0% /dev
tmpfs               tmpfs     489M     0  489M    0% /dev/shm
tmpfs               tmpfs     489M  7.2M  481M    2% /run
tmpfs               tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5           xfs        10G   37M   10G    1% /home
/dev/sda1           xfs       6.0G  158M  5.9G    3% /boot
tmpfs               tmpfs      98M   12K   98M    1% /run/user/42
tmpfs               tmpfs      98M     0   98M    0% /run/user/0
/dev/mapper/aaa-bbb xfs        30G   33M   30G    1% /root/ccc
[root@localhost ~]# 
  • 对逻辑卷进行扩容
[root@localhost ~]# lvextend -L +10G /dev/aaa/bbb
  Size of logical volume aaa/bbb changed from 30.00 GiB (7680 extents) to 40.00 GiB (10240 extents).
  Logical volume aaa/bbb successfully resized.
[root@localhost ~]# lvdisplay /dev/aaa/bbb
  --- Logical volume ---
  LV Path                /dev/aaa/bbb
  LV Name                bbb
  VG Name                aaa
  LV UUID                Nuvrdt-mxbA-qrCg-kpsN-FrEt-1b1p-zrbvn1
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2019-11-02 15:15:04 +0800
  LV Status              available
  # open                 1
  LV Size                40.00 GiB
  Current LE             10240
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  • 当我们扩容时,会发现使用df -hT命令,没有扩展的容量,这是因为对于新的逻辑卷没有格式化
  • 可以用xfs_growfs命令对扩容的部分进行更新识别
[root@localhost ~]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/sda2           xfs        10G  3.3G  6.8G   33% /
devtmpfs            devtmpfs  474M     0  474M    0% /dev
tmpfs               tmpfs     489M     0  489M    0% /dev/shm
tmpfs               tmpfs     489M  7.2M  481M    2% /run
tmpfs               tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5           xfs        10G   37M   10G    1% /home
/dev/sda1           xfs       6.0G  158M  5.9G    3% /boot
tmpfs               tmpfs      98M   12K   98M    1% /run/user/42
tmpfs               tmpfs      98M     0   98M    0% /run/user/0
/dev/mapper/aaa-bbb xfs        30G   33M   30G    1% /root/ccc
[root@localhost ~]# xfs_growfs /dev/aaa/bbb
meta-data=/dev/mapper/aaa-bbb    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 10485760
[root@localhost ~]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/sda2           xfs        10G  3.3G  6.8G   33% /
devtmpfs            devtmpfs  474M     0  474M    0% /dev
tmpfs               tmpfs     489M     0  489M    0% /dev/shm
tmpfs               tmpfs     489M  7.2M  481M    2% /run
tmpfs               tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5           xfs        10G   37M   10G    1% /home
/dev/sda1           xfs       6.0G  158M  5.9G    3% /boot
tmpfs               tmpfs      98M   12K   98M    1% /run/user/42
tmpfs               tmpfs      98M     0   98M    0% /run/user/0
/dev/mapper/aaa-bbb xfs        40G   33M   40G    1% /root/ccc
[root@localhost ~]# 

注:使用xfs_growfs可以更新LVM的扩容。使用resize2fs可以更新raid和ext4的扩容

 

三.磁盘配额的概述

  • 磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。
  • 在Linux中实现磁盘限额,需要Linux内核支持,安装xfsprgs与quota软件包
  • Linux磁盘配额针对指定的文件系统,限制对象是用户账号和组账号,限制类型包括磁盘容量,文件数量,而且分为软限制和硬限制,软限制是时效限制一般是7天,而且硬限制的优先级大于软限制

四.磁盘配额的步骤和相关命令

  • 磁盘配额的具体步骤:1,以支持配额功能的方式挂载文件系统;2,编辑用户和组账号的配额设置;3,验证磁盘功能;4,查看磁盘配额的使用情况
  • 用命令进行临时磁盘配额设置(当重启之后失效)
1.以配额方式挂载文件系统
mount -o usrquota,grpquota  分区路径  挂载点
2.提供这个挂载点在其他用户的权限
chmod 777 挂载点
3.编辑配额设置(-x进入专家模式,-c进入命令模式,-u进入用户,-g进入组,bsoft容量软限制,
bhard容量硬限制,isoft数量软限制,ihard数量硬限制)
xfs_quota -x -c 'limit -u bsoft=50M bhard=100M isoft=4 ihard=5 用户账号' 挂载点
4.查看用户配额(容量和文件数量)设置
xfs_quota -c 'quota -uv 用户账号'    挂载点
xfs_quota -c 'quota -iuv 用户账号'    挂载点

  • 用vi编辑器进行永久磁盘配额设置
1.进入vi编辑器
vim /etc/fstab
2.在vi编辑器里(配额挂载)
分区路径    挂载点    xfs    defaults,usrquota,grpquota    0 0
3.使用这条命令启用挂载功能
mount -a
4.给其他用户权限
chmod 777 挂载点
5.编辑配额设置(-x进入专家模式,-c进入命令模式,-u进入用户,-g进入组,bsoft容量软限制,
bhard容量硬限制,isoft数量软限制,ihard数量硬限制)
xfs_quota -x -c 'limit -u bsoft=50M bhard=100M isoft=4 ihard=5 用户账号' 挂载点
6.查看用户配额(容量大小和文件数量)
xfs_quota -c 'quota -uv 用户账号'    挂载点
xfs_quota -c 'quota -iuv 用户账号'    挂载点

五.磁盘配额的具体实例

  • 在新加磁盘上创建一个分区,并格式化
[root@localhost ~]# fdisk -l

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    33556479    10485760   83  Linux
/dev/sda3        33556480    41945087     4194304   82  Linux swap / Solaris
/dev/sda4        41945088    83886079    20970496    5  Extended
/dev/sda5        41947136    62918655    10485760   83  Linux

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   83  Linux

[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, 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@localhost ~]# 
  • 在vi编辑器里以配额方式挂载该分区
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# mount -a
[root@localhost ~]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        10G  3.3G  6.8G   33% /
devtmpfs       devtmpfs  474M     0  474M    0% /dev
tmpfs          tmpfs     489M     0  489M    0% /dev/shm
tmpfs          tmpfs     489M  7.2M  481M    2% /run
tmpfs          tmpfs     489M     0  489M    0% /sys/fs/cgroup
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  158M  5.9G    3% /boot
tmpfs          tmpfs      98M   12K   98M    1% /run/user/42
tmpfs          tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb1      xfs        20G   33M   20G    1% /mnt
[root@localhost ~]# 
  • 给其他账户权限
[root@localhost ~]# chmod 777 /mnt
[root@localhost ~]# 
  • 编辑配额设置并且查看配额功能和情况
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=50M bhard=100m isoft=4 ihard=5 zh
[root@localhost ~]# xfs_quota -c 'quota -uv zhangsan' /mnt
Disk quotas for User zhangsan (1000)
Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
/dev/sdb1                    0      51200     102400   00 [--------] /mnt
[root@localhost ~]# xfs_quota -c 'quota -iuv zhangsan' /mnt
Disk quotas for User zhangsan (1000)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/sdb1                    0          4          5   00 [--------] /mnt
[root@localhost ~]# 
  • 进入zhangsan用户文件数量功能
[root@localhost ~]# su - zhangsan
上一次登录:三 10月 23 14:24:42 CST 2019:1 上
[zhangsan@localhost ~]$ cd /mnt
[zhangsan@localhost mnt]$ touch test{1..6}.txt
touch: 无法创建"test6.txt": 超出磁盘限额
[zhangsan@localhost mnt]$ ls
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt
[zhangsan@localhost mnt]$ 
  • 进入zhangsan用户容量大小功能
[zhangsan@localhost mnt]$ dd if=/dev/zero of=/mnt/test1.txt bs=1M count=120
dd: 写入"/mnt/test1.txt" 出错: 超出磁盘限额
记录了101+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.140316 秒,747 MB/秒
[zhangsan@localhost mnt]$ ls -lh
总用量 100M
-rw-rw-r--. 1 zhangsan zhangsan 100M 11月  2 17:13 test1.txt
-rw-rw-r--. 1 zhangsan zhangsan    0 11月  2 17:09 test2.txt
-rw-rw-r--. 1 zhangsan zhangsan    0 11月  2 17:09 test3.txt
-rw-rw-r--. 1 zhangsan zhangsan    0 11月  2 17:09 test4.txt
-rw-rw-r--. 1 zhangsan zhangsan    0 11月  2 17:09 test5.txt
[zhangsan@localhost mnt]$ 

注:必须在root用户中就给其他用户以权限。另外,Linux中的磁盘配额不会因为磁盘配额限制而不传送数据,而是创建硬限制下的最大容量和数量,一般在软限制下的最大限度,但是软限制时限一般是7天。当两个限制有一个超出之后,另一个就无法创建

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值