lvm动态调整空间使用

 

lvm优点:
(1)lvm的文件系统可以跨越多个磁盘,分区大小不受磁盘容量限制
(2)可以在系统运行中,直接动态扩容文件系统大小
(3)可以直接增加新的硬盘,到lvm的vg卷组中

 

lvm的创建流程:

1、物理分区阶段,针对物理磁盘或者分区,进行fdisk格式化,修改系统的id,默认是83,改为8e类型,是lvm类型

2、PV阶段,通过pvcreate、pvdisplay将linux分区改为物理卷PV

3、创建VG阶段,通过vgcreate、vgdisplay,将创建好的物理卷PV改为物理卷组VG

4、创建LV,通过lvcreate,将卷组分为若干个逻辑卷

 

 

 

 

 

转换为命令操作:

1、fdisk修改系统id

2、pvcreate,创建PV,以及显示PV信息 pvdisplay ,也可以直接输入pvs查看简单的信息

3、创建VG卷组,vgcreate;vgs显示卷组信息

4、创建lv逻辑卷,lvcreate;lvs,显示逻辑卷组信息

5、开始格式化文件系统,使用lv分区

 

lvm管理的常见命令:

pv物理卷

  pvcreate:创建物理卷  

  pvscan:扫描物理卷信息

  pvdisplay:显示各个物理卷详细参数

  pvremove:删除物理卷

 

vg卷组

  vgcreate:创建卷组

  vgscan:扫描卷组信息

  vgdisplay:显示各个卷组详细参数

  vgremove:删除卷组

  vgreduce:缩小卷组,把物理卷从卷组中移除

  vgextend:扩大卷组,把某个新的物理卷加入到卷组中

 

lv逻辑卷

  lvcreate:创建卷组

  lvscan:扫描卷组信息

  lvdisplay:显示各个卷组详细参数

  lvremove:删除卷组

  lvreduce:缩小卷组,把物理卷从卷组中移除

  lvextend:扩大卷组,把某个新的物理卷加入到卷组中

 

 

 

实际创建lvm

挑选/dev/sdb、/dev/sdc两块硬盘,创建物理卷,然后添加之卷组

 

1、创建pv

 

[root@WALKER ~]# pvcreate /dev/sdb /dev/sdc
WARNING: ext4 signature detected on /dev/sdb at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb.
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@WALKER ~]#

 

2、创建卷组

 

[root@WALKER ~]# vgcreate vg1 /dev/sdb /dev/sdc
  Volume group "vg1" successfully created
[root@WALKER ~]#

 

 

 

 

3、我们可以扫描一下,看看详细信息

 

[root@WALKER ~]# pvscan(pvs/pvdisplay)
  PV /dev/sdb    VG vg1             lvm2 [<20.00 GiB / <20.00 GiB free]
  PV /dev/sdc    VG vg1             lvm2 [<10.00 GiB / <10.00 GiB free]
  PV /dev/sda2   VG centos_walker   lvm2 [<29.00 GiB / 0    free]
  Total: 3 [<58.99 GiB] / in use: 3 [<58.99 GiB] / in no VG: 0 [0   ]
[root@WALKER ~]# vgscan(vgs/vgdisplay)
  Reading volume groups from cache.
  Found volume group "vg1" using metadata type lvm2
  Found volume group "centos_walker" using metadata type lvm2
[root@WALKER ~]#

 

4、尝试扩容,扩大vg卷组

 

第一步:把新的硬盘创建物理卷

[root@WALKER ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created.

 

第二步:检查一下物理卷的信息

[root@WALKER ~]# pvs
  PV         VG            Fmt  Attr PSize   PFree  
  /dev/sda2  centos_walker lvm2 a--  <29.00g      0
  /dev/sdb   vg1           lvm2 a--  <20.00g <20.00g
  /dev/sdc   vg1           lvm2 a--  <10.00g <10.00g
  /dev/sdd                 lvm2 ---   10.00g  10.00g

 

第三步:把新创建的物理卷扩容到vg1中

[root@WALKER ~]# vgextend vg1 /dev/sdd
  Volume group "vg1" successfully extended
[root@WALKER ~]#

 

 

 

 

 

5、显示一下卷组的信息

 

[root@WALKER ~]# vgdisplay |grep 'VG Size'
  VG Size               <39.99 GiB
[root@WALKER ~]#

 

6、还可以缩小卷组的大小

[root@WALKER ~]# vgreduce vg1 /dev/sdd
  Removed "/dev/sdd" from volume group "vg1"
[root@WALKER ~]#

 

7、删除/dev/sdd的物理卷

[root@WALKER ~]# pvremove /dev/sdd
  Labels on physical volume "/dev/sdd" successfully wiped.
[root@WALKER ~]#
[root@WALKER ~]# pvs
  PV         VG            Fmt  Attr PSize   PFree  
  /dev/sda2  centos_walker lvm2 a--  <29.00g      0
  /dev/sdb   vg1           lvm2 a--  <20.00g <20.00g
  /dev/sdc   vg1           lvm2 a--  <10.00g <10.00g

(没有/dev/sdd信息了!)
[root@WALKER ~]#


 

8、使用此时的卷组,创建逻辑卷

 

[root@WALKER ~]# lvcreate -n lv1 -L +500M vg1
WARNING: swap signature detected on /dev/vg1/lv1 at offset 4086. Wipe it? [y/n]: y
  Wiping swap signature on /dev/vg1/lv1.
  Logical volume "lv1" created.

 

 

 

 

 

9、检查lv的信息

[root@WALKER ~]# lvs
  LV   VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos_walker -wi-ao---- <26.00g                                                    
  swap centos_walker -wi-ao----   3.00g                                                    
  lv1  vg1           -wi-a----- 500.00m                                                    
[root@WALKER ~]#

 

 

10、对刚创建的lv1逻辑卷进行格式化文件系统

[root@WALKER ~]# mkfs.xfs  /dev/vg1/lv1
meta-data=/dev/vg1/lv1           isize=512    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@WALKER ~]# lsblk -f
NAME                   FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                       
├─sda1                 xfs                         e7079a82-b3e5-460a-b14c-f7f1893ba0b8   /boot
└─sda2                 LVM2_member                 ifp8oe-aibY-2R0x-OXX5-nxsx-5arK-ofVn4N
  ├─centos_walker-root xfs                         67259b70-f702-47b4-97ac-34d696b74606   /
  └─centos_walker-swap swap                        f06310bf-bd56-4ffa-9dd3-fc9cd78133da   [SWAP]
