Linux-LVM

LVM管理
一、简介:
逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。

二、逻辑卷管理
1、相关概念
pv:physical volume 物理卷
vg:volume group 卷组
lv:logical volume 逻辑卷
注意:一个或者多个物理卷(pv)组成卷组(vg),然后卷组(vg)中可以划分多个逻辑卷(lv),逻辑卷(lv)格式化并挂载后供用户使用。在扩容的时候,如果是卷组(vg)中空间不足,需要先扩展卷组(vg)大小,然后再扩展逻辑卷(lv)大小,最后扩展文件系统大小。在缩容的时候,需要先将要缩容的目录umount掉,然后检查逻辑卷(lv)是否正常,再在文件系统层面缩容,lv层面缩容。

温馨提示:缩容有风险,操作需谨慎!!!

2、pv管理
创建pv: pvcreate /dev/sdc
删除pv: pvremove /dev/sdc
查看pv: pvs/pvdisplay

[root@linux1 cron]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created.
[root@linux1 cron]# pvs
  PV         VG     Fmt  Attr PSize  PFree 
  /dev/sda2  centos lvm2 a--  49.80g     0 
  /dev/sdc          lvm2 ---  20.00g 20.00g
[root@linux1 cron]# pvdisplay
  --- Physical volume ---
  "/dev/sdc" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               bhkm5q-Zlnh-AywU-1rwP-3Lcu-5Kr8-TtgNHf
   
[root@linux1 cron]# pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped.
[root@linux1 cron]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  49.80g    0 

3、vg管理
创建vg:vgcreate vg_name pv_name [pv_name…]
扩展vg:vgextend vg_name pv_name
缩减vg:vgreduce vg_name pv_name
删除vg:vgremove vg_name
查看vg:vgs/vgdisplay

-------------查看当前的pv,只有一个pv,是系统用的-----------
[root@linux1 cron]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  49.80g    0 
  
-------------创建2个pv,/dev/sdb和/dev/sdc,供vg使用-----------
[root@linux1 cron]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
[root@linux1 cron]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created.
[root@linux1 cron]# 

------------创建vg,名字为myvg,包括/dev/sdb和/dev/sdc两个pv--------
[root@linux1 cron]# vgcreate myvg /dev/sdb /dev/sdc
  Volume group "myvg" successfully created
 
 -------------使用vgs查看vg,上一步创建的vg,大小40G----------
[root@linux1 cron]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n- 49.80g     0 
  myvg     2   0   0 wz--n- 39.99g 39.99g

----------/dev/sdc从myvg中移除-----------
[root@linux1 cron]# vgreduce myvg /dev/sdc
  Removed "/dev/sdc" from volume group "myvg"

---------移除后再次查看,vg大小变成了20G-----------
[root@linux1 cron]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n-  49.80g      0 
  myvg     1   0   0 wz--n- <20.00g <20.00g

---------/dev/sdc重新加入vg中,查看vg大小为40G-------
[root@linux1 cron]# vgextend myvg /dev/sdc
  Volume group "myvg" successfully extended
[root@linux1 cron]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n- 49.80g     0 
  myvg     2   0   0 wz--n- 39.99g 39.99g

---------使用vgdisplay查看vg详细信息----------
[root@linux1 cron]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               49.80 GiB
  PE Size               4.00 MiB
  Total PE              12749
  Alloc PE / Size       12749 / 49.80 GiB
  Free  PE / Size       0 / 0   
  VG UUID               zSA0xb-7zzu-YyKp-z3iT-6fcV-NGtc-8FYC5j
   
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       0 / 0   
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               NbLOCd-fTk1-prWB-Obew-aJ7z-M54W-MLglcs
   
[root@linux1 cron]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  centos   1   2   0 wz--n- 49.80g     0 
  myvg     2   0   0 wz--n- 39.99g 39.99g

----------使用vgremove删除vg,删除后使用vgs查看,发现vg已经不存在---------
[root@linux1 cron]# vgremove myvg
  Volume group "myvg" successfully removed
