centos7 xfs磁盘管理(格式化、在线扩容)

环境:

centos 7

新增测试磁盘sdb :5G

新增测试磁盘sdb :10G

注意:分区新磁盘 如果大于2T磁盘使用parted工具,并且使用xfs不支持缩减

查看当前磁盘:# fdisk -l

[root@node01 ~]# fdisk -l
磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000e70e5
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 62914559 30944256 8e Linux LVM
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdc:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

1、sdb创建物理卷(pv)

[root@node01 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created

2、创建新卷组(vg),名称为vgdata,/dev/sdb加入到改卷组中

[root@node01 ~]# vgcreate vgdata /dev/sdb
Volume group "vgdata" successfully created

3、创建新逻辑卷(lv),逻辑卷名称为lvdata

[root@node01 ~]#  lvcreate -L 4G -n lvdata vgdata
Logical volume "lvdata" created.

4、创建并格式化逻辑卷lvdata为xfs文件系统

[root@node01 ~]# mkfs.xfs /dev/vgdata/lvdata
meta-data=/dev/vgdata/lvdata isize=256 agcount=4, agsize=262144 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=1048576, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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
5、挂载文件xfs系统,至plat_data01新目录
[root@node01 ~]# mkdir plat_data01
[root@node01 ~]# mount /dev/vgdata/lvdata plat_data01
#查看挂载情况
[root@node01 ~]# mount -l /dev/mapper/vgdata-lvdata
mount: /dev/mapper/vgdata-lvdata 已经挂载或 /root/plat_data01 忙
/dev/mapper/vgdata-lvdata 已经挂载到 /root/plat_data01 上

6、设置开机自动挂载,修改配置文件fstab

vim /etc/fstab     #最后面,新增如下内容
/dev/vgdata/lvdata /root/plat_data01 xfs defaults 0 0

注意:修改fstab文件时不要在最上面添加,以免系统无法启动!!!!

重启系统(reboot),验证是否开机自动挂载,使用如下命令:

#mount -l

7、查看当前vgdata 卷组的使用情况(也可使用vgs命令),准备扩容该卷组

[root@node01 ~]# vgdisplay vgdata
--- Volume group ---
VG Name vgdata
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 5.00 GiB
PE Size 4.00 MiB
Total PE 1279
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 255 / 1020.00 MiB
VG UUID Mdqdw8-m58l-ZOXg-DOka-iuiC-SrfS-s5bI7j

说明:vgdata当前大小5G,剩余空间1020.00 MiB,已分配4.00 GiB,现在想把sdc磁盘,在线扩容进去。

8、磁盘sdc创建物理卷(pv),并查看当前物理卷情况(使用pvs命令)

[root@node01 ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created
[root@node01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 29.51g 44.00m
/dev/sdb vgdata lvm2 a-- 5.00g 1020.00m
/dev/sdc lvm2 --- 10.00g 10.00g

9、在线扩容需要将/dev/sdc在线加到vgdata中,并在线扩容xfs文件系统/dev/vgdata/lvdata逻辑卷

#把物理卷/dev/sdc加入到vgdata卷组中

[root@node01 ~]# vgextend vgdata /dev/sdc
Volume group "vgdata" successfully extended
[root@node01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 29.51g 44.00m
/dev/sdb vgdata lvm2 a-- 5.00g 1020.00m
/dev/sdc vgdata lvm2 a-- 10.00g 10.00g

注: /dev/sdc已经成功加入vgdata卷组中

#查看这时vgdata卷组大小已经为14.99G

[root@node01 ~]# vgs vgdata
VG #PV #LV #SN Attr VSize VFree
vgdata 2 1 0 wz--n- 14.99g 10.99g

#lvdata逻辑大小认为4G

[root@node01 ~]# lvs 
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 28.46g
swap centos -wi-ao---- 1.00g
lvdata vgdata -wi-ao---- 4.00g

#使用lvextend命令扩展lvdata,扩展至5G

[root@node01 ~]# lvextend -L 5G /dev/vgdata/lvdata
Size of logical volume vgdata/lvdata changed from 4.00 GiB (1024 extents) to 5.00 GiB (1280 extents).
Logical volume lvdata successfully resized.

注:如果是新增5G,则使用命令(lvextend -L +5G /dev/vgdata/lvdata)

#当前lvdata大小已经扩容至5G

[root@node01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 28.46g
swap centos -wi-ao---- 1.00g
lvdata vgdata -wi-ao---- 5.00g

#这时查看挂载的/dev/mapper/vgdata-lvdata,容量认为4G,为什么呢?

[root@node01 ~]# df -lh /dev/mapper/vgdata-lvdata
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vgdata-lvdata 4.0G 33M 4.0G 1% /root/plat_data01

#需要使用xfs_growfs命令实现在线刷新文件系统,扩容当前逻辑卷容量

[root@node01 ~]# xfs_growfs /dev/vgdata/lvdata
meta-data=/dev/mapper/vgdata-lvdata isize=256 agcount=4, agsize=262144 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=1048576, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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 1048576 to 1310720

#重新查看挂载目录容量大小,已经扩容至5G

[root@node01 ~]# df -h|grep plat_data01
/dev/mapper/vgdata-lvdata 5.0G 33M 5.0G 1% /root/plat_data01