Chinaunix

标题: lustre1.4.5版本放出 [打印本页]

作者: chutianyin    时间: 2005-11-26 14:47
标题: lustre1.4.5版本放出
http://www.clusterfs.com/download.html
作者: suran007    时间: 2005-11-29 16:44
恩,有空测试一下
作者: suran007    时间: 2005-11-30 15:11
今天用虚拟机测试了一下,没什么问题,运行正常,测试环境是redhat as 3update4,
结构为2个client,1个ost,1个mds
作者: suran007    时间: 2005-11-30 16:59
由于手头没有机器,所以关于lustre集群性能的测试一直无法进行,那位朋友作过lustre集群性能的测试,不知道在性能方面比redhat gfs集群有优势么,大家发表一下意见
作者: nntp    时间: 2005-12-01 00:55
原帖由 chutianyin 于 2005-11-26 14:47 发表
http://www.clusterfs.com/download.html



well, you'd wait till 062H for 146.
作者: chutianyin    时间: 2005-12-01 14:26
我装是装好了,client楞是连不上,苦恼ing……!
suran007把安装以后的配置过程发一下看看!
作者: suran007    时间: 2005-12-01 14:55
client第一次可能会出现无法mount的现象,你可以用lconf -d --node client config.xml命令来卸载分区并且卸载相应模块,然后再执行mount命令:lconf --node client config.xml ,看看如何?
还有一个问题:
我的系统是redhat as3 update4,内核为2.4.21-27,
为了在内核中打好lustre的补丁,我下载lustre-1.2.4.tar.gz然后从新编译2.4.21-27的内核,我的服务器很多,要每台服务器都要重新编译内核,那样太浪费时间了,所以小弟想问问如何将已经打好lustre补丁的新内核做成一个rpm包,以后再其他pc上直接安装这个rpm包就可以了,不用再重新编译内核了,哪个大哥帮帮忙。该如何做?

[ 本帖最后由 suran007 于 2005-12-1 14:59 编辑 ]
作者: chutianyin    时间: 2005-12-01 18:03
你的生成config.xml文件的代码给我看看,我就是用的直接官方的说明文档里面的。

#!/bin/sh

# config.sh

# Create nodes
rm -f config.xml
lmc -m config.xml --add net --node node-mds --nid node-mds --nettype tcp
lmc -m config.xml --add net --node node-ost1 --nid node-ost1 --nettype tcp
lmc -m config.xml --add net --node node-ost2 --nid node-ost2 --nettype tcp
lmc -m config.xml --add net --node node-ost3 --nid node-ost3 --nettype tcp
lmc -m config.xml --add net --node client --nid '*' --nettype tcp

# Cofigure MDS
lmc -m config.xml --add mds --node node-mds --mds mds-test --fstype ext3 --dev /tmp/mds-test --size 50000

# Configures OSTs
lmc -m config.xml --add lov --lov lov-test --mds mds-test --stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0
lmc -m config.xml --add ost --node node-ost1 --lov lov-test --ost ost1-test --fstype ext3 --dev /tmp/ost1-test --size 100000
lmc -m config.xml --add ost --node node-ost2 --lov lov-test --ost ost2-test --fstype ext3 --dev /tmp/ost2-test --size 100000
lmc -m config.xml --add ost --node node-ost3 --lov lov-test --ost ost3-test --fstype ext3 --dev /tmp/ost3-test --size 100000

# Configure client (this is a 'generic' client used for all client mounts)
lmc -m config.xml --add mtpt --node client --path /mnt/lustre --mds mds-test --lov lov-test
作者: suran007    时间: 2005-12-02 09:28
这是我的newconfig.xml文件,内容如下
#!/bin/sh

#config.sh

#Create nodes
rm -f newconfig.xml
lmc -m newconfig.xml --add net --node n03 --nid n03 --nettype tcp
lmc -m newconfig.xml --add net --node n01 --nid n01 --nettype tcp
lmc -m newconfig.xml --add net --node n02 --nid n02 --nettype tcp
lmc -m newconfig.xml --add net --node client --nid '*' --nettype tcp