sdb                    LVM2_member                 ovTmhn-Zdsl-uWFe-03Fx-N9Tt-1dPs-sUiQUo
└─vg1-lv1              xfs                         5024f810-7262-4862-8854-23536de32d4a   
sdc                    LVM2_member                 fyyM3Q-HzPV-fH1N-KCcV-XMD8-RTAa-UVBlfh
sdd                                                                                       
sde                                                                                       
sdf                                                                                       
sr0                    iso9660     CentOS 7 x86_64 2020-04-22-00-54-00-00                 
[root@WALKER ~]#

 

11、向lv1逻辑卷中,进行挂载以及数据写入(就可以当做一个普通分区来使用了)

[root@WALKER ~]# mkdir /test_lv1
[root@WALKER ~]# mount /dev/vg1/lv1 /test_lv1/
[root@WALKER ~]# df -hT
文件系统                       类型      容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1            xfs       497M   26M  472M    6% /test_lv1
[root@WALKER ~]#

 

 

将挂载的信息写入开机自动挂载文件中,以后就不需要每次挂载了

[root@WALKER test_lv1]# vim /etc/fstab
[root@WALKER test_lv1]# tail -1 /etc/fstab
/dev/vg1/lv1 /test_lv1 xfs defaults 0 0
[root@WALKER test_lv1]# mount -a读取fstab文件中的信息

 

12、向磁盘中写入数据,查看磁盘容量

 

[root@WALKER ~]# cd /test_lv1/
[root@WALKER test_lv1]# ls
test.txt
[root@WALKER test_lv1]# cp test.txt test1.txt
[root@WALKER test_lv1]# cp test.txt test.txt.2
[root@WALKER test_lv1]# cp test.txt test.txt.3
[root@WALKER test_lv1]# cp test.txt test.txt.4
[root@WALKER test_lv1]# cp test.txt test.txt.5
[root@WALKER test_lv1]# df -hT
文件系统                           类型      容量    已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1            xfs       497M   65M  432M   14% /test_lv1
[root@WALKER test_lv1]#

 

13、针对lv逻辑卷的扩容操作,只要卷组中的容量够用,就可以针对lv逻辑卷扩容

第一步:先卸载lv的设备

  [root@WALKER /]# umount /test_lv1

第二步:命令扩容逻辑卷的大小

  [root@WALKER /]# lvextend -L +10G /dev/vg1/lv1
    Size of logical volume vg1/lv1 changed from 500.00 MiB (125 extents) to <10.49 GiB (2685 extents).
    Logical volume vg1/lv1 successfully resized.
  [root@WALKER /]#

第三步:挂载逻辑卷开始使用

[root@WALKER /]# mount /dev/vg1/lv1 /test_lv1/
[root@WALKER /]#

14、还得调整xfs文件系统的大小

[root@WALKER /]# xfs_growfs //dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1    isize=512    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 128000 to 2749440

[root@WALKER /]# df -hT |grep lv1
/dev/mapper/vg1-lv1            xfs        11G   69M   11G    1% /test_lv1
[root@WALKER /]#

 

15、当你不想用lv之后,删除逻辑卷

第一步:卸载设备

[root@WALKER /]# umount /test_lv1
[root@WALKER /]#

第二步:删除逻辑卷
[root@WALKER /]# lvremove /dev/vg1/lv1
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
  Logical volume "lv1" successfully removed
[root@WALKER /]#

 

第三步:删除卷组

[root@WALKER /]# vgremove vg1
  Volume group "vg1" successfully removed
[root@WALKER /]#

 

第四步:删除物理卷设备

[root@WALKER /]# pvremove /dev/sdb /dev/sdc
  Labels on physical volume "/dev/sdb" successfully wiped.
  Labels on physical volume "/dev/sdc" successfully wiped.
[root@WALKER /]#

最后一步:检查所有的lv信息

pvs

vgs

lvs

如果均没有相关信息,就表示lvm彻底删除了

 

posted @ 2022-05-22 20:23  屯子里唯一的架构师  阅读(259)  评论(0编辑  收藏  举报