LVM管理

LVM管理

1、LVM的工作原理

基本概念

生产环境中,如果存储数据的分区是满了,那应该如何处理?

  • 可以更换一个硬盘,然后时间过了一部分,发现硬盘又满了,然后再加一个硬盘数据;
  • 这个过程–>涉及了数据丢失,容易丢失,换硬盘的过程中也涉及挂载,识别等等问题,极度影响效率
  • 那么最佳的方案就是LVM动态在线扩容

LVM的工作原理

LVM的全称是Logical Volume Manager逻辑卷管理,主要的作用就是在硬件与系统之间添加一个层面,用于制造一个逻辑盘卷;

可以不用重新分区的情况下动态扩容文件系统的大小,当服务器添加了硬盘后,可以通过LVM的形式扩展分区的大小;

底层当然是硬件硬盘,但是接入系统的时候会出现一个逻辑卷的概念,就是把硬盘封装成逻辑卷,再由逻辑卷来给系统分区进行扩容缩容等等;

LVM的命令介绍

物理硬盘就是存储介质,可以把磁盘磁盘分区、创建文件系统挂载,也可以直接初始化为物理卷,然后才能使用LVM的形式使用;

物理卷:PV–>physical volume;物理卷就是LVM的基本逻辑块,与物理存储介质比较,物理卷pv就具备LVM相关的管理参数;

卷组VG–>volume group:一个LVM卷组是有多个物理卷组成的

逻辑卷LV–>logical volume:需要建立在卷组之上;实际上系统使用的层面就是LV层面;

PE:PV物理卷中,可以分配的最小存储单元,PE的大小是可以指定的,默认的是4KB

LE:lv逻辑卷中可以分配的最小存储单元,在同一个卷组中,LV的大小和PE是相同的,并且一一对应;

计算机中有哪些最小存储单元?

  • 硬盘:最小的是扇区512字节–>这个是物理构造了
  • 文件系统:最小的是block(1k或者是4k)
    指定的方式:mkfs.ext4 -b 2048 /dev/sdb1
  • raid:chunk(512k)
    指定的方式:mdadm -C -v /dev/md5 -l 5 -n 3 -c 512 -x /dev/sde{1,2,3,4}
  • LVM:PE 4M
    指定的方式:vgcreate -s 4M vg1 /dev/sdb{1,2}

目前多数使用的情况

多个磁盘/分区–>做成raid–>然后做成物理卷(PV)–>然后组成卷组(VG)–>然后形成逻辑卷(LV)–>格式化–>挂载使用;

LVM的优点

1. 文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
2. 可以在系统运行的状态下动态的扩展文件系统的大小。
3. 可以增加新的磁盘到LVM的存储池中。
4. 可以以镜像的方式冗余重要的数据到多个物理磁盘。
5. 可以方便的导出整个卷组到另外一台机器。

LVM的缺点

1. 在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用)。
2. 当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
3. 因为加入了额外的操作,存贮性能受到影响。

2、LVM介绍

创建LVM步骤

正如上面所说,如果要使用LVM管理就必须创建物理卷(PV)卷组(VG)逻辑卷(LV)
第一步:需要先把硬盘格式化为PV
第二步:把多个PV放入卷组,形成大的卷组;
第三步:需要创建LV逻辑卷
最后一步:就是该挂载的挂载,该使用的使用;
创建LVM

第一步:创建分区(提前添加几块硬盘,随便几块都行,这里以一块为例)

#查看添加硬盘是否成功
[root@localhost ~]# ls /dev/sde
/dev/sde
#添加成功,接下来进行分区
[root@localhost ~]# fdisk /dev/sde
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
#这里我在这之前就已经分区了,实际上也就是按三下回车就行,第一下默认选择分区号为1,后两下默认选择所有剩余磁盘空间
Partition number (2-4, default 2): 
No free sectors available
#w保存并退出
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#再次检查是否成功
[root@localhost ~]# ls /dev/sde*
/dev/sde  /dev/sde1

第二步:创建物理卷

LVM的管理需要有物理卷、卷组,已经逻辑卷,所以创建号分区之后需要把分区创建为物理卷

pvcreate 空格 磁盘的位置及名称数字 #创建pv
pvscan --扫描pv
pvdisplay --显示pv
[root@localhost ~]# pvcreate /dev/sde1
  Physical volume "/dev/sde1" successfully created.
  #pvs查看简单信息
