什么是LVM?

LVM(Logical Volume Manager)逻辑卷管理,是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的 分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可 能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。

LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。需要注意的是/boot分区不能基于LVM创建,必须独立出来。

LVM能够解决的需求痛点

  • 传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变:

1.不同的分区相对独立,无相互联系,各分区空间很易利用不平衡,空间不能充分利用;

2.当一个文件系统/分区已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中;或采用符号连接的方式使用其它分区的空间。

3.如果要把硬盘上的多个分区合并在一起使用,只能采用再分区的方式,这个过程需要数据的备份与恢复。

  • 当采用LVM时,情况有所不同:

1.硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;

2.文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;

3.文件系统建立在LVM上,可以跨分区,方便使用;

4.使用LVM方便管理、增加了系统的扩展性

名词解释

  • PV(Physical Volume):物理卷,处于LVM最底层,可以是物理硬盘或者分区

  • VG(Volume Group):卷组,建立在PV之上,可以含有一个到多个PV

  • LV(Logical Volume):逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变

磁盘配额介绍

quota软件设置的磁盘配额功能,只在指定的文件系统(分区)有效,磁盘配额的限制对象为系统中指定的用户账号、组账号进行限制。

磁盘配额的限制类型分为

磁盘容量:限制用户能够使用的磁盘数据块大小,也就是限制磁盘空间的大小,默认单位为KB。

文件数量:限制用户能够拥有的文件个数,在linux中每一个文件都有一个对应的数字标记,称为i节点号,这个编号在同一个文件系统内是唯一的。

磁盘配额的限制方法

软限制:指在固定期限内暂时允许这个用户超过这个限制(默认期限为7天超过7天后用户无法再写入数据),但是系统会给出警告。

硬限制:指绝对禁止用户超过此限制,硬限制的值不能小于软限制否则软限制失效。

实验环境介绍:

VMware Workstation虚拟机环境,Linux系统采用CentOS7

实验步骤:

首先添加两块新硬盘,重启主机(否则在系统中看不到新加的磁盘)

使用fdisk -l命令可以看到两块新加的盘/sdb,/sdc

