day26 lvm逻辑卷的学习

day26逻辑卷的学习

励志语录: 简单的欲望唾手可得,高级的欲望需要克制才可以得到。

1.为什么要学习逻辑卷

目的是:为了不关机而增大磁盘的容量

lvm:也是把多个硬盘,组成一个较大的硬盘,但特点是后续可以继续加入新的硬盘,这个逻辑组的容量的扩大啦,等于这个硬盘的容量就更大啦。

使用这个逻辑卷组500G+100G 
↓
获取部分的容量,化为一个逻辑卷(分区)
↓
逻辑卷进行格式化(分区进行格式化)
↓
挂载使用

但是如果你用了lvm,你可以将多个物理分区、抽象为一个逻辑卷组,并且这个逻辑卷组是可以动态扩容、缩容的。
当逻辑卷组容量不够了,只需要买新硬盘,通过命令再添加到这个指定的逻辑卷组中,可以在不停机的情况下,立即实现扩容,且被linux识别,那可是太舒服了。

2.什么是LVM

特别要记忆的名词

1. 物理卷  pv  -> 磁盘
2.卷组   VG  -> 多个磁盘组成的一个空间
3.逻辑卷  LV  -> 向逻辑卷组中拿出的一个空间

这个图片上*画圈*是要记忆的

我们在声明一次

1.PV:物理卷处于LVM的最底层,相当于磁盘

2.VG:卷组,建立在PV之上可以划分多个pv ,简单来说是多个磁盘组成的区域

3.LV: 逻辑卷,建立在VG之上可以动态的改变大小的分区

3.LVM的重点的名词

普通的磁盘
↓
格式化文件系统,block 
↓
挂载分区使用


lvm磁盘
↓
磁盘的格式化为pv 
↓
pv加入卷组vG 
↓
创建逻辑卷LV
↓
格式化文件的系统xfs ,逻辑卷
↓
最后用mount ,挂载使用

4.LVM的优点

1  可以跨多个磁盘
2	动态的扩展稳健的大小
3	保证数据的安全

5.LVM的常用的命令(重点)


5.1非常重要的命令

操作 pv(磁盘) vg(逻辑卷组) LV(逻辑卷)
列出(display) pvs vgs lvs
扩容(extend) vgextend lvextend
删除(remove) pvremove pvremove lvremove
改变(resize ) vgsize

5.2.PV命令这是有关磁盘的相关的命令

# 要进行lvm的操作
1. yum install lvm2  工具


[root@linux-yzk ~]# pvs   
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  <26.00g 4.00m
[root@linux-yzk ~]# 

