【Linux逻辑卷全解】带你玩转linux LVM 逻辑卷

简介: 【Linux逻辑卷全解】带你玩转linux LVM 逻辑卷

第一章.概述

一.逻辑卷的作用

磁盘一经分区之后,再想改变磁盘中这个分区的大小就很难了。假如当这个磁盘的空间不够用了,是没有办法扩大这个分区的。所以使用逻辑卷。

注意:xfs 格式的文件系统删除逻辑卷会导致系统崩溃!!!

二.LVM原理

要想理解好LVM的原理,我们必须首先要掌握4个基本的逻辑卷概念。 物理拓展 (PE) : 实体延伸区块 物理卷(pv): 物理磁盘分区。在进行逻辑卷使用时要将ID改为8e 物理卷组(vg): 物理卷的集合 逻辑卷(lv): 取自物理卷组

三. 常用的LVM部署命令

功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展 vgextend lvextend
缩小 vgreduce lvreduce

四. 安装lvm

yum install -y lvm*

第二章.实战

一.简介

添加两块新硬盘设备 在虚拟机中添加两块新硬盘设备的目的,是为了更好地演示LVM理念中用户无需关心底层物理硬盘设备的特性。我们先对这两块新硬盘进行创建物理卷的操作,可以将该操作简单理解成让硬盘设备支持LVM技术,或者理解成是把硬盘设备加入到LVM技术可用的硬件资源池中,然后对这两块硬盘进行卷组合并,卷组的名称可以由用户来自定义。接下来,根据需求把合并后的卷组切割出一个约为150MB的逻辑卷设备,最后把这个逻辑卷设备格式化成xfs文件系统后挂载使用。

二.添加硬盘后不重启识别硬盘

查看硬盘发现没有识别

[root@web01_123 ~]# lsblk
sdb                    8:16   0   20G  0 disk
sdc                    8:32   0    2G  0 disk
sr0                   11:0    1 1024M  0 rom

查看主机总线号

[root@web01_123 ~]# ls /sys/class/scsi_host/
host0  host1  host2

重新扫描SCST总线来添加设备

