找回密码
 FreeOZ用户注册
楼主: ubuntuhk

[Linux] 讨论帖:建立一个Linux集群(开始配置集群软件,2楼提供更新的目录)

[复制链接]
发表于 26-6-2009 00:27:31 | 显示全部楼层
原帖由 akai 于 25-6-2009 23:16 发表
ok. yahoo google这些分布式存储 如果节点A要访问的数据 存放在节点B和节点C那里. A是通过什么联接方式取得B和C的数据呢?网卡?
这样作的好处 是不是说把 SAN中的需要i/o计算的部分 分摊到各个node上了?
...


Google的MapReduce算法会对计算节点和访问对应的数据做优化,基本上绝大部分的计算都是在数据块所在的机器上进行的,尽可能的减少了网络IO的开销。而且,一般同一份数据会存在至少3个不同的地方,这样就可以在这3个数据块所在的节点上对同一块数据同时进行计算而不消耗网络带宽。

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 01:34:56 | 显示全部楼层
这个应用我支持把存储独立出去

评分

参与人数 1威望 +20 收起 理由
ubuntuhk + 20 独立出来似乎也难以避免网络IO的问题

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 10:31:55 | 显示全部楼层
Google之所以能避免海量数据的网络IO问题是因为它做到了信息的微粒化和冗余化

如果一个数据intensive的应用做不到这一点,集中远比分散更能减少网络IO,且应用开发也较为容易

评分

参与人数 2威望 +60 收起 理由
ubuntuhk + 30 谢谢分享!
coredump + 30 我很赞同!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 10:34:03 | 显示全部楼层

强贴留名

没想到我也出这招。

存贮结构是我的弱项中的弱项。都不明白你们怎么知道这么多东西?

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 哈哈,共同学习。。。

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 10:56:07 | 显示全部楼层

回复 #64 yuba 的帖子

兼回复 #62 coredump 的帖子
我一直对分布式存储存在误区.
希望能经过u版的这个话题能略为搞搞清楚.
我的一点个人意见如下阿:
1.假设A计算机 访问本地的SAN上的硬盘上某个文件的的速度是300MB/s
2. 假设node足够多.一个文件象BT一样被分成了好多分布在多个nodes上
3.A计算机从各个nodes上访问这个文件的速度类似p2p机制. nodes越多.
速度越快. 最终可能>或者=访问本地sAN的速度.
不知道我的理解对不对.

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 11:01:44 | 显示全部楼层

回复 #66 akai 的帖子

不光是数据分布的问题,就像yuba兄说的,这种架构需要算法设计上的紧密配合,否则可能会弄巧成拙。

评分

参与人数 1威望 +20 收起 理由
ubuntuhk + 20 我很赞同!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 11:12:16 | 显示全部楼层
u版的这个环境需要cluster软件
问题
1.一般的cluster是不是都自带了file system? 比如oracle 的RAC
2.有没有对file system透明的 cluster软件.比如我装了lustre作为file system. 然后上面跑cluster 软件?
核心同学的高见是?

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

 楼主| 发表于 26-6-2009 12:40:47 | 显示全部楼层
大家讨论得很热烈

最新进展:
我现在已经给几台机器做了如下分区:

--RAID 6 (4+2), 3.8xTB

(root)/    50GB
SWAP   10GB
/disc1    2TB
/disc2   1.8xTB
(除了swap,以上皆为ext3分区)

为什么这么分区,因为RHEL/CentOS 5.2默认的分区策略安装(一个大LVM)之后,安装完之后,无法启动,试了好多次,只有这种方式才能启动,所以我先把系统跑起来,然后再把 /disc1, /disc2根据实际的选择,删掉之后,再换成别的分区(比如XFS、JFS、ZFS)。

这是一个土办法,大家如果有更好的办法,请不吝赐教。
回复  

使用道具 举报

 楼主| 发表于 26-6-2009 12:41:48 | 显示全部楼层
安装的OS,最后还是觉得舍弃RHEL,安装CentOS 5.2,更符合自由精神,安装的软件集合是Server+Cluster+Cluster Storage,现在还不知道这里面的Cluster和Cluster Storage怎么用,性能如何,反正现在是裸机,可以随便试,所以大家有所什么好的idea,都可以提出来,我来做白老鼠。
回复  

使用道具 举报

 楼主| 发表于 26-6-2009 12:48:27 | 显示全部楼层
在coredump的指引下,我对相关的资料做了一些了解,我个人比较倾向用mosix+NFS或者GFS,其实在我目前这个应用里面,在某一个时刻,很可能会被单个训练程序独占运行,这样我可以控制这个训练程序只从其中某台机器的存储里面读取数据,相当于有某一台机器会兼有NAS的作用(当然这样可能会带来不方便的地方,要记住哪些数据是存放在那台机器上,不过如果分布式存放会影响网络IO,这也是迫不得已了)。

