概要说明
大数据集群对于磁盘容量要求很高,某些情况下机器的单个磁盘容量不够但是磁盘数量很多时,可以参考本文将多个磁盘挂载到同一个目录下。
PS: 需要对相关磁盘重新分区、格式化等操作,请注意备份数据;重新挂载过程中还会导致TDH的挂载链断裂,请确保知晓如何处理。
详细说明
LVM全称为Logical Volume Manager 逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。其中
PV:Physical Volume 物理卷
VG:volume Group 卷组
LV:Logincal Volume 逻辑卷
更多详细介绍: https://blog.51cto.com/lanlian/1256197
本文介绍如何将三块磁盘sde/sdd/sdc挂载到同一个目录/mnt/disk1下
步骤是先在sde上创建PV/VG/LV,然后在sdd/sdc上创建pv并且将其扩展到VG、LV中去。
1、创建分区
该步骤可以不做。
如果想要手动创建分区,可以参考:
http://www.weichun.vip/?id=66
2、在sde上创建PV/VG/LV
要创建逻辑卷,首先要创建物理卷PV,之后创建卷组VG,最后才创建逻辑卷LV,下面是逻辑卷创建的详细过程:
第一,创建物理卷PV
[root@sophon3 ~]# pvcreate /dev/sde1
WARNING: xfs signature detected on /dev/sde1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sde1.
Physical volume "/dev/sde1" successfully created.
[root@sophon3 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sde1 lvm2 --- <931.00g <931.00g
上面步骤中sde上已经有了分区,所以提示擦除;pvs或者pvdisplay命令可以看到所有的pv。
第二,建卷组VG
[root@sophon3 ~]# vgcreate lvm_data /dev/sde1
Volume group "lvm_data" successfully created
[root@sophon3 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
lvm_data 1 0 0 wz--n- <931.00g <931.00g
其中lvm_data是vg的名字;vgs或者vgdisplay命令可以看到所有的pv。
第三,创建逻辑卷LV
[root@sophon3 ~]# lvcreate -L 930G -n lvmdata_1 lvm_data
Logical volume "lvmdata_1" created.
[root@sophon3 ~]#
[root@sophon3 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvmdata_1 lvm_data -wi-a----- 930.00g
[root@sophon3 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/lvm_data/lvmdata_1
LV Name lvmdata_1
VG Name lvm_data
LV UUID PGKANK-WuL5-saF4-f0Z4-VUaM-sLVm-16FzOt
LV Write Access read/write
LV Creation host, time sophon3, 2021-03-23 11:13:46 +0800
LV Status available
# open 0
LV Size 930.00 GiB
Current LE 238080
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
命令中的-n参数指定lv的名字,最后的参数指定lv所属的vg,-L指定大小,更多lvcreate的参数可以查阅末尾的参考文档;比如:
lvcreate -l 100%VG -n lv-data vg-data -- 创建新的 lv 把所有的vg 划给一个lv 并取名为lv-data
可以用lvdisplay命令看到详细的结果。
第四,格式化、挂载分区
[root@sophon3 ~]# mkfs.ext4 /dev/mapper/lvm_data-lvmdata_1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=64 blocks, Stripe width=64 blocks
60948480 inodes, 243793920 blocks
12189696 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2392850432
7440 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,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
└─lvm_data-lvmdata_1 253:0 0 930G 0 lvm
[root@sophon3 ~]# mount /dev/mapper/lvm_data-lvmdata_1 /mnt/disk3
[root@sophon3 ~]# df -h | grep disk3
/dev/mapper/lvm_data-lvmdata_1 916G 77M 869G 1% /mnt/disk3
注意最后的路径名字是lv跟vg的名字拼接而来的,也可以写成:
mkfs.ext4 /dev/lvm_data/lvmdata_1
或者格式化为其他格式:
mkfs -t xfs -f /dev/lvm_data/lvmdata_1
mkfs -t ext3 -f /dev/lvm_data/lvmdata_1
3、在sdd上创建PV并扩展到VG中
[root@sophon3 ~]# pvcreate /dev/sdd1
WARNING: xfs signature detected on /dev/sdd1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdd1.
Physical volume "/dev/sdd1" successfully created.
[root@sophon3 ~]#
[root@sophon3 ~]# vgextend lvm_data /dev/sdd1
Volume group "lvm_data" successfully extended
由于sdd上之前有一个分区,所以提示擦除。
上面步骤完成之后再去查看VG会发现其大小已经改变:
[root@sophon3 ~]# vgdisplay
--- Volume group ---
VG Name lvm_data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size <1.82 TiB
PE Size 4.00 MiB
Total PE 476670
Alloc PE / Size 238080 / 930.00 GiB
Free PE / Size 238590 / 931.99 GiB
VG UUID PcLwXT-Il4i-oceC-HTsQ-JwKu-ee7n-bao3Zn
扩展VG完成之后,还需要扩展到LV中:
[root@sophon3 ~]# lvextend -l +100%FREE /dev/mapper/lvm_data-lvmdata_1
Size of logical volume lvm_data/lvmdata_1 changed from 930.00 GiB (238080 extents) to <1.82 TiB (476670 extents).
Logical volume lvm_data/lvmdata_1 successfully resized.
[root@sophon3 ~]# resize2fs /dev/mapper/lvm_data-lvmdata_1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/lvm_data-lvmdata_1 is mounted on /mnt/disk3; on-line resizing required
old_desc_blocks = 117, new_desc_blocks = 233
The filesystem on /dev/mapper/lvm_data-lvmdata_1 is now 488110080 blocks long.
PS: 更详细VG、LV的扩展与缩减操作可以查阅末尾的参考文献
以上步骤完成之后可以去检查disk3的容量:
[root@sophon3 ~]# df -h | grep disk3
/dev/mapper/lvm_data-lvmdata_1 1.8T 68M 1.8T 1% /mnt/disk3
4、对sdc盘做同样的操作
[root@sophon3 mnt]# pvcreate /dev/sdc1/
Device /dev/sdc1/ not found (or ignored by filtering).
[root@sophon3 mnt]# pvcreate /dev/sdc1
WARNING: xfs signature detected on /dev/sdc1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdc1.
Physical volume "/dev/sdc1" successfully created.
[root@sophon3 mnt]# vgextend lvm_data /dev/sdc1
Volume group "lvm_data" successfully extended
[root@sophon3 mnt]# vgdisplay
--- Volume group ---
VG Name lvm_data
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size <2.73 TiB
PE Size 4.00 MiB
Total PE 715005
Alloc PE / Size 476670 / <1.82 TiB
Free PE / Size 238335 / <931.00 GiB
VG UUID PcLwXT-Il4i-oceC-HTsQ-JwKu-ee7n-bao3Zn
[root@sophon3 mnt]# lvextend -l +100%FREE /dev/mapper/lvm_data-lvmdata_1
Size of logical volume lvm_data/lvmdata_1 changed from <1.82 TiB (476670 extents) to <2.73 TiB (715005 extents).
Logical volume lvm_data/lvmdata_1 successfully resized.
[root@sophon3 mnt]# resize2fs /dev/mapper/lvm_data-lvmdata_1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/lvm_data-lvmdata_1 is mounted on /mnt/disk3; on-line resizing required
old_desc_blocks = 233, new_desc_blocks = 350
The filesystem on /dev/mapper/lvm_data-lvmdata_1 is now 732165120 blocks long.
[root@sophon3 mnt]# df -h | grep disk3
/dev/mapper/lvm_data-lvmdata_1 2.7T 68M 2.6T 1% /mnt/disk3
总结:LVM逻辑卷是Linux里面一个很棒的空间使用机制,因为分区在没有格式化的情况下是没有办法加大或者放小的。通过LVM可以将你的磁盘空间做到灵活自如。
参考文献
https://blog.51cto.com/lanlian/1256197
https://blog.51cto.com/dreamfire/1084729
https://blog.51cto.com/12173069/2065907
https://blog.csdn.net/wangsong_it/article/details/107509170
http://www.weichun.vip/?id=66