linux LVM配置与管理
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上的一个逻辑层,使用户在无需停机的情况下可以方便地调整各个分区大小。
术语:
*物理存储介质(PhysicalStorageMedia)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
*物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
*卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
*逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
*物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
*逻辑块(Logical Extent,LE)
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
配置与管理:
一、测试环境:
[root@bright ~]# cat /etc/centos-release && uname -r CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64
二、创建分区。
分区步骤参考我的另一篇文章
三、创建LVM分区
1)创建逻辑卷
创建物理卷
[root@bright ~]# pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created
列出已经创建的物理卷
[root@bright ~]# pvdisplay "/dev/sdb1" is a new physical volume of "1.53 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 1.53 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1RH1jY-4ybr-tL1L-NCn0-ArgQ-35uu-wMlYB3 "/dev/sdb2" is a new physical volume of "1.53 GiB" --- NEW Physical volume --- PV Name /dev/sdb2 VG Name PV Size 1.53 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID dqXQgM-zL9b-fDv7-Cqct-J6gc-cw5n-QBAMno
创建卷组 vgdata ,并将刚才创建好的两个物理卷加入该卷组
[root@bright ~]# vgcreate vgdata /dev/sdb1 /dev/sdb2 Volume group "vgdata" successfully created
列出已经建好的卷组
# 默认PE大小为4MB,PE是卷组的最小存储单元.可以通过 –s参数修改大小。
[root@bright ~]# vgdisplay --- Volume group --- VG Name vgdata System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 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 3.05 GiB PE Size 4.00 MiB Total PE 782 Alloc PE / Size 0 / 0 Free PE / Size 782 / 3.05 GiB VG UUID DjB5I2-DUFN-5tW6-jL6h-Bgkg-eQVV-HWSwsj
分割500M给新的逻辑卷testlvdata
[root@bright ~]# lvcreate -L 500M -n testlvdata vgdata Logical volume "testlvdata" created
列出当前的逻辑卷
[root@bright ~]# lvdisplay --- Logical volume --- LV Path /dev/vgdata/testlvdata LV Name testlvdata VG Name vgdata LV UUID fO3dPO-joef-zBwf-1frT-pUsQ-hiUV-UfT1da LV Write Access read/write LV Creation host, time bright.com, 2015-03-23 08:11:03 +0800 LV Status available # open 0 LV Size 500.00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
格式化逻辑卷
[root@bright ~]# mkfs.ext4 /dev/vgdata/testlvdata mke2fs 1.41.12 (17-May-2010) 文件系统标签= 操作系统:Linux 块大小=1024 (log=0) 分块大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 128016 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user 第一个数据块=1 Maximum filesystem blocks=67633152 63 block groups 8192 blocks per group, 8192 fragments per group 2032 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 正在写入inode表: 完成 Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 33 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
挂载逻辑卷
[root@bright ~]# mount /dev/vgdata/testlvdata /data
2) 扩展逻辑卷
逻辑卷lvdata1不够用了,我们如何给他增加空间呢?
给lvdata1增加500M空间。
[root@bright ~]# lvextend -L +500M /dev/vgdata/testlvdata Size of logical volume vgdata/testlvdata changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents). Logical volume testlvdata successfully resized
同步文件系统
[root@bright ~]# resize2fs /dev/vgdata/testlvdata resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vgdata/testlvdata is mounted on /data; on-line resizing required old desc_blocks = 2, new_desc_blocks = 4 Performing an on-line resize of /dev/vgdata/testlvdata to 1024000 (1k) blocks. The filesystem on /dev/vgdata/testlvdata is now 1024000 blocks long.
3)扩展卷组
当卷组不够用的情况下,我们也是可以扩展卷组的。我们再创建一个新的分区叫做/dev/sdb3.
把sdb3加入到卷组vgdata中(本案新分/dev/sdb3 有800M空间)
[root@bright ~]# vgextend vgdata /dev/sdb3 Physical volume "/dev/sdb3" successfully created Volume group "vgdata" successfully extended [root@bright ~]# vgdisplay --- Volume group --- VG Name vgdata System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 3.82 GiB PE Size 4.00 MiB Total PE 977 Alloc PE / Size 250 / 1000.00 MiB Free PE / Size 727 / 2.84 GiB VG UUID 3wEKAD-D3cv-Z4X9-hKcq-qnm0-OoDN-UAuSWL
4)减少逻辑卷大小
卸载 --> e2fsck 检测剩余空间 --> resize2fs 同步文件系统 --> 使用lvreduce命令将逻辑卷减少
注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。
umount /data
e2fsck -f /dev/mapper/vgdata-testdata
[root@bright ~]# e2fsck -f /dev/mapper/vgdata-testlvdata e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 Pass 4: Checking reference counts 第5步: 检查簇概要信息 /dev/mapper/vgdata-testlvdata: 11/254000 files (0.0% non-contiguous), 42797/1024000 blocks
resize2fs /dev/mapper/vgdata-testdata 600M
[root@bright ~]# resize2fs /dev/mapper/vgdata-testlvdata 600M resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/mapper/vgdata-testlvdata to 614400 (1k) blocks. The filesystem on /dev/mapper/vgdata-testlvdata is now 614400 blocks long.
lvreduce -L 600M /dev/vgdata/testdata
[root@bright ~]# lvreduce -L 600 /dev/vgdata/testlvdata WARNING: Reducing active logical volume to 600.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce testlvdata? [y/n]: y Size of logical volume vgdata/testlvdata changed from 1000.00 MiB (250 extents) to 600.00 MiB (150 extents). Logical volume testlvdata successfully resized
mount /dev/vgdata/testdata /data
5) 当磁盘或分区损坏时,如何转移数据
pvmove 转移空间数据 --> vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去 --> pvremove命令将即将坏的磁盘或者分区从系统中删除掉 --> 拆除或修复磁盘
pvmove /dev/sdb1
vgreduce vgdata /dev/sdb1
pvremove /dev/sdb1
[root@bright ~]# pvmove /dev/sdb1 /dev/sdb1: Moved: 6.0% /dev/sdb1: Moved: 100.0% [root@bright ~]# vgreduce vgdata /dev/sdb1 Removed "/dev/sdb1" from volume group "vgdata" [root@bright ~]# pvremove /dev/sdb1 Labels on physical volume "/dev/sdb1" successfully wiped
6) 删除整个逻辑卷
umount卸载逻辑卷 --> 修改配置文件/etc/fstab(若是之前更改过) --> lvremove 删除逻辑卷testdata --> vgremove 删除卷组vgdata --> pvremove 将物理卷转化成普通分区
umount /dev/vgdata/testdata
lvremove /dev/vgdata/testdata
vgremove vgdata
pvremove /dev/sdb2
pvremove /dev/sdb3
[root@bright ~]# umount /dev/vgdata/testlvdata [root@bright ~]# lvremove /dev/vgdata/testlvdata Do you really want to remove active logical volume testlvdata? [y/n]: y Logical volume "testlvdata" successfully removed [root@bright ~]# vgremove vgdata Volume group "vgdata" successfully removed [root@bright ~]# pvremove /dev/sdb2 Labels on physical volume "/dev/sdb2" successfully wiped [root@bright ~]# pvremove /dev/sdb3 Labels on physical volume "/dev/sdb3" successfully wiped [root@bright ~]#
本文出自 “做梦也想你” 博客,请务必保留此出处http://zmyxn.blog.51cto.com/3029175/1623419
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。