一、Linux 缩减逻辑卷
由于之前在逻辑卷上创建的文件系统是xfs文件系统,该文件系统 xfs是不能直接缩容的。因此这里要把文件系统改为ext4系统。
操作步骤:备份–卸载–重新格式化ext4–e2fsck检查文件系统完整性 --缩小容量resize2fs、lvreduce–格式化为xfs – 重新识别 xfs_growfs
1、 卸载逻辑卷
[root@centos7 ~]# umount /dev/vg_sdb1/lv_sdb1
2、重新格式化成ext4文件系统
[root@centos7 ~]# mkfs.ext4 /dev/vg_sdb1/lv_sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241856 blocks
262092 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 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
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
3、检查文件系统完整性
[root@centos7 ~]# e2fsck -f /dev/vg_sdb1/lv_sdb1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vg_sdb1/lv_sdb1: 11/393216 files (0.0% non-contiguous), 65654/1572864 blocks
4、重新设定文件系统的大小,并缩减逻辑卷容量。
[root@centos7 ~]# resize2fs /dev/vg_sdb1/lv_sdb1 16G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg_sdb1/lv_sdb1 to 4194304 (4k) blocks.
The filesystem on /dev/vg_sdb1/lv_sdb1 is now 4194304 blocks long.
缩容
[root@centos7 ~]# lvreduce -L -2G /dev/vg_sdb1/lv_sdb1
WARNING: Reducing active logical volume to <18.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_sdb1/lv_sdb1? [y/n]: y
Size of logical volume vg_sdb1/lv_sdb1 changed from <20.00 GiB (5119 extents) to <18.00 GiB (4607 extents).
Logical volume vg_sdb1/lv_sdb1 successfully resized.
5、再次格式化为xfs
[root@centos7 ~]# mkfs.xfs -f /dev/vg_sdb1/lv_sdb1
meta-data=/dev/vg_sdb1/lv_sdb1 isize=512 agcount=4, agsize=1179392 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=4717568, 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
挂载之前最好检查一下xfs文件系统。
[root@centos7 ~]# xfs_repair /dev/vg_sdb1/lv_sdb1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
[root@centos7 ~]# xfs_growfs /dev/vg_sdb1/lv_sdb1
xfs_growfs: /dev/vg_sdb1/lv_sdb1 is not a mounted XFS filesystem
6、挂载文件系统
[root@centos7 ~]# mount /dev/vg_sdb1/lv_sdb1 /data/lvm
[root@centos7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 19.5G 0 part /data
├─sda4 8:4 0 512B 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
└─vg_sdb1-lv_sdb1 253:0 0 18G 0 lvm /data/lvm
sr0 11:0 1 8.1G 0 rom /mnt/cdrom
二、Linux 逻辑卷扩容
可以看到原先的卷组已经用完了,因此这里想要给逻辑卷扩容得先增加卷组,而卷组的增加又得增加物理卷。因此这里添加一块新的虚拟硬盘来模拟。
[root@centos6 ~]# echo "- - -" >/sys/class/scsi_host/host0/scan
[root@centos6 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 29.3G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sr0 11:0 1 8.1G 0 rom /mnt/cdrom
sr1 11:1 1 3.7G 0 rom
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 2G 0 part /home
└─sdb2 8:18 0 8G 0 part
└─vg--sdb2-lv--sdb2 (dm-0) 253:0 0 8G 0 lvm
sdc 8:32 0 10G 0 disk
直接拿整块硬盘来作为逻辑卷,因此这里可以不用划分分区也不用更改分区类型。
[root@centos6 ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created
[root@centos6 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb2
VG Name vg-sdb2
PV Size 7.99 GiB / not usable 1.54 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2045
Free PE 0
Allocated PE 2045
PV UUID f5WhrU-rYRI-Hqr5-Hdif-fxtH-VCyS-xx7ULu
"/dev/sdc" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3hhHF0-mbxq-QXho-tdCX-fRvg-SUkC-27OEET
扩展卷组(把新的物理卷加入vg-sdb2)
[root@centos6 ~]# vgextend vg-sdb2 /dev/sdc
Volume group "vg-sdb2" successfully extended
此时发现vg-sdb2这个卷组空间增大了
[root@centos6 ~]# vgdisplay
--- Volume group ---
VG Name vg-sdb2
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 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 17.98 GiB
PE Size 4.00 MiB
Total PE 4604
Alloc PE / Size 2045 / 7.99 GiB
Free PE / Size 2559 / 10.00 GiB
VG UUID TVNGkV-GhVL-wmdl-mUAQ-StPx-bN5o-nn98xy
扩展逻辑卷
增加5G的容量
[root@centos6 ~]# lvextend -L +5G /dev/vg-sdb2/lv-sdb2
Size of logical volume vg-sdb2/lv-sdb2 changed from 7.99 GiB (2045 extents) to 12.99 GiB (3325 extents).
Logical volume lv-sdb2 successfully resized.
[root@centos6 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv-sdb2 vg-sdb2 -wi-a----- 12.99g
注意:此处还要同步文件系统,因为新加入的逻辑卷上还没有创建文件系统
同步文件系统
此命令只适合ext系列的文件系统。
[root@centos6 ~]# resize2fs /dev/vg-sdb2/lv-sdb2
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg-sdb2/lv-sdb2 to 3404800 (4k) blocks.
The filesystem on /dev/vg-sdb2/lv-sdb2 is now 3404800 blocks long.
也可以这样操作,在扩展逻辑卷的同时同步文件系统。
[root@centos6 ~]# lvextend -L +5G -r /dev/vg-sdb2/lv-sdb2