pvscan
[root@client-242 ~]# pvscan 
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  PV /dev/sdb                       lvm2 [40.00 GiB]
  Total: 2 [<59.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [40.00 GiB]
[root@client-242 ~]# 


[root@client-242 ~]# pvdisplay 



1.准备好硬盘
/dev/sdb

2.对硬盘进行pv化,然后查看pv的信息

3.删除pv
[root@client-242 ~]# pvremove /dev/sdb
  Labels on physical volume "/dev/sdb" successfully wiped.

5.3vg命令

vgs 查看机器上现有的卷组信息


[root@linux-yzk ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <26.00g 4.00m
  
  
  [root@linux-yzk ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   27G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   26G  0 part 
  ├─centos-root 253:0    0 23.3G  0 lvm  /
  └─centos-swap 253:1    0  2.7G  0 lvm  [SWAP]

  
#可以看见只有一个逻辑卷组且来自于sda 

来一个案例

# 1.将2块硬盘sdb , sdc 创建为vg-yzk

#第一件事是磁盘的pv 化
[root@linux-yzk ~]# pvcreate /dev/sdb /dev/sdc
WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y
  Wiping dos signature on /dev/sdb.
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
[root@linux-yzk ~]# 


#第二件事是加入卷组
[root@linux-yzk ~]# vgcreate vg-yzk /dev/sdb /dev/sdc
  Volume group "vg-yzk" successfully created
[root@linux-yzk ~]# 


#第三件事是查看

[root@linux-yzk ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable

  Total PE              6655
  Alloc PE / Size       6654 / 25.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               MNtcVD-PcPj-hNFg-37TH-mDA9-k5dZ-b27fRl
   
  --- Volume group ---
  VG Name               vg-yzk
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable

  VG UUID               KXFDYr-Oepk-zhgA-s79K-vG1O-u7B7-yFX7lk
   
[root@linux-yzk ~]# 

#删除刚才创建的vg-yzk 的卷组
[root@linux-yzk ~]# vgremove vg-yzk
  Volume group "vg-yzk" successfully removed
[root@linux-yzk ~]# 

6.LV的命令

lv的参数选项
lvcreate 
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(PE个数)
-n 后面跟逻辑卷名 
-s 创建快照

# 查看当前机器的逻辑卷的信息
[root@linux-yzk ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 23.29g                                                    
  swap centos -wi-ao---- <2.70g                                                    
[root@linux-yzk ~]# 

# 根据卷组,创建逻辑卷

[root@linux-yzk ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  centos lvm2 a--  <26.00g  4.00m
  /dev/sdb          lvm2 ---   20.00g 20.00g
  /dev/sdc          lvm2 ---   20.00g 20.00g
[root@linux-yzk ~]# 
# 可以看见有两块pv 被我们创建的  sdb , sdc

# 2.然后我们创建卷组
[root@linux-yzk ~]# vgcreate  yzk /dev/sdb /dev/sdc
  Volume group "yzk" successfully created

#我们就创建了一个名字叫yzk的卷组

#3.创建lv并且设定一半容量
[root@linux-yzk ~]# lvcreate -n lv1 -l 50% yzk
  Specified % is unknown.
  Invalid argument for --extents: 50%
  Error during parsing of command line.
[root@linux-yzk ~]# lvcreate -n lv1 -l 50%VG  yzk
WARNING: xfs signature detected on /dev/yzk/lv1 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/yzk/lv1.
  Logical volume "lv1" created.
[root@linux-yzk ~]# 

#4.我们来查看
[root@linux-yzk ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao----  23.29g                                                    
  swap centos -wi-ao----  <2.70g                                                    
  lv1  yzk    -wi-a----- <20.00g                                                    
[root@linux-yzk ~]# 


#最后我们来删除lv
[root@linux-yzk ~]# lvremove /dev/yzk/lv1 
Do you really want to remove active logical volume yzk/lv1? [y/n]: y
  Logical volume "lv1" successfully removed
[root@linux-yzk ~]# 



lvm创建流程(重点)

要求

  • 使用2块硬盘,容量分别是30G,30G

  • 创建卷组,名字是vg0224

  • 创建3个lv,名字依次是0224-lv1,0224-lv2,0224-lv3,容量分别是10G,15G,25G

  • 3个逻辑卷,挂载点分别是/test1 /test2 /test3,文件系统分别是xfs、xfs、ext4

  • 要求分别查看3个逻辑卷的文件系统信息

  • 要求扩容0224-lv1,扩大到30G容量

1.安装lvm
yum install lvm2 -y

2.查看pv
[root@linux-yzk ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/sda2  centos lvm2 a--  <26.00g   4.00m
  /dev/sdb   yzk    lvm2 a--  <20.00g <20.00g
  /dev/sdc   yzk    lvm2 a--  <20.00g <20.00g
  
 4.创建vg sdb sdc创建为卷组,名字是 yzk
注意语法

[root@client-242 ~]# vgcreate yzk  /dev/sdb /dev/sdc
  Volume group "yzk" successfully created
[root@client-242 ~]# 
[root@client-242 ~]# 

5.查看vg 
[root@linux-yzk ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  centos   1   2   0 wz--n- <26.00g  4.00m
  yzk      2   0   0 wz--n-  39.99g 39.99g

6.查看lv 
[root@linux-yzk ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 23.29g                                                    
  swap centos -wi-ao---- <2.70g  
  
7.创建lv(创建分区) 
一个lv1 10G ,一个lv2 15G


[root@linux-yzk ~]# lvcreate -n lv1 -L 10G yzk
  Logical volume "lv1" created.
[root@linux-yzk ~]# lvcreate -n lv2 -L 15G yzk
  Logical volume "lv2" created.
[root@linux-yzk ~]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 23.29g                                                    
  swap centos -wi-ao---- <2.70g                                                    
  lv1  yzk    -wi-a----- 10.00g                                                    
  lv2  yzk    -wi-a----- 15.00g                                                    
[root@linux-yzk ~]# 


# 查看/dev/卷组/

[root@linux-yzk ~]# ls /dev/yzk
lv1  lv2
[root@linux-yzk ~]# 



# 格式化稳健的系统
[root@client-242 ~]# mkfs.xfs /dev/yzk/lv1

[root@client-242 ~]# mkfs.ext4 /dev/yzk/lv2


# 挂载lv

[root@linux-yzk ~]# mount /dev/yzk/lv1 /t1
[root@linux-yzk ~]# mount /dev/yzk/lv2 /t2



#查看挂载
[root@linux-yzk ~]# mount -l | grep t[1-2]
/dev/mapper/yzk-lv1 on /t1 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/mapper/yzk-lv2 on /t2 type ext4 (rw,relatime,seclabel,data=ordered)
[root@linux-yzk ~]# 



[root@linux-yzk ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.7G     0  1.7G    0% /dev
tmpfs                    1.8G     0  1.8G    0% /dev/shm
tmpfs                    1.8G   13M  1.7G    1% /run
tmpfs                    1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/mapper/centos-root   24G  6.3G   18G   27% /
/dev/sda1               1014M  241M  774M   24% /boot
tmpfs                    351M   12K  351M    1% /run/user/42
tmpfs                    351M     0  351M    0% /run/user/0
/dev/mapper/yzk-lv1       10G   33M   10G    1% /t1
/dev/mapper/yzk-lv2       15G   41M   14G    1% /t2
[root@linux-yzk ~]# 



15.开机自动挂载
一定切记,如果你的设备发生了变化,一定要去修改/etc/fstab
否则系统开机,读取该fstab文件,找不到设备,无法正确挂载就会报错
进入紧急模式,直到你再次修复fstab文件
重启即可

把t1 t2设置为开机自动挂载
[root@client-242 ~]# tail -2 /etc/fstab 
UUID="04fda700-511c-43d4-ae9a-d87d72ee7175"  /t1  xfs  defaults 0 0 
/dev/mapper/vg1--0224-lv2 /t2  ext4  defaults 0 0 




16.重启
reboot

LVM的扩容(重点)

先查看当前机器的lv情况,确定你要扩容的设备
[root@client-242 ~]# df -h |grep t2
/dev/mapper/vg1--0224-lv2  9.8G   37M  9.2G   1% /t2

扩容到20G需求
1. 你的卷组,容量还够不够
2. 卷组容量不够,加新硬盘,再次pv化,加入卷组就好了

方案1,卷组容量够

1.确认vg够不够
[root@client-242 ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  centos     1   2   0 wz--n- <19.00g     0 
  vg1-0224   2   2   0 wz--n-  59.99g 29.99g


2.确认够用,直接lvextend扩容lv逻辑卷即可
给lv2增加10G
[root@client-242 ~]# lvextend -L +10G  /dev/vg1-0224/lv2
  Size of logical volume vg1-0224/lv2 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
  Logical volume vg1-0224/lv2 successfully resized.
[root@client-242 ~]# 
[root@client-242 ~]# 
[root@client-242 ~]# lvs
  LV   VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos   -wi-ao---- <17.00g                                                    
  swap centos   -wi-ao----   2.00g                                                    
  lv1  vg1-0224 -wi-ao----  20.00g                                                    
  lv2  vg1-0224 -wi-ao----  20.00g      
  
  
用法2,直接,调整到25G大小
[root@client-242 ~]# lvextend -L 25G /dev/vg1-0224/lv2
  Size of logical volume vg1-0224/lv2 changed from 20.00 GiB (5120 extents) to 25.00 GiB (6400 extents).
  Logical volume vg1-0224/lv2 successfully resized.
[root@client-242 ~]# 
[root@client-242 ~]# lvs
  LV   VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos   -wi-ao---- <17.00g                                                    
  swap centos   -wi-ao----   2.00g                                                    
  lv1  vg1-0224 -wi-ao----  20.00g                                                    
  lv2  vg1-0224 -wi-ao----  25.00g      

3.虽然你调整了 lv2逻辑卷的大小,但是文件系统它不知道,你得告诉文件系统,也跟着调整分区的容量,以及重新设置block的数量

ext4文件系统,使用resize2fs命令
xfs文件系统,使用xfs_growfs调整大小


4.调整lv ext4文件系统的大小
[root@client-242 ~]# resize2fs /dev/mapper/vg1--0224-lv2
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg1--0224-lv2 is mounted on /t2; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/mapper/vg1--0224-lv2 is now 6553600 blocks long.



[root@client-242 ~]# df -hT
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   xfs        17G  1.6G   16G   9% /
devtmpfs                  devtmpfs  899M     0  899M   0% /dev
tmpfs                     tmpfs     911M     0  911M   0% /dev/shm
tmpfs                     tmpfs     911M  9.6M  902M   2% /run
tmpfs                     tmpfs     911M     0  911M   0% /sys/fs/cgroup
/dev/sda1                 xfs      1014M  142M  873M  14% /boot
/dev/mapper/vg1--0224-lv1 xfs        20G   33M   20G   1% /t1
/dev/mapper/vg1--0224-lv2 ext4       25G   44M   24G   1% /t2
tmpfs                     tmpfs     183M     0  183M   0% /run/user/0
[root@client-242 ~]# 


5.调整lv1的文件系统,调整到50G

看看卷组还剩下多少,不够用了,就得扩大卷组了
[root@client-242 ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  centos     1   2   0 wz--n- <19.00g     0 
  vg1-0224   2   2   0 wz--n-  59.99g 14.99g
[root@client-242 ~]# 
[root@client-242 ~]# 


情况2,卷组容量不够了

1.创建新物理卷,pv
步骤
关机、添加硬盘,开机
添加一个50G硬盘
[root@client-242 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc  /dev/sdd

给硬盘pv化
[root@client-242 ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created.

2.查看pv
pvs


3.查看vg
vgs

[root@client-242 ~]# pvs
  PV         VG       Fmt  Attr PSize   PFree 
  /dev/sda2  centos   lvm2 a--  <19.00g     0 
  /dev/sdb   vg1-0224 lvm2 a--  <40.00g     0 
  /dev/sdc   vg1-0224 lvm2 a--  <20.00g 14.99g
  /dev/sdd            lvm2 ---   50.00g 50.00g
[root@client-242 ~]# 
[root@client-242 ~]# 
[root@client-242 ~]# vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  centos     1   2   0 wz--n- <19.00g     0 
  vg1-0224   2   2   0 wz--n-  59.99g 14.99g


4.vg扩容

[root@client-242 ~]# 
[root@client-242 ~]# vgextend vg1-0224  /dev/sdd
  Volume group "vg1-0224" successfully extended
[root@client-242 ~]# 
[root@client-242 ~]# vgs
  VG       #PV #LV #SN Attr   VSize    VFree  
  centos     1   2   0 wz--n-  <19.00g      0 
  vg1-0224   3   2   0 wz--n- <109.99g <64.99g


5.再次查看vg
[root@client-242 ~]# vgs
  VG       #PV #LV #SN Attr   VSize    VFree  
  centos     1   2   0 wz--n-  <19.00g      0 
  vg1-0224   3   2   0 wz--n- <109.99g <64.99g





6.扩容lv

[root@client-242 ~]# 
[root@client-242 ~]# lvextend -L 50G /dev/vg1-0224/lv1
  Size of logical volume vg1-0224/lv1 changed from 20.00 GiB (5120 extents) to 50.00 GiB (12800 extents).
  Logical volume vg1-0224/lv1 successfully resized.
[root@client-242 ~]# 
[root@client-242 ~]# 
[root@client-242 ~]# 




7.再次查看lv

[root@client-242 ~]# 
[root@client-242 ~]# lvs
  LV   VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos   -wi-ao---- <17.00g                                                    
  swap centos   -wi-ao----   2.00g                                                    
  lv1  vg1-0224 -wi-ao----  50.00g                                                    
  lv2  vg1-0224 -wi-ao----  25.00g                                                    
[root@client-242 ~]# 




8.调整xfs文件系统
[root@client-242 ~]# xfs_growfs /t1
meta-data=/dev/mapper/vg1--0224-lv1 isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=5242880, 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 5242880 to 13107200




9.查看磁盘挂载容量情况
[root@client-242 ~]# 
[root@client-242 ~]# df -hT
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   xfs        17G  1.6G   16G   9% /
devtmpfs                  devtmpfs  899M     0  899M   0% /dev
tmpfs                     tmpfs     911M     0  911M   0% /dev/shm
tmpfs                     tmpfs     911M  9.6M  902M   2% /run
tmpfs                     tmpfs     911M     0  911M   0% /sys/fs/cgroup
/dev/sda1                 xfs      1014M  142M  873M  14% /boot
/dev/mapper/vg1--0224-lv1 xfs        50G   33M   50G   1% /t1
/dev/mapper/vg1--0224-lv2 ext4       25G   44M   24G   1% /t2
tmpfs                     tmpfs     183M     0  183M   0% /run/user/0
[root@client-242 ~]# 
[root@client-242 ~]# 


删除lvm

严谨考虑,确保别出问题

删除lvm

1.考虑/etc/fstab,清除开机自动挂载的配置

2.取消挂载
[root@client-242 ~]# umount /t1
[root@client-242 ~]# umount /t2


3.依次删除lvm的组件
[root@client-242 ~]# 
[root@client-242 ~]# lvremove /dev/vg1-0224/lv1
Do you really want to remove active logical volume vg1-0224/lv1? [y/n]: y
  Logical volume "lv1" successfully removed
[root@client-242 ~]# 
[root@client-242 ~]# lvremove /dev/vg1-0224/lv2
Do you really want to remove active logical volume vg1-0224/lv2? [y/n]: y
  Logical volume "lv2" successfully removed
[root@client-242 ~]# 

删除vg
[root@client-242 ~]# vgremove vg1-0224
  Volume group "vg1-0224" successfully removed
[root@client-242 ~]# 
[root@client-242 ~]# 
[root@client-242 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.00g    0 


删除pv,还原磁盘原本类型
[root@client-242 ~]# 
[root@client-242 ~]# pvremove /dev/sdb /dev/sdc /dev/sdd
  Labels on physical volume "/dev/sdb" successfully wiped.
  Labels on physical volume "/dev/sdc" successfully wiped.
  Labels on physical volume "/dev/sdd" successfully wiped.
[root@client-242 ~]# 


最后,磁盘就还原为了不可动态调整的磁盘了,你可以格式化后,挂载使用该设备
[root@client-242 ~]# mount /dev/sdd /t1
[root@client-242 ~]# 
[root@client-242 ~]# df -hT
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        17G  1.6G   16G   9% /
devtmpfs                devtmpfs  899M     0  899M   0% /dev
tmpfs                   tmpfs     911M     0  911M   0% /dev/shm
tmpfs                   tmpfs     911M  9.6M  902M   2% /run
tmpfs                   tmpfs     911M     0  911M   0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  142M  873M  14% /boot
tmpfs                   tmpfs     183M     0  183M   0% /run/user/0
/dev/sdd                xfs        50G   33M   50G   1% /t1
[root@client-242 ~]# 



posted @ 2025-03-12 20:51  国家一级冲浪yzk  阅读(18)  评论(0)    收藏  举报