redhat上lvm的设置.
lvm是类似于raid0的一种硬盘管理方式,他是内嵌于linux的内核中的,在redhat8.0以上版本的内核默认支持lvm,rh7.x需要用
rpm包(或者手动)升级内核.
我都是用redhat7.3,所以我直接用rpm升级内核到 2.4.20-24.7
然后到rpm.pbone.net搜索7.x所需要的lvm的rpm包(lvm-1.0.3-4.i386.rpm)
先来说说lvm的好处吧.我们知道ext2的文件
系统可以改变分区的大小,而lvm能改变logical
volumed的大小.
有了lvm我们就等于拥有了一个可以扩张的raid0.
举个例子吧.我自己的一个ftp原先有2个80G的硬盘,用了150G的容量,现在我想扩充ftp空间.所以我就买了2个120G的wd,
一般的做法是直接把120接到
主机就可以了.不过我开的是ftp.用proftpd做
ftpd,好像ftpd都有一个通病.对不同硬盘的文件不能直接移动(RNTO)
2个80G自己再做一个raid0.如果这样做我不是又有两个逻辑硬盘(一个80G的raid0,一个120G的raid0),proftpd还是老样
子..不能在两个盘之间移动.
所以这时候lvm的好处就体现出来了,我不用再买硬盘就能完美的实现系统的扩容.扩容后,系统只看到一个逻辑硬盘.
下面就以这个系统的扩容为例子,说明一下lvm的设置过程..
1.lvm的构成
代码:
pv(physical volume) -----> volume group (VG) ----->logical volume (LV)
▲
|
|
physical extent (PE)
vg的生成需要pv,pe是组成vg的一个个
小块.pe的大小决定了lv能生成多大,500M的pe就能让lv到2T(加到1G的pe也是2T)
最后通过vg生成lv(也就是逻辑分区)
2.我们来准备pv
代码:
pvcreate /dev/hdg
pvcreate /dev/hdh
系统可能会提示你先运行vgscan
说明不单单是整个硬盘,一个分区也能被生成为pv,前提是这个分区的标识要改为8e(linux lvm),通过fdisk
/dev/sdX来操作,具体看实时的fdisk帮助.
3.生成vg
代码:
vgcreate -s 500M dual_wd /dev/hdg /dev/hdh
这
里-s是定义pe的大小,设置为500M就能让整个生成的lv能最大到2T, dual_wd是这个vg的名称,后面两个是刚才生成的pv.
这样我们就建立了一个vg了.
我们可以通过vgdisplay dual_wd来查看vg的情况
代码:
vgdisplay dual_wd
--- Volume group ---
VG Name dual_wd
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 1
Open LV 1
MAX LV Size 2 TB
Max PV 256
Cur PV 4
Act PV 4
VG Size 370 GB
PE Size 512 MB
Total PE 740
Alloc PE / Size 740 / 370 GB
Free PE / Size 0 / 0
VG UUID JzbJjd-yTYz-D7K6-NHAw-SqXp-BFEr-1sRSfv
(这个是我最
终的vg,以前的信息没保存)
MAX LV Size 2 TB -->说明了最大的lv可以到2T
Total PE 740 -->说明了可用pe的个数
3.生成lv
代码:
lvcreate -l740 -n dual_wd_lv dual_wd
-l
表示需要多少个pe来建立这个lv,因为要建全部,所有这里写上所有vgdisplay中允许的pe个数
-n表示lv的名称
最后一个参数是用来建立lv的vg的名称
4.建立文件系统
代码:
mkfs.ext2 /dev/dual_wd/dual_wd_lv
到这里我们的一个lvm就搭建起来了.
现在的任务是把lv mount到系统,cp原来的
数据到这个lv
代码:
mount /dev/dual_wd/dual_wd_lv /mnt/tmp
cp -R /usr/local/music/* /mnt/tmp
5.扩充vg(把原来的80G扩充到vg中)
先准备一下pv
代码:
pvcreate /dev/hde
pvcreate /dev/hdf
扩展vg
代码:
vgextend dual_wd /dev/hde /dev/hdf
6.
扩展lv
代码:
umount /mnt/tmp
lvextend -L370G /dev/dual_wd_lv
这里的370G是总的lv的大小,可以通过用vgdisplay来查询vg
一共能分配多少G给lv
然后用resize2fs扩展lv的ext2分区大小
代码:
resize2fs /dev/dual_wd_lv
这
个过程挺长..慢慢等
祈祷一切ok吧.
我在实际操作中更恐怖,完成上面的步骤后,发现一个120G有异响,读盘困难.天刚买的啊.重新把lv缩小,缩小vg,还原80G,用80G组成
vg(dual_st),cp dual_wd中的数据到dual_st
,然后拿硬盘到商家那边理论,连去两次才恳换...好惨..这样两天就过去了..不过还好数据都ok.最后我就按上面的步骤组成了现在的ftp系统,一个
370G的ftp
然后恶梦就来了,一个80G的pv,在dmesg中提示硬盘io出错,然后我就买了一个新的80G把这个pv替换下来,汗了一把.
最近的一次是把这个lvm整个搬迁到我的
web服务器上.也吓了我一身汗..好危险,这些操作下回分
解..
阅读(3667) | 评论(0) | 转发(0) |