linux逻辑卷管理器pv pe vg lv
1、pv:物理卷。
实际的分区要调整系统标识符(system ID)成为8e(LVM的标示),然后在经过pvcreate的命令将它转成lvm最底层的物理卷(pv),之后才能将这些pv加以利用,调整system ID的方法就是fdisk。
2、vg,卷用户组。
所谓的lvm大磁盘就是将许多pv整合成一个vg,所以vg就是lvm组合起来的大磁盘。那么这个大磁盘最大可以达到多少容量呢?与下面说的pe有关。因为每个vg最多仅能包含65534个pe而已。如果使用lvm默认的参数,则一个vg最大可以达到256G的容量。
3、pe、物理扩展块。
lvm默认使用4MB的pe块。而lvm的vg最多能含有65534个pe,因此默认的lvmvg会有4M*65534/1024=256G.它是整个lvm最小的存储块,也就是说,其实我们的文件数据都是由写入pe来处理的。简单的说,这个pe有点像文件系统里面的block大小。
4、lv、逻辑卷。
最终的vg还会被切割成lv,这个lv就是最后可以被格式化使用的类似分区。那么lv是否可以随意指定大小呢?当然不行!既然pe是整个lvm的最小存储单位,那么lv的大小就与pe有关。也就是pe大小的整数倍。
5、LVM组件实现流程图。
数据写入到lv的时候,有两种模式,线性模式和交错模式。
线性模式:
假如我有/dev/sda1,/dev/sdb2这两个分区加入到vg当中,并且整个vg只有一个lv时,那么所谓的线性模式就是当/dev/sda1容量用完后,/dev/sdb2硬盘的容量才会被用到。这是默认的并且是我们建议的模式。
交错模式:
跟线性模式相反,一条数据拆成两部分,分别写入/dev/sda1和/dev/sdb2的意思。有点像raid0.如此一来,一份数据用两块盘来写入,理论上,读写性能会比较好。
LVM最主要的用处是在实现一个可以弹性调整容量的文件系统上,而不是在新建一个性能为主的磁盘上所以,我们应该利用的是LVM可以弹性管理整个分区大小的用途。而如果想提高性能,直接raid即可,不必用lvm。
6、LVM实战
就用目前我这边有的一块盘5G的盘,之前做raid实验的时候,也是用的这块盘/dev/sdb
a、先分出4个分区,每个分区的容量为1G左右,且system ID需要为8e。
b、全部的分区整合为一个VG,VG名称设置为vfoxvg;且PE的大小为16M;
c、全部的vg容量都给lv,lv的名称为vfoxlv;
d、最终将这个lv格式化为ext3的文件系统,且挂载在/mnt/lvm中。
step1:
分区并改system ID:
分区并且更改分区的system id为8e
fdisk /dev/sdb
Command (m for help): pDisk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0a31f03bDevice Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 5 Extended
/dev/sdb5 1 132 1060227 8e Linux LVM
/dev/sdb6 133 264 1060258+ 8e Linux LVM
/dev/sdb7 265 396 1060258+ 8e Linux LVM
/dev/sdb8 397 528 1060258+ 83 LinuxCommand (m for help): t
Partition number (1-8): 8
Hex code (type L to list codes): l0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Hex code (type L to list codes): 8e
Changed system type of partition 8 to 8e (Linux LVM)Command (m for help): pDisk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0a31f03bDevice Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 5 Extended
/dev/sdb5 1 132 1060227 8e Linux LVM
/dev/sdb6 133 264 1060258+ 8e Linux LVM
/dev/sdb7 265 396 1060258+ 8e Linux LVM
/dev/sdb8 397 528 1060258+ 8e Linux LVMCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
partprobe
让内核重新加载磁盘分区。如果busy,直接reboot。
上面的sdb[5-8]就是我要用到的4块盘。
step2:
pv阶段,命令说明:
pvcreate:将物理分区新建成为pv;
pvscan:查询目前系统中任何具有pv的 磁盘;
pvdisplay:显示出目前系统上pv的状态;
pvremove:将pv属性删除,让该分区不具有pv属性;
查询系统中现有pv
[root@srcxtts ~]# pvscanPV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]Total: 1 [24.51 GiB] / in use: 1 [24.51 GiB] / in no VG: 0 [0 ][root@srcxtts ~]# pvcreate /dev/sdb{5,6,7,8}Can't open /dev/sdb5 exclusively. Mounted filesystem?Physical volume "/dev/sdb6" successfully createdPhysical volume "/dev/sdb7" successfully createdPhysical volume "/dev/sdb8" successfully created发现sdb5报错了。
[root@srcxtts ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md127 : inactive sdb5[0]1027585 blocks super 1.2unused devices: 发现mdadm里面有sdb5的信息,我这个盘之前通过mdadm做过raid5,重新划分了磁盘,但是mdadm已经关闭并且正常卸载md0,不知道为啥还是出现了这个问题?
先不管,停掉它。
[root@srcxtts ~]# mdadm --stop /dev/md127
mdadm: stopped /dev/md127
[root@srcxtts ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
unused devices: 现在发现没有了。
重建sdb5为pv
[root@srcxtts ~]# pvcreate /dev/sdb5
WARNING: software RAID md superblock detected on /dev/sdb5. Wipe it? [y/n] yWiping software RAID md superblock on /dev/sdb5.Physical volume "/dev/sdb5" successfully created
[root@srcxtts ~]#pvscan
[root@srcxtts ~]# pvscanPV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]PV /dev/sdb5 lvm2 [1.01 GiB]PV /dev/sdb6 lvm2 [1.01 GiB]PV /dev/sdb7 lvm2 [1.01 GiB]PV /dev/sdb8 lvm2 [1.01 GiB]Total: 5 [28.55 GiB] / in use: 1 [24.51 GiB] / in no VG: 4 [4.04 GiB]
[root@srcxtts ~]#
发现一切正常。
pvdisplay
[root@srcxtts ~]# pvdisplay--- Physical volume ---PV Name /dev/sda2VG Name vg_srcxttsPV Size 24.51 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 6274Free PE 0Allocated PE 6274PV UUID kSsqJo-EKgD-74zD-xuzJ-HVfO-TKdt-mduJO2"/dev/sdb5" is a new physical volume of "1.01 GiB"--- NEW Physical volume ---PV Name /dev/sdb5VG Name PV Size 1.01 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID KfVUlD-M3Ka-gOwn-gSbT-yx5e-fE1j-7YjTSR"/dev/sdb6" is a new physical volume of "1.01 GiB"--- NEW Physical volume ---PV Name /dev/sdb6VG Name PV Size 1.01 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID 2sgPk8-OFn5-QhiQ-Oc5I-o0aw-mXaK-9f9Zds"/dev/sdb7" is a new physical volume of "1.01 GiB"--- NEW Physical volume ---PV Name /dev/sdb7VG Name PV Size 1.01 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID nbgBAM-nRLn-ws1W-5oA6-VfN3-HJYF-oEtPPe"/dev/sdb8" is a new physical volume of "1.01 GiB"--- NEW Physical volume ---PV Name /dev/sdb8 ==>实际的分区设备名称VG Name ==>因为尚未分配vg,所以空白PV Size 1.01 GiB ==>pv容量说明Allocatable NO ==>是否已经分配,结果NOPE Size 0 ==>在此pv内的pe大小Total PE 0 ==>共分出多少peFree PE 0 ==>未被lv用掉的peAllocated PE 0 ==>尚可分配出去的pe数量PV UUID 6w3VpI-MxqW-yEsC-36c3-qnBH-Qail-7KXt1b[root@srcxtts ~]#
因为pe是在新建vg时才能与的参数,所以在这里看到的pv里面的pe都是0.而且也没有多于的pe可供分配(allocatable).
vg阶段
命令说明:
vgcreate:就是主要新建vg的命令,它的参数较多下面介绍。
vgscan:查找系统上面目前是否有vg的存在。
vgdisplay:显示目前系统上面的vg状态。
vgextend:在vg内增加额外的pv;
vgreduce:在vg内删除pv;
vgchange:设置vg时是否启动(active);
vgremove:删除一个vg;
与pv不同,vg的名称是自己创建时候定义的,而pv就是用的设备文件名。
vgcreate [-s N[mgt]] VG名称 PV名称
参数:
-s:后面接pe的大小(size),单位可以是m、g、t(大小写均可)。
vgcreate -s 16M vfoxvg /dev/sdb{5,6,7,8}
[root@srcxtts ~]# vgcreate -s 16M vfoxvg /dev/sdb{5,6,7,8} Volume group "vfoxvg" successfully created
[root@srcxtts ~]#
创建一个名为vfoxvg的vg,名称自已定。指定pe的大小是16M,并且由哪些pv组成,pv的名称是直接由设备文件名得来,创建pv的时候并未指定。vgscan
[root@srcxtts ~]# vgscanReading all physical volumes. This may take a while...Found volume group "vfoxvg" using metadata type lvm2Found volume group "vg_srcxtts" using metadata type lvm2
[root@srcxtts ~]# 再重新查看下pv发现sdb[5-8]已经指定了vg名称了。
[root@srcxtts ~]# pvscanPV /dev/sdb5 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sdb6 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sdb7 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sdb8 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]Total: 5 [28.51 GiB] / in use: 5 [28.51 GiB] / in no VG: 0 [0 ]
[root@srcxtts ~]#
vgdisplay
[root@srcxtts ~]# vgdisplay--- Volume group ---VG Name vfoxvgSystem ID Format lvm2Metadata Areas 4Metadata Sequence No 1VG Access read/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 4Act PV 4VG Size 4.00 GiBPE Size 16.00 MiBTotal PE 256Alloc PE / Size 0 / 0 Free PE / Size 256 / 4.00 GiBVG UUID HT3gmf-nsOg-xTX5-7plY-OubW-bKZx-Duc5Y8--- Volume group ---VG Name vg_srcxttsSystem ID Format lvm2Metadata Areas 1Metadata Sequence No 3VG Access read/writeVG Status resizableMAX LV 0Cur LV 2Open LV 2Max PV 0Cur PV 1Act PV 1VG Size 24.51 GiBPE Size 4.00 MiBTotal PE 6274Alloc PE / Size 6274 / 24.51 GiBFree PE / Size 0 / 0 VG UUID fgnH6f-ZAJJ-9vde-RUTK-w131-pSSO-wmKu8q[root@srcxtts ~]# pvdisplay
[root@srcxtts ~]# pvdisplay--- Physical volume ---PV Name /dev/sdb5VG Name vfoxvgPV Size 1.01 GiB / not usable 11.38 MiBAllocatable yes PE Size 16.00 MiBTotal PE 64Free PE 64Allocated PE 0PV UUID KfVUlD-M3Ka-gOwn-gSbT-yx5e-fE1j-7YjTSR--- Physical volume ---PV Name /dev/sdb6VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes PE Size 16.00 MiBTotal PE 64Free PE 64Allocated PE 0PV UUID 2sgPk8-OFn5-QhiQ-Oc5I-o0aw-mXaK-9f9Zds--- Physical volume ---PV Name /dev/sdb7VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes PE Size 16.00 MiBTotal PE 64Free PE 64Allocated PE 0PV UUID nbgBAM-nRLn-ws1W-5oA6-VfN3-HJYF-oEtPPe--- Physical volume ---PV Name /dev/sdb8VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes PE Size 16.00 MiBTotal PE 64Free PE 64Allocated PE 0PV UUID 6w3VpI-MxqW-yEsC-36c3-qnBH-Qail-7KXt1b--- Physical volume ---PV Name /dev/sda2VG Name vg_srcxttsPV Size 24.51 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 6274Free PE 0Allocated PE 6274PV UUID kSsqJo-EKgD-74zD-xuzJ-HVfO-TKdt-mduJO2[root@srcxtts ~]#
扩展该vg的量
把剩余的磁盘在分一个/dev/sdb9出来。
对sdb9创建pv
pvcreate /dev/sdb9
[root@srcxtts ~]# pvcreate /dev/sdb9Physical volume "/dev/sdb9" successfully created
[root@srcxtts ~]#
[root@srcxtts ~]# pvscanPV /dev/sdb5 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sdb6 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sdb7 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sdb8 VG vfoxvg lvm2 [1.00 GiB / 1.00 GiB free]PV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]PV /dev/sdb9 lvm2 [972.65 MiB]Total: 6 [29.46 GiB] / in use: 5 [28.51 GiB] / in no VG: 1 [972.65 MiB]
[root@srcxtts ~]#把新pv加到vg里面去。
vgextend vfoxvg /dev/sdb9
[root@srcxtts ~]# vgextend vfoxvg /dev/sdb9Volume group "vfoxvg" successfully extended
[root@srcxtts ~]#
查询vgdisplay
[root@srcxtts ~]# vgdisplay--- Volume group ---VG Name vfoxvgSystem ID Format lvm2Metadata Areas 5Metadata Sequence No 2VG Access read/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 5Act PV 5VG Size 4.94 GiBPE Size 16.00 MiBTotal PE 316Alloc PE / Size 0 / 0 Free PE / Size 316 / 4.94 GiBVG UUID HT3gmf-nsOg-xTX5-7plY-OubW-bKZx-Duc5Y8删除vg
[root@srcxtts ~]# vgremove vfoxvgVolume group "vfoxvg" successfully removed删除一个pv
[root@srcxtts ~]# vgreduce vfoxvg /dev/sdb9Removed "/dev/sdb9" from volume group "vfoxvg"
[root@srcxtts ~]#
创建LV阶段
命令说明:
lvcreate:新建lv;
lvscan:查询系统上面的lv;
lvdisplay:显示系统上面的lv状态;
lvextend:在lv里面增加容量;
lvreduce:在lv里面减少容量;
lvremove:删除一个lv;
lvresize:对lv进行容量大小的调整;
lvcreate [-L N[mgt]] [-n LV名称] VG名称
参数:
-L:后面接容量,单位可以是m/g/t等,要注意的是,最小单位是pe,因为这个数量必须是pe的整数倍,若不相符,系统会自动计算最接近的容量。
-l:后面接PE的个数,而不是数量。
-n:后面接的就是lv的名称。
更多说明查阅man lvcreate
将整个vg都分配给一个lv
创建lv
[root@srcxtts ~]# lvcreate -l 256 -n vfoxlv vfoxvgLogical volume "vfoxlv" created
[root@srcxtts ~]#
[root@srcxtts ~]# lvdisplay--- Logical volume ---LV Path /dev/vfoxvg/vfoxlv ==>这个才是lv的全名LV Name vfoxlvVG Name vfoxvgLV UUID KRkLEz-cRJo-k3lL-qJHo-6Ie5-XNQu-LA8oQ9LV Write Access read/writeLV Creation host, time srcxtts, 2018-05-08 15:55:51 +0800LV Status available# open 0LV Size 4.00 GiB ==>LV容量大小Current LE 256Segments 4Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:2
下面就可以对lv进行文件系统格式化了。特别注意的是,vg的名称是vfoxvg可以拿来直接用,但是lv的名称必须使用全名/dev/vfoxvg/vfoxlv才行。
下面就可以对lv进行文件系统模式的格式化了。
[root@srcxtts ~]# mkfs -t ext3 /dev/vfoxvg/vfoxlv
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1073741824
32 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正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@srcxtts ~]#
创建挂载点并挂载
[root@srcxtts ~]# mkdir /mnt/lvm
[root@srcxtts ~]# mount /dev/vfoxvg/vfoxlv /mnt/lvm
[root@srcxtts ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vg_srcxtts-lv_root21G 11G 8.4G 57% /
tmpfs 2.0G 304K 2.0G 1% /dev/shm
/dev/sda1 477M 60M 392M 14% /boot
/dev/mapper/vfoxvg-vfoxlv4.0G 137M 3.7G 4% /mnt/lvm
[root@srcxtts ~]#
7、放大lv
放大lv容量
本例把/dev/sdb9那个分区扩展到lv中去,做如下的步骤。
1、fdisk设置新的具有8e system ID的分区;(本例前面已做)
2、利用pvcreate构建pv。(本例前面已做)
3、利用vgextend讲pv加入到我们的vfoxvg;
4、利用lvresize将新加入的pv内的pe加入到vfoxlv中;
5、通过resize2fs将文件系统的容量确实增加;
剩下的我们从第三步开始做:
把pv加入的vg中
[root@srcxtts ~]# vgextend vfoxvg /dev/sdb9Volume group "vfoxvg" successfully extended
[root@srcxtts ~]# vgdisplay vfoxvg--- Volume group ---VG Name vfoxvgSystem ID Format lvm2Metadata Areas 5Metadata Sequence No 5VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 5Act PV 5VG Size 4.94 GiBPE Size 16.00 MiBTotal PE 316Alloc PE / Size 256 / 4.00 GiBFree PE / Size 60 / 960.00 MiBVG UUID zFGofA-DOMn-z1I3-0aHu-2S6I-EGGy-Y5wELr[root@srcxtts ~]#
发现已经分配了256个pe,还剩60个pe。放大lv吧(对名为/dev/vfoxvg/vfoxlv的lv增加60个pe)
lvresize -l +60 /dev/vfoxvg/vfoxlv
[root@srcxtts ~]# lvresize -l +60 /dev/vfoxvg/vfoxlvExtending logical volume vfoxlv to 4.94 GiBLogical volume vfoxlv successfully resized
[root@srcxtts ~]#lresize语法较简单,基本可以用-l(pe个数)或-L(实际存储大小)来实现,增加使用+ ,减少使用-
[root@srcxtts ~]# lvdisplay /dev/vfoxvg/vfoxlv--- Logical volume ---LV Path /dev/vfoxvg/vfoxlvLV Name vfoxlvVG Name vfoxvgLV UUID KRkLEz-cRJo-k3lL-qJHo-6Ie5-XNQu-LA8oQ9LV Write Access read/writeLV Creation host, time srcxtts, 2018-05-08 15:55:51 +0800LV Status available# open 1LV Size 4.94 GiBCurrent LE 316Segments 5Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:2[root@srcxtts ~]# df /mnt/lvm -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vfoxvg-vfoxlv4.0G 137M 3.7G 4% /mnt/lvm
[root@srcxtts ~]#
发现lv的大小变大了,但是文件系统的大小并未变化。查看原本文件系统中superblock的记录情况
dumpe2fs /dev/vfoxvg/vfoxlv
resize2fs [-f] [device] [size]
参数:
-f :强制进行resize的操作
[device]:设备的文件名
[size]:可以加也可以不加。如果加上size的话,那么就必须要给予一个单位,譬如M,G等。如果没有size的话,那么默认使用整个分区的容量。
完整的将lv的容量扩充到整个文件系统
resize2fs /dev/vfoxvg/vfoxlv
[root@srcxtts ~]# resize2fs /dev/vfoxvg/vfoxlv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vfoxvg/vfoxlv is mounted on /mnt/lvm; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vfoxvg/vfoxlv to 1294336 (4k) blocks.
The filesystem on /dev/vfoxvg/vfoxlv is now 1294336 blocks long.[root@srcxtts ~]# [root@srcxtts ~]# df /mnt/lvm -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vfoxvg-vfoxlv4.9G 137M 4.5G 3% /mnt/lvm
[root@srcxtts ~]#
发现文件系统已经变大了。
8、减少lv。
减少lv,我们以减少sdb6为例
pvdisplay--- Physical volume ---PV Name /dev/sdb6VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes (but full)PE Size 16.00 MiBTotal PE 64Free PE 0Allocated PE 64PV UUID 2sgPk8-OFn5-QhiQ-Oc5I-o0aw-mXaK-9f9Zds
[root@srcxtts ~]# pvscanPV /dev/sdb5 VG vfoxvg lvm2 [1.00 GiB / 0 free]PV /dev/sdb6 VG vfoxvg lvm2 [1.00 GiB / 0 free]PV /dev/sdb7 VG vfoxvg lvm2 [1.00 GiB / 0 free]PV /dev/sdb8 VG vfoxvg lvm2 [1.00 GiB / 0 free]PV /dev/sdb9 VG vfoxvg lvm2 [960.00 MiB / 0 free]PV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]Total: 6 [29.45 GiB] / in use: 6 [29.45 GiB] / in no VG: 0 [0 ]
[root@srcxtts ~]#
剩余空间应该是1024M*3+960M=4032M
直接降低文件系统容量
resize2fs /dev/vfoxvg/vfoxlv 4032M
[root@srcxtts ~]# resize2fs /dev/vfoxvg/vfoxlv 4032M
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vfoxvg/vfoxlv is mounted on /mnt/lvm; on-line resizing required
On-line shrinking from 1294336 to 1278464 not supported.
[root@srcxtts ~]#
看来在线缩小文件系统不支持,4032M这个地方制定容量不能用小数点
[root@srcxtts ~]# resize2fs /dev/vfoxvg/vfoxlv 4.875G
resize2fs 1.41.12 (17-May-2010)
resize2fs: 无效的新大小:4.875G[root@srcxtts ~]#
卸载文件系统
[root@srcxtts ~]# umount /mnt/lvm
[root@srcxtts ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vg_srcxtts-lv_root21G 11G 8.4G 57% /
tmpfs 2.0G 304K 2.0G 1% /dev/shm
/dev/sda1 477M 60M 392M 14% /boot
[root@srcxtts ~]#
再次执行缩小lv
[root@srcxtts ~]# resize2fs /dev/vfoxvg/vfoxlv 4032M
resize2fs 1.41.12 (17-May-2010)
请先运行 'e2fsck -f /dev/vfoxvg/vfoxlv'.[root@srcxtts ~]#
发现要求做磁盘检查,按照要求做吧。
e2fsck -f /dev/vfoxvg/vfoxlv[root@srcxtts ~]# e2fsck -f /dev/vfoxvg/vfoxlv
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/vfoxvg/vfoxlv: 11/327680 files (0.0% non-contiguous), 55423/1294336 blocks
[root@srcxtts ~]#
检查完毕,再次做缩小lv
[root@srcxtts ~]# resize2fs /dev/vfoxvg/vfoxlv 4032M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vfoxvg/vfoxlv to 1032192 (4k) blocks.
The filesystem on /dev/vfoxvg/vfoxlv is now 1032192 blocks long.[root@srcxtts ~]#
成功。
重新挂载
mount /dev/vfoxvg/vfoxlv /mnt/lvm
[root@srcxtts ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vg_srcxtts-lv_root21G 11G 8.4G 57% /
tmpfs 2.0G 304K 2.0G 1% /dev/shm
/dev/sda1 477M 60M 392M 14% /boot
/dev/mapper/vfoxvg-vfoxlv3.9G 137M 3.6G 4% /mnt/lvm
[root@srcxtts ~]#
文件系统大小已经下来了。
后面就是将lv的容量降低:
lvresize -l -64 /dev/vfoxvg/vfoxlv
[root@srcxtts ~]# lvresize -l -64 /dev/vfoxvg/vfoxlvWARNING: Reducing active and open logical volume to 3.94 GiBTHIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vfoxlv? [y/n]: yReducing logical volume vfoxlv to 3.94 GiBLogical volume vfoxlv successfully resized
[root@srcxtts ~]# 下面就是将pv移除vg了。
先确认pe是否都已经删除了。
[root@srcxtts ~]# pvdisplay--- Physical volume ---PV Name /dev/sdb5VG Name vfoxvgPV Size 1.01 GiB / not usable 11.38 MiBAllocatable yes (but full)PE Size 16.00 MiBTotal PE 64Free PE 0Allocated PE 64PV UUID KfVUlD-M3Ka-gOwn-gSbT-yx5e-fE1j-7YjTSR--- Physical volume ---PV Name /dev/sdb6VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes (but full)PE Size 16.00 MiBTotal PE 64Free PE 0Allocated PE 64PV UUID 2sgPk8-OFn5-QhiQ-Oc5I-o0aw-mXaK-9f9Zds--- Physical volume ---PV Name /dev/sdb7VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes (but full)PE Size 16.00 MiBTotal PE 64Free PE 0Allocated PE 64PV UUID nbgBAM-nRLn-ws1W-5oA6-VfN3-HJYF-oEtPPe--- Physical volume ---PV Name /dev/sdb8VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes PE Size 16.00 MiBTotal PE 64Free PE 4Allocated PE 60PV UUID 6w3VpI-MxqW-yEsC-36c3-qnBH-Qail-7KXt1b--- Physical volume ---PV Name /dev/sdb9VG Name vfoxvgPV Size 972.65 MiB / not usable 12.65 MiBAllocatable yes PE Size 16.00 MiBTotal PE 60Free PE 60Allocated PE 0PV UUID ReNYHF-gE61-z5iq-KBhE-c6U4-okbt-gJPs6X发现sdb6的free pe是0,而空闲的sdb9的大小不足以放下整个sdb6.而sdb8刚好使用的pe是60个,这个大小跟sdb9的空闲pe大小相同,可以把sdb8remove到sdb9上面来。所以我们就改变目标把sdb8移除来释放空间。
把sdb8的使用空间全部移动到sdb9
pvmove /dev/sdb8 /dev/sdb9
pvdisplay--- Physical volume ---PV Name /dev/sdb8VG Name vfoxvgPV Size 1.01 GiB / not usable 11.41 MiBAllocatable yes PE Size 16.00 MiBTotal PE 64Free PE 64Allocated PE 0PV UUID 6w3VpI-MxqW-yEsC-36c3-qnBH-Qail-7KXt1b--- Physical volume ---PV Name /dev/sdb9VG Name vfoxvgPV Size 972.65 MiB / not usable 12.65 MiBAllocatable yes (but full)PE Size 16.00 MiBTotal PE 60Free PE 0Allocated PE 60PV UUID ReNYHF-gE61-z5iq-KBhE-c6U4-okbt-gJPs6X
ok,发现移动完成后,sdb8的空间全部释放出来了。
把pv从vg里面移除:
vgreduce vfoxvg /dev/sdb8
[root@srcxtts ~]# vgreduce vfoxvg /dev/sdb8Removed "/dev/sdb8" from volume group "vfoxvg"
[root@srcxtts ~]#
查看pvscan,发现空出来一个pv,就是我们刚才释放的sdb8。
[root@srcxtts ~]# pvscanPV /dev/sdb5 VG vfoxvg lvm2 [1.00 GiB / 0 free]PV /dev/sdb6 VG vfoxvg lvm2 [1.00 GiB / 0 free]PV /dev/sdb7 VG vfoxvg lvm2 [1.00 GiB / 0 free]PV /dev/sdb9 VG vfoxvg lvm2 [960.00 MiB / 0 free]PV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]PV /dev/sdb8 lvm2 [1.01 GiB]Total: 6 [29.46 GiB] / in use: 5 [28.45 GiB] / in no VG: 1 [1.01 GiB]
[root@srcxtts ~]#
然后把sdb8对应的pv删掉,释放sdb8。
[root@srcxtts ~]# pvremove /dev/sdb8Labels on physical volume "/dev/sdb8" successfully wiped
[root@srcxtts ~]#
这样文件系统和实际的lv与vg都变小了,而且那个/dev/sdb8可以拿出来,进行其他的用途。
9、LVM的关闭
按照如下步骤:
a、先卸载系统上面的lvm文件系统(包括快照与所有lv)
b、使用lvremove删除lv。
c、使用vgchange -an VGname让VGname这个VG不具有active的标志;
d、使用vgremove删除VG;
e、使用pvremove删除PV;
f、最后,使用fdisk将system ID修改回来;
[root@srcxtts ~]# vgdisplay--- Volume group ---VG Name vfoxvgSystem ID Format lvm2Metadata Areas 4Metadata Sequence No 15VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 4Act PV 4VG Size 3.94 GiBPE Size 16.00 MiBTotal PE 252Alloc PE / Size 252 / 3.94 GiBFree PE / Size 0 / 0 VG UUID zFGofA-DOMn-z1I3-0aHu-2S6I-EGGy-Y5wELr--- Volume group ---VG Name vg_srcxttsSystem ID Format lvm2Metadata Areas 2Metadata Sequence No 5VG Access read/writeVG Status resizableMAX LV 0Cur LV 2Open LV 2Max PV 0Cur PV 2Act PV 2VG Size 25.52 GiBPE Size 4.00 MiBTotal PE 6532Alloc PE / Size 6532 / 25.52 GiBFree PE / Size 0 / 0 VG UUID fgnH6f-ZAJJ-9vde-RUTK-w131-pSSO-wmKu8q[root@srcxtts ~]#
我们以关闭名为vfoxvg的vg来进行说明:
[root@srcxtts ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vg_srcxtts-lv_root22G 11G 9.4G 54% /
tmpfs 2.0G 308K 2.0G 1% /dev/shm
/dev/sda1 477M 60M 392M 14% /boot
/dev/mapper/vfoxvg-vfoxlv3.9G 137M 3.6G 4% /mnt/lvm
[root@srcxtts ~]#
执行命令umount /mnt/lvm
[root@srcxtts ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vg_srcxtts-lv_root22G 11G 9.4G 54% /
tmpfs 2.0G 308K 2.0G 1% /dev/shm
/dev/sda1 477M 60M 392M 14% /boot
[root@srcxtts ~]# 删除lv
lvremove /dev/vfoxvg/vfoxlv
[root@srcxtts ~]# lvremove /dev/vfoxvg/vfoxlv
Do you really want to remove active logical volume vfoxlv? [y/n]: yLogical volume "vfoxlv" successfully removed
[root@srcxtts ~]# 使名为vfoxvg的vg不在活跃
vgchange -a n vfoxvg
[root@srcxtts ~]# vgchange -a n vfoxvg0 logical volume(s) in volume group "vfoxvg" now active
[root@srcxtts ~]# 然后就可以移除vg了
vgremove vfoxvg
[root@srcxtts ~]# vgremove vfoxvgVolume group "vfoxvg" successfully removed
[root@srcxtts ~]# 然后就可以移除pv了。
先查询下要移除的pv
[root@srcxtts ~]# pvscanPV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]PV /dev/sdb8 VG vg_srcxtts lvm2 [1.01 GiB / 0 free]PV /dev/sdb5 lvm2 [1.01 GiB]PV /dev/sdb6 lvm2 [1.01 GiB]PV /dev/sdb7 lvm2 [1.01 GiB]PV /dev/sdb9 lvm2 [972.65 MiB]Total: 6 [29.50 GiB] / in use: 2 [25.52 GiB] / in no VG: 4 [3.98 GiB]
[root@srcxtts ~]#
移除pv
pvremove /dev/sdb{5,6,7,9}
[root@srcxtts ~]# pvremove /dev/sdb{5,6,7,9}Labels on physical volume "/dev/sdb5" successfully wipedLabels on physical volume "/dev/sdb6" successfully wipedLabels on physical volume "/dev/sdb7" successfully wipedLabels on physical volume "/dev/sdb9" successfully wiped
[root@srcxtts ~]#
再次查看pv
[root@srcxtts ~]# pvscanPV /dev/sda2 VG vg_srcxtts lvm2 [24.51 GiB / 0 free]PV /dev/sdb8 VG vg_srcxtts lvm2 [1.01 GiB / 0 free]Total: 2 [25.52 GiB] / in use: 2 [25.52 GiB] / in no VG: 0 [0 ]
[root@srcxtts ~]#移除成功。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
