其他分享
首页 > 其他分享> > 磁盘系统管理-2 LVM和磁盘配额

磁盘系统管理-2 LVM和磁盘配额

作者:互联网

概述

了解查看
LVM 概述#
全称Logical Volume Manager,可以动态调整磁盘容量,提高磁盘管理灵活性。

在安装CentOS 7的过程中选择自动分区时,默认就是以LVM的方案安装的系统。

但是/boot分区必须独立出来,不能基于LVM创建。

PV 物理卷#
物理卷,Physical Volume,是LVM机制的基本存储设备,通常对应一个普通分区或是整个硬盘。

创建物理卷时,会在分区或磁盘头部创建一个用于记录LVM属性的保留区块,并把存储空间分割成默认大小为4MB的基本单元(Physical Extend,PE),从而构成物理卷。

普通分区先转换分区类型为8e;整块硬盘,可以将所有的空间划分为一个主分区再做调整。

VG 卷组#
卷组,Volume Group,是由一个或多个物理卷组成的一个整体。可以动态添加、移除物理卷,创建时可以指定PE大小。

LV 逻辑卷#
逻辑卷,Logical Volume,建立在卷组之上,与物理卷没有直接关系。格式化后,即可挂载使用。

三者关系#

通过以上对三者的解释可以看出,建立LVM的过程。首先,将普通分区或整个硬盘创建为物理卷;然后,将一个或多个物理卷创建为卷组;最后,在卷组上分割不同的数据存储空间形成逻辑卷。有了逻辑卷,就可以格式化、挂载使用了。

LVM常用命令

功能 PV 管理命令 VG 管理命令 LV 管理命令
Scan(扫描) pvscan vgscan lvscan
Create(建立) pvcreate vgcreate lvcreate
Display(显示) pvdisplay vgdisplay lvdisplay
Remove(移除) pvremove vgremove lvremove
Extend(扩展) / vgextend lvextend
Reduce(减少) / vgreduce lvreduce

LVM实验

硬盘分区

[root@gh1 ~]# 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-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 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.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@gh1 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

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

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

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 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@gh1 ~]# fdisk -l /dev/sd{b,c} | grep -i "linux lvm"
/dev/sdb1            2048    20971519    10484736   8e  Linux LVM
/dev/sdc1            2048    20971519    10484736   8e  Linux LVM

转换物理卷

[root@gh1 ~]# pvcreate /dev/sd{b,c}1
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.

创建名称为juan01卷组,并添加sdb1和sdc1

[root@gh1 ~]# vgcreate juan01 /dev/sd{b,c}1
  Volume group "juan01" successfully created

划分大小为15G,名称为luoji01的逻辑卷,再扩容10G,剩下的空间创建名称为逻辑02的逻辑卷

[root@gh1 ~]# lvcreate -L 15G -n luoji01 juan01
  Logical volume "luoji01" created.
[root@gh1 ~]# lvextend -L +10G /dev/juan01/luoji01
  Size of logical volume juan01/luoji01 changed from 15.00 GiB (3840 extents) to 25.00 GiB (6400 extents).
  Logical volume juan01/luoji01 successfully resized.
[root@gh1 ~]# lvcreate -l 100%free -n luoji02 juan01
  Logical volume "luoji02" created.

格式化逻辑卷,stu01为xfs,stu02为ext4,

[root@gh1 ~]# mkfs.xfs /dev/juan01/luoji01
meta-data=/dev/juan01/luoji01    isize=512    agcount=4, agsize=1638400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=6553600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@gh1 ~]# mkfs.ext4 /dev/juan01/luoji02
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
983040 inodes, 3930112 blocks
196505 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
120 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成  

设置自动挂载,挂载后就可以使用了。

[root@gh1 ~]# mkdir /mnt/guazai{10,11}
[root@gh1 ~]# vim /etc/fstab
/dev/juan01/luoji01 /mnt/guazai10 xfs defaults 0 0
/dev/juan01/luoji02 /mnt/guazai11 ext4 defaults 0 0
[root@gh1 ~]# mount -a

[root@gh1 ~]# df -hT
文件系统                   类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root    xfs        10G  4.5G  5.6G   45% /
devtmpfs                   devtmpfs  974M     0  974M    0% /dev
tmpfs                      tmpfs     991M     0  991M    0% /dev/shm
tmpfs                      tmpfs     991M   11M  981M    2% /run
tmpfs                      tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/sda1                  xfs       197M  144M   54M   74% /boot
tmpfs                      tmpfs     199M   12K  199M    1% /run/user/42
tmpfs                      tmpfs     199M     0  199M    0% /run/user/0
/dev/mapper/juan01-luoji01 xfs        25G   33M   25G    1% /mnt/guazai10
/dev/mapper/juan01-luoji02 ext4       15G   41M   14G    1% /mnt/guazai11