[root@linux1 cron]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- 49.80g    0 

4、lv管理
创建lv:
  lvcreate -L #[mGT] -n lv_name vg_name
  示例:lvcreate -L 2G -n mylv myvg
扩展lv:
  lv层扩展:lvextend -L [+]#[MmGgTt] lv_name
  示例:lvextend -L +1G mylv
  文件层扩展:
   resize2fs /dev/vg_name/lv_name (ext文件系统用这个命令)
   xfs_growfs /dev/vg_name/lv_name (xfs文件系统用这个命令)

缩减lv:
  卸载目录: umount /dev/vg_name/lv_name
  检查lv:e2fsck -f /dev/vg_name/lv_name
  文件层面resize:resize2fs /dev/vg_name/lv_name #[mMgGtT]
  lv层面resize: lvreduce -L [-]#[MmGgTt] lv_name,例如:lvreduce -L -1G mylv
删除lv:lvremove /dev/vg_name/lv_name
查看lv:lvs/lvdisplay

---------------创建2个lv,名为mylv1和mylv2-----------------
[root@linux1 cron]# lvcreate -L 2G -n mylv1 myvg
  Logical volume "mylv1" created.
[root@linux1 cron]# lvcreate -L 1G -n mylv2 myvg
  Logical volume "mylv2" created.

---------------使用lvs查看上一步创建的lv------------------
[root@linux1 cron]# lvs
  LV    VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root  centos -wi-ao---- 45.89g                                                    
  swap  centos -wi-ao---- <3.91g                                                    
  mylv1 myvg   -wi-a-----  2.00g                                                    
  mylv2 myvg   -wi-a-----  1.00g          

------------格式化mylv1为ext4格式------------                                          
[root@linux1 cron]# mkfs.ext4 /dev/myvg/mylv1 
mke2fs 1.42.9 (28-Dec-2013)
......
Writing superblocks and filesystem accounting information: done 

------------格式化mylv2为xfs格式------------     
[root@linux1 cron]# mkfs.xfs /dev/myvg/mylv2 
......
realtime =none                   extsz=4096   blocks=0, rtextents=0

------------分别挂载两个lv,开始使用------------     
[root@linux1 cron]# mount /dev/myvg/mylv1 /lv1
[root@linux1 cron]# mount /dev/myvg/mylv2 /lv2
[root@linux1 /]# echo "lv1" > /lv1/lv1
[root@linux1 /]# echo "lv2" > /lv2/lv2
[root@linux1 /]# cat /lv1/lv1 
lv1
[root@linux1 /]# cat /lv2/lv2 
lv2

