由于本人会负责一些公司运维工作,在服务器需要挂载大容量磁盘时了解到lvm和parted方式,发现网上关于合并大于2T的磁盘方法不是那么理想,一开始我也不知道,提了一些工单,阿里云工程师贴的答案有的很坑的,反正我被坑了!!!结合阿里云工程师给的方法和自己找的一些方法,“另辟蹊径”成功合并了多块磁盘到一个分区!以下是以大于2T的磁盘为例。
我这里有4块5500G(实际大小)的磁盘待格式化到一个分区,先格式化磁盘/dev/vdb
使用parted开始分区:
parted /dev/vdb
GNU Parted 3.1
使用 /dev/vdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted)
运行命令 mklabel gpt
,将MBR分区形式转为GPT分区形式
运行命令 mkpart primary ext4 ,划分一个采用ext4文件系统的主分区,并设置分区的开始位置和结束位置。如果一个数据盘只分一个分区,则运行命令 mkpart primary ext4 0 -1
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? i
(parted)
print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 5906GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 17.4kB 5906GB 5906GB primary
(parted)
toggle 1 lvm
运行命令 quit
,退出 parted 操作。
运行命令 partprobe
,使系统重读分区表
yum -y install lvm2
1)创建PV。
pvcreate /dev/vdb1
pvscan
显示PV信息,因为只创建一个PV,所以只有一个。
pvdisplay
“/dev/vdb1” is a new physical volume of “5.37 TiB”
— NEW Physical volume —
PV Name /dev/vdb1
VG Name
PV Size 5.37 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID fFQn0B-u43M-0cHI-NW7C-v04j-GgIc-jANPzh
好了,现在将一块普通磁盘改变成LVM里最基本物理磁盘。下面我们来创建VG(磁盘管理组)。
2)创建VG(卷组),来管理PV。
vgscan
//因为之前没有创建过VG,所以扫描没有显示。
vgcreate vgdata /dev/vdb1
//创建vgdata并将/dev/vdb1加入
vgcreate vgdata /dev/vdb1 -s 8M
//-s是指定PE大小,默认是4M (这里成功的来报道,我的未成功!)
vgdisplay
//显示VG信息
— Volume group —
VG Name vgdata
System ID
Format lvm2
Metadata Areas 1
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 1
Act PV 1
VG Size 5.37 TiB
PE Size 4.00 MiB
Total PE 1407999
Alloc PE / Size 0 / 0
Free PE / Size 1407999 / 5.37 TiB
VG UUID ZvCXQI-CgCN-9cal-SHLm-zGsy-2Jpk-LvTI89
再次扫描,发现上面创建的“vgdata”卷组VG了。
3)有了卷组我们就可以创建LV,LV是我们真正用来写数据的,比如新建一个文本等。
lvscan
//扫描LV,之前没有建立过LV,什么也没显示
lvcreate -L 5500G -n lvData vgdata
//创建LV,-L 指定LV大小为5500G,-n LV名字方便区分,vgdata 加入到vgdata组,上面创建的。
lvdisplay
— Logical volume —
LV Path /dev/vgdata/lvData
LV Name lvData
VG Name vgdata
LV UUID sxF9Tc-4RHe-wRXl-AtI5-qYYK-wGMj-QX5KTo
LV Write Access read/write
LV Creation host, time iZj6c6y9bsrhe25j0wi24mZ, 2019-01-02 20:36:28 +0800
LV Status available
#
open 0
LV Size 5.37 TiB
Current LE 1407744
Segments 1
Allocation inherit
Read ahead sectors auto
currently set to 8192
Block device 252:0
4)格式化LV及挂载
mkfs.ext4 /dev/vgdata/lvData
//格式化lvData为ext4格式。
mkdir /LVM
//创建挂载点
mount /dev/vgdata/lvData /LVM
//挂载到LVM下
df -h
显示挂载成功
echo "/dev/vgdata/lvData /LVM ext4 defaults 0 0" >> /etc/fstab
1)扩展VG卷组
刚才我们已经把磁盘/dev/vdb
格式化了,现在我们需要格式化磁盘/dev/vdc
前面的操作和上面一样,先使用parted方式格式化磁盘并且创建LVM,这里就不跟上面一样那么详细了。
parted /dev/vdc
mklabel gpt
mkpart primary ext4 0 -1
toggle 1 lvm
quit
partprobe
pvcreate /dev/vdc1
//普通磁盘转换成PV
pvs
//查看VG组信息
vgextend vgdata /dev/vdc1
//加入VG组,vgdata要加入VG组名,/dev/sdc1新PV
vgdisplay
//查看VG卷组详细信息
— Volume group —
VG Name vgdata
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 10.74 TiB
PE Size 4.00 MiB
Total PE 2815998
Alloc PE / Size 1407744 / 5.37 TiB
Free PE / Size 1408254 / 5.37 TiB
VG UUID ZvCXQI-CgCN-9cal-SHLm-zGsy-2Jpk-LvTI89
扩展LV、缩小LV逻辑卷。
lvextend --size +1781G /dev/vgdata/lvData
or
lvextend -L +5500G /dev/vgdata/lvData
LV扩容完系统还没有识别,需要用resize2fs来更新,系统才能识别到。
resize2fs /dev/vgdata/lvData
df -h
至此合并多块大于2T的磁盘到一个分区的操作已经完成。