物理体积 (PV)
每个物理卷可以是磁盘分区、整个磁盘、元设备或者环回文件。
使用命令 pvcreate 初始化存储以供 LVM 使用。
将块设备初始化为物理卷会在设备的开头放置一个标签。
创建逻辑卷
现在可以使用 lvcreate 命令在 VG 中创建逻辑卷。
如果我们未在命令中指定 LV 名称,则默认情况下会为 LV 指定名称 lvol# 。
通常,如果我们不指定跨越 LV 的 PV,逻辑卷将在下一个空闲的基础上在 PV 上创建。
要创建大小为 5 GB 的逻辑卷 lvol01:
# lvcreate -L 5G -n lvol01 vg01 Logical volume "lvol01" created
创建条带卷
要创建跨越我们创建的所有 3 个 PV 的条带卷:
# lvcreate -L 5G -I 4096 -i 3 -n lvol01 vg01 Rounding size (1280 extents) up to stripe boundary size (1281 extents) Logical volume "lvol01" created
I - PVs to span while creating striped volume i - stripe unit
创建镜像卷
要创建跨越 3 个 PV(sdb、sdc、sdd)的 3 路镜像卷:
# lvcreate -L 1G -m 2 -n lvol01 vg01 Logical volume "lvol01" created
我们还可以指定在创建镜像 LV 时要使用的设备。
在我们的例子中,由于 VG 中只有 3 个 PV,默认情况下会在这 3 个 PV 上创建 LV。
显示LV信息
命令 lvdisplay 、 lvs 和 lvscan 可用于显示有关我们刚刚创建的 LV 的信息。
# lvs /dev/vg01/lvol01 LV VG Attr LSize Pool Oroirn Data% Move Log Cpy%Sync Convert lvol01 vg01 mwi-a-m-- 1.00g lvol01_mlog 100.00
# lvdisplay /dev/vg01/lvol01 --- Logical volume -- LV Path /dev/vg01/lvol01 LV Name lvol01 VG Name vg01 LV UUID ptlmAV-mO42-fWiJ-e2Ml-r9kj-PFcC-MOexxw LV Write Access read/write LV Creation host, time localhost.localdomain, 2014-10-22 09:04:25 -0700 LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Mirrored volumes 3 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4
# lvscan ACTIVE '/dev/vg01/lvol01' [1.00 GiB] inherit
管理 LVM 的图形工具
如果我们想使用,有一个很酷的图形工具(system-config-lvm)可用。
如果系统上尚未安装,请使用 yum 安装:
# yum install system-config-lvm
要启动图形 LVM 管理工具,请执行以下命令:
# system-config-lvm
卷组 (VG)
卷组将一组逻辑卷和物理卷聚集到一个管理单元中。
卷组被分成固定大小的物理盘区。
命令 vgcreate 使用先前通过 pvcreate 为 LVM 配置的块特殊设备物理卷路径创建新卷组。
VG 由 PV 组成,而 PV 又由物理盘区 (PE) 组成。
PE 的大小在不同的 VG 中可以不同,并在创建 VG 时定义。
PE 的默认大小为 4MB,但我们可以在创建 VG 时将其更改为我们想要的值。
通常,PE 大小越大,性能越好(尽管 LV 的粒度控制较少)。
创建卷组
使用 vgcreate 命令使用我们刚刚创建的 3 个 PV 创建新的卷组 vg01.
我们可以使用 -s 选项指定范围,并分别使用选项 -p 和 -l 来指定 VG 中 PV 和 LV 的最大数量。
所有这些选项都是可选的,不一定要使用。
# vgcreate vg01 /dev/sdb /dev/sdc /dev/sdd Volume group "vg01" successfully created
与 vgcreate 命令一起使用的可选选项是:
Option | Meaning |
---|---|
-s | Physical extent size |
-p | Max number of PVs |
-l | Max number of LVs |
-alloc | allocation policy (either contiguous, anywhere, or cling) |
显示 VG 信息
命令 vgs 和 vgdisplay 可用于显示有关我们刚刚创建的 VG 的信息:
# vgs vg01 VG #PV #LV #SN Attr VSize VFree vg01 3 0 0 wz--n- 5.99g 5.99g
# vgdisplay vg01 --- Volume group -- VG Name vg01 System ID Format lvm2 Metadata Areas 3 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 3 Act PV 3 VG Size 5.99 GiB PE Size 4.00 MiB Total PE 1533 Alloc PE / Size 0 / 0 Free PE / Size 1533 / 5.99 GiB VG UUID Cw7GGz-NH3o-Sax2-5jPv-buZS-938T-tmNKFa
激活和停用 VG
vgchange 命令可用于激活/停用卷组。
要停用 VG:
# vgchange -a n vg01 0 logical volume(s) in volume group "vg01" now active
激活 VG :
# vgchange -a y vg01 1 logical volume(s) in volume group "vg01" now active
文件系统
文件系统建立在逻辑卷之上。
命令 mkfs 可用于在逻辑卷之上创建文件系统。
创建文件系统后,我们可以根据需要挂载逻辑卷。
让我们开始吧
这个例子
在下面的示例中,我们将:
从 3 个物理磁盘(/dev/sdb、/dev/sdc、/dev/sdd)创建 3 个物理卷。
从这 3 个 PV (/dev/vg01) 创建卷组。
在这个 VG (/dev/vg01/lvol01) 中创建一个 Lgical Volume。
在这个 LV 上创建一个文件系统并挂载它(/data01)。
什么是 LVM
逻辑卷管理器 (LVM) 在物理磁盘和文件系统之间引入了一个另外的层,允许文件系统:
无需系统范围的中断即可轻松在线调整大小和移动。
使用磁盘上的不连续空间
有意义的名称到卷,而不是通常的神秘设备名称。
跨越多个物理磁盘
Linux LVM 与 HP-UX LVM 非常相似,并提供许多其他高级功能,如快照、集群支持(GFS2. OCFS 和 Lustre)。
概念
LVM 由几个概念层组成,例如物理卷、逻辑卷和文件系统。
概念层依次由更小的单位组成,如物理范围(在物理卷的情况下)和逻辑范围(在逻辑卷的情况下)。
创建文件系统
最后一步是在我们刚刚创建的新 LV 上创建一个文件系统,并将其挂载到一个目录中,以便能够访问它并其中存储数据。
命令 mkfs 可用于在 LV 之上创建文件系统。
# mkfs.ext4 /dev/vg01/lvol01 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 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
一旦创建了文件系统,就可以挂载逻辑卷。
确保在 /etc/fstab 中添加一个条目,以便在系统启动时自动挂载。
# mkdir /data01 # mount /dev/vg01/lvol01 /data01
# vi /etc/fstab /dev/vg01/lvol01 /data01 ext4 defaults 0 0
# df -h /data01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lvol01 1008M 34M 924M 4% /data01
创建物理卷
pvcreate 命令用于初始化 PV 以供 LVM 使用。
在创建 PV 之前,请确保该磁盘在操作系统中可见。
要扫描用作 PV 的块设备,请使用 lvmdiskscan 命令。
# lvmdiskscan ....... /dev/sdb [ 2.00 GiB] /dev/sdc [ 2.00 GiB] /dev/sdd [ 2.00 GiB] 3 disks 19 partitions 0 LVM physical volume whole disks 0 LVM physical volumes
初始化块设备:
# pvcreate /dev/sdb /dev/sdc /dev/sdd Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created
显示物理卷
使用命令 pvdisplay 、 pvs 和 pvscan 来显示我们刚刚创建的 PV。
# pvdisplay "/dev/sdb" is a new physical volume of "2.00 GiB" --- NEW Physical volume -- PV Name /dev/sdb VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID Mt3F7z-a2AV-28Vn-uXe2-QejE-Z6tP-UMlQGM "/dev/sdc" is a new physical volume of "2.00 GiB" --- NEW Physical volume -- PV Name /dev/sdc VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 5m1Fuc-yTRn-I2vG-bMfU-6SE7-53EA-s8VQjt "/dev/sdd" is a new physical volume of "2.00 GiB" --- NEW Physical volume -- PV Name /dev/sdd VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1x3e2A-C0Lt-DrUA-tPSM-lsMu-sn70-qg1j8p
# pvscan PV /dev/sdb lvm2 [2.00 GiB] PV /dev/sdc lvm2 [2.00 GiB] PV /dev/sdd lvm2 [2.00 GiB] Total: 3 [6.00 GiB] / in use: 0 [0 ] / in no VG: 3 [6.00 GiB]
# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 a-- 2.00g 2.00g /dev/sdc lvm2 a-- 2.00g 2.00g /dev/sdd lvm2 a-- 2.00g 2.00g
逻辑卷 (LV)
逻辑卷在概念上等同于非 LVM 系统中的磁盘分区。
逻辑卷是从同一卷组中存在的物理盘区创建的块设备。
我们可以使用命令 lvcreate 在现有卷组中创建逻辑卷。