-----------------挂载后查看目录大小---------------
[root@linux1 /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.4G     0  1.4G   0% /dev
tmpfs                    1.4G     0  1.4G   0% /dev/shm
tmpfs                    1.4G  9.6M  1.4G   1% /run
tmpfs                    1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/mapper/centos-root   46G   34G   12G  75% /
/dev/sda1                197M  130M   68M  66% /boot
/dev/mapper/myvg-mylv1   2.0G  6.1M  1.8G   1% /lv1
/dev/mapper/myvg-mylv2  1014M   33M  982M   4% /lv2

---------------分别扩展mylv1和mylv2----------------
[root@linux1 /]# lvextend -L +1G /dev/myvg/mylv1 
  Size of logical volume myvg/mylv1 changed from 2.00 GiB (512 extents) to 3.00 GiB (768 extents).
  Logical volume myvg/mylv1 successfully resized.
[root@linux1 /]# lvextend -L +3G /dev/myvg/mylv2
  Size of logical volume myvg/mylv2 changed from 1.00 GiB (256 extents) to 4.00 GiB (1024 extents).
  Logical volume myvg/mylv2 successfully resized.

---------再次查看目录大小,可以发现仅lv层面扩展后,目录大小没变化-----------
[root@linux1 /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.4G     0  1.4G   0% /dev
tmpfs                    1.4G     0  1.4G   0% /dev/shm
tmpfs                    1.4G  9.6M  1.4G   1% /run
tmpfs                    1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/mapper/centos-root   46G   34G   12G  75% /
/dev/sda1                197M  130M   68M  66% /boot
/dev/mapper/myvg-mylv1   2.0G  6.1M  1.8G   1% /lv1
/dev/mapper/myvg-mylv2  1014M   33M  982M   4% /lv2

----------文件系统层面扩展大小(ext4格式)------------------
[root@linux1 /]# resize2fs /dev/myvg/mylv1 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv1 is mounted on /lv1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/myvg/mylv1 is now 786432 blocks long.

----------文件系统层面扩展大小(xfs格式)------------------
[root@linux1 /]# xfs_growfs /dev/myvg/mylv2 
meta-data=/dev/mapper/myvg-mylv2 isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=262144, 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 262144 to 1048576

------------文件系统层面扩展完成后再次查看目录大小,发现目录已经扩展-------
[root@linux1 /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.4G     0  1.4G   0% /dev
tmpfs                    1.4G     0  1.4G   0% /dev/shm
tmpfs                    1.4G  9.6M  1.4G   1% /run
tmpfs                    1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/mapper/centos-root   46G   34G   12G  75% /
/dev/sda1                197M  130M   68M  66% /boot
/dev/mapper/myvg-mylv1   2.9G  6.1M  2.8G   1% /lv1
/dev/mapper/myvg-mylv2   4.0G   33M  4.0G   1% /lv2
[root@linux1 /]# 

-----------再次查看之前目录下的文件,内容正常可查看----------
[root@linux1 /]# cat /lv1/lv1 
lv1
[root@linux1 /]# cat /lv2/lv2 
lv2
[root@linux1 /]# 

---------------ext4文件格式缩容---------------
[root@linux1 /]# umount /lv1   --卸载
[root@linux1 /]# e2fsck -f /dev/myvg/mylv1   --检查 
............
/dev/myvg/mylv1: 12/196608 files (0.0% non-contiguous), 30269/786432 blocks

------------------系统层面缩容------------------
[root@linux1 /]# resize2fs /dev/myvg/mylv1 1G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv1 to 262144 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 262144 blocks long.

------------------lv层面缩容------------------
[root@linux1 /]# lvreduce -L 1G /dev/myvg/mylv1 
  WARNING: Reducing active logical volume to 1.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv1? [y/n]: y
  Size of logical volume myvg/mylv1 changed from 3.00 GiB (768 extents) to 1.00 GiB (256 extents).
  Logical volume myvg/mylv1 successfully resized.

-----------缩容后查看lv大小,发现已经缩小-------------
[root@linux1 /]# lvs
  LV    VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root  centos -wi-ao---- 45.89g                                                    
  swap  centos -wi-ao---- <3.91g                                                    
  mylv1 myvg   -wi-a-----  1.00g                                                    
  mylv2 myvg   -wi-ao----  4.00g        

-------------再次挂载目录,查看之前的文件是否正常----------                                            
[root@linux1 /]# mount /dev/myvg/mylv1 /lv1/
[root@linux1 /]# cat /lv1/lv1 
lv1

---------------删除mylv1和mylv2-----------------
[root@linux1 /]# lvremove /dev/myvg/mylv1
Do you really want to remove active logical volume myvg/mylv1? [y/n]: y
  Logical volume "mylv1" successfully removed
[root@linux1 /]# lvremove /dev/myvg/mylv2 
Do you really want to remove active logical volume myvg/mylv2? [y/n]: y
  Logical volume "mylv2" successfully removed

------------再次使用lvs查看,发现mylv1和mylv2已经被删除------------
[root@linux1 /]# lvs
  LV   VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- 45.89g                                                    
  swap centos -wi-ao---- <3.91g                                                    
[root@linux1 /]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值