【Linux】LVM的创建及使用
作者:互联网
文章目录
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@gaosh-64 ~]# ll /dev/sd*brw-rw---- 1 root disk 8, 0 7月 23 10:28 /dev/sda brw-rw---- 1 root disk 8, 1 7月 23 10:28 /dev/sda1 brw-rw---- 1 root disk 8, 2 7月 23 10:28 /dev/sda2 brw-rw---- 1 root disk 8, 16 7月 23 10:28 /dev/sdb
[root@gaosh-64 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0xdeb5566d 创建新的 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@gaosh-64 ~]# ll /dev/sdb*brw-rw---- 1 root disk 8, 16 7月 23 12:47 /dev/sdb brw-rw---- 1 root disk 8, 17 7月 23 12:47 /dev/sdb1 brw-rw---- 1 root disk 8, 18 7月 23 12:47 /dev/sdb2 brw-rw---- 1 root disk 8, 19 7月 23 12:47 /dev/sdb3 brw-rw---- 1 root disk 8, 20 7月 23 12:47 /dev/sdb4
d. 设定分区号代码
注意: 操作系统中直接使用默认的83分区,也是可以创建PV的,以前一般都是选择8e
[root@gaosh-64 ~]# 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. 正在同步磁盘。[root@gaosh-64 ~]#
e. 创建pv
[root@gaosh-64 ~]# 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.[root@gaosh-64 ~]#
f. 查看物理卷信息
[root@gaosh-64 ~]# 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 [root@gaosh-64 ~]#
g. 创建vg卷组
语法: vgcreate vg名字 pv的名字 可以跟多个pv
[root@gaosh-64 ~]# vgcreate vg01 /dev/sdb1 Volume group "vg01" successfully created[root@gaosh-64 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos_zmedu-17 1 2 0 wz--n- <19.00g 0 vg01 1 0 0 wz--n- <5.00g <5.00g[root@gaosh-64 ~]# 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 [root@gaosh-64 ~]#
h. 创建LV
lvcreate -n 指定新逻辑卷的名称 -L指定lv大小的SIZE(M,G) (-l:小l 指定LE的数量) vgname
[root@gaosh-64 ~]# lvcreate -n lv01 -l 20M vg01 Invalid argument for --extents: 20M Error during parsing of command line.[root@gaosh-64 ~]# lvcreate -n lv01 -L 20M vg01 Logical volume "lv01" created.[root@gaosh-64 ~]# lvcreate -n lv02 -l 10 vg01 Logical volume "lv02" created.[root@gaosh-64 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos_zmedu-17 -wi-ao---- <17.00g swap centos_zmedu-17 -wi-ao---- 2.00g lv01 vg01 -wi-a----- 20.00m lv02 vg01 -wi-a----- 40.00m [root@gaosh-64 ~]#
[root@gaosh-64 ~]# 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@gaosh-64 ~]#
[root@gaosh-64 ~]# 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@gaosh-64 ~]#
3. 格式化与挂载
[root@gaosh-64 ~]# mkdir /lv01 #创建挂载目录[root@gaosh-64 ~]# ls /dev/vg01/ ## 查看逻辑卷位置lv01 lv02[root@gaosh-64 ~]# 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@gaosh-64 ~]#
挂载:
[root@gaosh-64 ~]# mount /dev/vg01/lv01 /lv01[root@gaosh-64 ~]# 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/centos_zmedu--17-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@gaosh-64 ~]#
lv扩容
扩容前确认下是否有可扩容空间,空间是从VG创建的。
[root@gaosh-64 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos_zmedu-17 1 2 0 wz--n- <19.00g 0 vg01 1 2 0 wz--n- <5.00g <4.94g
扩容命令是: extend vgextend lvgextend
lvs
扩容逻辑卷
[root@gaosh-64 ~]# 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@gaosh-64 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos_zmedu-17 -wi-ao---- <17.00g swap centos_zmedu-17 -wi-ao---- 2.00g lv01 vg01 -wi-ao---- 52.00m lv02 vg01 -wi-a----- 40.00m [root@gaosh-64 ~]#
[root@gaosh-64 ~]# df -Th /lv01文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/vg01-lv01 xfs 17M 1.1M 16M 7% /lv01[root@gaosh-64 ~]#
[root@gaosh-64 ~]# xfs_growfs /dev/vg01/lv01meta-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@gaosh-64 ~]#
[root@gaosh-64 ~]# df -Th /lv01文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/vg01-lv01 xfs 49M 1.2M 48M 3% /lv01[root@gaosh-64 ~]#
VG扩容
[root@gaosh-64 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos_zmedu-17 1 2 0 wz--n- <19.00g 0 vg01 1 2 0 wz--n- <5.00g <4.91g[root@gaosh-64 ~]# pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created.[root@gaosh-64 ~]# vgextend vg01 /dev/sdb3 Volume group "vg01" successfully extended[root@gaosh-64 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos_zmedu-17 1 2 0 wz--n- <19.00g 0 vg01 2 2 0 wz--n- 8.99g 8.90g[root@gaosh-64 ~]#
总结
LVM不难,难的是命令超多,容易把自己绕晕, 所以建议在本子上多写几遍,哪个命令用来做啥的。
标签:lv01,vg01,创建,dev,gaosh,64,Linux,LVM,root 来源: https://blog.51cto.com/xinsz08/2704449