本文共 10622 字,大约阅读时间需要 35 分钟。
逻辑卷的结构图
物理硬盘:存储文件设备(/dev/sdb)
PV(物理卷):硬盘的分区或者卷
VG(卷组):由一个或者多个物理卷组成的LVM卷。
LV(逻辑卷):VG上的分区,可以在LV上创建文件系统。
PE:PE上的最小存储单元,默认为4MB。
1.下面我们以实际的创建过程做演示:
创建两个主分区,一个为4G,一个为6G
[root@192 ~]# fdisk /dev/sdb Command (m for help): n Command action e extended p primary partition (1-4) p#指定主分区Partition number (1-4): 1#指定分区号码
First cylinder (1-7832, default 1): Using default value 1#指定分区起始柱面 Last cylinder, +cylinders or +size{K,M,G} (1-7832, default 7832): +4G#指定分区大小Command (m for help): n
Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (524-7832, default 524): Using default value 524 Last cylinder, +cylinders or +size{K,M,G} (524-7832, default 7832): +6GCommand (m for help): p
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 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: 0xb089f8a1Device Boot Start End Blocks Id System#查看已创建的分区
/dev/sdb1 1 523 4200966 83 Linux /dev/sdb2 524 1307 6297480 83 Linux
Command (m for help): L#查看逻辑卷需指定的设备类型
0 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 FAT1Command (m for help): t
Partition number (1-4): 1 Hex code (type L to list codes): 8e#调整逻辑卷的设备类型 Changed system type of partition 1 to 8e (Linux LVM)Command (m for help): t
Partition number (1-4): 2 Hex code (type L to list codes): 8e#调整逻辑卷的设备类型 Changed system type of partition 2 to 8e (Linux LVM)Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.2.查看内核识别的分区
[root@192 ~]# cat /proc/partitions
major minor #blocks name8 0 20971520 sda
8 1 512000 sda1 8 2 15360000 sda2 8 3 1024000 sda3 8 4 1 sda4 8 5 4073472 sda5 8 16 62914560 sdb 8 17 4200966 sdb1#刚分的两个区 8 18 6297480 sdb2#刚分的两个区
3.[root@192 ~]# pvcreate /dev/sdb{1,2} #创建pv
Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created
4.kpartx -af /dev/sdb
5.[root@192 ~]# pvs#显示创建的pv
PV VG Fmt Attr PSize PFree /dev/mapper/sdb1 lvm2 --- 4.01g 4.01g /dev/mapper/sdb2 lvm2 --- 6.01g 6.01g
6.[root@192 ~]# pvdisplay#查看逻辑卷详细信息
"/dev/mapper/sdb1" is a new physical volume of "4.01 GiB" --- NEW Physical volume --- PV Name /dev/mapper/sdb1 VG Name PV Size 4.01 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 4d2BDI-gJzg-1ZKa-0zcV-7eSg-Bytv-D3LT7y "/dev/mapper/sdb2" is a new physical volume of "6.01 GiB" --- NEW Physical volume --- PV Name /dev/mapper/sdb2 VG Name PV Size 6.01 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID oDcOG6-I7sd-IVHk-gNqi-8CdF-QurW-SPd8x1
7.vgcreate myvg /dev/sdb{1,2}#创建vg并把组名命名为myvg
Volume group "myvg" successfully created
8.[root@192 ~]# vgs#查看已创建的卷组
VG #PV #LV #SN Attr VSize VFree
myvg 2 0 0 wz--n- 10.01g 10.01g9.[root@192 ~]# fdisk /dev/sdc#新加一块磁盘sdc
Command (m for help): n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1305, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): Using default value 1305Command (m for help): t
Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM)Command (m for help): p
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 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: 0x66ea7a6aDevice Boot Start End Blocks Id System
/dev/sdc1 1 1305 10482381 8e Linux LVMCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.10.[root@192 ~]# cat /proc/partitions#查看内核是否识别
major minor #blocks name
8 0 20971520 sda
8 1 512000 sda1 8 2 15360000 sda2 8 3 1024000 sda3 8 4 1 sda4 8 5 4073472 sda5 8 16 62914560 sdb 8 17 4200966 sdb1 8 18 6297480 sdb2 8 19 4200997 sdb3 8 32 10485760 sdc 8 33 10482381 sdc111.[root@192 ~]# pvcreate /dev/sdc1#先创建物理卷pv
Physical volume "/dev/sdc1" successfully created
[root@192 ~]# pvs#查看已有的pv
PV VG Fmt Attr PSize PFree
/dev/sdb1 myvg lvm2 a-- 4.00g 4.00g /dev/sdb2 myvg lvm2 a-- 6.00g 6.00g /dev/sdc1 myvg lvm2 a-- 9.99g 9.99g [root@192 ~]# pvdisplay#查看已有的pv的详细信息--- Physical volume ---
PV Name /dev/sdb1 VG Name myvg PV Size 4.01 GiB / not usable 6.51 MiB Allocatable yes PE Size 8.00 MiB#逻辑卷最基本的块 Total PE 512 Free PE 512 Allocated PE 0 PV UUID 4d2BDI-gJzg-1ZKa-0zcV-7eSg-Bytv-D3LT7y --- Physical volume --- PV Name /dev/sdb2 VG Name myvg PV Size 6.01 GiB / not usable 5.88 MiB Allocatable yes PE Size 8.00 MiB Total PE 768 Free PE 768 Allocated PE 0 PV UUID oDcOG6-I7sd-IVHk-gNqi-8CdF-QurW-SPd8x1 --- Physical volume ---#下面显示的是新加的pvPV Name /dev/sdc1 VG Name myvg PV Size 10.00 GiB / not usable 4.70 MiB Allocatable yes PE Size 8.00 MiB Total PE 1279 Free PE 1279 Allocated PE 0 PV UUID 6iS5Sn-lvUu-F3pC-3WGZ-ao6l-kWuy-Tfwt0X
12.[root@192 ~]# vgextend myvg /dev/sdc1#把新加的pv(/dev/sdc1)加入卷组myvg
Volume group "myvg" successfully extended
[root@192 ~]# vgs#查看vg信息VG #PV #LV #SN Attr VSize VFree
myvg 3 0 0 wz--n- 19.99g 19.99g [root@192 ~]# vgdisplay#查看vg详细信息--- Volume group ---
VG Name myvg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 19.99 GiB PE Size 8.00 MiB Total PE 2559 Alloc PE / Size 0 / 0 Free PE / Size 2559 / 19.99 GiB VG UUID 3cZU0o-LILk-BdGf-e0gm-JjDE-TI33-1VWFlh13.[root@192 ~]# lvcreate -L 3G -n lv1 myvg#从卷组myvg中创建一个逻辑卷命名为lv1,大小为3G Logical volume "lv1" created
[root@192 ~]# lvs#查看已创建的逻辑卷LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 myvg -wi-a----- 3.00g [root@192 ~]# lvdisplay#查看已创建的逻辑卷的详细信息--- Logical volume ---
LV Path /dev/myvg/lv1 LV Name lv1 VG Name myvg LV UUID hEC4C3-twue-FQ7K-7y1t-oeG2-N0xx-2eFXLS LV Write Access read/write LV Creation host, time 192.168.10.123, 2016-05-06 14:30:35 +0800 LV Status available # open 0 LV Size 3.00 GiB Current LE 384 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:014.[root@192 ~]# mke2fs -t ext4 -b 2048 /dev/myvg/lv1#对新创建的逻辑卷lv1进行格式化,把该逻辑卷格式化为ext4的类型,指定块大小为2048
mke2fs 1.41.12 (17-May-2010)
文件系统标签= 操作系统:Linux 块大小=2048 (log=1) 分块大小=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 196608 inodes, 1572864 blocks 78643 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=538968064 96 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104正在写入inode表: 完成
Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.15.[root@192 /]# mount /dev/myvg/lv1 /u01#挂载逻辑卷/dev/myvg/lv1 到 /u01下面
[root@192 /]# df -h#查看已挂载的分区,看到逻辑卷已挂载到/u01下面
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 4.0G 9.7G 29% / tmpfs 499M 72K 499M 1% /dev/shm /dev/sda1 477M 28M 424M 7% /boot /dev/sda5 3.8G 7.8M 3.6G 1% /opt/dev/mapper/myvg-lv1 2.9G 11M 2.8G 1% /u01
16.假如逻辑卷空间不够用,那我们需要扩展逻辑卷
先查看卷组的剩余可用空间
[root@192 /]# vgs VG #PV #LV #SN Attr VSize VFree myvg 3 1 0 wz--n- 19.99g 14.99g
17.[root@192 /]# lvextend -L 5G /dev/myvg/lv1 #直接把逻辑卷扩展到5G
Size of logical volume myvg/lv1 changed from 3.00 GiB (384 extents) to 5.00 GiB (640 extents). Logical volume lv1 successfully resized
18.[root@192 /]# lvs#查看扩展后的逻辑卷的大小
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv1 myvg -wi-ao---- 5.00g
19.[root@192 /]# df -h#查看分区信息,发现我们只扩展了逻辑卷的物理边界,逻辑卷的逻辑边界并没有动,还是为原来创建的3G
Filesystem Size Used Avail Use% Mounted on /dev/sda2 15G 4.0G 9.7G 29% / tmpfs 499M 72K 499M 1% /dev/shm /dev/sda1 477M 28M 424M 7% /boot /dev/sda5 3.8G 7.8M 3.6G 1% /opt/dev/mapper/myvg-lv1 2.9G 11M 2.8G 1% /u01
20.[root@192 /]# resize2fs /dev/myvg/lv1#使用resize2fs扩充逻辑卷的逻辑边界,使用在线扩充resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/lv1 is mounted on /u01; on-line resizing required old desc_blocks = 2, new_desc_blocks = 3 Performing an on-line resize of /dev/myvg/lv1 to 2621440 (2k) blocks. The filesystem on /dev/myvg/lv1 is now 2621440 blocks long.21.[root@192 /]# df -h#再查看分区信息,可以看到逻辑卷/dev/myvg/lv1已扩充到5G
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 15G 4.0G 9.7G 29% / tmpfs 499M 72K 499M 1% /dev/shm /dev/sda1 477M 28M 424M 7% /boot /dev/sda5 3.8G 7.8M 3.6G 1% /opt/dev/mapper/myvg-lv1 4.9G 11M 4.6G 1% /u01
逻辑卷扩展步骤:
1.先确定扩展的大小:并确保所属的卷组有足够的剩余空间 2.扩展物理边界: Lvextend -L [+]Size /path/to/lv_device 3.扩展逻辑边界: resize2fs /path/to/lv_device缩减逻辑卷步骤:
1.卸载卷,并执行强制检测
e2fsck -f /path/to/lv_device 2.缩减逻辑边界: resize2fs /path/to/lv_device SIZE 3.缩减物理边界: lvreduce -L [-]Size /path/to/lv_device
LVM一些常用的命令
物理卷管理命令:pv
pvcreate,pvremove,pvscan,pvs,pvdisplay,pvmove 卷组管理命令:vg vgcreate,vgs,vgdisplay,vgextend,vgremove,vgrename vgcreate -s: PE大小,默认4M逻辑卷的管理命令:lv
lvcreate,lvdisplay,lvs,lvextend,lvreduce,lvremovelvcreate
- L : 空间大小 - n : lv 名称