找回密码
 注册
查看: 2927|回复: 17

用LVM来管理portage的东东

[复制链接]
发表于 2006-4-20 18:56:17 | 显示全部楼层 |阅读模式
LVM即Logical Volume Manager(逻辑卷管理)。 使用LVM可以灵活地管理分区,在系统运行的时候也可以按需要增加或减小分区的大小。

假设我们将用/dev/hda3来做LVM,portage的东东包括/usr/portage,/vat/tmp/ccache和/var/tmp/portage这3个目录。

首先用fdisk将hda3的分区类型改成8e (Linux LVM)。(如果用lvm2的话,这步非必需,但从磁碟管理的角度做一下也有好处)

编内核:
[code:1]Device Drivers  --->
Multi-device support (RAID and LVM)  --->
   [*] Multiple devices driver support (RAID and LVM)
   < >   RAID support
   <*>   Device mapper support
   < >     Crypt target support[/code:1]如果Device mapper support编成模组,则需在/etc/modules.autoload.d/kernel-2.6里加入dm-mod。

安装lvm2:
[code:1]# emerge lvm2[/code:1]
编辑/etc/lvm/lvm.conf,找到这一行:
[code:1] filter = [ "a/.*/" ][/code:1]
改成
[code:1] filter = [ "a|/dev/hd[ab]|", "r/.*/" ][/code:1]
即只扫描/dev/hda或/dev/hdb。

重新开机以启用dev mapper驱动。
准备分区:
[code:1]# pvcreate /dev/hda3[/code:1]这样在/dev/hda3最前面会生成个卷组descriptor 。

创建名为myvg的卷组(volume group):
[code:1]# vgcreate myvg /dev/hda3[/code:1]
创建逻辑卷:
[code:1]# lvcreate -L3G -nportage  myvg
# lvcreate -L2G -nccache myvg
# vgdisplay myvg | grep Free (看看还剩多少空间)
Free  PE / Size       667 / 2.61 GB
# lvcreate -l 667 myvg -n tmp (让tmp占用其余的空间)[/code:1]
在/dev/myvg里应该可以看到portage, ccache和tmp的设备了。

在逻辑卷上创建文件系统:
[code:1]# mkreiserfs /dev/myvg/portage
# mkreiserfs /dev/myvg/ccache
# mkreiserfs /dev/myvg/tmp[/code:1]
将/usr/portage, /var/tmp/ccache和/var/tmp/portage里的东西搬到临时目录,挂好逻辑卷后,再搬回去:
[code:1]# mv /usr/portage/* /root/portage
# mv /var/tmp/ccache/* /root/ccache
# mv /var/tmp/portage/* /root/tmp
# mount /dev/myvg/portage /usr/portage
# mount /dev/myvg/tmp /var/tmp/portage
# mount /dev/myvg/ccache /var/tmp/ccache
# mv /root/portage/* /usr/portage
# mv /root/ccache/* /var/tmp/ccache
# mv /root/tmp/* /var/tmp/portage[/code:1]
在/etc/fstab里加入以下几行:
[code:1]# Logical volumes
/dev/myvg/portage    /usr/portage      reiserfs  noatime   0 0
/dev/myvg/ccache     /var/tmp/ccache   reiserfs  noatime   0 0
/dev/myvg/tmp        /var/tmp/portage  reiserfs  noatime   0 0[/code:1]之后如果重新开机,这几个逻辑卷便会自动挂好了。

现在让我们看看LVM的好处。
减少逻辑卷portage的大小(-1500M):
[code:1]# umount /usr/portage/
# resize_reiserfs -s-1500M /dev/myvg/portage (为避免数据受损,首先减少文件系统的大小)
# lvreduce -L-1500M /dev/myvg/portage (减少逻辑卷的大小)
# mount /usr/portage[/code:1]
增加逻辑卷portage的大小(+1G),注意次序有点不同的:
[code:1]# lvextend -L+1G /dev/myvg/portage
# resize_reiserfs -f /dev/myvg/portage (这次无须卸载或指定大小了)[/code:1]
将另一物理分区(/dev/hda9)加入卷组myvg里:
[code:1]# pvcreate /dev/hda9
# vgextend myvg /dev/hda9[/code:1]这样又可以再创建新的逻辑卷了。