#Configure mds
lmc -m newconfig.xml --add mds --node n03 --mds n03-mds1 --fstype ext3 --dev /dev/sda1 --size 200000

#Configure ost
lmc -m newconfig.xml --add lov --lov lov1 --mds n03-mds1 --stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0
lmc -m newconfig.xml --add ost --node n01 --lov lov1 --ost n01-ost1 --fstype ext3 --dev /dev/sda1 --size 1000000
lmc -m newconfig.xml --add ost --node n02 --lov lov1 --ost n02-ost1 --fstype ext3 --dev /dev/sda1 --size 1000000

#Configure client
lmc -m newconfig.xml --add mtpt --node client --path /mnt/lustre --mds n03-mds1 --lov lov1
作者: chutianyin    时间: 2005-12-02 11:12
我发现client如果也这样写的话
lmc -m newconfig.xml --add net --node client --nid '*' --nettype tcp

lconf --node client config.xml的时候

会一直连他自己本地的ip 127.0.0.1

两台机器(虚拟机,一个ip是192.168.3.115,还有一个是192.168.3.112)
两边生成的配置文件相同:
#!/bin/sh

# config.sh

# Create nodes
rm -f config.xml
lmc -m config.xml --add net --node node-ost1 --nid node-ost1 --nettype tcp
lmc -m config.xml --add net --node node-ost2 --nid node-ost2 --nettype tcp
lmc -m config.xml --add net --node node-ost3 --nid node-ost3 --nettype tcp
lmc -m config.xml --add net --node client --nid '*' --nettype tcp

# Cofigure MDS
lmc -m config.xml --add mds --node node-ost1 --mds mds-test --fstype ext3 --dev /tmp/mds-test --size 50000

# Configures OSTs
lmc -m config.xml --add lov --lov lov-test --mds mds-test --stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0
lmc -m config.xml --add ost --node node-ost2 --lov lov-test --ost ost2-test --fstype ext3 --dev /tmp/ost2-test --size 20000
lmc -m config.xml --add ost --node node-ost3 --lov lov-test --ost ost3-test --fstype ext3 --dev /tmp/ost3-test --size 20000

# Configure client (this is a 'generic' client used for all client mounts)
lmc -m config.xml --add mtpt --node client --path /mnt/lustre --mds mds-test --lov lov-test


