LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 12054|回复: 36

LVM也疯狂 - 没条件兄弟们的福音

[复制链接]
发表于 2003-12-14 00:24:47 | 显示全部楼层 |阅读模式
LVM也疯狂 - 没条件兄弟们的福音

前提:
Carlos 终於回来了,坛子热闹多了,我写个东西庆祝一下。看我翻译的这篇能不能
置顶,哈哈。。。

简介:
Unix 系统下最大的麻烦就是分区太小,在一定的时间内分区满了就非常麻烦。LVM就
是一个非常好的解决方案,我们可根据情况扩大/或缩小某个分区。我这里介绍一个
在不具备有很多硬盘下供大家玩的方法,好处是对现有系统完全不动,只是建立虚
拟的硬盘系统,对LVM有更好的理解。我本人也是用这个办法在Linux下玩熟Linux
LVM的.

商业UNIX其实很早就有LVM系统,只是叫法不同,tru64,aix,solaris,HP-UX都有。
Linux做为新型的操作系统,现在技术上也成熟多了。

这篇文章是在一本法语的杂志“linux magazine" number 54 octobre 2003,原作
者是Lionel Tricon 邮箱是lionel.tricon@free.fr ,文章原名是"LVM ou comment changer d'idee sur le stockage de donnees sous linux",文章太长,我就给强烈压缩了。如果有那位兄弟想转载,尽管拿,但是请不要删东西(错误不算),另外请给我个URL,也算对得起我码中文字,谢了。

我是在debian下干的,其它linux应该没问题,因为原文著者是用redhat.

我用xfig按原文做了3个图,大家仔细看看,会对LVM原理理解有帮助,有问题也可
以贴出来,或给我发短信,进行探讨。我就不对LVM解释了。

安装需求(requirements):检查系统是否安了LVM的module
1. lsmod | grep -i lvm
2. modprobe lvm-mod
3.apt-get install lvm* lvm-common evms-lvmutils
or
rpm -q lvm , rpm -ivh lvm-xxxx.rpm with redhat


准备虚拟硬盘 prepare a fake disk
感谢linux LVM 支持loopback (loop device),才让我们有机会建立LVM下的虚拟硬
盘,就跟真硬盘一样用
1. dd if=/dev/zero of=lvm0.iso count=5000
2. dd if=/dev/zero of=lvm1.iso count=5000
3. dd if=/dev/zero of=lvm2.iso count=5000
4. dd if=/dev/zero of=lvm3.iso count=5000

5.losetup /dev/loop0 lvm0.iso
6.losetup /dev/loop1 lvm1.iso
7.losetup /dev/loop2 lvm2.iso
8.losetup /dev/loop3 lvm3.iso

好了,我们这里建立了可用的虚拟硬盘了,要删除这样的硬盘:
losetup -d /dev/loopX

下面我们建立几个物理卷(?) Physical Volume (对不起,我不知中文是怎么翻译
的)
1. vgscan
2. pvcreate /dev/loop0
3. pvcreate /dev/loop1
4. pvcreate /dev/loop2
5. pvscan   <--- 非常有用
6. lvmdiskscan <-- 查看所有硬盘(包含虚拟)的情况
7。pvdisplay /dev/loop0 <--看看


下面我们建立一个volume group(对不起,我不知中文是怎么翻译的),就是这个概念
让我们可以随时加大分区。-s 是叫PE (Physical Extend) 的大小是8K,缺省值是
4Mo,PE是个基础块,它的大小直接影响物理卷的大小,因为linux核最大限制是65536个
PE,PE最小值是8K,最大值是16G。理论最大值是16Gx65536PE=1 petabytes.大家可
以看第四张图,可以帮助理解。

下面命令的意思是建立一个叫vg01 的volume group,并把硬盘loop0,loop1加到入
其中:
vgcreate -s 8k vg01 /dev/loop0 /dev/loop1

如果vg01不够用了,我们还可以用下面方法加入其它硬盘:
vgextend vg01 /dev/loop2


在volume group vg01 下建立逻辑卷(Logicial volume creation),名字叫 lv01,
大小为4M:
1. lvcreate -L4M -n lv01 vg01

再看一眼vg01:
2. vgdisplay vg01

看看新建的逻辑卷lv01:
3. lvdisplay /dev/vg01/lv01

也可以换个名字:
4。lvrename /dev/vg01/lv01 /dev/vg01/lv_test


给逻辑卷进行格式化,我用ext3,你也可以用vfat,reiserfs,ext2,不过实际应用应
该注意到如果你想在windows下共享这个vfat的话,windows不会认为是一个分区,
也不认识它的格式,这是因为我们这里利用了linux LVM 支持loopback的特性,所
以看不出来,实际上如果你真有几张硬盘的话,想用LVM,也必须先把分区定为linux
lvm type,然后再格式化成vfat 。因为windows不认识LVM,所以也不会认识你的vfat了。我已经做过实验了!大家可以不再化时间了。
1。mkfs -t ext3 -j /dev/vg01/lv_test
2。mount /dev/vg01/lv_test /mnt

