LVM管理命令主要包括三大类
PV物理卷管理
VG卷组管理
LV逻辑卷管理
对应的命令程序文件分别以“PV”“VG”“LV”开头
功能 | 物理卷管理(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 |
pvcreate 设备名1 [设备名2 ... ...]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
例如
[root@localhost ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
例如
[root@localhost ~]# pvscan
PV /dev/sdd1 lvm2 [5.00 GiB]
Total: 3 [44.99 GiB] / in use: 2 [39.99 GiB] / in no VG: 1 [5.00 GiB]
例如
[root@localhost ~]# pvdisplay /dev/sdd1
"/dev/sdd1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdd1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID bNDg18-PxbF-0GCW-365f-RnO0-OHJ0-n5RzJE
例如
[root@localhost ~]# pvremove /dev/sd[b-c]1
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdc1" successfully wiped.
[root@localhost ~]# pvscan
No matching physical volumes found
vgcreate命令基本格式
root@localhost ~]# vgcreate 卷组名称 物理卷
例如
[root@localhost ~]# vgscan 123 /dev/sdb1 /dev/sdd1
Command does not accept argument: 123.
例如
[root@localhost ~]# vgscan
Reading volume groups from cache.
Found volume group "123" using metadata type lvm2
例如
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name 123
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 24.99 GiB
PE Size 4.00 MiB
Total PE 6398
Alloc PE / Size 0 / 0
Free PE / Size 6398 / 24.99 GiB
VG UUID 1xjQAR-wQ2s-i9Q6-IYYL-gqTJ-Xwv0-DJPUkp
例如
[root@localhost ~]# vgremove 123
Volume group "123" successfully removed
例如
[root@localhost ~]# vgextend 123 /dev/sdd1
Volume group "123" successfully extended
vgreduce命令格式
vgreduce [选项] [参数]
例如
[root@localhost ~]# vgreduce 123 /dev/sdd1
Removed "/dev/sdd1" from volume group "123"
lvcreate命令基本格式
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
例如
[root@localhost ~]# lvcreate -L 10G -n 111 123
Logical volume "111" created.
[root@localhost ~]# ls /dev/123/111
/dev/123/111 //逻辑卷111的连接文件
lvdisplay命令用于显示逻辑卷的详细信息
需要指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数(显示该卷组中的所有逻辑卷信息)
不指定参数则显示所有,同pvdisplay和vgdisplay
例如
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/123/111
LV Name 111
VG Name 123
LV UUID 8Mndsn-uBg9-SNyt-bsd4-2DP0-WIIO-ZaqzU6
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-11-04 01:14:32 +0800
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
xfs格式的扩容需要输入这条命令
xfs_growfs /dev/卷组名/逻辑卷名
ext 4 格式的扩容需要输入这条命令
resize2fs /dev/卷组名/逻辑卷名
lvextend命令基本格式
lvextend -L +大小 /dev/卷组名/逻辑卷名
例如
[root@localhost ~]# lvextend -L +10G /dev/123/111
Size of logical volume 123/111 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
Logical volume 123/111 successfully resized.
例如
[root@localhost ~]# lvremove /dev/123/111
Do you really want to remove active logical volume 123/111? [y/n]: y
Logical volume "111" successfully removed
Volume group "111" not found
Cannot process volume group 111
例如
[root@localhost ~]# lvreduce -L -5G /dev/123/111
WARNING: Reducing active logical volume to 10.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce 123/111? [y/n]: y
Size of logical volume 123/111 changed from 15.00 GiB (3840 extents) to 10.00 GiB (2560 extents).
Logical volume 123/111 successfully resized.
VMware软件中,在centos 7系统中添加两块磁盘,我们开始实操。
查看磁盘是否添加成功
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c1f00
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 12584959 6291456 83 Linux
/dev/sda2 12584960 54527999 20971520 83 Linux
/dev/sda3 54528000 62916607 4194304 82 Linux swap / Solaris
/dev/sda4 62916608 83886079 10484736 5 Extended
/dev/sda5 62918656 83886079 10483712 83 Linux
磁盘 /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 字节
2.开始创建分区,同样的方法创建/dev/sdc
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x50f1e234 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response 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 列出所有代码):8e //分区ID改成8e,8e是lvm格式,我们保持前后格式相同
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
3.查看分区创建情况
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c1f00
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 12584959 6291456 83 Linux
/dev/sda2 12584960 54527999 20971520 83 Linux
/dev/sda3 54528000 62916607 4194304 82 Linux swap / Solaris
/dev/sda4 62916608 83886079 10484736 5 Extended
/dev/sda5 62918656 83886079 10483712 83 Linux
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x50f1e234
设备 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
磁盘标识符:0x6a90762a
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 8e Linux LVM
4.创建物理卷
[root@localhost ~]# pvcreate /dev/sd[b-c]1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# pvscan '//查看物理卷'
PV /dev/sdc1 lvm2 [<20.00 GiB]
PV /dev/sdb1 lvm2 [<20.00 GiB]
Total: 2 [<40.00 GiB] / in use: 0 [0 ] / in no VG: 2 [<40.00 GiB]
5.创建卷组
[root@localhost ~]# vgcreate mail_stor /dev/sd[b-c]1
Volume group "mail_stor" successfully created
[root@localhost ~]# vgscan '//扫描卷组'
Reading volume groups from cache.
Found volume group "mail_stor" using metadata type lvm2
[root@localhost ~]# vgdisplay '//查看卷组详细信息'
--- Volume group ---
VG Name mail_stor
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
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID iEKi0I-hg0i-it0a-cOwe-DfPj-FkXs-fnSP4N
6.创建逻辑卷
[root@localhost ~]# lvcreate -L 20G -n mbox mail_stor
Logical volume "mbox" created.
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/mail_stor/mbox
LV Name mbox
VG Name mail_stor
LV UUID VXD0B0-wxqV-wXgk-b7N4-GEPE-c1au-u6nGBs
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-11-04 14:45:59 +0800
LV Status available
# open 0
LV Size 20.00 GiB
Current LE 5120
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
7.格式化逻辑卷
[root@localhost 1]# mkfs.xfs /dev/mail_stor/mbox
meta-data=/dev/mail_stor/mbox isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, 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
8.创建挂载点,设置自动挂载
[root@localhost 1]# mkdir mailbox
[root@localhost 1]# vim /etc/fstab
9.启用挂载
[root@localhost 1]# mount -a
[root@localhost 1]# df -hT '//查看是否挂载成功'
10.给逻辑卷扩容10G
[root@localhost 1]# lvextend -L +10G /dev/mail_stor/mbox
Size of logical volume 1/11 changed from 20.00 GiB (5120 extents) to 30.00 GiB (7680 extents).
Logical volume 1/11 successfully resized.
11.使用xfs_growfs命令使Linux系统重新识别文件系统大小
[root@localhost 1]# xfs_growfs /dev/mail_stor/mbox
作用范围:针对指定的文件系统(分区)
限制对象:用户账号,组账号
限制类型:磁盘容量,文件数量
限制方法:软限制,硬限制
软限制:可以超出限制,但是有时限期,如时限7天,超出时间就将多余的删除
软限制 小于等于 硬限制
大部分命令设置都是临时生效,重启失效
配置文件是永久生效
基本格式
xfs_quota -x -c'limit -u bsoft =N bhard=N isoft=N ihard=N 用户名'挂载点
常用选项
-u //user
-g //group
-x //专家模式
-c //命令(command)
限制字段
bsoft //容量软限制
bhard //容量硬限制 (block 块)
isoft //数量软限制
ihard //数量硬限制 (inode 节点)
命令格式
xfs_quota -x -c 'report 选项'挂载点
report常用选项
-a //all 所有
-i //节点,数量
-b //block 块,容量
-u //user
-g //group
[root@localhost ~]# xfs_quota -x -c 'report -a' /挂载点
[root@localhost ~]# xfs_quota -c 'quota -uv 用户名' /挂载点
[root@localhost ~]# xfs_quota -c 'quota -iuv 用户名' /挂载点
[root@localhost ~]# xfs_quota -c 'quota -iuv 用户名' /挂载点
[root@localhost ~]# dd if=/dev/zero of=/mail/demo01.txt bs=1M count=80
1.用上述LVM命令实操相同方法创建逻辑卷
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 3.1G 17G 16% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.0M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 12K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/1-11 xfs 40G 33M 40G 1% /2
2.查看是否安装xfsprogs命令
[root@localhost ~]# rpm -q xfsprogs
xfsprogs-4.5.0-12.el7.x86_64 '//系统已经安装'
3.查看是否开启quota
[root@localhost ~]# mount
...省略中间内容
/dev/mapper/1-11 on /2 type xfs (rw,relatime,seclabel,attr2,inode64,noquota) '//发现quota 没有设置'
4.将刚刚的挂载解除掉,我们现在开始启动磁盘配额支持
[root@localhost ~]# umount /2
[root@localhost ~]# vim /etc/fstab '//在这个文件中修改是永久生效'
5.启动挂载,然后查看是否设置成功
[root@localhost ~]# mount -a
[root@localhost ~]# mount
...省略中间内容
/dev/mapper/1-11 on /2 type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota) //已经设置成功
6.编辑和查看用户和组的配额设置
例如:限制zhangsan用户,软容量为50M,硬容量100M。软数量4,硬数量5
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=50M bhard=100M isoft=4 ihard=5 zhangsan' /2
查看zhangsan用户容量限制信息
[root@localhost ~]# xfs_quota -c 'quota -uv zhangsan' /2
Disk quotas for User zhangsan (1001)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/1-11 0 51200 102400 00 [--------] /2
查看zhangsan用户数量限制信息
[root@localhost ~]# xfs_quota -c 'quota -iuv zhangsan' /2
Disk quotas for User zhangsan (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/1-11 0 4 5 00 [--------] /2
容量和数量可以一起查看
[root@localhost ~]# xfs_quota -c 'quota -ibuv zhangsan' /2
Disk quotas for User zhangsan (1001)
Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
/dev/mapper/1-11 0 51200 102400 00 [--------] 0 4 5 00 [--------] /2
查看所有用户配额
[root@localhost ~]# xfs_quota -x -c 'report -a' /2
User quota on /2 (/dev/mapper/1-11)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
zhangsan 0 51200 102400 00 [--------]
Group quota on /2 (/dev/mapper/1-11)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
7.验证磁盘配额功能
[root@localhost ~]# su - zhangsan '//切换张三用户'
上一次登录:一 11月 4 21:15:22 CST 2019pts/0 上
[zhangsan@localhost ~]$ df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
....省略内容
/dev/mapper/1-11 xfs 40G 33M 40G 1% /2
[zhangsan@localhost ~]$ cd /2/ //进入挂载点目录
[zhangsan@localhost 2]$ touch test{1..5}.txt '//创建文件'
touch: 无法创建"test1.txt": 权限不够
touch: 无法创建"test2.txt": 权限不够
touch: 无法创建"test3.txt": 权限不够
touch: 无法创建"test4.txt": 权限不够
touch: 无法创建"test5.txt": 权限不够
[zhangsan@localhost 2]$ cd ..
[zhangsan@localhost /]$ ls -l
总用量 24
drwxr-xr-x. 2 root root 6 11月 4 20:18 2 '//发现只有执行的权限'
[zhangsan@localhost ~]$ su - root
密码:
上一次登录:一 11月 4 21:18:05 CST 2019pts/0 上
[root@localhost ~]# chmod 777 /2 '//给文件设置用户权限'
[root@localhost ~]# cd /
[root@localhost /]# ls -l
总用量 24
drwxrwxrwx. 2 root root 6 11月 4 20:18 2 '//发现所有权限都有了'
[root@localhost /]# su - zhangsan '//切换张三用户'
上一次登录:一 11月 4 21:32:38 CST 2019pts/0 上
[zhangsan@localhost ~]$ cd /2/
[zhangsan@localhost 2]$ touch test{1..5}.txt '//创建五个文件'
[zhangsan@localhost 2]$ ls
test1.txt test2.txt test3.txt test4.txt test5.txt
[zhangsan@localhost 2]$
[zhangsan@localhost 2]$ touch test6.txt
touch: 无法创建"test6.txt": 超出磁盘限额 '//发现第六个文件已经无法创建'
[zhangsan@localhost 2]$ xfs_quota -c 'quota -iuv zhangsan ' /2 '//查看限制信息'
Disk quotas for User zhangsan (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/1-11 5 4 5 00 [6 days] /2 '//发现文件数量已达硬限制,出现时限'
[zhangsan@localhost 2]$ rm -rf /2/* //删除文件开始进行容量验证
[zhangsan@localhost 2]$ dd if=/dev/zero of=/2/test1.txt bs=1M count=80 '//连续复制80个,每个为1M的信息到test1.txt文件中'
记录了80+0 的读入
记录了80+0 的写出
83886080字节(84 MB)已复制,0.117359 秒,715 MB/秒
[zhangsan@localhost 2]$ ls -lh /2/
总用量 80M
-rw-rw-r--. 1 zhangsan zhangsan 80M 11月 4 21:51 test1.txt '//发现现在文件已经为80M'
[zhangsan@localhost 2]$ dd if=/dev/zero of=/2/test2.txt bs=1M count=50 '//继续复制50个,每个为1M的信息到test2.txt文件中'
dd: 写入"/2/test2.txt" 出错: 超出磁盘限额 '//限额之前设置的是100M,限制已经超出'
记录了21+0 的读入
记录了20+0 的写出
20971520字节(21 MB)已复制,0.0326932 秒,641 MB/秒
[zhangsan@localhost 2]$ ls -lh /2/
总用量 100M
-rw-rw-r--. 1 zhangsan zhangsan 80M 11月 4 21:51 test1.txt
-rw-rw-r--. 1 zhangsan zhangsan 20M 11月 4 21:53 test2.txt '//发现超出的部分会自动删除,达到100M限额就结束了'
此时,用户信息应该是这样的
[zhangsan@localhost ~]$ xfs_quota -c 'quota -iuv' /2
Disk quotas for User zhangsan (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/1-11 2 4 5 00 [--------] /2 '//刚刚创建了test1.txt和test2.txt两个文件'
[zhangsan@localhost ~]$ xfs_quota -c 'quota -uv' /2
Disk quotas for User zhangsan (1001)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/1-11 102400 51200 102400 00 [6 days] /2 '//两个文件的容量达到硬限制上限,所以有了时限'