LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出来.
Logical Volume Manager,逻辑卷管理
动态调整磁盘容量,从而提高磁盘管理的灵活性
/boot分区用于存放引导文件,不能基于LVM创建
图形界面管理工具:system-config-lvm
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。
创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷
物理卷一般直接使用设备文件名称,如/dev/sdb1 , /dev/sdb1, /dev/sdd等
对于转换成物理卷的普通分区,建议先使用fdisk工具将分区类型的ID标记号改为“8e”(8e表示LVM逻辑卷),若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再做相对应调整
卷组:由一个或多个物理卷组成一个整体
在卷组中可以动态的添加或移除物理卷
许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自定义
逻辑卷建立在卷组之上,与物理卷没有直接关系
对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷
使用mkfs等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux系统中的目录下使用
主要命令
PV物理卷管理
VG卷组管理
LV逻辑卷管理
主要命令的格式
pvcreate 设备名(磁盘) 【设备名2 ... ...】
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -l +大小 /dev/卷组名/逻辑卷名
pv物理卷管理
pvscan命令 会扫描系统中连接的所有硬盘,列出找到的物理卷列表。使用pvscan命令的-n
选项可以显示硬盘中的不属于任何卷组的物理卷,这些物理卷是未被使用的.
语法
pvscan(选项)
选项
-d:调试模式;
-e:仅显示属于输出卷组的物理卷;
-n:仅显示不属于任何卷组的物理卷;
-s:短格式输出;
-u:显示UUID。
实例
使用pvscan命令扫描当前系统中所有硬盘的物理卷,在命令行中输入下面的命令:
[root@localhost ~]# pvscan #扫描所有硬盘上的物理卷
输出信息如下:
PV /dev/sdb1 lvm2 [101.94 MB]
PV /dev/sdb2 lvm2 [101.98 MB]
Total: 2 [203.92 MB] / in use: 0 [0 ] / in no VG: 2 [203.92
MB]
将物理硬盘分区初始化为物理卷
补充说明
pvcreate命令 用于将物理硬盘分区初始化为物理卷,以便LVM使用。
语法
pvcreate(选项)(参数)
选项
-f:强制创建物理卷,不需要用户确认;
-u:指定设备的UUID;
-y:所有的问题都回答“yes”;
-Z:是否利用前4个扇区。
参数
物理卷:指定要创建的物理卷对应的设备文件名。
例如
[root@localhost ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
显示物理卷的属性
补充说明
pvdisplay命令 用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括:物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。
语法
pvdisplay(选项)(参数)
选项
-s:以短格式输出;
-m:显示PE到LE的映射。
参数
物理卷:要显示的物理卷对应的设备文件名。
实例
使用pvdisplay命令显示指定的物理卷的基本信息。在命令行中输入下面的命令:
[root@localhost ~]# pvdisplay /dev/sdb1 #显示物理卷基本信息
输出信息如下:
"/dev/sdb1" is a new physical volume of "101.94 MB"
--- NEW Physical volume ---
PV Name /dev/sdb1
....省略部分输出内容......
PV UUID FOXiS2-Ghaj-Z0Mf- cdVZ-pfpk- dP9p-ifIZXN
扫描并显示系统中的卷组
补充说明
vgscan命令 查找系统中存在的LVM卷组,并显示找到的卷组列表。vgscan命令仅显示找到的卷组的名称和LVM元数据类型,要得到卷组的详细信息需要使用vgdisplay命令。
语法
vgscan(选项)
选项
-d:调试模式;
--ignorerlockingfailure:忽略锁定失败的错误。
实例
使用vgscan命令扫描系统中所有的卷组。在命令行中输入下面的命令:
[root@localhost ~]# vgscan #扫描并显示LVM卷组列表
输出信息如下:
Found volume group "vg2000" using metadata type lvm2
Found volume group "vg1000" using metadata type lvm2
用于创建LVM卷组
补充说明
vgcreate命令 用于创建LVM卷组。卷组(Volume Group)将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。
语法
vgcreate(选项)(参数)
选项
-l:卷组上允许创建的最大逻辑卷数;
-p:卷组中允许添加的最大物理卷数;
-s:卷组上的物理卷的PE大小。
参数
实例
使用vgcreate命令创建卷组 “vg1000″,并且将物理卷/dev/sdb1
和/dev/sdb2
添加到卷组中。在命令行中输入下面的命令:
[root@localhost ~]# vgcreate vg1000 /dev/sdb1 /dev/sdb2 #创建卷组"vg1000"
输出信息如下:
Volume group "vg1000" successfully created
显示LVM卷组的信息
补充说明
vgdisplay命令 用于显示LVM卷组的信息。如果不指定”卷组”参数,则分别显示所有卷组的属性。
语法
vgdisplay(选项)(参数)
选项
-A:仅显示活动卷组的属性;
-s:使用短格式输出的信息。
参数
卷组:要显示属性的卷组名称。
实例
使用vgdisplay命令显示存在的卷组”vg1000″的属性。在命令行中输入下面的命令:
[root@localhost ~]# vgdisplay vg1000 #显示卷组"vg1000"的属性
输出信息如下:
--- Volume group ---
VG Name vg1000
......省略部分输出内容......
free PE / Size 50 / 200.00 MB
VG UUID ICprwg-ZmhA-JKYF-WYuy-jNHa-AyCN-ZS5F7B
用于用户删除LVM卷组
补充说明
vgremove命令 用于用户删除LVM卷组。当要删除的卷组上已经创建了逻辑卷时,vgremove命令需要进行确认删除,防止误删除数据。
语法
vgremove(选项)(参数)
选项
-f:强制删除。
参数
卷组:指定要删除的卷组名称。
实例
使用vgremove命令删除LVM卷组”vg1000″。在命令行中输入下面的命令:
[root@localhost ~]# vgremove vg1000 #删除卷组"vg1000"
Volume group "vg1000" successfully removed
向卷组中添加物理卷
vgextend命令 用于动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加,也可以使用vgextend命令动态的添加。
语法
vgextend(选项)(参数)
选项
-d:调试模式;
-t:仅测试。
参数
实例
使用vgextend命令向卷组”vg2000″中添加物理卷。在命令行中输入下面的命令:
[root@localhost ~]# vgextend vg2000 /dev/sdb2 #将物理卷"/dev/sdb2"加入卷组"vg2000"
输出信息如下:
Volume group "vg2000" successfully extended
扫描逻辑卷
lvscan命令 用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有逻辑卷,及其对应的设备文件。
语法
lvscan(选项)
选项
-b:显示逻辑卷的主设备和次设备号。
实例
使用lvscan命令扫描系统中的所有逻辑卷。在命令行中输入下面的命令:
[root@localhost ~]# lvscan #扫描所有的逻辑卷
输出信息如下:
ACTIVE '/dev/vg1000/lvol0' [200.00 MB] inherit
用于创建LVM的逻辑卷
lvcreate命令 用于创建LVM的逻辑卷。逻辑卷是创建在卷组之上的。逻辑卷对应的设备文件保存在卷组目录下,例如:在卷组”vg1000″上创建一个逻辑卷”lvol0″,则此逻辑卷对应的设备文件为”/dev/vg1000/lvol0″。
语法
lvcreate(选项)(参数)
选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。
参数
逻辑卷:指定要创建的逻辑卷名称。
实例
使用lvcreate命令在卷组”vg1000″上创建一个200MB的逻辑卷。在命令行中输入下面的命令:
[root@localhost ~]# lvcreate -L 200M vg1000 #创建大小为200M的逻辑卷
输出信息如下:
Logical volume "lvol0" created
扩展逻辑卷空间
lvextend命令 用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。
语法
lvextend(选项)(参数)
选项
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
-l:指定逻辑卷的大小(LE数)。
参数
逻辑卷:指定要扩展空间的逻辑卷。
使用lvextend命令为逻辑卷/dev/vg1000/lvol0
增加100M空间。在命令行中输入下面的命令:
[root@localhost ~]# lvextend -L +100M /dev/vg1000/lvol0 #为了解决增加100M空间
输出信息如下:
Extending logical volume lvol0 to 300.00 MB
Logical volume lvol0 successfully resized
删除指定LVM逻辑卷
补充说明
lvremove命令 用于删除指定LVM逻辑卷。如果逻辑卷已经使用mount命令加载,则不能使用lvremove命令删除。必须使用umount命令卸载后,逻辑卷方可被删除。
语法
lvremove(选项)(参数)
选项
-f:强制删除。
参数
逻辑卷:指定要删除的逻辑卷。
实例
使用lvremove命令删除指定的逻辑卷。在命令行中输入下面的命令:
[root@localhost ~]# lvremove /dev/vg1000/lvol0 #删除逻辑卷"lvol0"
输出信息如下:
Do you really want to remove active logical
volume "lvol0"? [y/n]: y #确认删除
Logical volume "lvol0" successfully removed
首先添加磁盘
[root@localhost ~]# fdisk -l ##列出磁盘列表
磁盘 /dev/sdd: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 字节
磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a0b1b
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 629145599 313523200 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:57.9 GB, 57852035072 字节,112992256 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-home:263.2 GB, 263192576000 字节,514048000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# fdisk /dev/sdb ##给sdb磁盘新建分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x61797857 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n ##新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free) ##p是主分区 e是逻辑分区
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 列出所有代码):8e ##分区ID改为8e,是LVM格式
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p ##列出磁盘的分区情况
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x61797857
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
命令(输入 m 获取帮助):w ##保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdc ##给sdc进行磁盘分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xb56c7977 创建新的 DOS 磁盘标签。
命令(输入 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 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
下一步创建物理卷
[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/sda2 VG centos lvm2 [<299.00 GiB / 0 free]
PV /dev/sdc1 lvm2 [<20.00 GiB]
PV /dev/sdb1 lvm2 [<20.00 GiB]
Total: 3 [338.99 GiB] / in use: 1 [<299.00 GiB] / in no VG: 2 [<40.00 GiB]
下一步进行创建卷组
[root@localhost ~]# vgcreate tom /dev/sd[b-c]1 ##创建tom卷组
Volume group "tom" successfully created
[root@localhost ~]# vgdisplay ##显示卷组的详细信息
--- Volume group ---
VG Name tom
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <299.00 GiB
PE Size 4.00 MiB
Total PE 76543
Alloc PE / Size 76543 / <299.00 GiB
Free PE / Size 0 / 0
VG UUID SyIZHz-XeVR-k9wm-9zPc-n1Ff-rZAs-bBvdHh
--- Volume group ---
VG Name tom
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 HOggVx-VR4K-bVMe-M9wA-H3Fq-ox7j-QnPLq2
下一步进行创建逻辑卷
[root@localhost ~]# lvcreate -L 20G -n tomshuai tom
Logical volume "tomshuai" created.
[root@localhost ~]# cd /dev/tom ##进入tom目录
[root@localhost tom]# ls ##列表查看
tomshuai
[root@localhost tom]# ll
总用量 0
lrwxrwxrwx. 1 root root 7 7月 1 00:02 tomshuai -> ../dm-2
[root@localhost tom]# mkfs.xfs /dev/tom/tomshuai 或者mkfs.xfs /dev/dm -2
meta-data=/dev/tom/tomshuai 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
[root@localhost tom]# mkdir /abc1 ##创建目录abc1
[root@localhost tom]# mount /dev/tom/tomshuai /abc1 ##挂载到abc1
[root@localhost tom]# df -h ##查看挂载
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 54G 4.2G 50G 8% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
/dev/mapper/centos-home 245G 33M 245G 1% /home
tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs 378M 24K 378M 1% /run/user/0
/dev/mapper/tom-tomshuai 20G 33M 20G 1% /abc1
[root@localhost ~]# fdisk -l ##查看磁盘列表
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a0b1b
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 629145599 313523200 8e Linux LVM
磁盘 /dev/mapper/centos-root:57.9 GB, 57852035072 字节,112992256 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-home:263.2 GB, 263192576000 字节,514048000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# fdisk /dev/sdb ##进行sdb磁盘分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x54ffa9e1 创建新的 DOS 磁盘标签。
命令(输入 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 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdc ##进行sdc分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xa8b34303 创建新的 DOS 磁盘标签。
命令(输入 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 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# pvcreate /dev/sd[b-c]1 ##将分区转换物理卷
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# vgcreate shuai /dev/sd[b-c]1 ##将dev/sdb1 dev/sdc1创建名为shuai的卷组
Volume group "shuai" successfully created
[root@localhost ~]# lvcreate -L 15G -n shuaige shuai ##在shuai卷组新建一个新的逻辑卷 容量是15G 名称为hsuaige
Logical volume "shuaige" created.
[root@localhost ~]# lvdisplay ##显示逻辑卷信息
--- Logical volume ---
LV Path /dev/shuai/shuaige
LV Name shuaige
VG Name shuai
LV UUID CEyyqH-yJVy-ILVI-Ebf9-ff2P-289L-x0XdR2
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-07-01 14:57:34 +0800
LV Status available
# open 0
LV Size 15.00 GiB
Current LE 3840
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
进行格式化
[root@localhost ~]# mkfs.xfs /dev/shuai/shuaige
meta-data=/dev/shuai/shuaige isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=3932160, 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
进行挂载
[root@localhost ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Jun 17 23:11:20 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=d660d2ef-3140-4cb0-a5d6-0063f55828dc /boot xfs defaults 0 0/dev/mapper/centos-home /home xfs defaults 0 0
/dev/shuai/shuaige /opt/shuai xfs defaults 0 0
[root@localhost ~]# mkdir /opt/shuai ##创建挂载目录
[root@localhost ~]# ls /opt
rh shuai
[root@localhost ~]# mount -a ##自动挂载
[root@localhost ~]# df -h ##查看挂载
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 54G 4.1G 50G 8% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
/dev/mapper/centos-home 245G 33M 245G 1% /home
tmpfs 378M 12K 378M 1% /run/user/42
tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/shuai-shuaige 15G 33M 15G 1% /opt/shuai1
进行扩容
[root@localhost ~]# lvextend -L +10G /dev/shuai/shuaige 为shuaige逻辑卷增加10G大小的磁盘的空间大小
Size of logical volume shuai/shuaige changed from 15.00 GiB (3840 extents) to 25.00 GiB (6400 extents).
Logical volume shuai/shuaige successfully resized.
[root@localhost ~]# df -h ##查看挂载
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 54G 4.1G 50G 8% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
/dev/mapper/centos-home 245G 33M 245G 1% /home
tmpfs 378M 12K 378M 1% /run/user/42
tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/shuai-shuaige 15G 33M 15G 1% /opt/shuai1
[root@localhost ~]# xfs_growfs /dev/shuai/shuaige
meta-data=/dev/mapper/shuai-shuaige isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3932160 to 6553600
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 54G 4.1G 50G 8% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 179M 836M 18% /boot
/dev/mapper/centos-home 245G 33M 245G 1% /home
tmpfs 378M 12K 378M 1% /run/user/42
tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/shuai-shuaige 25G 33M 25G 1% /opt/shuai1
注意:在使用pvcreate, vgcreate Ivextend等命令拓展分区的时候,发现出现了找不到逻辑块的问题,最后问题是现在的文件格式是xfs, resize2fs命令 是读取不了
的,故而查找到了需要使用xfs_ growfs
磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。
磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。在服务器管理中此功能非常重要,但对单机用户来说意义不大。
Linux磁盘限额的特点
作用范围:针对指定的文件系统(分区)
限制对象:用户账号,组账号
限制类型:磁盘容量,文件数量
限制方法:软限制,硬限制
软限制:可以超出限制,但是有时限期,如时限7天,超出时间就将多余的删除
软限制 小于等于 硬限制
序号 | 步骤 |
---|---|
1 | 以支持配额功能的方式挂载文件系统 |
2 | 编辑用户和组账号的配额设置 |
3 | 验证磁盘配额功能 |
4 | 查看磁盘配额使用情况 |
配置配额功能挂载文件系统的时效有临时生效和永久生效
临时生效就是用mount -o 命令(临时设置,关机后会失效),永久需要配置相关配置文件(大部分)
备注:大部分的命令设置都是临时生效,重启失效;配置文件设置是永久生效,随着开机自动启动挂载
基本格式
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 节点)
使用受配额限制的用户账号登录 Linux 操作系统,并切换到应用了配额的文件系统中, 进行复制文件等写入操作,测试所设置的磁盘配额项是否有效。
在测试过程中,为了快速看到效果,可以使用 dd 转换工具。dd 命令是一个设备转换和复制命令,分别使用“if=”选项指定输入设备(或文件)、“of=”选项指定输出设备(或文件)、“bs=”选项指定读取数据块的大小、“count=”指定读取数据块的数量
xfs_quota -x -c ‘report 选项 ’ 挂载点
report常用选项
选项 解释
-a 查看该挂载点的所有配额使用情况
-i 查看该挂载点的文件数量的配额使用情况
-b 查看该挂载点的磁盘容量的配额使用情况
-u 查看该挂载点的用户的配额使用情况
-g 查看该挂载点的组账号的配额使用情况
添加3块磁盘
重启查看磁盘情况
[root@localhost ~]# fdisk -l ##列出磁盘列表
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a0b1b
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 629145599 313523200 8e Linux LVM
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
新建分区
[root@localhost ~]# fdisk /dev/sdb ##给sdb进行分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x77319150 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):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 ##更改分区
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e ##改为8e
已将分区“Linux”的类型更改为“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)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x9c111a03 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default 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
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x04bccce5 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default 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
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
下一步进行创建物理卷
[root@localhost ~]# pvcreate /dev/sd[b-d]1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
Physical volume "/dev/sdd1" successfully created.
创建卷组,卷组名为tom
[root@localhost ~]# vgcreate tom /dev/sd[b-d]1
Volume group "tom" successfully created
从卷组中分-L 40G 创建LVM逻辑卷 名字-n 为tom2
[root@localhost ~]# lvcreate -L 40G -n tom2 tom
Logical volume "tom2" created.
[root@localhost ~]# cd /dev/tom
[root@localhost tom]# ll
总用量 0
lrwxrwxrwx. 1 root root 7 7月 5 23:03 tom2 -> ../dm-2
[root@localhost tom]# mkfs.xfs /dev/tom/tom2 ##进行格式化
meta-data=/dev/tom/tom2 isize=512 agcount=4, agsize=2621440 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=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 log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
创建挂载点,设置自动挂载
[root@localhost mnt]# mkdir shuai
[root@localhost mnt]# vim /etc/fstab
:wq保存退出
[root@localhost mnt]# mount -a ##启动挂载
[root@localhost mnt]# df -Th ##查看已挂载
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 54G 4.1G 50G 8% /
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/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 33M 245G 1% /home
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 24K 378M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/tom-tom2 xfs 40G 33M 40G 1% /mnt/shuai ##挂载成功
磁盘配额权限需要先查看自己的系统有没有xfsprogs软件,没有的需要安装
[root@localhost dev]# rpm -q xfsprogs
xfsprogs-4.5.0-18.el7.x86_64
[root@localhost dev]# rpm -ql xfsprogs | grep quota ##查看是否开启quota
/usr/sbin/xfs_quota
/usr/share/man/man8/xfs_quota.8.gz
将刚刚挂载的解除,我们开始启动磁盘配额支持
[root@localhost dev]# umount /mnt/shuai
[root@localhost dev]# vim /etc/fstab
:wq保存退出
[root@localhost ~]# umount /mnt/shuai ##取消挂载
[root@localhost ~]# mount -a ##重新挂载
[root@localhost ~]# mount
/dev/mapper/tom-tom2 on /mnt/shuai type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
##显示可以配置组账号的磁盘配额
编辑合查看用户和组的配额设置
列如:设置tom用户 软容量为50M 硬容量为100M 软数量4 硬数量6
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=50M bhard=80M isoft=4 ihard=6 tom' /mnt/shuai
[root@localhost ~]# xfs_quota -c 'quota -uv tom' /mnt/shuai ##查看用户tom限制容量
Disk quotas for User tom (1001)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/tom-tom2 0 51200 81920 00 [--------] /mnt/shuai
查看tom用户用户数量限制信息
[root@localhost ~]# xfs_quota -c 'quota -iuv tom' /mnt/shuai
Disk quotas for User tom (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/tom-tom2 0 4 6 00 [--------] /mnt/shuai
查看tom用户容量和数量一起查看
[root@localhost ~]# xfs_quota -c 'quota -biuv tom' /mnt/shuai
Disk quotas for User tom (1001)
Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
/dev/mapper/tom-tom2 0 51200 81920 00 [--------] 0 4 6 00 [--------] /mnt/shuai
查看所有用户配额
[root@localhost ~]# xfs_quota -x -c 'report -a' /mnt/shuai
User quota on /mnt/shuai (/dev/mapper/tom-tom2)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
tom 0 51200 81920 00 [--------]
Group quota on /mnt/shuai (/dev/mapper/tom-tom2)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
验证磁盘配额功能
[root@localhost ~]# su - tom ##切换到tom用户
上一次登录:一 7月 6 08:52:06 CST 2020pts/0 上
[tom@localhost ~]$ df -Th ##查看挂载
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 54G 4.1G 50G 8% /
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/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 33M 245G 1% /home
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 32K 378M 1% /run/user/0
/dev/mapper/tom-tom2 xfs 40G 33M 40G 1% /mnt/shuai
[tom@localhost ~]$ cd /mnt/shuai ##切换到挂载目录
[tom@localhost shuai]$ touch hua{1..3}.txt
touch: 无法创建"hua1.txt": 权限不够
touch: 无法创建"hua2.txt": 权限不够
touch: 无法创建"hua3.txt": 权限不够
[tom@localhost shuai]$ cd ~
[tom@localhost ~]$ ll
总用量 0
[root@localhost ~]# chmod 777 /mnt/shuai ##给挂载点设置最高权限
[root@localhost /]# cd /mnt
[root@localhost mnt]# ll
总用量 0
drwxrwxrwx. 2 root root 6 7月 5 23:06 shuai
[root@localhost mnt]# su - tom ##切换到tom用户
上一次登录:一 7月 6 08:52:36 CST 2020pts/0 上
[tom@localhost ~]$ cd /mnt/shuai ##进入挂载目录
[tom@localhost shuai]$ touch hua{1..6}.txt ##再次创建文件
[tom@localhost shuai]$ ls ##查看列表 可以看出创建成功
hua1.txt hua2.txt hua3.txt hua4.txt hua5.txt hua6.txt
[tom@localhost shuai]$ touch hua7.txt ##可以看出已经超过设定的
touch: 无法创建"hua7.txt": 超出磁盘限额
[tom@localhost shuai]$ xfs_quota -c 'quota -iuv tom' /mnt/shuai ##查看限制信息
Disk quotas for User tom (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/tom-tom2 6 4 6 00 [6 days] /mnt/shuai ##发现文件数量已达到硬限制
测试了文件数量的权限,接下来测试磁盘容量的权限
[tom@localhost shuai]$ dd if=/dev/zero of=/mnt/shuai/hua1.txt bs=1M count=80
记录了80+0 的读入 源路径 目标路径 一次性读写的大小 循环次数
记录了80+0 的写出
83886080字节(84 MB)已复制,0.055757 秒,1.5 GB/秒
[tom@localhost shuai]$ dd if=/dev/zero of=/mnt/shuai/hua2.txt bs=1M count=80
dd: 打开"/mnt/shuai/hua2.txt" 失败: 超出磁盘限额
[tom@localhost shuai]$ xfs_quota -c 'quota -uv tom' /mnt/shuai ##再次查看
Disk quotas for User tom (1001)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/tom-tom2 81920 51200 81920 00 [6 days] /mnt/shuai
[tom@localhost shuai]$ ll ##已占满
总用量 81920
-rw-rw-r--. 1 tom tom 83886080 7月 6 09:21 hua1.txt
上一次登录:一 7月 6 08:52:36 CST 2020pts/0 上
[tom@localhost ~]$ cd /mnt/shuai ##进入挂载目录
[tom@localhost shuai]$ touch hua{1..6}.txt ##再次创建文件
[tom@localhost shuai]$ ls ##查看列表 可以看出创建成功
hua1.txt hua2.txt hua3.txt hua4.txt hua5.txt hua6.txt
[tom@localhost shuai]$ touch hua7.txt ##可以看出已经超过设定的
touch: 无法创建"hua7.txt": 超出磁盘限额
[tom@localhost shuai]$ xfs_quota -c 'quota -iuv tom' /mnt/shuai ##查看限制信息
Disk quotas for User tom (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/tom-tom2 6 4 6 00 [6 days] /mnt/shuai ##发现文件数量已达到硬限制
测试了文件数量的权限,接下来测试磁盘容量的权限
[tom@localhost shuai]$ dd if=/dev/zero of=/mnt/shuai/hua1.txt bs=1M count=80
记录了80+0 的读入 源路径 目标路径 一次性读写的大小 循环次数
记录了80+0 的写出
83886080字节(84 MB)已复制,0.055757 秒,1.5 GB/秒
[tom@localhost shuai]$ dd if=/dev/zero of=/mnt/shuai/hua2.txt bs=1M count=80
dd: 打开"/mnt/shuai/hua2.txt" 失败: 超出磁盘限额
[tom@localhost shuai]$ xfs_quota -c ‘quota -uv tom’ /mnt/shuai ##再次查看
Disk quotas for User tom (1001)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/tom-tom2 81920 51200 81920 00 [6 days] /mnt/shuai
[tom@localhost shuai]$ ll ##已占满
总用量 81920
-rw-rw-r–. 1 tom tom 83886080 7月 6 09:21 hua1.txt