Voila, 可以用了!

下面简单给出删除/扩充/减小volume groupe的命令,还有所有有关LVM清单,请大
家小心,下面的命令适应与ext2/ext3, 其它如reiserfs,jfs,xfs,命令不一样。有
感兴趣的朋友可以给我发信,我再详细给出命令。
delete volume groupe
1。vgchange -a n /dev/vg01
2。vgremove /dev/vg01

extend
1。lvextend -L+1G /dev/vg01/lv01
2。umount /mountingpoint
3。resize2fs /dev/vg01/lv01
4。mount /dev/vg01/lv01 /mountingpoint

reduce:
1。umount /mountingpoint
2。resize2fs /dev/vg01/lv01
lvreduce -L-1G /dev/vg01/lv01
mount /dev/vg01/lv01 /mountingpoint


listing:
lvmdiskscan,pvscan,vgscan,lvscan,vgcreate,lvcreate,vgextend,vgreduce,lvextend,lvreduce,pvdiplay,vgdisplay,lvdisplay,lvremove,lvrename,vgremove,vgchange

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2003-12-14 00:29:39 | 显示全部楼层

lvm 3

suite

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2003-12-14 00:31:50 | 显示全部楼层

lvm 2

level pic

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2003-12-14 00:38:17 | 显示全部楼层
好啊,真是福音哪!
这篇文章思路的确比较独特。
我以前就是因为没有多余的硬盘空间,所以一直没能试验LVM,这回一定要好好玩玩。

先加精再说
发表于 2003-12-14 02:35:22 | 显示全部楼层
发表于 2003-12-14 06:15:03 | 显示全部楼层
There are many good guides on setting up your LVM.  I found these two are really useful.

http://www.open-organizations.org/view/Socialtools/RaidLvmHowto
http://www-900.ibm.com/developer ... m/lvm-1/index.shtml

Regarding my experience, two important points should be awared of:  Debian default rcS.d scripts start the LVM and mountall.sh   around S25 and S33 respectively (i cannot remember ), you probably have to change their priorities when your /var directory is in a LV.  Furthermore, if your root itself is in a LV, you probably need an special initrd support with a seprate /boot partition(Note: it seems like LVM2 removed vmcreate_initrd scripts mentioned in the first link, however you can make it by yourself. )

In addition, if you have installed windows system in the same disk, try to keep CDROM label "far away" from your LVM partitions.  For example, if a cdrom is named E: and a LVM is appared as F:, explorer will give you an annoying information of whether formating F: when the cd is ejected.    This is a minor problem but easy to destory your LVs by answering yes.
发表于 2003-12-14 06:30:18 | 显示全部楼层
本质是不是:
把不同分区挂在不同目录下,空间不够时,把文件在各分区间移?
发表于 2003-12-14 07:32:14 | 显示全部楼层
覺得能在不同的fs 上找空間?砼猯vm 而且不用resize 之前的fs 這個最有看頭
 楼主| 发表于 2003-12-14 07:32:28 | 显示全部楼层
deconvolution,

补充的非常好!!!!,我确实没注意到如果/var , /boot也是LVM的特殊情况,因为我
每次都假设自己的/home ,或/data 之类用LVM分区。IBM的网页我也看过,一个字,
好!!!!
我也给出两的URL,让有精力的朋友看看:
http://www.sistina.com/lvm
http://tldp.org/HOWTO/LVM-HOWTO


tram兄,
我不懂你想说什么?能表达更清楚一下嘛?




最初由 deconvolution 发表
There are many good guides on setting up your LVM.  I found these two are really useful.

http://www.open-organizations.org/view/Socialtools/RaidLvmHowto
http://www-900.ibm.com/developer ... m/lvm-1/index.shtml

Regarding my experience, two important points should be awared of:  Debian default rcS.d scripts start the LVM and mountall.sh   around S25 and S33 respectively (i cannot remember ), you probably have to change their priorities when your /var directory is in a LV.  Furthermore, if your root itself is in a LV, you probably need an special initrd support with a seprate /boot partition(Note: it seems like LVM2 removed vmcreate_initrd scripts mentioned in the first link, however you can make it by yourself. )

In addition, if you have installed windows system in the same disk, try to keep CDROM label "far away" from your LVM partitions.  For example, if a cdrom is named E: and a LVM is appared as F:, explorer will give you an annoying information of whether formating F: when the cd is ejected.    This is a minor problem but easy to destory your LVs by answering yes.
发表于 2003-12-14 07:35:15 | 显示全部楼层
我就是想知道这个LVM到底是怎么回事啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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