扩容实验

添加一块10G硬盘sdd,类型改为Linux LVM,ID为8e

[root@gh1 ~]# fdisk -l /dev/sd{b..d} | grep -i "linux lvm"
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM
/dev/sdd1            2048    20971519    10484736   8e  Linux LVM

将、/dev/sdd1转换物理卷

[root@gh1 ~]# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created.

查看juan01卷组,进行扩容并再次查看

[root@gh1 ~]# vgdisplay juan01
  --- Volume group ---
  VG Name               juan01
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       10238 / 39.99 GiB
  Free  PE / Size       0 / 0   
  VG UUID               F21OK0-hb4p-WznS-JTKn-NviS-TXqO-tbyAGn


[root@gh1 ~]# vgextend juan01 /dev/sdd1
  Volume group "juan01" successfully extended
[root@gh1 ~]# vgdisplay juan01
  --- Volume group ---
  VG Name               juan01
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <49.99 GiB
  PE Size               4.00 MiB
  Total PE              12797
  Alloc PE / Size       10238 / 39.99 GiB
  Free  PE / Size       2559 / <10.00 GiB
  VG UUID               F21OK0-hb4p-WznS-JTKn-NviS-TXqO-tbyAGn

对luoji01和luoji02扩容5G

[root@gh1 ~]# lvextend -L +5G /dev/juan01/luoji01
  Size of logical volume juan01/luoji01 changed from 25.00 GiB (6400 extents) to 30.00 GiB (7680 extents).
  Logical volume juan01/luoji01 successfully resized.

[root@gh1 ~]# lvextend -l +100%free /dev/juan01/luoji02
  Size of logical volume juan01/luoji02 changed from 14.99 GiB (3838 extents) to <19.99 GiB (5117 extents).
  Logical volume juan01/luoji02 successfully resized.

使用xfs_growfs

和resize2fs在线调整大小

[root@gh1 ~]# xfs_growfs /dev/juan01/luoji01
meta-data=/dev/mapper/juan01-luoji01 isize=512    agcount=4, agsize=1638400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=6553600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3200, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 6553600 to 7864320

[root@gh1 ~]# resize2fs /dev/juan01/luoji02
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/juan01/luoji02 is mounted on /mnt/guazai11; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/juan01/luoji02 is now 5239808 blocks long.

[root@gh1 ~]# df -Th
文件系统                   类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root    xfs        10G  4.5G  5.6G   45% /
devtmpfs                   devtmpfs  1.5G     0  1.5G    0% /dev
tmpfs                      tmpfs     1.5G     0  1.5G    0% /dev/shm
tmpfs                      tmpfs     1.5G   11M  1.5G    1% /run
tmpfs                      tmpfs     1.5G     0  1.5G    0% /sys/fs/cgroup
/dev/sda1                  xfs       197M  144M   54M   74% /boot
/dev/mapper/juan01-luoji01 xfs        30G   33M   30G    1% /mnt/guazai10
/dev/mapper/juan01-luoji02 ext4       20G   44M   19G    1% /mnt/guazai11
tmpfs                      tmpfs     299M   12K  299M    1% /run/user/42
tmpfs                      tmpfs     299M     0  299M    0% /run/user/0

卸载实验

umount卸载挂载

[root@gh1 ~]# umount /mnt/guazai11 /mnt/guazai10

lvremove移出卷组中所有逻辑卷

[root@gh1 ~]# lvremove /dev/juan01/luoji02
Do you really want to remove active logical volume juan01/luoji02? [y/n]: y
  Logical volume "luoji02" successfully removed

[root@gh1 ~]# lvremove /dev/juan01/luoji01
Do you really want to remove active logical volume juan01/luoji01? [y/n]: y
  Logical volume "luoji01" successfully removed

vgremove移出卷组

[root@gh1 ~]# vgremove juan01
Do you really want to remove volume group "juan01" containing 1 logical volumes? [y/n]: y
  Logical volume juan01/luoji01 contains a filesystem in use.

pvremove移出物理卷