[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize    PFree   
  /dev/sde1     lvm2 ---  1023.00m 1023.00m
  #pvdisplay查看信息
[root@localhost ~]# pvdisplay查看详细信息,实际情况中可供需求选择
  "/dev/sde1" is a new physical volume of "1023.00 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/sde1
  VG Name               
  PV Size               1023.00 MiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               aBJTjz-EDZf-si1H-xAEv-dGOL-zMFV-iQECRU
第三步:创建卷组

接下来需要将创建号的物理卷组成一个卷组,方便后续扩容使用。

vgcreate 空格 vg的名称 空格 pv的名称 	#用pv创建vg
vgscan --扫描vg
vgdisplay --显示vg
#这里vg01是vg的名称,自己取名,后续需要使用
[root@localhost ~]# vgcreate vg01 /dev/sde1
  Volume group "vg01" successfully created
[root@localhost ~]# vgdisplay
  --- 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               1020.00 MiB
  PE Size               4.00 MiB
  Total PE              255
  Alloc PE / Size       0 / 0   
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               BaoYLc-rMvl-8THB-W3g5-vaZx-WixC-lNQjwV
第四步:创建逻辑卷

卷组创建成功后还需要创建lv,lv才是最后挂载使用的。

lvcreate 空格 -L 空格 +大小 空格 -n lv的名称 空格 vg的名称
	-L:指定具体的逻辑卷大小
	-n:指定逻辑卷的名称
lvscan	#这两个同上,就不多赘述了
lvdisplay
#同上,lv01为自己取名,后续需要使用
[root@localhost ~]# lvcreate -L 16M -n lv01 vg01
  Logical volume "lv01" created.
[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-a----- 16.00m
第五步:格式化逻辑卷并挂载
mkfs [.文件系统类型] 空格 lv的名称
vi 空格 /etc/fstab
源         挂载点 auto defaults 0 0
格式化,并创建文件系统,ext4
[root@localhost ~]# mkfs.ext4 /dev/vg01/lv01
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
4096 inodes, 16384 blocks
819 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=16777216
2 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
	8193

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
#创建挂载点
[root@localhost ~]# mkdir /mnt/lv01
#将创建好的逻辑卷挂载到挂载点
[root@localhost ~]# mount /dev/vg01/lv01 /mnt/lv01/
#写配置文件
[root@localhost ~]# vi /etc/fstab
#这是我按照我自己的格式写的,可以仿照这个格式来写
/dev/vg01/lv01                            /mnt/lv01               auto    defaults        0 0
#写完:wq保存并退出
#使配置文件生效
[root@localhost ~]# mount -a
#查看,可以发现有/dev/mapper/vg01-lv01,说明挂载成功
[root@localhost ~]# df
Filesystem            1K-blocks    Used Available Use% Mounted on
devtmpfs                 482100       0    482100   0% /dev
tmpfs                    497836       0    497836   0% /dev/shm
tmpfs                    497836    8712    489124   2% /run
tmpfs                    497836       0    497836   0% /sys/fs/cgroup
/dev/sda3              18555904 4381668  14174236  24% /
/dev/sda1                303780  155536    148244  52% /boot
tmpfs                     99568      36     99532   1% /run/user/0
/dev/sr0                4600876 4600876         0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg01-lv01     14839     268     13425   2% /mnt/lv01
[root@localhost ~]# 

以下的内容是作者上课记的一点笔记,因为我是新手,所以具体内容作者也不清楚,大家看个乐子吧。

使用逻辑卷
  • 挂载逻辑卷
  • 检查
    lost+found
    df
  • 扩展逻辑卷
    lvextend 空格 -L 空格 +大小 空格 lv的名称 (扩)
    lvreduce 空格 -L 空格 -大小 空格 lv的名称 (缩,不建议)
    resize2fs 逻辑卷的位置及名称
    xfs_groups 逻辑卷的位置及名称
  • 增删改查
  • 也可以扩充或缩减卷组
    vgextend 卷组的名称 物理卷的名称

本文参照CSDN博主「Liang_GaRy」的原创文章,原文链接:https://blog.csdn.net/Liang_GaRy/article/details/122315427
仅供自己学习使用,如需转载,请备注来源,欢迎大家交流学习。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值