• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

不讲武德的LVM,耗子尾汁

互联网 diligentman 2天前 2次浏览

目录

简介

基本术语

PV、VG、LV三者关系

LVM的优点

创建LVM的基本步骤

LVM常用命令

创建使用LVM逻辑卷

LV扩容

小结一下

 

简介

          逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图所示。它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。对于上层应用来说卷组替代了磁盘块成为数据存储的基本单元。LVM管理着所有物理卷的物理盘区,维持着逻辑盘区和物理盘区之间的映射。LVM逻辑设备向上层应用提供了和物理磁盘相同的功能,如文件系统的创建和数据的访问等。但LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。相比物理磁盘来说,更易于磁盘空间的管理。

我giao,好家伙这一大长串的看一遍也看不明白,反正只要记住它的优势:可以很方便的扩展自己的空间就ok了。

基本术语

  • 物理存储介质(PhysicalStorageMedia)

指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元

  • 物理卷(Physical Volume,PV)

指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数

  • 卷组(Volume Group,VG)

类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

  • 逻辑卷(Logical Volume,LV)

类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

  • 物理块(Physical Extent,PE)

PE是物理卷PV的基本划分单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

  • 逻辑块(Logical Extent,LE)

逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

PV、VG、LV三者关系

注:年轻人不讲武德,这里盗个图哈哈

不讲武德的LVM,耗子尾汁

不讲武德的LVM,耗子尾汁

LVM的优点

这玩意优势还真蛮多哩,简简单单的总结几条,耗子尾汁!

  • 使用卷组,可以让多个硬盘空间组合成一个大的硬盘;
  • 使用逻辑卷,可以跨多个硬盘空间的分区,sdb sdc sdf;
  • 使用逻辑卷的时候,可以自由的调节它的大小;
  • 可以在线对LV,VG,进行创建和删除,调整大小等操作;
  • 允许创建快照,可以用来保存文件系统的备份。

创建LVM的基本步骤

LVM常用命令

不讲武德的LVM,耗子尾汁

查看命令:

不讲武德的LVM,耗子尾汁

创建使用LVM逻辑卷

我giao,一开始我以为做LVM是要先把原有所有的分区转成LVM格式,自己研究了半天也没搞定,结果从官方那得到了结果,原来Centos7以上默认就做了lvm,自己在扩容即可。沃腻吗这linux官方不讲武德啊。这里建议大家没事多看看官方文档

1)添加一块硬盘(我用的是本地虚机)

不讲武德的LVM,耗子尾汁

2)创建两个分区

[root@hya ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   18G  0 lvm  /
  └─centos-swap 253:1    0    1G  0 lvm  [SWAP]
sdb               8:16   0   40G  0 disk      ##刚加入的新硬盘
sr0              11:0    1  8.8G  0 rom  
[root@hya ~]# fdisk /dev/sdb 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xdef043ce 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+20G
分区 1 已设置为 Linux 类型,大小设为 20 GiB
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (41945088-83886079,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-83886079,默认为 83886079):
将使用默认值 83886079
分区 2 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w                                               
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

3)查看已分的区

[root@hya ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 11月 20 14:46 /dev/sdb
brw-rw----. 1 root disk 8, 17 11月 20 14:46 /dev/sdb1
brw-rw----. 1 root disk 8, 18 11月 20 14:46 /dev/sdb2

4)设定分区号代码

[root@hya ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):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,2,默认 2):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

5)创建PV

[root@hya ~]# pvcreate /dev/sdb{1,2}
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@hya ~]# 

6)查看物理卷信息

[root@hya ~]# pvdisplay /dev/sdb1 
  "/dev/sdb1" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               RAi9EP-MkJB-GIzU-z1OB-UObV-Al2u-XMdRAB

7)创建VG卷组

语法: vgcreate vg名字 pv的名字 可以跟多个pv
[root@hya ~]# vgcreate vg-01 /dev/sdb1
  Volume group "vg-01" successfully created
[root@hya ~]# vgcreate vg-02 /dev/sdb2
  Volume group "vg-02" successfully created
[root@hya ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <19.00g   4.00m
  vg-01    1   0   0 wz--n- <20.00g <20.00g
  vg-02    1   0   0 wz--n- <20.00g <20.00g
  
[root@hya ~]# vgdisplay vg-01
  --- Volume group ---
  VG Name               vg-01
  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               <20.00 GiB
  PE Size               4.00 MiB
  Total PE              5119
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5119 / <20.00 GiB
  VG UUID               JBObHy-ulpP-eO74-pHXc-neV8-gPa7-61MKcI

8)创建LV

lvcreate -n 指定新逻辑卷的名称 -L指定lv大小的SIZE(M,G) (-l:小l 指定LE的数量) vgname
[root@hya ~]# lvcreate -n lv-01 -l 10G vg-01
  Invalid argument for --extents: 10G
  Error during parsing of command line.
[root@hya ~]# lvcreate -n lv-01 -L 10G vg-01
  Logical volume "lv-01" created.
[root@hya ~]# lvcreate -n lv-02 -l 9G vg-01
  Invalid argument for --extents: 9G
  Error during parsing of command line.
[root@hya ~]# lvcreate -n lv-02 -L 9G vg-01
  Logical volume "lv-02" created.
