LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分LVM区管理的灵活性。LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。
LVM简单解释:多个物理分区(PV)组合成一个大硬盘(VG),然后从这个硬盘(VG)中划分分区(LV),再在划分的分区创建文件系统,挂载此分区。这样的分区可以扩大或缩小。
LVM使用:
1、安装LVM
2、fdisk创建lvm分区
3、pvcreate把lvm分区创建PV
4、vgcreate把pv创建vg
5、lvcreate从vg中划分lv
6、挂载lv
1、安装lvm
[root@kvm /]# rpm -q lvm2
lvm2-2.02.100-8.el6.x86_64
2、fdisk创建lvm分区
[root@kvm /]# fdisk -l | grep dev
Disk /dev/sda: 128.8 GB, 128849018880 bytes
/dev/sda1 1 256 2048000 82 Linux swap / Solaris
/dev/sda2 * 256 15666 123780096 83 Linux
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
把sdb硬盘分三个逻辑分区,大小分别 2GB 3GB 5GB
[root@kvm /]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n 新建分区
Command action
e extended
p primary partition (1-4)
e 扩展分区
Partition number (1-4): 1 sdb1
First cylinder (1-10443, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-10443, default 10443):
Using default value 10443 把整个硬盘空间划分成扩展分区
Command (m for help): p
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x92966975
Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 5 Extended
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l 新建逻辑分区
First cylinder (1-10443, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-10443, default 10443): +2GB 从第一个扇区开始,到空间2GB大小 所在的扇区中结束。
Command (m for help): p
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x92966975
Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 5 Extended
/dev/sdb5 1 244 1959867 83 Linux
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (245-10443, default 245):
Using default value 245
Last cylinder, +cylinders or +size{K,M,G} (245-10443, default 10443): +3GB
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (611-10443, default 611):
Using default value 611
Last cylinder, +cylinders or +size{K,M,G} (611-10443, default 10443): +5GB
Command (m for help): p
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x92966975
Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 5 Extended
/dev/sdb5 1 244 1959867 83 Linux
/dev/sdb6 245 610 2939863+ 83 Linux
/dev/sdb7 611 1219 4891761 83 Linux
Command (m for help): w 保存刚才所做的修改
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@kvm /]# partprobe 不重启系统使分区生效
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy). As a result, it may not reflect all of your changes until after reboot.
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
使用t命令把分区更改为lvm分区,lvm分区的标志是8e
[root@kvm /]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x92966975
Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 5 Extended
/dev/sdb5 1 244 1959867 83 Linux
/dev/sdb6 245 610 2939863+ 83 Linux
/dev/sdb7 611 1219 4891761 83 Linux
Command (m for help): t 修改分区格式
Partition number (1-7): 5
Hex code (type L to list codes): 8e 是lvm的标志
Changed system type of partition 5 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-7): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-7): 7
Hex code (type L to list codes): 8e
Changed system type of partition 7 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x92966975
Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 5 Extended
/dev/sdb5 1 244 1959867 8e Linux LVM
/dev/sdb6 245 610 2939863+ 8e Linux LVM
/dev/sdb7 611 1219 4891761 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@kvm /]# partprobe
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy). As a result, it may not reflect all of your changes until after reboot.
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
[root@kvm /]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 85.9 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 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: 0x92966975
Device Boot Start End Blocks Id System
/dev/sdb1 1 10443 83883366 5 Extended
/dev/sdb5 1 244 1959867 8e Linux LVM
/dev/sdb6 245 610 2939863+ 8e Linux LVM
/dev/sdb7 611 1219 4891761 8e Linux LVM
Command (m for help): q
[root@kvm /]#
3、pvcreate把lvm分区创建PV
[root@kvm /]# pvcreate --help
pvcreate: Initialize physical volume(s) for use by LVM
pvcreate
[--norestorefile]
[--restorefile file]
[-d|--debug]
[-f[f]|--force [--force]]
[-h|-?|--help]
[--labelsector sector]
[-M|--metadatatype 1|2]
[--pvmetadatacopies #copies]
[--bootloaderareasize BootLoaderAreaSize[bBsSkKmMgGtTpPeE]]
[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]
[--dataalignment Alignment[bBsSkKmMgGtTpPeE]]
[--dataalignmentoffset AlignmentOffset[bBsSkKmMgGtTpPeE]]
[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]
[-t|--test]
[-u|--uuid uuid]
[-v|--verbose]
[-y|--yes]
[-Z|--zero {y|n}]
[--version]
PhysicalVolume [PhysicalVolume...]
pvcreate指令:创建物理卷
【语 法】pvcreate [选项] [参数]
【功能介绍】pvcreate指令用于将物理硬盘分区初始化为物理卷,以便被LVM使用。
主要参数
-f 强制创建物理卷,不需要用户确认
-u 指定设备的UUID
-y 所有的问题都回答“yes”
-Z 是否利用前4个扇区
初始化硬盘分区为物理卷
[root@kvm /]# pvcreate /dev/sdb5 /dev/sdb6 /dev/sdb7
[root@kvm /]# pvcreate /dev/sdb5 /dev/sdb6 /dev/sdb7
Physical volume "/dev/sdb5" successfully created
Physical volume "/dev/sdb6" successfully created
Physical volume "/dev/sdb7" successfully created
[root@kvm /]# pvscan
PV /dev/sdb5 lvm2 [1.87 GiB]
PV /dev/sdb6 lvm2 [2.80 GiB]
PV /dev/sdb7 lvm2 [4.67 GiB]
Total: 3 [9.34 GiB] / in use: 0 [0 ] / in no VG: 3 [9.34 GiB]
[root@kvm /]# pvdisplay
"/dev/sdb5" is a new physical volume of "1.87 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb5
VG Name
PV Size 1.87 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID bCxnAU-piua-R2DC-fgEK-Ub2V-5E0x-jiTcTT
"/dev/sdb6" is a new physical volume of "2.80 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb6
VG Name
PV Size 2.80 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID VKXe9c-EpMR-tWXD-fOhK-vyKD-QiEC-QcoqZl
"/dev/sdb7" is a new physical volume of "4.67 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb7
VG Name
PV Size 4.67 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID A0hnCV-0Ksk-meLO-lUev-xzDf-grTU-TpBdyX
[root@kvm /]#
4、vgcreate把pv创建vg
[root@kvm /]# vgcreate --help
vgcreate: Create a volume group
vgcreate
[-A|--autobackup {y|n}]
[--addtag Tag]
[--alloc AllocationPolicy]
[-c|--clustered {y|n}]
[-d|--debug]
[-h|--help]
[-l|--maxlogicalvolumes MaxLogicalVolumes]
[-M|--metadatatype 1|2]
[--[vg]metadatacopies #copies]
[-p|--maxphysicalvolumes MaxPhysicalVolumes]
[-s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]]
[-t|--test]
[-v|--verbose]
[--version]
[-y|--yes]
[ PHYSICAL DEVICE OPTIONS ]
VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgcreate指令:创建卷组
【语 法】vgcreate [选项] [参数]
【功能介绍】vgcreate指令用于创建LVM卷组。
主要参数
-l 卷组上允许创建的最大逻辑卷数
-p 卷组中允许添加的最大物理卷数
-s 卷组上的物理卷的PE大小
[root@kvm /]# vgcreate lvmvmhard /dev/sdb5 /dev/sdb6
创建vg,pe默认大小:4MB
[root@kvm /]# vgcreate lvmvmhard /dev/sdb5 /dev/sdb6
Volume group "lvmvmhard" successfully created
[root@kvm /]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "lvmvmhard" using metadata type lvm2
[root@kvm /]# vgdisplay
--- Volume group ---
VG Name lvmvmhard
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 4.67 GiB
PE Size 4.00 MiB
Total PE 1195
Alloc PE / Size 0 / 0
Free PE / Size 1195 / 4.67 GiB
VG UUID yWRR2f-3SZx-MZnc-gCz1-zwYT-KH3D-FdOiHk
[root@kvm /]# pvscan
PV /dev/sdb5 VG lvmvmhard lvm2 [1.87 GiB / 1.87 GiB free]
PV /dev/sdb6 VG lvmvmhard lvm2 [2.80 GiB / 2.80 GiB free]
PV /dev/sdb7 lvm2 [4.67 GiB]
Total: 3 [9.33 GiB] / in use: 2 [4.67 GiB] / in no VG: 1 [4.67 GiB]
[root@kvm /]#
5、lvcreate从vg中划分lv
[root@kvm /]# lvcreate --help
lvcreate: Create a logical volume
lvcreate
[-A|--autobackup {y|n}]
[-a|--activate [a|e|l]{y|n}]
[--addtag Tag]
[--alloc AllocationPolicy]
[-C|--contiguous {y|n}]
[-d|--debug]
[-h|-?|--help]
[--ignoremonitoring]
[--monitor {y|n}]
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
[-k|--setactivationskip {y|n}]
[-K|--ignoreactivationskip]
{-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |
-L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
[-M|--persistent {y|n}] [--major major] [--minor minor]
[-m|--mirrors Mirrors [--nosync] [{--mirrorlog {disk|core|mirrored}|--corelog}]]
[-n|--name LogicalVolumeName]
[--noudevsync]
[-p|--permission {r|rw}]
[--[raid]minrecoveryrate Rate]
[--[raid]maxrecoveryrate Rate]
[-r|--readahead ReadAheadSectors|auto|none]
[-R|--regionsize MirrorLogRegionSize]
[-T|--thin [-c|--chunksize ChunkSize]
[--discards {ignore|nopassdown|passdown}]
[--poolmetadatasize MetadataSize[bBsSkKmMgG]]]
[--poolmetadataspare {y|n}]
[--thinpool ThinPoolLogicalVolume{Name|Path}]
[-t|--test]
[--type VolumeType]
[-v|--verbose]
[-Z|--zero {y|n}]
[--version]
VolumeGroupName [PhysicalVolumePath...]
lvcreate
{ {-s|--snapshot} OriginalLogicalVolume[Path] |
[-s|--snapshot] VolumeGroupName[Path] -V|--virtualsize VirtualSize}
{-T|--thin} VolumeGroupName[Path][/PoolLogicalVolume]
-V|--virtualsize VirtualSize}
[-c|--chunksize]
[-A|--autobackup {y|n}]
[--addtag Tag]
[--alloc AllocationPolicy]
[-C|--contiguous {y|n}]
[-d|--debug]
[--discards {ignore|nopassdown|passdown}]
[-h|-?|--help]
[--ignoremonitoring]
[--monitor {y|n}]
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
[-k|--setactivationskip {y|n}]
[-K|--ignoreactivationskip]
{-l|--extents LogicalExtentsNumber[%{VG|FREE|ORIGIN}] |
-L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
[--poolmetadatasize MetadataVolumeSize[bBsSkKmMgG]]
[-M|--persistent {y|n}] [--major major] [--minor minor]
[-n|--name LogicalVolumeName]
[--noudevsync]
[-p|--permission {r|rw}]
[-r|--readahead ReadAheadSectors|auto|none]
[-t|--test]
[--thinpool ThinPoolLogicalVolume[Path]]
[-v|--verbose]
[--version]
[PhysicalVolumePath...]
lvcreate指令:创建逻辑卷
【语 法】lvcreate [选项] [参数]
【功能介绍】lvcreate指令用于创建LVM的逻辑卷。
主要参数
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(LE数)
-n 后面根逻辑卷名
lvcreate -L 4GB -n lvmlv1 lvmvmhard
-L 使用大小
-n 逻辑卷名
lvmvmhard vg名
[root@kvm /]# lvcreate -L 4GB -n lvmlv1 lvmvmhard
Logical volume "lvmlv1" created
[root@kvm /]# lvscan
ACTIVE '/dev/lvmvmhard/lvmlv1' [4.00 GiB] inherit
[root@kvm /]# pvscan
PV /dev/sdb5 VG lvmvmhard lvm2 [1.87 GiB / 684.00 MiB free]
PV /dev/sdb6 VG lvmvmhard lvm2 [2.80 GiB / 0 free]
PV /dev/sdb7 lvm2 [4.67 GiB]
Total: 3 [9.33 GiB] / in use: 2 [4.67 GiB] / in no VG: 1 [4.67 GiB]
[root@kvm /]# vgdisplay
--- Volume group ---
VG Name lvmvmhard
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
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 4.67 GiB
PE Size 4.00 MiB
Total PE 1195
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 171 / 684.00 MiB
VG UUID yWRR2f-3SZx-MZnc-gCz1-zwYT-KH3D-FdOiHk
[root@kvm /]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "lvmvmhard" using metadata type lvm2
[root@kvm /]#
6、挂载lv
先格式,然后挂到目录,要开机挂载需要修改fstab
[root@kvm /]# mkfs.ext4 /dev/lvmvmhard/lvmlv1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
First data block=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
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@kvm /]# mkdir lvlvm1
[root@kvm /]# mount /dev/lvmvmhard/lvmlv1 /lvlvm1/
[root@kvm /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 117G 11G 100G 10% /
tmpfs 242M 76K 242M 1% /dev/shm
/dev/sr0 602M 602M 0 100% /media/GRTMPVOL_CN
/dev/mapper/lvmvmhard-lvmlv1 4.0G 136M 3.7G 4% /lvlvm1
[root@kvm /]#
LVM相关术语
物理存储介质(The physical media)
这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume)
物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
参考:
百度
转载于:https://blog.51cto.com/hxw168/1394089