其他有用的命令:
[code:1]# umount /dev/myvg/tmp
# lvremove /dev/myvg/tmp (移除逻辑卷tmp)
# vgreduce myvg /dev/hda9 (将物理分区/dev/hda9从卷组myvg里移除)
# vgchange -a n myvg (暂停使用卷组myvg)
# vgchange -a y (启用现有的卷组)
# vgremove myvg (移除卷组myvg)[/code:1]

P.S.由于我较少看中文文档,有些技术名词我不知道怎么讲,便随意翻译了一下,希望大家能看得明白。
发表于 2006-4-21 00:55:30 | 显示全部楼层
不错,可惜暂时没有必要弄这个
回复

使用道具 举报

发表于 2006-4-21 17:02:53 | 显示全部楼层
将portage的东西都摆到一个分区上去有什么好处?
回复

使用道具 举报

发表于 2006-4-21 19:00:35 | 显示全部楼层
如果内存够大, 划个区放/lib /usr什么的,速度肯定快
回复

使用道具 举报

 楼主| 发表于 2006-4-21 19:48:17 | 显示全部楼层
[quote:18298d87a6="muraji"]将portage的东西都摆到一个分区上去有什么好处?[/quote]
这样备份的时候可以略过此分区。

其实此贴其中一个主要目的是示范一下LVM的好处。例如几年前我刚买现在这个硬盘时,划了个2G的swap分区,后来发现根本用不上,现在我把它加到LVM里了,随便划了几百M做swap分区,其余1G多的空间终于可以“废物利用”了!
回复

使用道具 举报

发表于 2006-4-22 20:00:00 | 显示全部楼层
RH/FC的system-config-lvm很好用(希望没拼错),GUI的
回复

使用道具 举报

发表于 2006-4-23 14:23:57 | 显示全部楼层
创建文件系统不限于reiserfs吧?其他的也应该没问题吧?
回复

使用道具 举报

发表于 2006-4-23 22:16:53 | 显示全部楼层
我用的是ext3
关键是文件系统要有一个能支持在线扩容的工具,最起码umount以后需要可以动态改变文件系统大小
回复

使用道具 举报

 楼主| 发表于 2006-4-24 02:00:50 | 显示全部楼层
Linux常用的文件系统都可以用,不过最好是能“伸缩自如”的那种,除了reiserfs外,ext2/3是个好的选择,jfs和xfs只能“伸”,不能“缩”。Reiser4可能就不大适合了。
回复

使用道具 举报

发表于 2006-4-24 08:41:58 | 显示全部楼层
ext2/3如何扩大或者缩小?
回复

使用道具 举报

发表于 2006-4-24 13:11:39 | 显示全部楼层
resize2fs
回复

使用道具 举报

发表于 2006-4-25 19:20:08 | 显示全部楼层
这个好,
回复

使用道具 举报

 楼主| 发表于 2006-4-26 15:34:14 | 显示全部楼层
我现在将distfiles的目录设定至另一个地方了,这样/usr/portage如果占个LV,只需300M足矣。

/var/tmp直接设个LV,因为已经包括了/var/tmp/portage和/var/tmp/ccache,无须分开摆。
回复

使用道具 举报

发表于 2006-5-2 14:08:02 | 显示全部楼层
我听说由于portage的snapshot文件多,如果频繁执行emerge sync会造成碎片问题,如果将/usr/portage摆到独立的分区的话,会好点吧?
回复

使用道具 举报

发表于 2006-5-3 18:20:26 | 显示全部楼层
只要碎,放哪个分区都是碎
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-14 21:22 , Processed in 0.031906 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表