[root@hya ~]# lvcreate -n lv-01 -l 10G vg-02
  Invalid argument for --extents: 10G
  Error during parsing of command line.
[root@hya ~]# lvcreate -n lv-01 -L 10G vg-02
  Logical volume "lv-01" created.
[root@hya ~]# lvcreate -n lv-02 -l 9G vg-02
  Invalid argument for --extents: 9G
  Error during parsing of command line.
[root@hya ~]# lvcreate -n lv-02 -L 9G vg-02
  Logical volume "lv-02" created.
[root@hya ~]# pvdisplay /dev/sdb1
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg-01
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               255   
  Allocated PE          4864    #已经使用了4864个PE
  PV UUID               RAi9EP-MkJB-GIzU-z1OB-UObV-Al2u-XMdRAB
[root@hya ~]# vgdisplay vg-01
  --- Volume group ---
  VG Name               vg-01
  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               <20.00 GiB
  PE Size               4.00 MiB
  Total PE              5119
  Alloc PE / Size       4864 / 19.00 GiB
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               JBObHy-ulpP-eO74-pHXc-neV8-gPa7-61MKcI
[root@hya ~]# lsblk    #目前的一个状况
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                 8:0    0   20G  0 disk 
├─sda1              8:1    0    1G  0 part /boot
└─sda2              8:2    0   19G  0 part 
  ├─centos-root   253:0    0   18G  0 lvm  /
  └─centos-swap   253:1    0    1G  0 lvm  [SWAP]
sdb                 8:16   0   40G  0 disk 
├─sdb1              8:17   0   20G  0 part 
│ ├─vg--01-lv--01 253:2    0   10G  0 lvm  
│ └─vg--01-lv--02 253:3    0    9G  0 lvm  
└─sdb2              8:18   0   20G  0 part 
  ├─vg--02-lv--01 253:4    0   10G  0 lvm  
  └─vg--02-lv--02 253:5    0    9G  0 lvm  
sr0                11:0    1  8.8G  0 rom  

9)格式化与挂载

[root@hya ~]# mkfs.xfs /dev/vg-01/lv-01
[root@hya ~]# mkfs.xfs /dev/vg-01/lv-02 
[root@hya ~]# mkfs.xfs /dev/vg-02/lv-01 
[root@hya ~]# mkfs.xfs /dev/vg-02/lv-02
[root@hya ~]# mount /dev/vg-01/lv-01 /backup/   挂载即可
[root@hya ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                 8:0    0   20G  0 disk 
├─sda1              8:1    0    1G  0 part /boot
└─sda2              8:2    0   19G  0 part 
  ├─centos-root   253:0    0   18G  0 lvm  /
  └─centos-swap   253:1    0    1G  0 lvm  [SWAP]
sdb                 8:16   0   40G  0 disk 
├─sdb1              8:17   0   20G  0 part 
│ ├─vg--01-lv--01 253:2    0   10G  0 lvm  /backup
│ └─vg--01-lv--02 253:3    0    9G  0 lvm  
└─sdb2              8:18   0   20G  0 part 
  ├─vg--02-lv--01 253:4    0   10G  0 lvm  
  └─vg--02-lv--02 253:5    0    9G  0 lvm  
sr0                11:0    1  8.8G  0 rom  

LV扩容

1)扩容前确认是否有可扩容空间,空间是从vg创建的

[root@hya ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree   
  centos   1   2   0 wz--n- <19.00g    4.00m
  vg-01    1   2   0 wz--n- <20.00g 1020.00m
  vg-02    1   2   0 wz--n- <20.00g 1020.00m

2)扩容逻辑卷

[root@hya ~]# lvextend -L +20M /dev/vg-01/lv-01 
  Size of logical volume vg-01/lv-01 changed from 10.00 GiB (2560 extents) to <10.02 GiB (2565 extents).
  Logical volume vg-01/lv-01 successfully resized.
[root@hya ~]# lvs
  LV    VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root  centos -wi-ao----  17.99g                                                    
  swap  centos -wi-ao----   1.00g                                                    
  lv-01 vg-01  -wi-ao---- <10.02g                                                    
  lv-02 vg-01  -wi-a-----   9.00g                                                    
  lv-01 vg-02  -wi-a-----  10.00g                                                    
  lv-02 vg-02  -wi-a-----   9.00g  
[root@hya ~]# df -Th /backup/
文件系统                  类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg--01-lv--01 xfs    10G   33M   10G    1% /backup
[root@hya ~]# xfs_growfs /dev/vg-01/lv-01 
meta-data=/dev/mapper/vg--01-lv--01 isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2621440 to 2626560

[root@hya ~]# df -Th /backup/
文件系统                  类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg--01-lv--01 xfs    11G   33M   10G    1% /backup

3)VG扩容

##这里我的硬盘没空间了,只把命令写上
[root@hya ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree   
  centos   1   2   0 wz--n- <19.00g    4.00m
  vg-01    1   2   0 wz--n- <20.00g 1000.00m
  vg-02    1   2   0 wz--n- <20.00g 1020.00m
[root@hya ~]# pvcreate /dev/设备名称
[root@hya ~]# vgextend vg-01 /dev/设备名称
[root@hya ~]# vgs  查看

小结一下

                  这命令也太多了吧,搞的我刚做的时候懵懵的,只要搞清楚VG、LV、PV三者的区别完全OK的。


喜欢 (0)