[root@gh1 ~]# pvremove /dev/sd{b..d}
  Device /dev/sdb excluded by a filter.
  Device /dev/sdc excluded by a filter.
  Device /dev/sdd excluded by a filter.

磁盘配额

磁盘配额概述

1.作用范围:只在指定的分区有效。

2.限制对象:主要针对用户、组进行限制,对组账号限制,组内所有用户的使用总和不能超过限制。

3.限制类型:磁盘容量限制(Block),默认单位KB、文件数量限制(Inode)。

4.限制方法:软限制、硬限制。软限制默认7天内允许超过,会有警告。硬限制不允许超过,硬限制应当比软限制大,否者软限制失效。

xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N 用户名' 挂载点

xfs实验

关闭SELinux,若启用SELinux功能,不是所有的目录都能设定quota,默认quota仅能对/home进行设定。

[root@gh1 ~]# setenforce 0

分区sdb1,xfs格式化,挂载

临时添加挂载
[root@gh1 ~]# fdisk /dev/sdb1

[root@gh1 ~]# mkfs.xfs /dev/sdb1

[root@gh1 ~]# mount -o usrquota,grpquota /dev/sdb1 /data/shiya

永久添加挂载
[root@localhost ~]# vim /etc/fstab
//添加
/dev/sdb1        /data/shiya      xfs     defaults,usrquota,grpquota      0 0

查看sdb1的磁盘配额是否生效

[root@gh1 ~]# mount |grep sdb1
/dev/sdb1 on /data/shiya type xfs (rw,relatime,attr2,inode64,noquota)

如果未成功重新挂载
[root@gh1 ~]# umount /mnt/stu01/
[root@gh1 ~]# mount -a
[root@gh1 ~]# df -Th |grep sdb1
/dev/sdb1               xfs        10G   33M   10G    1% /data/shiya

创建名为ceshi的测试用户

[root@gh1 ~]# useradd ceshi && echo "000000" | passwd --stdin ceshi
更改用户 ceshi 的密码 。
passwd:所有的身份验证令牌已经成功更新。

设置磁盘配额数据

[root@gh1 ~]# xfs_quota -x -c 'limit -u bsoft=100M bhard=200M isoft=2ihard=5 ceshi' /data/shiya/

方便测试,放开权限,切换到ceshi用户

[root@gh1 ~]# chmod 777 /data/shiya/
[root@gh1 ~]# su - ceshi

文件数量配额测试

[ceshi@gh1 shiya]$ touch {1..8}.txt
touch: 无法创建"8.txt": 超出磁盘限额
[ceshi@gh1 shiya]$ ls
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt
[ceshi@gh1 shiya]$ rm -f *

磁盘空间配额测试

[ceshi@gh1 shiya]$ dd if=/dev/zero of=/data/shiya/1.txt bs=10M count=25
dd: 写入"/data/shiya/1.txt" 出错: 超出磁盘限额
记录了21+0 的读入
记录了20+0 的写出
209715200字节(210 MB)已复制,0.628763 秒,334 MB/秒
[ceshi@gh1 shiya]$ ls -lh
总用量 200M
-rw-rw-r-- 1 ceshi ceshi 200M 7月   5 18:00 1.txt
[ceshi@gh1 shiya]$ touch 2.txt
touch: 无法创建"2.txt": 超出磁盘限额

查看配额使用情况

[ceshi@gh1 shiya]$ su root
密码:
[root@gh1 shiya]# xfs_quota -x -c 'report -abi' /data/shiya/
User quota on /data/shiya (/dev/sdb1)
                               Blocks                                          Inodes                     
User ID          Used       Soft       Hard    Warn/Grace           Used       Soft       Hard    Warn/ Grace     
---------- -------------------------------------------------- -------------------------------------------------- 
root                0          0          0     00 [--------]          3          0          0     00 [--------]
ceshi          204800     102400     204800     00  [6 days]          1          5          7     00 [--------]

Group quota on /data/shiya (/dev/sdb1)
                               Blocks                                          Inodes                     
Group ID         Used       Soft       Hard    Warn/Grace           Used       Soft       Hard    Warn/ Grace     
---------- -------------------------------------------------- -------------------------------------------------- 
root                0          0          0     00 [--------]          3          0          0     00 [--------]
ceshi          204800          0          0     00 [--------]          1          0          0     00 [--------]

标签:系统管理,gh1,luoji01,dev,juan01,LVM,磁盘,xfs,root
来源: https://www.cnblogs.com/970618z/p/16448282.html