【Linux】LVM的创建及使用

举报
互联网老辛 发表于 2021/06/09 00:57:21 2021/06/09
【摘要】 文章目录 1. 创建LVM的基本步骤2. LVM常用命令3. 创建使用LVM逻辑卷1) 创建PVa. 我们已经添加了一个sdb磁盘b. 接下来我们创建4个分区:c. 查看分好的分区:d. 设定分区号代码e. 创建pvf. 查看物理卷信息g. 创建vg卷组h. 创建LV 3. 格式化与挂载lv扩容总结 1. 创建LVM的基本步骤 物理磁盘被格...

1. 创建LVM的基本步骤

  1. 物理磁盘被格式化为PV,(空间被划分为一个个的PE) #PV包含PE
  2. 不同的PV加入到同一个VG中,(不同PV的PE全部进入到了VG的PE池内) #VG包含PV
  3. 在VG中创建LV逻辑卷,基于PE创建,(组成LV的PE可能来自不同的物理磁盘) #LV基于PE创建
  4. LV直接可以格式化后挂载使用 #格式化挂载使用
  5. 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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
[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

按照步骤四个主分区

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
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 ~]# 

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
[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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
[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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

挂载:

[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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

扩容命令是: 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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
[root@gaosh-64 ~]# df -Th /lv01
文件系统 类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs 17M  1.1M   16M 7% /lv01
[root@gaosh-64 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
[root@gaosh-64 ~]# 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@gaosh-64 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
[root@gaosh-64 ~]# df -Th /lv01
文件系统 类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs 49M  1.2M   48M 3% /lv01
[root@gaosh-64 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

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 ~]# 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

总结

LVM不难,难的是命令超多,容易把自己绕晕, 所以建议在本子上多写几遍,哪个命令用来做啥的。

文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。

原文链接:zmedu.blog.csdn.net/article/details/107534030

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。