[root@web01_123 ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@web01_123 ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@web01_123 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

查看硬盘发现已经识别

[root@web01_123 ~]# lsblk
sdb                    8:16   0   20G  0 disk
sdc                    8:32   0    2G  0 disk
sdd                    8:48   0    3G  0 disk
sde                    8:64   0    3G  0 disk

三. 新加硬盘全部操作

对磁盘进行分区

[root@web01_123 ~]# fdisk /dev/sdd
m可以查看帮助信息
p是打印当前分区
n是创建分区
t是更改分区类型
w是保存退出
Command (m for help): n  #创建分区下面全部默认一路回车
Command (m for help): t   #修改ID为8e    
Hex code (type L to list all codes): 8e #LVM类型为8e
Changed type of partition 'Empty' to 'Linux LVM'
Command (m for help): p
  Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048     6291455     3144704   8e  Linux LVM
Command (m for help): w   #保存并退出

创建物理卷

[root@web01_123 ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.

查看物理卷

[root@web01_123 ~]# pvs
 PV         VG       Fmt  Attr PSize    PFree  
 /dev/sda2  VolGroup lvm2 a--  <199.00g <153.00g
 /dev/sdd1           lvm2 ---    <3.00g   <3.00g

创建卷组

[root@web01_123 ~]# vgcreate VolGroup1  /dev/sdd1
Volume group "VolGroup1" successfully created

查看卷组

[root@web01_123 ~]# vgs
 VG        #PV #LV #SN Attr   VSize    VFree  
 VolGroup    1   2   0 wz--n- <199.00g <153.00g
 VolGroup1   1   0   0 wz--n-   <3.00g   <3.00g

创建逻辑卷名字为lv_data使用的卷组为VolGroup1容量为1G

[root@web01_123 ~]# lvcreate -L 1G -n lv_data VolGroup1
Logical volume "lv_data" created.

查看逻辑卷

[root@web01_123 ~]# lvs
 LV      VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 lv_data VolGroup1 -wi-a-----  1.00g                                                    
 lv_root VolGroup -wi-ao---- 30.00g                                                    
 lv_swap VolGroup -wi-ao---- 16.00g

格式化分区成ext4 #当你想修改文件系统的类型时可以用这种方式比如想改成xfs(centos7 默认)可以用mkfs.xfs

[root@web01_123 ~]# mkfs.ext4 /dev/VolGroup1/lv_data

创建挂载目录

[root@web01_123 ~]# mkdir  /data

将逻辑卷挂载到目录

[root@web01_123 ~]# mount  /dev/VolGroup/lv_data  /data/

查看已挂载成功

[root@web01_123 ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_data  976M  2.6M  907M   1% /data

永久挂载

[root@web01_123 data]# vim /etc/fstab  
#Lvm地址                     #挂载目录             #文件系统类型 df –Th 可以查看注意写错了机器起不来
/dev/mapper/VolGroup-lv_data  /data                    ext4      defaults        0 0
检查 fstab 配置是否正确
mount -a

第三章.逻辑卷常用操作

一.再有空间的情况下扩容逻辑卷

查看/data剩余空间

[root@web01_123 ~]# df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_data    3.0G  4.0M  2.8G   1% /data

查看卷组剩余空间

[root@web01_123 ~]# vgs
VG        #PV #LV #SN Attr   VSize    VFree  
VolGroup    1   3   0 wz--n- <199.00g <150.00g

给/data扩容1G空间

[root@web01_123 ~]# lvextend -L +1G /dev/VolGroup/lv_data

刷新扩容的逻辑卷

[root@web01_123 ~]# resize2fs  /dev/VolGroup/lv_data   注: ext的文件系统用resize2fs 刷新  xfs用xfs_growfsm
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/VolGroup/lv_data is mounted on /data; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/VolGroup/lv_data is now 1048576 blocks long.

查看已扩容成功

[root@web01_123 ~]# df -h
Filesystem                      Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_data    4.0G  4.0M  3.8G   1% /data

二. 加硬盘后将空间扩容到原来的卷组

查看新加硬盘

[root@web01_123 ~]# lsblk  -f
NAME                   FSTYPE      LABEL UUID                                   MOUNTPOINT
sdb

给硬盘分区

[root@web01_123 ~]# fdisk /dev/sdb
Command (m for help): n  #直接输入n  一路回车
Command (m for help): w  #输入w 保存并退出
[root@web01_123 ~]# lsblk  -f
NAME                   FSTYPE      LABEL UUID                                   MOUNTPOINT
sdb                                                                            
└─sdb1

创建物理卷

[root@web01_123 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.

查看物理卷

[root@web01_123 ~]# pvs
PV         VG        Fmt  Attr PSize    PFree  
/dev/sda2  VolGroup  lvm2 a--  <199.00g <149.00g
/dev/sdb1            lvm2 ---   <20.00g  <20.00g
/dev/sdd1  VolGroup1 lvm2 a--    <3.00g 1020.00m

扩容到VolGroup1卷组中去

[root@web01_123 ~]# vgextend VolGroup1 /dev/sdb1
Volume group "VolGroup1" successfully extended

查看卷组容量

[root@web01_123 ~]# vgs
VG        #PV #LV #SN Attr   VSize    VFree  
VolGroup1   2   1   0 wz--n-   22.99g   20.99g

三. 删除一个逻辑卷并将空间添加到另一个逻辑卷中

==注:卸载时显示目标忙,请谨慎操作可能正在使用中,如需停止可用fuser命令找出进程号kill掉==
安装fuser
Yum install –y psmisc
查看占用进程
fuser –mv  /data  
干掉进程
Kill -9  进程号
查看分区挂载
[root@web01_123 ~]# lsblk
NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 └─VolGroup-lv_data   253:3    0    3G  0 lvm  /data
卸载/data
[root@web01_123 ~]# umount /data/
查看剩余空间
[root@web01_123 ~]# vgs
VG        #PV #LV #SN Attr   VSize    VFree  
VolGroup    1   3   0 wz--n- <199.00g <150.00g
删除逻辑卷
[root@web01_123 ~]# lvremove /dev/VolGroup/lv_data
Do you really want to remove active logical volume VolGroup/lv_data? [y/n]: y
Logical volume "lv_data" successfully removed
查看剩余空间
[root@web01_123 ~]# vgs
VG        #PV #LV #SN Attr   VSize    VFree  
VolGroup    1   2   0 wz--n- <199.00g <153.00g

四. 用parted进行分区

用fdisk只能分2T以下的空间,随着技术的发展磁盘的空间越来越大,fdisk已经不能满足更多的业务场景,这里我们引进了parted工具进行分区。

查看新加磁盘

[root@web01_123 ~]# lsblk
NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sde                      8:64   0    3G  0 disk

进行分区

[root@web01_123 ~]# parted /dev/sde
(parted) print  #查看磁盘信息                                                          
Error: /dev/sde: unrecognised disk label
Model: VMware Virtual disk (scsi)                                        
Disk /dev/sde: 3221MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel  #选择分区表的方式
New disk label type? gpt   #我们要分区2TB的磁盘,这里选择gpt                                              (parted) print     #查看分区表是否更改为gpt                                                      
Model: VMware Virtual disk (scsi)
Disk /dev/sde: 3221MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt   #显示分区表已更改
(parted) mkpart   #创建分区                                                      
Partition name?  []? sde1   #填写新分区名字
File system type?  [ext2]? xfs   #文件系统的类型我们用的centos7选择xfs                                  
Start? 0    #分区的起始位置
注:#这里很重要:如果我们要创建多个分区 第一个分区从零开始,创建第二个分区时就要从第一个分区的结束位置开始
简单来说,创建第一个分区为10GB 起始位置填0,结束位置则为10GB,创建第二个分区大小为15GB  起始位置要填10GB,结束位置填25GB,相当于在原来的基础上加15GB。
End? 3GB   #结束位置                                                            
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i     #忽略                                                    
(parted) print    #查看分区                                                        
Model: VMware Virtual disk (scsi)
Disk /dev/sde: 3221MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system  Name  Flags
1      17.4kB  3221MB  3221MB               sde1
(parted) q   #退出                                                            
Information: You may need to update /etc/fstab.

给磁盘分完区还是按照以前的步骤先格式化磁盘,在创建物理见(pv),然后创建卷组或者加入原来的卷组。

  1. 删除parted分区的方法
以下是删除分区的方法
(parted)rm  1               #rm后面使用分区的号码,就是用print命令打印出来的Number编号
(parted) print
Model: VBOX HARDDISK (ide)
Disk /dev/hdd: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags

五. 直接用一个磁盘做pv

#直接用新加的盘做成一个pv
[root@localhost ~]# pvcreate /dev/sdb
#后期扩容如果加在一个磁盘上可以通过pvresize 命令将新加盘动态调整为现有的磁盘分区的大小
pvresize  /dev/sdb


相关文章
|
3月前
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
4月前
|
存储 监控 Linux
|
4月前
|
存储 Linux
在Linux中,LVM是什么?
在Linux中,LVM是什么?
|
4月前
|
存储 监控 Linux
在Linux中,如何使用LVM管理逻辑卷?
在Linux中,如何使用LVM管理逻辑卷?
|
4月前
|
存储 数据挖掘 Linux
在Linux中,LVM(逻辑卷管理)的主要优势是什么?如何扩展LVM卷?
在Linux中,LVM(逻辑卷管理)的主要优势是什么?如何扩展LVM卷?
|
6月前
|
Linux
47. 【Linux教程】逻辑卷的简单使用
47. 【Linux教程】逻辑卷的简单使用
45 0
|
6月前
|
存储 Linux 存储虚拟化
46. 【Linux教程】逻辑卷与 LVM 介绍
46. 【Linux教程】逻辑卷与 LVM 介绍
52 0
|
7月前
|
存储 固态存储 Linux
|
Linux
linux的逻辑卷管理
linux的逻辑卷管理
191 0