在192.168.3.115上面
[root@myas4 home]# lconf --reformat --node node-ost2 config.xml
loading module: libcfs srcdir None devdir libcfs
loading module: portals srcdir None devdir portals
loading module: ksocknal srcdir None devdir knals/socknal
loading module: lvfs srcdir None devdir lvfs
loading module: obdclass srcdir None devdir obdclass
loading module: ptlrpc srcdir None devdir ptlrpc
loading module: ost srcdir None devdir ost
loading module: ldiskfs srcdir None devdir ldiskfs
loading module: fsfilt_ldiskfs srcdir None devdir lvfs
loading module: obdfilter srcdir None devdir obdfilter
NETWORK: NET_node-ost2_tcp NET_node-ost2_tcp_UUID tcp node-ost2 988
OSD: ost2-test ost2-test_UUID obdfilter /tmp/ost2-test 20000 ldiskfs no 0 0
OST mount options: errors=remount-ro
[root@myas4 home]# lconf --reformat --node node-ost3 config.xml
OSD: ost3-test ost3-test_UUID obdfilter /tmp/ost3-test 20000 ldiskfs no 0 0
OST mount options: errors=remount-ro
[root@myas4 home]# lconf --reformat --node node-ost1 config.xml
loading module: mdc srcdir None devdir mdc
loading module: osc srcdir None devdir osc
loading module: lov srcdir None devdir lov
loading module: mds srcdir None devdir mds
MDSDEV: mds-test mds-test_UUID /tmp/mds-test ldiskfs no
recording clients for filesystem: FS_fsname_UUID
Recording log mds-test on mds-test
LOV: lov_mds-test 322e5_lov_mds-test_37c8958c67 mds-test_UUID 0 1048576 0 0 [u'ost2-test_UUID', u'ost3-test_UUID'] mds-test
OSC: OSC_myas4_ost2-test_mds-test 322e5_lov_mds-test_37c8958c67 ost2-test_UUID
OSC: OSC_myas4_ost3-test_mds-test 322e5_lov_mds-test_37c8958c67 ost3-test_UUID
End recording log mds-test on mds-test
Recording log mds-test-clean on mds-test
LOV: lov_mds-test 322e5_lov_mds-test_37c8958c67
OSC: OSC_myas4_ost2-test_mds-test 322e5_lov_mds-test_37c8958c67
OSC: OSC_myas4_ost3-test_mds-test 322e5_lov_mds-test_37c8958c67
End recording log mds-test-clean on mds-test
MDSDEV: mds-test mds-test_UUID /tmp/mds-test ldiskfs 50000 no
MDS mount options: errors=remount-ro
[root@myas4 home]# lconf --node client config.xml
loading module: llite srcdir None devdir llite
LOV: lov-test 315f5_lov-test_5cc0aecb27 mds-test_UUID 0 1048576 0 0 [u'ost2-test_UUID', u'ost3-test_UUID'] mds-test
OSC: OSC_myas4_ost2-test_MNT_client 315f5_lov-test_5cc0aecb27 ost2-test_UUID
OSC: OSC_myas4_ost3-test_MNT_client 315f5_lov-test_5cc0aecb27 ost3-test_UUID
MDC: MDC_myas4_mds-test_MNT_client 5f7a5_MNT_client_18bac6f136 mds-test_UUID
MTPT: MNT_client MNT_client_UUID /mnt/lustre mds-test_UUID lov-test_UUID

里面出现errors=remount-ro不知道什么意思,但是能够加载
[root@myas4 home]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       9643660   2965364   6188416  33% /
/dev/hda1               101086     15824     80043  17% /boot
none                    127268         0    127268   0% /dev/shm
config                   38712      8600     28112  24% /mnt/lustre

在192.168.3.112上面
[root@mylinux home]# lconf --node client config.xml
loading module: libcfs srcdir None devdir libcfs
loading module: portals srcdir None devdir portals
loading module: ksocknal srcdir None devdir knals/socknal
loading module: lvfs srcdir None devdir lvfs
loading module: obdclass srcdir None devdir obdclass
loading module: ptlrpc srcdir None devdir ptlrpc
loading module: osc srcdir None devdir osc
loading module: lov srcdir None devdir lov
loading module: mdc srcdir None devdir mdc
loading module: llite srcdir None devdir llite
NETWORK: NET_client_tcp NET_client_tcp_UUID tcp 127.0.0.1 988
LOV: lov-test e2bc6_lov-test_2dc07a950e mds-test_UUID 0 1048576 0 0 [u'ost2-test_UUID', u'ost3-test_UUID'] mds-test
OSC: OSC_mylinux_ost2-test_MNT_client e2bc6_lov-test_2dc07a950e ost2-test_UUID
OSC: OSC_mylinux_ost3-test_MNT_client e2bc6_lov-test_2dc07a950e ost3-test_UUID
MDC: MDC_mylinux_mds-test_MNT_client ed2d7_MNT_client_271d8afe64 mds-test_UUID
MTPT: MNT_client MNT_client_UUID /mnt/lustre mds-test_UUID lov-test_UUID
就一直这样,不动了

连接的NETWORK: NET_client_tcp NET_client_tcp_UUID tcp 127.0.0.1 988 晕。

[ 本帖最后由 chutianyin 于 2005-12-2 11:52 编辑 ]
作者: chutianyin    时间: 2005-12-03 15:39
终于搞定了,整理一下,过两天贴出来!
作者: nntp    时间: 2005-12-03 23:59
Congrates !   More meanful work is to test small file size I/O (<16k) performance on Lustre.
作者: chutianyin    时间: 2005-12-06 10:26
时间比较紧,先做了个简单的文档放上来。

