【Linux】LVM与磁盘配额

目录

一、LVM 逻辑卷管理

1.三大概念

2.LVM 的管理命令

二、LVM操作主要命令步骤

三、CentOS7 中设置磁盘配额步骤


一、LVM 逻辑卷管理

1.三大概念

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

卷组VG:将多个物理卷组成的资源池 

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

2.LVM 的管理命令

功能PV管理命令VG管理命令LV管理命令
Scan(扫描)pvscanvgscanlvscan
Create(建立)pvcreatevgcreate lvcreate
Display(显示)pvdisplay vgdisplaylvdisplay
Remove(移除)pvremove vgremove lvremove
Extend(扩展)---------------vgextendlvextend
Reduce(减少)---------------vgreduce     lvreduce

二、LVM操作主要命令步骤

1、关闭主机,添加两块新硬盘,重启主机

2、先使用 fdisk 工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区类型的 ID 标记号改为“8e”

fdisk /dev/sdb

fdisk /dev/sdc

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

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


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

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

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

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


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

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

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

3、创建物理卷

pvcreate /dev/sdb1 /dev/sdc1

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

4、创建卷组,卷组名为vgname1

vgcreate vgname1 /dev/sdb1 /dev/sdc1

[root@localhost ~]# vgcreate vg101 /dev/sdb1 /dev/sdc1
  Volume group "vg101" successfully created

5、创建逻辑卷,逻辑卷名为lvname1,容量为 20GB,生成的文件路径为/dev/vgname1/lvname1

lvcreate -L 20G -n lvname1 vgname1

[root@localhost ~]# lvcreate -L 30G -n lv101 vg101
  Logical volume "lv101" created.
[root@localhost ~]#

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

mkfs -t xfs /dev/vgname1/lvname1

mount /dev/vgname1/lvname1 /opt

df -hT

[root@localhost ~]# mkfs -t xfs /dev/vg101/lv101
meta-data=/dev/vg101/lv101       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 ~]# mount /dev/vg101/lv101 /opt
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
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.7G   31G   14% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M   44K  378M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg101-lv101 xfs        30G   33M   30G    1% /opt

7、再扩容

vgextend vgname1 /dev/sdc2

lvextend -L +10G [-r] /dev/vgname1/lvname1

xfs_growfs /dev/vgname1/lvname1 #刷新xfs文件系统容量

resize2fs /dev/vgname1/lvname1 #刷新ext4类

[root@localhost ~]# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created.
[root@localhost ~]# vgextend vg101 /dev/sdd1
  Volume group "vg101" successfully extended
[root@localhost ~]# lvextend -L +10G -r /dev/vg101/lv101
  Size of logical volume vg101/lv101 changed from 30.00 GiB (7680 extents) to 40.00 GiB (10240 extents).
  Logical volume vg101/lv101 successfully resized.
meta-data=/dev/mapper/vg101-lv101 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 ~]# xfs_growfs /dev/vg101/lv101
meta-data=/dev/mapper/vg101-lv101 isize=512    agcount=6, agsize=1966080 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=10485760, 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
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
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.7G   31G   14% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M   44K  378M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg101-lv101 xfs        40G   33M   40G    1% /opt
[root@localhost ~]# lvextend -L +10G -r /dev/vg101/lv101
  Size of logical volume vg101/lv101 changed from 40.00 GiB (10240 extents) to 50.00 GiB (12800 extents).
  Logical volume vg101/lv101 successfully resized.
meta-data=/dev/mapper/vg101-lv101 isize=512    agcount=6, agsize=1966080 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=10485760, 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 10485760 to 13107200
[root@localhost ~]# xfs_growfs /dev/vg101/lv101
meta-data=/dev/mapper/vg101-lv101 isize=512    agcount=7, agsize=1966080 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=13107200, 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
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
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.7G   31G   14% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M   44K  378M    1% /run/user/0
/dev/sr0                iso9660   4.5G  4.5G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg101-lv101 xfs        50G   33M   50G    1% /opt
[root@localhost ~]#

三、CentOS7 中设置磁盘配额步骤

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

[root@localhost ~]# yum install -y xfsprogs quota
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
file:///mnt/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /mnt/repodata/repomd.xml"
正在尝试其它镜像。
软件包 xfsprogs-4.5.0-22.el7.x86_64 已安装并且是最新版本
软件包 1:quota-4.01-19.el7.x86_64 已安装并且是最新版本
无须任何处理

2、以支持配额功能的方式挂载文件系统
umount /dev/vgname1/lvname1
mount -o usrquota,grpquota /dev/vgname1/lvname1    /opt    #添加挂载参数“usrquota,grpquota”用于增加对用户、组配额功能的支持
或者
vim /etc/fstab 
/dev/vgname1/lvname1      /opt        xfs        defaults,usrquota,grpquota   0  0

umount /dev/vgname1/lvname1
mount -a                    #-a选项,将/etc/fstab的所有内容重新加载

[root@localhost ~]# umount /dev/vg101/lv101
[root@localhost ~]# mount -o usrquota,grpquota /dev/vg101/lv101 /opt
[root@localhost ~]# umount /dev/vg101/lv101
[root@localhost ~]# mount -a

3、编辑用户和组账号的配额设置
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/

bsoft:设置磁盘容量的软限制数值(默认单位为 KB)。
bhard:设置磁盘容量的硬限制数值(默认单位为 KB)。
isoft:设置磁盘文件数的软限制数值。
ihard:设置磁盘文件数的硬限制数值。

-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、验证磁盘配额功能
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]$

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值