不过我昨天发现,SATA的硬盘读写效率对CPU的占用相当大,如果我从A机拷贝一个10GB文件到B机,能保持60MB的传输速率,但是A机的CPU占用率要占去其中一个cpu core的100%,而且A机运行速度明显降低(可能因为磁盘带宽被占用的原因),这样可能会带来一定问题。

我的应用是要读取一大堆小文件,每次读取一个小文件(约占20%时间),然后运行计算程序(约占80%时间)。

针对这样的应用和目前的硬件条件,大家建议怎样做更好?
回复  

使用道具 举报

发表于 26-6-2009 12:50:32 | 显示全部楼层
原帖由 akai 于 26-6-2009 10:12 发表
u版的这个环境需要cluster软件
问题
1.一般的cluster是不是都自带了file system? 比如oracle 的RAC
2.有没有对file system透明的 cluster软件.比如我装了lustre作为file system. 然后上面跑cluster 软件?
核心 ...

lustre是跑在ZFS,ext这样的本地文件系统之上的,所以lustre更像是一个面向分布式存储的集群软件,而不仅仅是一个分布式文件系统。这和GFS, Coda这样的纯分布式文件系统还是有点区别的。
回复  

使用道具 举报

 楼主| 发表于 26-6-2009 12:58:33 | 显示全部楼层
原帖由 coredump 于 25-6-2009 23:27 发表


Google的MapReduce算法会对计算节点和访问对应的数据做优化,基本上绝大部分的计算都是在数据块所在的机器上进行的,尽可能的减少了网络IO的开销。而且,一般同一份数据会存在至少3个不同的地方,这样就可以在这 ...


如果能有这样的文件系统,而且针对我这个应用,实际性能不差的话,那么这种方案无疑是更理想的:
1.大部分数据在本机上(减少网络IO),本机可以用大胆的RAID 0进行提速,速度更快
2.可以容许2个节点挂掉而不影响cluster运行(我觉得多台机器备份比单台机器的RAID6更可靠)
回复  

使用道具 举报

发表于 26-6-2009 13:24:11 | 显示全部楼层
海量小文件 最可怕.
没有好的办法. 只能金钱换效率.
你如果用NAS 
1.升千兆交换机. 几千块可以搞定
2.买6类线 不能自己作
3.网卡作bonding. 尤其是作nfs的那台 能bonding 4个口更加好.

 

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 13:26:58 | 显示全部楼层
另外u 版.
这种cluster 一般就是纯SA 都要折腾半天.
你是作开发的. 搞这个?......

评分

参与人数 1威望 +20 收起 理由
ubuntuhk + 20 你不知道有一种人被称为万金油吗,大概说的 ...

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 13:40:26 | 显示全部楼层

回复 #74 akai 的帖子

网卡作bonding是好主意,不过似乎需要网卡驱动和交换机的支持才行
回复  

使用道具 举报

发表于 26-6-2009 14:25:47 | 显示全部楼层
原帖由 akai 于 26-6-2009 12:24 发表
海量小文件 最可怕.
没有好的办法. 只能金钱换效率.
你如果用NAS 
1.升千兆交换机. 几千块可以搞定
2.买6类线 不能自己作
3.网卡作bonding. 尤其是作nfs的那台 能bonding 4个口更加好.

 


海量小文件呀,这个俺有那么一点经验:弄个数据库搞定它啦。
哈哈哈,不知道embedded database在分布式平台上的表现如何,
但在local机器上,我是有信心的
回复  

使用道具 举报

发表于 26-6-2009 14:31:46 | 显示全部楼层
原帖由 ubuntuhk 于 26-6-2009 11:48 发表
在coredump的指引下,我对相关的资料做了一些了解,我个人比较倾向用mosix+NFS或者GFS,其实在我目前这个应用里面,在某一个时刻,很可能会被单个训练程序独占运行,这样我可以控制这个训练程序只从其中某台机器的存 ...


说实际的系统我插不上话,纯吹理论的话我不妨抛几个砖头。
你这个系统怎么看怎么都象NetGrid系统的需求。
我没有具体参加netGrid的开发,只知道他们是用 GlobalBus + Lustre + 自己开发的web services

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 14:40:11 | 显示全部楼层

回复 #78 key 的帖子

netgrid 是前两年IBM带头吹的buzzword,现在实行由Google吹的Clouding Computing了,其实都是一个东东
回复  

使用道具 举报

发表于 26-6-2009 14:46:11 | 显示全部楼层
原帖由 ubuntuhk 于 26-6-2009 11:48 发表

我的应用是要读取一大堆小文件,每次读取一个小文件(约占20%时间),然后运行计算程序(约占80%时间)。

针对这样的应用和目前的硬件条件,大家建议怎样做更好?

这个过程是串行的还是可以并行的? 如果你的程序是可以设计多进程并行运行的话,用MOSIX可以透明地提高运行效率,比如同时用n个进程对一堆音频文件进行压缩之类的。