1MDS,1OST,2client 操作系统为redhatas4

下载(假设都放在/home 下)
kernel-smp-2.6.9-5.0.5.EL_lustre.1.4.5.i686.rpm
lustre-1.4.5-2.6.9_5.0.5.EL_lustre.1.4.5smp.i686.rpm
lustre-modules-1.4.5-2.6.9_5.0.5.EL_lustre.1.4.5smp.i686.rpm

如果需要重新编译内核,可以下载内核源码包(本文省略)
kernel-source-2.6.9-5.0.5.EL_lustre.1.4.5.i686.rpm


安装内核
rpm -ivh /home/kernel-smp-2.6.9-5.0.5.EL_lustre.1.4.5.i686.rpm
修改grub或者lilo
重启

安装lustre
rpm -ivh /home/lustre-1.4.5-2.6.9_5.0.5.EL_lustre.1.4.5smp.i686.rpm
rpm -ivh /home/lustre-modules-1.4.5-2.6.9_5.0.5.EL_lustre.1.4.5smp.i686.rpm

安装完毕!

接下来生成配置文件,文件位置随意,我这边同样也放在/home下面。
vi config.sh
下面是我的配置的文件,直接拿的官方文档上面的配置文件用的,我没有怎么进行修改。
#!/bin/sh

# config.sh

# Create nodes
rm -f config.xml
lmc -m config.xml --add net --node node-mds --nid node-mds --nettype tcp
lmc -m config.xml --add net --node node-ost1 --nid node-ost1 --nettype tcp
lmc -m config.xml --add net --node client --nid '*' --nettype tcp

# Cofigure MDS
lmc -m config.xml --add mds --node node-mds --mds mds-test --fstype ext3 --dev /tmp/mds-test --size 50000

# Configures OSTs
lmc -m config.xml --add lov --lov lov-test --mds mds-test --stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0
lmc -m config.xml --add ost --node node-ost1 --lov lov-test --ost ost1-test --fstype ext3 --dev /tmp/ost1-test --size 100000

# Configure client (this is a 'generic' client used for all client mounts)
lmc -m config.xml --add mtpt --node client --path /mnt/lustre --mds mds-test --lov lov-test

lustre可以直接使用物理分区,我这边没有用,如果需要的话,可以修改配置文件把/tmp/mds-test和/tmp/ost1-test,修改成物理分区。
假设使用/dev/sda4和/dev/sda5(实际情况视你的分区情况而定,我这边MDS和OST都是安装在同一台机器,最好是分开安装),配置文件可以如下:
#!/bin/sh

# config.sh

# Create nodes
rm -f config.xml
lmc -m config.xml --add net --node node-mds --nid node-mds --nettype tcp
lmc -m config.xml --add net --node node-ost1 --nid node-ost1 --nettype tcp
lmc -m config.xml --add net --node client --nid '*' --nettype tcp

# Cofigure MDS
lmc -m config.xml --add mds --node node-mds --mds mds-test --fstype ext3 --dev /dev/sda4

# Configures OSTs
lmc -m config.xml --add lov --lov lov-test --mds mds-test --stripe_sz 1048576 --stripe_cnt 0 --stripe_pattern 0
lmc -m config.xml --add ost --node node-ost1 --lov lov-test --ost ost1-test --fstype ext3 --dev /dev/sda5

# Configure client (this is a 'generic' client used for all client mounts)
lmc -m config.xml --add mtpt --node client --path /mnt/lustre --mds mds-test --lov lov-test

注意,确保两个分区里面没有任何的数据,否则过一会儿lconf --reformat的时候会被全部格式化,还有,要确保这两个分区没有被mount,否则lconf --reformat会出错!


ok,保存配置文件。

sh config.sh(生成config.xml配置文件,每台机器的配置文件都相同)

接下来有个比较关键的环节,修改hosts文件(呵呵,我认为比较关键,因为我在这边卡了整整一个星期)

假设两台机器的ip是192.168.1.111和192.168.1.112(111上面1MDS,1OST,1client;112上面1client)

