免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9677 | 回复: 19
打印 上一主题 下一主题

LVM管理和故障解决(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-22 11:19 |只看该作者 |倒序浏览
LVM管理和故障解决(一)

首先申明,LVM(Logical Volume Manager)是操作系统中一个磁盘管理子系统,而不是文件系统!

在LVM里,一个PV(Physical Volume,物理卷)对应且只对应一个物理硬盘,一个或者多个PV组成一个VG(Volume Group,卷组),而从一个VG里又可以虚拟划分出若干个LV(Logical Volume,逻辑卷),真正的文件系统是创建在LV上面的,如下图示:

可以在LV上建文件系统,也可以不建文件系统而直接使用,这时叫裸设备(raw device)。因为是直接对设备进行数据读写,所以Raw device的性能要比文件系统好,许多数据库系统就是直接存储在裸设备上,但是可管理性比较差,题外话。

一个很容易想到的问题:LVM系统怎么知道往某一个LV里面存数据时,到底是存放到哪个(些)实际硬盘呢?在LVM系统里,一个PV由若干个PE(Physical Extent)组成,一个LV由若干个LE(Logical Extent)组成,而这些PE和LE之间又有直接的对应关系,这种对应关系被存储在一个叫做“PE/LE对应表”(Translation Table)的表中。Translation Table存放在LVM磁盘上,当VG被激活时才装载到内存中。PE是在创建卷组时创建的,大小由vgcreate的-s参数指定,默认是4M;在同一个VG里面的所有PV的PE大小是一样的,不管实际硬盘的大小和型号是否相同。当LV创建时,LVM系统创建LE并自动维护PE/LE对应表,使得每一个LV里面的LE都可以找到与之对应的PE,从而知道数据该往哪个硬盘写。一般情况下创建LV的时候,系统都是按物理硬盘加入VG的顺序来分配其可用的PV。比如说c0t5d0是第一个加入VG的硬盘,那么默认情况下c0t5d0里的可用PV将最先被用来分配,除非在使用lvextend命令时特殊指定。

在使用vgcreate的-s参数时,PE的大小必须是2的整数倍,一般使用默认值4。为什么是4而不是8、16...?(你问我我问谁?:p)不过我很幼稚的研究发现,一个PV最多只能有65535个PE,也就是最大支持4 * 65535 = 262140M的硬盘,当单个硬盘容量超过这个数的时候,PE的大小是不是就必须加大了?应该是吧!还有几个LVM的限定,要说明
·一个LV只能属于一个VG(不要去想lvol9先从vg00弄点空间,再从vg01弄点空间)
·一个PV要么独立要么属于且仅属于一个VG(独立时作为Raw Device,性能比较猛)
·vgcrete -l参数将限定一个VG里面能创建的最大LV数量,极限是255
·vgcreate -p参数限定一个VG里面能容纳的最多PV数,极限是255
·内核参数maxvgs限定系统最大的VG数,默认是10,最大可以变态到256

做系统管理和技术支持的人民不能不知道Quorum!什么是Quorum?我查金山词霸的解释“法定人数委员会或组织最少人数的官员或成员,通常要达到多数,必须出席以确保事务处理的有效性”。在LVM里也要用到Quorum机制。那么在LVM里的Quorum又是什么意思呢?---在激活vg之前,系统检测属于该vg的所有PV,当且仅当过半数的PV没问题时,该vg才允许被激活。这是一个安全机制,居然有一半的PV是坏的还让激活,那不纯心让人家数据丢失么?Quorum机制在VG配置改变(如新建逻辑卷)或状态改变(如VG里面有硬盘损坏)时都会被检测。不过,可以用“vgchange -q n”来绕过Quorum检测。说到Quorum,又会联想到只有2块盘做Mirror的情形,比如启动时的“hpux -lq”等,后面会再做更为详细的说明。

最后说明一下空间分配的连续性问题。下图为2个非连续空间分配(Non-Contiguous Allocation Policy)的示例:

如图示可以看出,非连续空间分配主要表现在给LV分配空间时,PE的不连续性。这种非连续性空间分配策略是LVM在创建LV时的默认策略,优点是可以跨多个PV,充分利用有效的剩余空间,同时非常方便扩文件系统,但是缺点之一是可能造成磁盘分配不均衡。当然,可以用lvextend来指定分配到哪个硬盘,但是效果不理想。相比之下,连续性空间分配策略对PE的分配要求要高得多:
·首先是不能跨多个PV
·PE必须按升序连续分配
·如果是做镜像,那么镜像的空间也必需满足Contiguous Allocation Policy
很显然,连续分配的空间比非连续分配的空间要容易管理,这样对于可用性要求非常高的空间比如根文件系统、主交换区以及DUMP区等都要求分配连续的空间。不过,要求连续分配的空间扩起来(比如扩根文件系统)非常麻烦,稍后会专门论述。 lvcreate -C y/n 决定如何给LV分配空间。

待续...

论坛徽章:
0
2 [报告]
发表于 2003-09-22 16:10 |只看该作者

LVM管理和故障解决(一)

推,好文章,必推!!!

论坛徽章:
0
3 [报告]
发表于 2003-09-22 22:30 |只看该作者

LVM管理和故障解决(一)

·一个PV要么独立要么属于且仅属于一个VG(独立时作为Raw Device,性能比较猛)

一个PV不建VG,也可以做为裸设备读写么?怎么实现呢?

论坛徽章:
0
4 [报告]
发表于 2003-09-23 08:55 |只看该作者

LVM管理和故障解决(一)

论坛徽章:
0
5 [报告]
发表于 2003-09-23 10:08 |只看该作者

LVM管理和故障解决(一)

文件系统方式访问:
pvcreat -f /dev/dsk/c1t2d0
newfs -F vxfs /dev/rdsk/c1t2d0
mount /dev/dsk/c1t2d0 /mnt

裸设备方式:
pvcreate -f /dev/dsk/c1t2d0
在需要填写裸设备名的地方直接使用:
/dev/rdsk/c1t2d0

论坛徽章:
0
6 [报告]
发表于 2003-09-23 14:18 |只看该作者

LVM管理和故障解决(一)

1、pvcreate -f /dev/rdsk/c1t2d0,pvcreate要带裸设备文件;
2、已经再次在英文论坛确认可以直接在pvcreate后使用整盘裸设备文件名,不用加入任何VG;
3、To WilliamCU兄,还没有成功测试出来不加入VG建文件系统,你测试过么?

TKS!

论坛徽章:
0
7 [报告]
发表于 2003-09-23 16:51 |只看该作者

LVM管理和故障解决(一)

To Hpux 兄:

摘自:man newfs
EXAMPLES
      Execute the newfs command to create an HFS file system on
      /dev/rdsk/c1t0d2

      newfs -F hfs /dev/rdsk/c1t0d2

我现在没有多余的硬盘实验,不过,我想man手册应该是对的吧。呵呵!

论坛徽章:
0
8 [报告]
发表于 2003-09-23 18:24 |只看该作者

LVM管理和故障解决(一)

不知道是不是manpage问题,看我的测试:

# pvcreate -f /dev/rdsk/c1t0d0
# newfs -F vxfs /dev/rdsk/c1t0d0
vxfs mkfs: /dev/rdsk/c1t0d0 is a logical volume device , cannot mkfs.
# newfs -F hfs /dev/rdsk/c1t0d0
mkfs(hfs): /dev/rdsk/c1t0d0 is a logical volume device.

加入VG以后提示信息一样!
看来manpage有点问题。

论坛徽章:
0
9 [报告]
发表于 2003-09-23 20:05 |只看该作者

LVM管理和故障解决(一)

老三篇上也说了可以在一个整盘上建立文件系统:
newfs -f vxfs -R 200 /dev/rdsk/c0t2d0 #创建一个vxfs文件系统,并且保留200M给交换区。

我这里也没有环境可以测试。

论坛徽章:
0
10 [报告]
发表于 2003-09-23 20:06 |只看该作者

LVM管理和故障解决(一)

老三篇上也说了可以在一个整盘上建立文件系统:
newfs -f vxfs -R 200 /dev/rdsk/c0t2d0 #创建一个vxfs文件系统,并且保留200M给交换区。

是不是不要pvcreate,直接来做。

我这里也没有环境可以测试,麻烦hpux能不能测试一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP