码迷,mamicode.com
首页 > 其他好文 > 详细

磁盘管理之基于软RAID的LVM

时间:2014-07-18 13:21:50      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:软raid   磁盘管理   lvm   

     LVM即为逻辑卷管理是一种管理磁盘的工具使用此技术可以动态的扩展和缩小文件系统空间而不损坏其中数据同时它还具备快照功能实现文件的备份本文将介绍lvm创建逻辑卷,缩减逻辑卷以及利用快照功能实现频繁读写的文件系统的备份。

下图为其逻辑结构:

bubuko.com,布布扣

PV:物理卷  

PE:物理区域

VG:卷组

LV:逻辑卷

 

逻辑卷的创建可以是分区或是RAID 下面将以软RAID5方式详细介绍逻辑卷的创建过程

创建软raid5

首先创建分区 我们使用分区工具fdisk 设备为/dev/sdb 创建3个主分区分别为 /dev/sdb1 

/dev/sdb2 /dev/sdb3 大小分别为 5G 5G 5G

此处我们以命令行方式创建分区当然你也可以使用交互模式

echo -e "n \n p \n 1 \n \n +5G \n t  \n  fd  \n w " |fdisk /dev/sdb  
echo -e "n \n p \n 2 \n \n +5G \n t \n 2 \n  fd  \n w " |fdisk /dev/sdb
echo -e "n \n p \n 3 \n \n +5G \n t \n 3 \n  fd  \n w " |fdisk /dev/sdb


注意要指定分区类型为raid否则raid无法被迁移

执行上述命令后用fdisk -l /dev/sdb查看分区如下图:

bubuko.com,布布扣

使内核识别新建分区执行如下命令
partx -a /dev/sdb
kpartx -af /dev/sdb


有时需要反复执行几次内核才会识别
cat /proc/partitions

bubuko.com,布布扣

内核已经识别了我们新创建的分区

创建Raid5
mdadm -C /dev/md0 -n 3 -l 5 -a yes /dev/sdb{1,2,3}


执行上述命令后结果如下图:

bubuko.com,布布扣


查看内核是否识别
cat /proc/mdstat


bubuko.com,布布扣内核已经识别



以raid为基础创建分区以供lvm使用分区大小分别为 2G 3G 4G
方法与上述创建分区类似 只不过设备变为/dev/md0  设备类型为8e 
echo -e "n \n p \n 1 \n \n +2G \n  t  \n  8e  \n w " |fdisk /dev/md0
echo -e "n \n p \n 2 \n \n +3G \n  t  \n  2  \n 8e \n w " |fdisk /dev/md0
echo -e "n \n p \n 3 \n \n +4G \n  t  \n  3  \n  8e  \n w " |fdisk /dev/md0


执行后结果为:

bubuko.com,布布扣

准备工作结束



创建pv我们首先使用第1和2分区 第3分区用来演示向卷组添加物理设备
pvcreate /dev/md0p1
pvcreate /dev/md0p2


执行结果如下图:

bubuko.com,布布扣

查看 创建结果
pvs

bubuko.com,布布扣

Pv创建成功接着创建VG


vgcreate -s 4M testvg /dev/md0p1 /dev/md0p2


执行结果如下图:

bubuko.com,布布扣

查看 创建结果
vgs

bubuko.com,布布扣

Vg创建成功下面创建lv


lvcreate -L 2G -n testlv testvg

执行结果如下图:

bubuko.com,布布扣


查看创建结果

bubuko.com,布布扣

至此lv创建成功格式化后挂载就可以正常使用了
mke2fs -t ext4 /dev/testvg/testlv


bubuko.com,布布扣

将其挂载至 /mnt 

mount -t ext4 /dev/testvg/testlv /mnt
cp /etc/fstab /mnt


结果如下:


bubuko.com,布布扣


lv的动态扩展

我们已经成功的创建了一个逻辑分区下面介绍如何扩展逻辑分区

假设我们想把当前的2G分区扩展至3G

So easy只需要执行如下命令
lvextend -L 3G /dev/testvg/testlv


结果如下图:


bubuko.com,布布扣
使文件系统生效
resize2fs /dev/testvg/testlv

bubuko.com,布布扣


那么如何缩减逻辑分区大小 特别注意:缩减分区前一定要注意缩减后的大小要能容纳当前分区的数据大小 否则数据将损坏  

将分区缩小至100M

第一步:卸载分区   注意在线缩减只支持ext3 我们是ext4的所以要卸载否则会损坏数据 切记!!

e2fsck -f  /dev/testvg/testlv

bubuko.com,布布扣

显示文件系统正常

首先要缩减文件系统边界
resize2fs /dev/testvg/testlv 100M

bubuko.com,布布扣

文件系统缩减成功

然后缩减物理边界
lvreduce -L 100M /dev/testvg/testlv

bubuko.com,布布扣

检查文件系统
e2fsck -f /dev/testvg/testlv
最后挂载文件系统
mount /dev/testvg/testlv /mnt
ls /mnt


bubuko.com,布布扣

查看数据
Cat /mnt/fstab

bubuko.com,布布扣

数据健在 至此缩减成功!!


向卷组添加新的分区

我们将开始创建的/dev/md0p3添加到卷组 以扩充卷组容量供lv使用

开始前我们先看下当前剧组的大小以作对比

bubuko.com,布布扣

pvcreate /dev/md0p3
vgextend testvg /dev/md0p3

bubuko.com,布布扣

查看添加结果
vgs

bubuko.com,布布扣

扩展卷组成功

缩减卷组用:缩减前首先要确保所移走的分区不含数据 pvmove  /dev/md0p3

            然后在从卷组中移除                   vgreduce testvg /dev/md0p3 

这里就不做演示了.


LVM的快照功能

什么是快照?

bubuko.com,布布扣


    所谓快照就是文件系统中某一时刻时文件的状态 ,它也是一个逻辑卷有自己的挂载目录只不过此逻辑卷比较特殊当它所“拍摄”的分区文件不发生改变时他其中的文件内容就是和所“拍摄”分区的映射.

但是当源文件发生改变时,他就会复制一份没改变的文件到自己分区中,这样它其中的内容就是过去某一时刻文件系统的内容未曾改变.当你备份快照分区的内容时就是文件系统某时刻的内容,这样就防止一种情况就是当文件一旦发生改变就会复制一份到自己的分区中。

快照的创建

先查看一下当前逻辑卷的大小再决定创建快照的大小
lvs


bubuko.com,布布扣
lvcreate -s -L 20M -n testsnap /dev/testvg/testlv

bubuko.com,布布扣

bubuko.com,布布扣


现在我没将被“拍摄”的数据做下修改
echo “hello kitty” >>/mnt/fstab
两者数据比较如下图

bubuko.com,布布扣

是的快照中的数据不曾改变!!

实际中的应用

以此为例:

mount  -o remount,ro  /mnt &&lvcreate -s -L 20M -n testsnap /dev/testvg/testlv && mount -o remount,rw /dev/testvg/testlv


要快速完成因此三条命令要一气呵成....


本文出自 “梦想一克拉” 博客,请务必保留此出处http://centod.blog.51cto.com/9108378/1439653

磁盘管理之基于软RAID的LVM,布布扣,bubuko.com

磁盘管理之基于软RAID的LVM

标签:软raid   磁盘管理   lvm   

原文地址:http://centod.blog.51cto.com/9108378/1439653

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!