vi /etc/hosts(两台机器都需要修改)

添加

192.168.1.111      node-mds node-ost1

这边不能使用127.0.0.1,我原来直接把node-mds node-ost1加到127.0.0.1后面(在111上),另外一个客户端(112设置的是192.168.1.111      node-mds node-ost1)怎么都连不上。

保存。

接下来启动lustre,启动的顺序为OST->MDS->client
在111上
lconf --reformat --node node-ost1 config.xml
lconf --reformat --node node-mds config.xml
lconf --node client config.xml
这里是第一次加载,所以加了--reformat,重新格式化,如果不是第一次,就要去掉--reformat,改成如下的形式:
lconf --node node-ost1 config.xml
lconf --node node-mds config.xml
lconf --node client config.xml
在112上
lconf --node client config.xml

全部加载完毕!

可以用df查看

[ 本帖最后由 chutianyin 于 2006-3-15 15:56 编辑 ]
作者: chutianyin    时间: 2005-12-06 10:28
性能测试要过一段时间才能做了
最近年底,公司的事情开始多了,不好意思,如果谁有条件,可以进行测试!

顺便牢骚一下,其实官方的文档写的已经比较全面了,但是谁叫我以前没有好好学习E文呢,所以在看了官方文档的情况下,还满天下的找安装说明,因为我看不明白啊,但是每次都被大侠们一句“去看官方文档,很详细”就顶回来了,当时那个郁闷啊,后来在suran007的帮助下,才好不容易完成安装,所以各位,还是好好学习,努力的学习E文吧。

[ 本帖最后由 chutianyin 于 2005-12-6 10:37 编辑 ]
作者: suran007    时间: 2005-12-07 10:01
呵呵,写得挺详细的,其实我们往往是大的地方注意了,却忽略了一些小的地方,而往往是这些小的地方能困住我们很久,还是希望那位朋友有条件的,可以帮忙测试一下性能,大家互相学习~~~~
作者: suran007    时间: 2005-12-09 17:16
看了看lustre的maillist,说lustre在大文件写入和很多client的时候,才能充分体现lustre的性能优势,而他在小文件和单个client的性能方面并不是很出色,不知道对不对,那位朋友做过测试的,把测试结果贴出来看看,由于我手头没有pc,所以用虚拟机作的测试,是1个ost,1个mds,1个client和1个ost,1个mds,2个client分别作了测试,但是测试结果怎么反而是2个client(方式)比1个client(方式)更慢呢,按理说client多,应该性能更好一些才对呀,测试copy的文件是640兆。
作者: nntp    时间: 2005-12-10 06:25
原帖由 suran007 于 2005-12-9 17:16 发表
看了看lustre的maillist,说lustre在大文件写入和很多client的时候,才能充分体现lustre的性能优势,而他在小文件和单个client的性能方面并不是很出色,不知道对不对,那位朋友做过测试的,把测试结果贴出来看看, ...


没错,的确如此。目前在整个行业,要找到一个对大量小文件并发读写的解决方案,还非常困难。
所以你所言的确不假,其实我对lustre实际的性能是心里有数的,只不过也在观望是否有朋友创造了"奇迹"

大块的文件,非常得益于这种分布式的存储方式,client 发起I/O请求之后,只需要MDS按照优化的检索设计就可以获取目标的所有信息,然后因为做成了横跨多个OST的striping 的方式,加上每个OST自己也可以用external RAID stroage,做单个OST硬件上的raid striping,比如RAID10. 所以并发访问的时候,基本上效果和单独一个storage上访问一个RAID0差不多. 如果的ADM, MDS, OSTs之间,通过Infiniband联结,性能会好很多.

小文件则完全不同,比如我关心的<16k的文件,不可能stripe到多个OSTs上,也就是说,只有一个OST存放这个文件,更糟糕的时候,本来我single client 读写single server上同样大小的小文件的时候,metadata直接在fs上可以获得,没有外部延迟,现在MDS在ethernet上了,读写这样的小文件,我还要跨过一个ethernet来和MDS打交道. 等于是额外的开销增加了,当然同大文件一样,infiniband会好很多. 你可以想象读写海量的这样的文章,网络和来自单独设备上的延迟叠加起来会有多大.

