【Linux】LVM逻辑分区管理

LVM 逻辑分区管理

查看是否识别了新的硬盘
操作磁盘分区,创建逻辑卷,挂载使用
扩展逻辑卷,删除逻辑卷
pv迁移,操作快照
实验:系统“/”空间不足

pv 物理卷(块设备)
存储系统最底层的存储单元,存储设备。

PE(physical extent)
每一个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

vg 卷组
将若干个物理卷pv组成一个整块的卷组,形成一个存储池。

lv 逻辑卷
逻辑卷建立在卷组VG之上,映射出来的存储,既逻辑卷LV之上可以建立文件系统。

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

  1. 由下图可看到,物理卷(PV)被由大小等同的基本单元PE组成。
    在这里插入图片描述
  2. 从下图可以看到, 一个卷组由一个或多个物理卷组成,并且PE和LE有着一一对应的关系。逻辑卷建立在卷组上。逻辑卷就相当于非LVM系统的磁盘分区,可以在其上创建文件系统。
    在这里插入图片描述
  3. 系统启动LVM时激活VG,并将VGDA【PV描述符、VG描述符、LV描述符、和一些PE描述符】加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。

最大特点: 实现在线热扩容,而在实际工作中,当发现储存的分区空间不够时,想再使用lvm已经来不及解决问题了,因为当pvcreate 一块分区时,分区里的内容会被格式化。

查看是否识别了新的硬盘

[root@host ~]# ll /dev/sd*     
如果不存在可以重启机器:reboot;当然如果是生产使用的机器,不方便重启机器,可以在线识别        
[root@host ~]# echo "- - -"> /sys/class/scsi_host/host0/scan   
如果还没有识别需要再继续执行host1,host2的   
[root@host ~]# echo "- - -"> /sys/class/scsi_host/host1/scan   
[root@host ~]# echo "- - -"> /sys/class/scsi_host/host2/scan  
[root@host ~]#lsblk

 

操作磁盘分区,创建逻辑卷,挂载使用

1. 查看磁盘信息
[root@host ~]# fdisk -l /dev/sdb
[root@host ~]# fdisk /dev/sdb
Command (m for help): n            ---m获取帮助信息,n建立一个新的分区
Command action
  e   extended
  p   primary partition (1-4)      ---指定分区类型  e为扩展分区   p为主分区
p

Partition number (1-4): 1           ---定义分区数量   --主分区最多只能有四个
First cylinder (1-2610, default 1): 1   ---设定起始分区的位置
Last cylinder or +size or +sizeM or +sizeK(1-2610, default 2610):
Using default value 2610            ---设定结束分区的位置2610
Command (m for help): w             ---保存刚才的配置信息


有时因为系统的分区表正忙,所以提示需要重新启动系统才能使新的分区表生效。
partprobe命令的作用是让系统内核重新读取分区表信息,这样就可以不用重新启动了。
[root@host ~]# partprobe 


2. 创建逻辑卷
[root@host ~]# pvcreate /dev/sdb1         ---分区磁盘空间
[root@host ~]# vgcreate vg_test  /dev/sdb1  ---起个卷组名为vg_test
[root@host ~]# lvcreate -L 200M -n lv_test vg_test   ---起个逻辑卷名为lv_test
也可以这么写[ 表示lv里有50个PE,一个PE是4M(默认值) ]
[root@host ~]# lvcreate -l 50 -n lv_test vg_test 


创建逻辑卷后必须格式化
[root@host ~]# mkfs.xfs  /dev/vg_test/lv_test

3. 进行开机挂载
[root@host ~]# blkid /dev/vg_test/lv_test      ##查看设备uuid
[root@host ~]# vim /etc/fstab
UUID=b4a7684f-6c85-43cd-81e6-a4f859f02bd8 /mnt xfs defaults 0 0
[root@host ~]# mount -a       ##检查fstab文件挂载书写是否正确

4. 挂载使用
[root@host ~]# mount /dev/vg_test/lv_test /mnt

扩展逻辑卷,删除逻辑卷

1. 物理卷(pvcreate创建的)空间够用[直接添加]
[root@host ~]# lvextend -L +200M /dev/vg_test/lv_test

同时也要进行扩展文件系统,同格式的
[root@host ~]# xfs_growfs /dev/vg_test/lv_test     ## xfs格式
[root@host ~]# resize2fs /dev/vg_test/lv_test      ## ext4格式


2. 物理存储空间不够用,加另一块存储磁盘,进行扩展文件系统,即可
[root@host ~]# pvcreate /dev/sdb2
[root@host ~]# vgextend vg_test /dev/sdb2
[root@host ~]# lvextend -l +100 /dev/vg_test/lv_test
[root@host ~]# xfs_growfs /dev/vg_test/lv_test

查看挂载使用情况
[root@host ~]# lsblk /dev/sdb
NAME                          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb                             8:16   0    5G  0 disk 
├─sdb1                          8:17   0  1.3G  0 part 
│ └─vg_data_sdb1-lv_data_sdb1 253:2    0    2G  0 lvm  /root/data_sdb1
├─sdb2                          8:18   0  1.3G  0 part 
│ └─vg_data_sdb1-lv_data_sdb1 253:2    0    2G  0 lvm  /root/data_sdb1
├─sdb3                          8:19   0  1.3G  0 part 
└─sdb4                          8:20   0  1.3G  0 part 



3. 进行逻辑卷删除,则取消该lv的所有配置。
[root@host ~]# lvremove /dev/vg_test/lv_test
[root@host ~]# vgremove vg_test
[root@host ~]# pvremove /dev/sdb1 /dev/sdb2

遇见问题:
[root@host ~]# lvremove /dev/vg_data_sdb1/lv_data_sdb1 
(在使用中)Logical volume vg_data_sdb1/lv_data_sdb1 contains a filesystem in use.

解决:
[root@host ~]# umount 挂载点


pv迁移,操作快照

1. pv迁移操作
[root@host ~]# pvcreate /dev/sdb2             #把/dev/sdb2加入物理卷 
[root@host ~]# vgextend vg_test /dev/sdb2     #把/dev/sdb2加入vg_test组 
[root@host ~]# pvmove /dev/sdb1 /dev/sdb2     #将sdb1内容拷贝到sdb2
[root@host ~]# vgreduce vg_test /dev/sdb1     #将sdb1移除vg_test组
[root@host ~]# pvremove /dev/sdb1


2. 创建快照,快照与lv同级(操作快照)
[root@host ~]# lvcreate -L 200M(快照大小一般小于等于lv) -n xxx(快照名字) -s /dev/vg_test/lv_test(以谁为基础创建快照)

3. 挂载快照
[root@host ~]# mount /dev/vg_test/xxx(快照名字) /mnt/data

4. 删除快照
[root@host ~]# lvremove /dev/vg_test/xxx(快照名字)

实验:系统“/”空间不足

1. 创建新的磁盘分区
[root@host ~]# parted /dev/sdb mklabel gpt
Warning(提示是否格式化磁盘): The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?

[root@host ~]# parted /dev/sdb mkpart p1 xfs 0% 50%
[root@host ~]# parted /dev/sdb mkpart p2 xfs 50% 100%

2. 重新加载/dev/sdb的分区
[root@host ~]# partx -a /dev/sdb

3. lvm逻辑卷,可在线扩容
[root@host ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.

[root@host ~]# vgdisplay          ---查看/分区的vg name
 --- Volume group ---
  VG Name               centos        
  
[root@host ~]# vgextend  centos /dev/sdb1
[root@host ~]# lvdisplay          ---查看/分区的lv name
 --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos

4. 扩容
[root@host ~]# lvextend -L +200M /dev/centos/root 

剩余可用大小使用pvdisplay查看
[root@host ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               cl
  PV Size               1023.00 MiB / not usable 3.00 MiB


5. 扩展成与/分区一样的文件系统(cat /etc/fstab)
[root@host ~]# xfs_growfs /dev/centos/root

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值