1. 创建LVM的基本步骤
- 物理磁盘被格式化为PV,(空间被划分为一个个的PE) #PV包含PE
- 不同的PV加入到同一个VG中,(不同PV的PE全部进入到了VG的PE池内) #VG包含PV
- 在VG中创建LV逻辑卷,基于PE创建,(组成LV的PE可能来自不同的物理磁盘) #LV基于PE创建
- LV直接可以格式化后挂载使用#格式化挂载使用
- LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
2. LVM常用命令
与查看相关的命令:
3. 创建使用LVM逻辑卷
1) 创建PV
a. 添加一个sdb磁盘
b. 接下来我们创建4个分区:
[root@centos ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 0 3月 24 10:28 /dev/sda
brw-rw---- 1 root disk 8, 1 3月 24 10:28 /dev/sda1
brw-rw---- 1 root disk 8, 2 3月 24 10:28 /dev/sda2
brw-rw---- 1 root disk 8, 16 3月 24 10:28 /dev/sdb
[root@centos ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x332c4a73 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
按照步骤分出四个主分区
c. 查看分好的分区:
[root@centos ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 3月 24 12:47 /dev/sdb
brw-rw---- 1 root disk 8, 17 3月 24 12:47 /dev/sdb1
brw-rw---- 1 root disk 8, 18 3月 24 12:47 /dev/sdb2
brw-rw---- 1 root disk 8, 19 3月 24 12:47 /dev/sdb3
brw-rw---- 1 root disk 8, 20 3月 24 12:47 /dev/sdb4
d. 设定分区号代码
注意: 操作系统中直接使用默认的83分区,也是可以创建PV的,这里我们创建的是LVM逻辑分区所以选择8e(可不选)
[root@centos ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):1
Hex 代码(输入 L 列出所有代码):l
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):3
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):4
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
e. 创建pv
[root@centos ~]# pvcreate /dev/sdb{1,2,3,4}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
Physical volume "/dev/sdb4" successfully created.
f. 查看物理卷信息
[root@centos ~]# pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 7VIumv-EEJe-mcWK-Gt0G-euqy-bky0-LAnwny
2)创建vg卷组
语法: vgcreate vg名字 pv的名字 可以跟多个pv
[root@centos ~]# vgcreate vg01 /dev/sdb1
Volume group "vg01" successfully created
[root@centos ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos7 1 2 0 wz--n- <19.00g 0
vg01 1 0 0 wz--n- <5.00g <5.00g
[root@centos ~]# vgdisplay vg01
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 1
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 1
Act PV 1
VG Size <5.00 GiB
PE Size 4.00 MiB
Total PE 1279
Alloc PE / Size 0 / 0
Free PE / Size 1279 / <5.00 GiB
VG UUID MC3TGi-k52K-Oeq9-gxTW-DiL0-zy0n-5fOsjP
3)创建LV
lvcreate -n 指定新逻辑卷的名称 -L指定lv大小的SIZE(M,G) (-l:小l 指定LE的数量) vgname
[root@centos ~]# lvcreate -n lv01 -l 20M vg01
Invalid argument for --extents: 20M
Error during parsing of command line.
[root@centos ~]# lvcreate -n lv01 -L 20M vg01
Logical volume "lv01" created.
[root@centos ~]# lvcreate -n lv02 -l 10 vg01
Logical volume "lv02" created.
[root@centos ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos7 -wi-ao---- <17.00g
swap centos7 -wi-ao---- 2.00g
lv01 vg01 -wi-a----- 20.00m
lv02 vg01 -wi-a----- 40.00m
[root@centos ~]#
[root@centos ~]# pvdisplay /dev/sdb1
--- Physical volume ---
PV Name /dev/sdb1
VG Name vg01
PV Size 5.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1279
Free PE 1264
Allocated PE 15 # 已经使用了15个PE =60M
PV UUID 7VIumv-EEJe-mcWK-Gt0G-euqy-bky0-LAnwny
[root@centos ~]#
[root@centos ~]# vgdisplay vg01
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <5.00 GiB
PE Size 4.00 MiB
Total PE 1279
Alloc PE / Size 15 / 60.00 MiB
Free PE / Size 1264 / <4.94 GiB
VG UUID MC3TGi-k52K-Oeq9-gxTW-DiL0-zy0n-5fOsjP
[root@centos ~]#
4)格式化与挂载
a.格式化
[root@centos ~]# mkdir /lv01 #创建挂载目录
[root@centos ~]# ls /dev/vg01/ ## 查看逻辑卷位置
lv01 lv02
[root@centos ~]# mkfs.xfs /dev/vg01/lv01 格式化为XFS系统
meta-data=/dev/vg01/lv01 isize=512 agcount=1, agsize=5120 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5120, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@centos ~]#
b.挂载:
[root@centos ~]# mount /dev/vg01/lv01 /lv01
[root@centos ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos7-root 17G 4.8G 13G 29% /
/dev/sda1 1014M 238M 777M 24% /boot
tmpfs 378M 12K 378M 1% /run/user/42
tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/vg01-lv01 17M 1.1M 16M 7% /lv01
[root@centos ~]#
5)lv扩容
扩容前确认下是否有可扩容空间,空间是从VG创建的。
[root@centos ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos7 1 2 0 wz--n- <19.00g 0
vg01 1 2 0 wz--n- <5.00g <4.94g
扩容命令是: extend vgextend lvgextend
扩容逻辑卷:
[root@centos ~]# lvextend -L +30m /dev/vg01/lv01
Rounding size to boundary between physical extents: 32.00 MiB.
Size of logical volume vg01/lv01 changed from 20.00 MiB (5 extents) to 52.00 MiB (13 extents).
Logical volume vg01/lv01 successfully resized.
[root@centos ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos7 -wi-ao---- <17.00g
swap centos7 -wi-ao---- 2.00g
lv01 vg01 -wi-ao---- 52.00m
lv02 vg01 -wi-a----- 40.00m
[root@centos ~]#
[root@centos ~]# df -Th /lv01
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs 17M 1.1M 16M 7% /lv01
[root@centos ~]#
[root@centos ~]# xfs_growfs /dev/vg01/lv01
meta-data=/dev/mapper/vg01-lv01 isize=512 agcount=1, agsize=5120 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=5120, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 5120 to 13312
[root@centos ~]#
[root@centos ~]# df -Th /lv01
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs 49M 1.2M 48M 3% /lv01
[root@centos ~]#
6)VG扩容
[root@centos ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos7 1 2 0 wz--n- <19.00g 0
vg01 1 2 0 wz--n- <5.00g <4.91g
[root@centos ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@centos ~]# vgextend vg01 /dev/sdb3
Volume group "vg01" successfully extended
[root@centos ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos7 1 2 0 wz--n- <19.00g 0
vg01 2 2 0 wz--n- 8.99g 8.90g
总结
这是创建LVM分区的方法,为了工作方便还需多加练习。