然后,还有糟糕的事情,嘿嘿。 小文件在single OST上,因为我们现在的常规hardware 设备+现代OS,读写小文件本来性能就不会好.所以还会有一个延迟。

总而言之,如果你想要看到我上面说的这些状况,硬件上至少建议4个PC,最好6个, 1xADM, 1xMDS, 2/4 x OST. 你可以try try 大文件和小文件的区别. 就会发现结果还是会令人沮丧。换句话说,要想得到大并发,小文件多client的超级效果,目前还是要掏大把银子从硬件上解决.

vmware里面建议不要做性能的测试,因为根本没有意义。没有网络的区别,没有脱离Host OS 的fs 对guest OS的影响,你很难得到一个正确的基础数据。

single client or large amount client 的问题,我觉得没有必要担忧,毕竟没有人花了大把的银子,请了做lustre的顾问来设计和实施系统,然后只让很少的client 来访问的。现实应用中不太可能。

我看按照目前的性能表现,国内现在做游戏和数码电影的中小型公司比较多了,可以用廉价的设备来搭建这样一套东西,比如作DCC的 rendering Farm之类的。好歹也不用每次都购买上百万的硬件存储设备了.

SATAII马上就要变成mainstream乐,听说对小文件的i/o performance 让人惊讶,虽然MTBF及不上SCSI, 但是便宜就是硬道理。每个OST到时候挂上2个SATAII的external storage, 就可以把整套TB级的Lustre控制在100万人民币以内了,这样还是有很高的现实意义的。

就是配套的擅长lustre应用的顾问并不多,在这里能够看到有对lustre感兴趣的朋友震得很好。 希望多做交流。

[ 本帖最后由 nntp 于 2005-12-10 06:34 编辑 ]
作者: suran007    时间: 2005-12-13 16:36

我在看lustrehowto时,看见上面这个图片,是将2个oss,一共6六个分区,分别作成三个lov,最后client挂载lustre文件系统时,是3个lustre文件系统(3个lustre挂载点),我不明白为什么要作3个lustre文件系统,为什么不作成一个大的lustre文件系统,难道作成3个比1个有性能方面的优势?
不好意思,上面的图片挂了,以下是这个howto的pdf地址
http://www.ncsa.uiuc.edu/News/datalink/0507/LustreHowTo.pdf

[ 本帖最后由 nntp 于 2005-12-14 06:47 编辑 ]
作者: nntp    时间: 2005-12-14 06:47
原帖由 suran007 于 2005-12-13 16:36 发表

我在看lustrehowto时,看见上面这个图片,是将2个oss,一共6六个分区,分别作成三个lov,最后client挂载lustre文件系统时,是3个lustre文件系统(3个lustre挂载点) ...


对,效率问题,架设应用的确是针对分布式fs的情况下,striping 的效果越大,效率越高.
作者: molecar    时间: 2006-11-03 16:59
1.60简化了很多大家有空测试一下多交流
作者: baif    时间: 2006-11-07 16:08
昨天刚把1.60Beta下载,等机器测试。很想交流一下。
作者: qianwu9966    时间: 2007-01-02 17:27
楼主好,请问lustre能够嵌入到redhat 7.3 系统吗?谢谢 小弟的应用软件只能在7.3系统上跑,没办法啊
作者: nntp    时间: 2007-01-02 18:57
原帖由 qianwu9966 于 2007-1-2 17:27 发表
楼主好,请问lustre能够嵌入到redhat 7.3 系统吗?谢谢 小弟的应用软件只能在7.3系统上跑,没办法啊


no
作者: qianwu9966    时间: 2007-01-02 23:18
根据src来重构i386的rpm包也不行吗? 看来我的升级应用软件了
作者: gaolimin_lose    时间: 2007-01-09 18:03
唉,我都在测试1.6了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2