不过要注意的一件事是MOSIX是商业软件,不是open source的。但是价格貌似很公道, 而且这玩意的历史居然和UNIX差不多久。

另有一个openMOSIX在前年就停止开发了好像 MOSIX的替代品有个叫kerrighed的,不过我对其没有了解。单纯的SSI目的的话,也可以考虑OpenSSI

评分

参与人数 1威望 +20 收起 理由
ubuntuhk + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 16:01:45 | 显示全部楼层
原帖由 ubuntuhk 于 25-6-2009 19:40 发表
嗯,好,不过现在先要解决系统搭建的问题,如果需要做云计算开发,系统搭建上需要注意什么事项吗?还是非得用google、amazon的云计算服务,我可租不起


目前国内有不少在做云计算的小公司,都是创业型的,尤其是北京和杭州
ubuntu兄真的要做云计算?
回复  

使用道具 举报

发表于 26-6-2009 16:06:55 | 显示全部楼层
我认识一家上海公司ChinaNetCloud:http://www.chinanetcloud.com/en

有啥需要咨询的,等7月20号左右上海linux聚会的时候,我可以代为咨询

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 16:16:41 | 显示全部楼层
Dreamhouse不小心经过
留下景仰各位的眼神

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 欢迎路过~~

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 16:27:33 | 显示全部楼层

回复 #82 valpa 的帖子

现在世界各地的云计算创业小公司多如牛毛啊,非常类似90年代的WEB创业公司的劲头
回复  

使用道具 举报

发表于 26-6-2009 16:34:03 | 显示全部楼层
是啊是啊,要不咱也整一个?
回复  

使用道具 举报

 楼主| 发表于 26-6-2009 16:38:28 | 显示全部楼层
原帖由 valpa 于 26-6-2009 15:01 发表

目前国内有不少在做云计算的小公司,都是创业型的,尤其是北京和杭州
ubuntu兄真的要做云计算?


做云计算不是我的目的,我的目的是(下一阶段)需要搭建一个能够实现计算密集型的分布式运算平台,如果有必要,可以顺便炒一把云计算的概念
回复  

使用道具 举报

 楼主| 发表于 26-6-2009 16:39:41 | 显示全部楼层
原帖由 valpa 于 26-6-2009 15:06 发表
我认识一家上海公司ChinaNetCloud:http://www.chinanetcloud.com/en

有啥需要咨询的,等7月20号左右上海linux聚会的时候,我可以代为咨询


你不如单独开个帖子,给大家介绍一下云计算的多方面或某方面知识吧(系统搭建、应用开发。。。)。
回复  

使用道具 举报

发表于 26-6-2009 16:53:15 | 显示全部楼层
俺水平菜得很,不献丑了

俺喜欢跟着大家一起玩

评分

参与人数 1威望 +20 收起 理由
ubuntuhk + 20 我也是菜鸟,一起学习嘛~~

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 17:46:37 | 显示全部楼层

回复 #73 ubuntuhk 的帖子

"本机可以用大胆的RAID 0进行提速,速度更快"
- 不要神话raid0的速度。raid0是同时从2块盘上读取,x(x>=4)块盘的raid6是同时从x块盘上读取。

"大部分数据在本机上(减少网络IO)"
"可以容许2个节点挂掉而不影响cluster运行"
- 如果可以挂掉节点而不影响cluster的运行,除非数据只读不写,否则就需要大量的IO来同步
- 容许2个节点挂掉,需要两备一,就是一台的数据(及其变化)需要近乎实时的同步到至少其他两台机器上。换句话说,每台机器都实时的拥有3台机器的数据。
- 我实在看不出怎么能减少网络IO。

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 18:17:10 | 显示全部楼层
原帖由 yuba 于 26-6-2009 16:46 发表
"本机可以用大胆的RAID 0进行提速,速度更快"
- 不要神话raid0的速度。raid0是同时从2块盘上读取,x(x>=4)块盘的raid6是同时从x块盘上读取。

"大部分数据在本机上(减少网络IO)"
"可以容许2个节点挂掉而不影响 ...


N个硬盘的RAID0条带无论读写都是均匀分布的, 多于2个盘的RAID0称为RAID 0 strip array.

lustre这样的cluster只能允许一个node挂掉。

评分

参与人数 1威望 +20 收起 理由
ubuntuhk + 20 谢谢分享!

查看全部评分

回复  

使用道具 举报

发表于 26-6-2009 18:57:51 | 显示全部楼层
拜一下楼顶各位,
现在知道看不懂中文的滋味是多么痛苦

评分

参与人数 1威望 +30 收起 理由
ubuntuhk + 30 欢迎参观;)

查看全部评分

回复  

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 29-3-2024 21:26 , Processed in 0.074312 second(s), 45 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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