linux的lvm磁盘管理,LVM 磁盘管理器的应用

1、LVM简介

LVM(LogicalVolume Manager),中文翻译过来叫逻辑卷管理员,台湾的有些教材上翻译成逻辑滚动条管理员。最初由IBM在AIX实现,后来由Mauelshagen在Linux上实现,现在已经是Linux的一部分。

LVM为系统中大容量分区提供了一种更有弹性的解决方案。一般来说,我们在安装系统的时候,会按照一定的比例,并结合自己的使用经验,给各个分区划分恰当的容量。但是,随着系统在实际生产环境中不断运行,我们发现某些分区的容量并不能满足我们的需求。尽管我们可以通过某些方法解决这些问题(比如创建连接),但是这些方法还是不够优雅。于是LVM就出现了。LVM是一种抽象化存储技术,它在硬盘的分区之上,又创建一个逻辑层,以方便对硬盘分区系统进行管理。

75925294f2d5be8b6992bdc1b4ca94dc.png

2、LVM中经常会遇到的名词

PV:物理卷,可以是独立的磁盘分区系统或者是RAID也可以。物理卷可以不依赖于LVM系统而独立存在。

VG:卷组,LVM 上层的设备把它当作物理设备来使用,实际是一个逻辑上的抽象层,负责协调上层的逻辑卷与下层的物理块。

LV:逻辑卷,类似于非LVM系统中的分区的概念,在LVM系统中被当作独立的分区来使用。

PE:物理块,是每一个逻辑卷被划分的基本单元,也是LVM系统最小的寻址单元。

3、如何实现LVM功能

第一步:创建pv,使用pvcreate命令。准备一块硬盘,并将其任意分为几个独立的分区,并将分区的类型调整为8e。我已经在该物理磁盘上划分了3块大小为1G的分区,效果如下(PS:至于如何划分分区,我在这里不再赘述):

[root@localhost ~]# fdisk -l /dev/hda

Disk /dev/hda: 21.4 GB, 21474836480 bytes

15 heads, 63 sectors/track, 44384 cylinders

Units = cylinders of 945 * 512 = 483840 bytes

Device Boot      Start        End      Blocks  Id  System

/dev/hda1              1        2068      977098+  8e  Linux LVM

/dev/hda2            2069        4136      977130  8e  Linux LVM

/dev/hda3            4137        6204      977130  8e  Linux LVM

接下来就开始创建物理卷:

[root@localhost ~]# pvcreate /dev/hda{1,2,3}

Writing physical volume data to disk "/dev/hda1"

Physical volume "/dev/hda1" successfully created

Writing physical volume data to disk "/dev/hda2"

Physical volume "/dev/hda2" successfully created

Writing physical volume data to disk "/dev/hda3"

Physical volume "/dev/hda3" successfully created

使用pvs命令可以查看物理卷的详细信息,我这里显示的可用空间没有达到原始大小是因为LVM需要保存一些元数据:

[root@localhost ~]# pvs

PV        VG        Fmt  Attr PSize  PFree

/dev/hda1            lvm2 a--  954.20M 954.20M

/dev/hda2            lvm2 a--  954.23M 954.23M

/dev/hda3            lvm2 a--  954.23M 954.23M

/dev/sda2  VolGroup00 lvm2 a--  19.88G

另外,使用怕pvdisplay可以查看物理卷的更详细的信息,使用pvscan可以查看一共创建了多少个pv。

第二步:创建vg,使用vgcreate命令。

l        -s选项可以指定物理盘区的大小,默认为4M

[root@localhost ~]# vgcreate myvg /dev/hda{1,2,3}

Volume group "myvg" successfully created

使用vgremove命令可以移除vg:

[root@localhost ~]# vgremove myvg

Volume group "myvg" successfully removed

扩展vg,首先准备好一个pv分区:

12345 [root@localhost ~]# pvcreate /dev/hda5

Writing physical volume data to disk "/dev/hda5"

Physical volume "/dev/hda5" successfully created

[root@localhost ~]# vgextend myvg /dev/hda5

Volume group "myvg" successfully extended

移除一块底层的磁盘的做法:首先要使用pvmove命令,作数据迁移的操作:

[root@localhost ~]# pvmove /dev/hda3

No data to move for myvg

然后使用vgreduce命令移除逻辑卷:

[root@localhost ~]# vgreduce myvg /dev/hda3

Removed "/dev/hda3" from volume group "myvg"

最后使用pvremove命令移除物理卷:

[root@localhost ~]# pvremove /dev/hda3

Labels on physical volume "/dev/hda3" successfully wiped

第三步:创建lv,使用lvcreate命令。

[root@localhost ~]# lvcreate -L 50M -n test0 myvg

Rounding up size to full physical extent 56.00 MB

Logical volume "test0" creat

查看效果可以使用lvs命令或者lvdisplay命令:

[root@localhost ~]# lvs

LV      VG        Attr  LSize  Origin Snap%  Move Log Copy%  Convert

LogVol00 VolGroup00 -wi-ao 17.88G

LogVol01 VolGroup00 -wi-ao  2.00G

test0    myvg      -wi-a- 56.00M

使用LVM的方法也很简单,直接格式化,挂载即可:

[root@localhost ~]# mke2fs -j /dev/myvg/test0

[root@localhost ~]# mount /dev/myvg/test0 /mnt/LVM

4、扩展逻辑卷和缩减逻辑卷

l        扩展:

扩展逻辑卷使用lvextend命令

[root@localhost ~]# lvextend -L +50M /dev/myvg/test0

Rounding up size to full physical extent 56.00 MB

Extending logical volume test0 to 112.00 MB

Logical volume test0 successfully resized

[root@localhost ~]# resize2fs /dev/myvg/test0

l        缩减逻辑卷

注意事项:

i)              不要在线缩减,必须先卸载原有的文件系统;

ii)            确保缩减以后的空间大小依然能够容放下所有的数据;

iii)            在缩减之前应该先进行文件系统检查,以确保文件系统处于一致性状态。

现在示范如下:

[root@localhost ~]# e2fsck -f /dev/myvg/test0

[root@localhost ~]# lvreduce -L 50M /dev/myvg/test0

[root@localhost ~]# resize2fs /dev/myvg/test0

5、创建快照卷(snapshot)

首先把需要创建快照的分区挂载到系统相应的目录:

[root@localhost mnt]# mount /dev/myvg/newlv /mnt/newlv/

然后运行创建快照卷的命令:

[root@localhost /]# lvcreate -L 50M -s -n newlv_snap /dev/myvg/newlv

Rounding up size to full physical extent 56.00 MB

Logical volume "newlv_snap" created

挂载快照:

[root@localhost /]# mount /dev/myvg/newlv /snap

查看效果:

[root@localhost newlv]# touch a b c

[root@localhost newlv]# ls /snap

a  b  c  lost+found

更多LLVM的资讯:

LLVM 的详细介绍:请点这里

LLVM 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值