创建LVM及磁盘配额

一、什么是逻辑卷?

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将若干个磁盘或者磁盘分区连接为一个整块的卷组,形成一个存储池。管理员可以在卷组上任意创建逻辑卷,并进一步在逻辑卷上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

LVM能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。

二、基本组成

1.物理卷---PV(Physical Volume):   

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘;它是LVM的基本存储逻辑块,但和基本的物理分区相比,逻辑卷包含LVM相关的管理参数。

2.卷组--------VG(Volumne Group):

它可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

3.逻辑卷-----LV(Logical Volume):

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。

4.物理区域--PE(Physical Extent):   

物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。


5.逻辑区域―LE(Logical Extent):

逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

三、逻辑卷的优点

  1. 可以将多块硬盘逻辑上划分为一块大的硬盘(实际生产中我们是通过Raid将多块硬盘组合在一起);
  2. 可动态调整逻辑卷的大小,物理是扩展还是收缩;
  3. 在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。

四、创建逻辑卷 

1. 用fdisk命令将磁盘划分主分区,分区类型为8e,在主分区上创建物理卷。

2.直接在磁盘上创建物理卷。

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

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


命令(输入 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 获取帮助):w
The partition table has been altered!

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

pvcreate /dev/sdb1 /dev/sdc                                        #创建物理卷

vgcreate 卷组名 /dev/sdb1 /dev/sdc                            #创建卷组

lvcreate -L +10G -n 逻辑卷名 卷组名                          #创建逻辑卷

[root@7-1 ~]# pvcreate /dev/sdb1 /dev/sdc
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc" successfully created.
[root@7-1 ~]# vgcreate vg1 /dev/sdb1 /dev/sdc
  Volume group "vg1" successfully created 
[root@7-1 ~]# lvcreate -L +10G -n lv1 vg1
  Logical volume "lv1" created.
[root@7-1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 59.5G  0 part 
  ├─centos-root 253:0    0 55.5G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part 
  └─vg1-lv1     253:2    0   10G  0 lvm  
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.3G  0 rom  

对逻辑卷进行格式化,创建xfs文件系统,挂载到/opt目录下

#修改文件系统类型

mkfs -t 文件系统类型  /dev/vg1/lv1 -f

[root@7-1 ~]# mkfs.xfs /dev/vg1/lv1
[root@7-1 ~]# mount /dev/vg1/lv1 /opt
[root@7-1 ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 59.5G  0 part 
  ├─centos-root 253:0    0 55.5G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
└─sdb1            8:17   0   20G  0 part 
  └─vg1-lv1     253:2    0   10G  0 lvm  /opt
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.3G  0 rom  

再扩容

vgextend 卷组名 /dev/新磁盘

lvextend -L +10G /dev/卷组名/逻辑卷  [-r]              #加-r 可刷新文件系统

xfs_growfs  /dev/卷组名/逻辑卷                             #刷新xfs文件系统容量           

resize2fs  /dev/卷组名/逻辑卷                                #刷新ext4文件文件系统容量

五、设置磁盘配额

1.磁盘配额特点

1、作用范围:

只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不会受到限制
2、限制对象:

主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。
3、限制类型:
磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB。
文件数量:限制用户能够拥有的文件个数。在 Linux 操作系统中,每一个文件都有一个对应的数字标记,称为 i 结点(Inode)编号,这个编号在同一个文件系统内是唯一的,因此 xfs_quota 通过限制 i 结点的数量来实现对文件数量的限制。
4、限制方法:
软限制:指定一个软性的配额数值(如 480MB 磁盘空间、180 个文件),在固定 的宽限期(默认为七天)内允许暂时超过这个限制,但系统会给出警告信息。
硬限制:指定一个硬性的配额数值(如 500MB 磁盘空间、200 个文件),是绝对 禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。

2.磁盘配额方法

1.首先检查xfsprogs和quota软件包

rpm -q xfsprogs quota

yum install -y xfsprogs quota

2.以支持配额功能的方式挂载文件系统

方法1
[root@7-1 ~]# umount /opt
[root@7-1 ~]# mount -o usrquota,grpquota /dev/vg1/lv1 /opt


方法2
[root@7-1 ~]# vim /etc/fstab
在最后一行添加
/dev/vg1/lv1  /opt  xfs defaults,usrquota,gpgquota 0 0

umount /dev/vg1/lv1
mount -a

3.编辑用户和组账号的配额设置 

xfs_quota -x -c 'limit -u bsoft=100M bhard=120M isoft=4 ihard=6 qw' /opt

#限制磁盘容量

-x表示启用专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c表示直接调用管理命令
-u指定用户账号对象
-g指定组账号对象
bsoft设置磁盘容量的软限制数值(默认单位为KB)
bhard设置磁盘容量的硬限制数值(默认单位为KB)
isoft设置磁盘文件数的软限制数值
ihard设置磁盘文件数的硬限制数值
[root@7-1 ~]# xfs_quota -x -c 'limit -u bsoft=100M bhard=120M isoft=4 ihard=6 qw' /opt
[root@7-1 ~]# xfs_quota -x -c 'report -abih'
User quota on /opt (/dev/mapper/vg1-lv1)
                        Blocks                            Inodes              
User ID      Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
---------- --------------------------------- --------------------------------- 
root            0      0      0  00 [------]      3      0      0  00 [------]
qw              0   100M   120M  00 [------]      0      4      6  00 [------]

Group quota on /opt (/dev/mapper/vg1-lv1)
                        Blocks                            Inodes              
Group ID     Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
---------- --------------------------------- --------------------------------- 
root            0      0      0  00 [------]      3      0      0  00 [------]

 4.验证磁盘配额功能

dd命令是一个设备转换和连续复制命令

 if=指定输入设备或文件

of=指定输出设备或文件

bs=指定读取数据块的大小

count=指定读取数据块的大小

/dev/zero:零设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件。

#验证磁盘容量超限
[root@7-1 ~]# chmod 777 /opt
[root@7-1 ~]# su qw
[qw@7-1 root]$ cd /opt
[qw@7-1 opt]$ dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
记录了12+0 的读入
记录了12+0 的写出
125829120字节(126 MB)已复制,0.084207 秒,1.5 GB/秒
[qw@7-1 opt]$ ll
总用量 122880
-rw-rw-r--. 1 qw qw 125829120 4月   6 17:02 ddtest.txt
[qw@7-1 opt]$ ll -h
总用量 120M
-rw-rw-r--. 1 qw qw 120M 4月   6 17:02 ddtest.txt
[qw@7-1 opt]$ dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=13
dd: 写入"/opt/ddtest.txt" 出错: 超出磁盘限额
记录了13+0 的读入
记录了12+0 的写出
125829120字节(126 MB)已复制,0.0616247 秒,2.0 GB/秒
[qw@7-1 opt]$ ll -h
总用量 120M
-rw-rw-r--. 1 qw qw 120M 4月   6 17:02 ddtest.txt

#验证磁盘文件数超限
[qw@7-1 opt]$ touch {aa,bb,cc,dd,ee,ff,ss}.txt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值