[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 字节

使用fdisk命令对两块磁盘进行分区,并更改磁盘文件系统格式为物理盘格式(8e)

  • 会进入一个交互的模式,具体选择如下:

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

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

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

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

命令(输入 m 获取帮助):t          #按t 进行文件系统格式的转换
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e          #输入8e 转换成LVM格式
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p             #按p 查看分区信息

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

设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM     #刚刚创建的分区/dev/sdb1

命令(输入 m 获取帮助):w                      #按w 保存设置并退出互动模式
The partition table has been altered!

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

第二块磁盘/dev/sdc创建分区过程相同

再次使用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 字节
磁盘标签类型:dos
磁盘标识符:0x1ce46bfe

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

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

创建PV物理卷

  • 使用pvcreate进行创建,另外还可以使用pvscan,pvdisplay查看物理卷详细信息

[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.

[root@localhost ~]# pvscan
  PV /dev/sdb1                      lvm2 [<20.00 GiB]
  PV /dev/sdc1                      lvm2 [<20.00 GiB]
  Total: 2 [<40.00 GiB] / in use: 0 [0   ] / in no VG: 2 [<40.00 GiB]
[root@localhost ~]# pvdisplay
  "/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               xZ0LQe-x27m-eaNv-bgw4-9RHu-wZ6C-hrRd4P
  "/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               1oMWW7-HBje-o6Pg-UlXx-edxp-gk8B-ugMW0S

创建VG卷组,将PV物理卷/dev/sdb1,/dev/sdc1加入VG卷组benet

  • 使用vgcreate进行创建,另外还可以使用vgscan,vgdisplay查看卷组详细信息

[root@localhost ~]# vgcreate benet /dev/sdb1 /dev/sdc1
  Volume group "benet" successfully created
[root@localhost ~]# vgscan
  Reading volume groups from cache.
  Found volume group "benet" using metadata type lvm2
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               benet
  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                 #组成的卷组benet大小
  PE Size               4.00 MiB                  #每个PE的单位
  Total PE              10238
  Alloc PE / Size       0 / 0  
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               e1gm4p-8Z2Y-WW1G-EpiH-4rNy-1JBi-NgcJAT

在VG卷组benet中创建LV逻辑卷

  • 使用lvcreate进行创建,可以使用lvscan查看LV逻辑卷详情,也可使用lvextend进行扩容

  • 其中的选项含义:  -L 指定大小    -n 进行命名

[root@localhost ~]# lvcreate -L 15G -n lv01 benet             #创建逻辑卷lv01,大小指定为15G
  Logical volume "lv01" created.
[root@localhost ~]# lvcreate -L 15G -n lv02 benet             #创建逻辑卷lv01,大小指定为15G
  Logical volume "lv02" created.
[root@localhost ~]# lvscan          #查看LV逻辑卷信息
  ACTIVE            '/dev/benet/lv01' [15.00 GiB] inherit
  ACTIVE            '/dev/benet/lv02' [15.00 GiB] inherit

[root@localhost ~]# lvextend -L +5G /dev/benet/lv01         #将lv01进行扩容5G
  Size of logical volume benet/lv01 changed from 15.00 GiB (3840 extents) to 20.00 GiB (5120 extents).
  Logical volume benet/lv01 successfully resized.
[root@localhost ~]# lvscan
  ACTIVE            '/dev/benet/lv01' [20.00 GiB] inherit          #再次查看,可看到lv01扩容成功

  ACTIVE            '/dev/benet/lv02' [15.00 GiB] inherit

格式化lv 挂载使用

  • 在此我们将lv01格式化为EXT4格式,将lv02格式化为XFS

mkfs.ext4 /dev/benet/lv01

mkfs.xfs /dev/benet/lv02

[root@localhost ~]#  mkdir /mnt1 /mnt2
[root@localhost ~]#  mount /dev/benet/lv01 /mnt1
[root@localhost ~]#  mount /dev/benet/lv02 /mnt2
[root@localhost ~]# df -h

.............

/dev/mapper/benet-lv01   20G   45M   19G    1% /mnt1
/dev/mapper/benet-lv02   15G   33M   15G    1% /mnt2

磁盘配额(quota)

  • 使用yum安装quota软件包,关闭防火墙,关闭增强型功能(否则容易出问题)

yum install quota -y

setenforce 0

systemctl stop firewalld.service

  • 设置开机自动挂载,将lv02挂载到/mnt2下

vim /etc/fstab

..............                           #最后一行添加配置

/dev/benet/lv02                         /mnt2                     xfs     defaults,usrquota,grpquota 0 0

[root@localhost ~]# mount -a
[root@localhost ~]# mount | grep lv02                                        #可以看到lv02拥有磁盘配额功能    
/dev/mapper/benet-lv02 on /mnt2 type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

  • 检查磁盘配额开启是否成功

    [root@localhost ~]# quotaon -p /dev/benet/lv02                         

group quota on /mnt2 (/dev/mapper/benet-lv02) is on
user quota on /mnt2 (/dev/mapper/benet-lv02) is on

  • 添加一个caiwu组,用户tom,并将tom的基本组设置为caiwu

[root@localhost ~]# groupadd caiwu
[root@localhost ~]# useradd -g caiwu tom
[root@localhost ~]# id tom
uid=1001(tom) gid=1001(caiwu) 组=1001(caiwu)

  • 给用户tom设置配额,

    第一组soft和hard是软、硬限制是空间的大小

    第二组soft和hard是软、硬限制是文件数量

    [root@localhost ~]# edquota -u tom

Disk quotas for user tom (uid 1001):
  Filesystem                             blocks       soft       hard     inodes     soft     hard

/dev/mapper/benet-lv02            0        1024      2048           0       2        4                #最多可写2M大小的文件,文件个数最大限额为4

  • 给caiwu组做配额

[root@localhost ~]# edquota -g caiwu

Disk quotas for group caiwu (gid 1001):
  Filesystem                              blocks       soft       hard     inodes     soft     hard
  /dev/mapper/benet-lv02            0        2048      4096          0          3        5                #最多可写4M大小的文件,文件个数最大限额为5

  • 赋予普通用户读写执行权限

chmod 777 /mnt2

验证磁盘配额结果

  • 切换到tom用户身份进行登录,在/mnt2目录下写入内容

[root@localhost ~]# su - tom

[tom@localhost ~]$ cd /mnt2

[tom@localhost mnt2]$ dd if=/dev/zero of=test1 bs=1M count=1                #从/dev/zero中取1M大小的内容写入test1文件中,总共取1次
记录了1+0 的读入
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.00484565 秒,216 MB/秒
[tom@localhost mnt2]$ dd if=/dev/zero of=test2 bs=1M count=1
记录了1+0 的读入
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.00335958 秒,312 MB/秒
[tom@localhost mnt2]$ dd if=/dev/zero of=test3 bs=1M count=1                #超出了对tom用户设定的最大限额2M,因此写入文件内容失败
dd: 打开"test3" 失败: 超出磁盘限额

[tom@localhost mnt2]$ exit
登出

  • 更改对tom用户的限额,将写入文件大小扩大为100M,caiwu组限额不变

    [root@localhost ~]# edquota -u tom

Disk quotas for user tom (uid 1001):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/benet-lv02         2048       1024      102400          2        2        4

  • 再次切换到tom身份进行验证

[root@localhost ~]# su - tom
上一次登录:日 9月 16 20:52:55 CST 2018pts/0 上
[tom@localhost ~]$ cd /mnt2
[tom@localhost mnt2]$ rm -rf *              #将之前写入的内容删掉
[tom@localhost mnt2]$ dd if=/dev/zero of=test1 bs=1M count=2
记录了2+0 的读入
记录了2+0 的写出
2097152字节(2.1 MB)已复制,0.00502173 秒,418 MB/秒
[tom@localhost mnt2]$ dd if=/dev/zero of=test2 bs=1M count=2
记录了2+0 的读入
记录了2+0 的写出
2097152字节(2.1 MB)已复制,0.00540753 秒,388 MB/秒
[tom@localhost mnt2]$ dd if=/dev/zero of=test3 bs=1M count=2            #可以看到文件大小超出caiwu组的限额,用户tom也不能进行写入操作
dd: 打开"test3" 失败: 超出磁盘限额

因此如果对组和用户同时设置磁盘配额的时候,磁盘配额小的优先生效

转载于:https://blog.51cto.com/13728740/2175844

Linux之LVM与磁盘配额(quota)详解相关推荐

  1. Linux--管理LVM逻辑卷 --原理+命令双结合(LVM的概述与建立,LVM的管理命令,LVM的应用步骤,磁盘配额的详解)

    Linux--管理LVM逻辑卷 --原理+命令双结合(LVM的概述与建立,LVM的管理命令,LVM的应用步骤,磁盘配额的详解) 前言 一:LVM概述 1.1:PV(Physical Volume,物理 ...

  2. Linux的LVM与磁盘配额

    文章目录 一.LVM 1.什么是LVM? 2.LVM机制的基本概念 3.LVM的管理命令 4.逻辑卷划分步骤 4.1 创建磁盘分区 4.2 创建物理卷(pv) 4.3 创建卷组(vg) 4.4 创建逻 ...

  3. linux中查看磁盘配额的数量,[Linux实用命令]-11-磁盘配额实例详解

    引言 这篇文章介绍一下磁盘配额:利用磁盘配额这种技术,系统管理员可以限制某个用户在某个硬盘分区可使用的大小,和可以创建文件数量的多少:目前Linux系统和Windows系统都支持这种技术. 文章目录 ...

  4. quota磁盘配额管理详解

    quota磁盘配额管理 1.磁盘配额的概念 quota磁盘配额功能只在指定的文件系统(分区 )内有效,未设置的文件系统不受影响. 可以对用户,用户组进行限制. 磁盘配额可以在两方面进行限制: 磁盘容量 ...

  5. 开发Linux系统下的磁盘加密方法详解

    随着智能手机的计算能力和存储能力的提高,手机中将会存放越来越多的私有数据,这些数据的泄密可能造成严重后果.手机信息安全一直是我们的重点之一,对于一些重要的功能我们要求鉴权后才能使用,但这只能挡住初级的 ...

  6. linux如何挂载硬盘linux服务器上挂载磁盘(图文详解)

    博主最近在研究服务器运维,由于Linux服务器相对比较困难,所以博主对她情有独钟.而window服务器几乎跟我们平常使用的电脑一样,相对简单感觉索然无味.下面正式进入主题教大家linux如何挂载硬盘. ...

  7. Linux LVM与磁盘配额详解

    Linux LVM与磁盘配额 一.LVM概述 1.1Logical Volume Manager,逻辑卷管理 1.2LVM机制的基本概念 二.LVM的管理命令 三.LVM操作主要命令步骤 1.关闭主机 ...

  8. linux磁盘配额edquota,Linux磁盘配额Quota配置详解(2)

    实践quota Quota使用的方面很广,不过,一般的用途有以下这些: 限制某一群组所能使用的最大磁盘配额(使用群组限制): 你可以将你的系统上的用户分门别类,有点像是目前很流行的付费与免付费会员制的 ...

  9. linux-如何限制普通用户的磁盘使用空间-磁盘配额quota,Linux系统下如何进行磁盘配额Quota的设置...

    Linux如何进行磁盘配额quota的设置 通过quota进行磁盘配额,可以控制用户对磁盘空间和文件的控制,我们以一个实例作为说明,对2个用户user01.user02分别进行磁盘使用空间和创建文件的 ...

最新文章

  1. 程序员初试和复试_程序员的软微mem经验贴
  2. Dataset之Rotten Tomatoes:Rotten Tomatoes影评数据集简介、下载、使用方法之详细攻略
  3. 使用pm2启动Node和Vue项目教程
  4. python with关键字_完全理解Python关键字with与上下文管理器
  5. 使用CocoaPods被卡住:Updating local specs repositories
  6. python爬虫教程-Python爬虫全集
  7. Debian下配置iSCSI Target。
  8. user-agent 批量汇总+随机返回一个
  9. 中国大学MOOC伦理学试题题库及答案
  10. JS根据身份证号码获取性别
  11. ProE 5.0免安装版软件安装教程
  12. EPLAN小知识——如何在西门子(SIEMENS)官网下载EDZ部件
  13. CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/curre
  14. 中国移动的指令大全!(不再需要人工台)
  15. 移动端跨平台技术总结
  16. 算法与数据结构 --- 哈夫曼树及其应用
  17. html5的水墨画,PR怎么做水墨画效果
  18. wps手机版ppt动画效果_wps ppt中怎么插入进入的动画效果?
  19. ERP源码 制造业通用ERP源码 生产ERP源码
  20. 001 书法学习---永

热门文章

  1. Appcan关闭主窗口
  2. 控制网页的Panel是否显示
  3. 《Redis入门指南(第2版)》一3.2 字符串类型
  4. Java序列化接口的作用总结1
  5. hbase shell
  6. 在Spring3中,配置DataSource的方法有五种
  7. 新版VIEW CLIENT FOR IPADANDRIOD发布了!
  8. JavaScript中实现私有属性的写类方式(2)
  9. IT创业迷魂圈:不要画饼充饥
  10. Flash Builder 4快速入门----学习笔记