The Mirages

樱桃沟夹事

最近听了一次马路遥朋友的讲座,他的主题就是HPC,以下内容就是根据他的讲座整理而成的。
因为涉及到高可用计算,所以服务器与服务器之间的连接速度是很重要的。是选择千兆还是万兆还是infiniband,个人感觉还是选择万兆吧。毕竟延迟小是明摆着的事情。
服务器系统的安装也是一个问题,如何迅速的安装系统呢? 用kickstart?可这个只能redhat系统下使用啊。马兄说了他使用的主要是SystemImage,和syncbased这2种方式。
如果用kickstart来安装系统,那要是每个机器需要修改的配置不同的话那可以用php/cgi的方式自定义各种ks.cfg
如何选择合适的系统,马兄由于习惯redhat的系统所以选择了centos,但是其实一些新的发行版还是真是不错,比如gentoo和ubuntu这2个,首先是内核新,其次是文件系统可选择余地大。
对于HPC来说选择一个合适的软件来进行任务管理和分配系统资源是很重要的,主要有以下几种
1 SGC: sun出品,稳定性优秀
2 openPBS,Torque 这个稳定性稍差点
3 L$F, 这个是商业软件,应该稳定性也非常优秀。

而对于这样一个庞大的系统和服务器集群做好监控是非常重要的,监控软件主要有以下几种:
1 ganglia
2 cacti
3 nagios
个人是最喜欢最后一种,客户端可供自定义的多。而前面2种就是基于snmp协议的,在内网中使用还是非常不错的选择。

管理软件,所谓的管理软件其实就是可以一次操作需要的服务器
1 pdsh 这个是多服务器管理
2 mussh 这个可以允许本地脚本在远程执行,这个应该是个不错的功能。不知道远程跟本地是通过什么进行连接的
3 cssh 这个是基于图形界面的,就好象在一个界面中开多个终端一样。这个曾经在redhat中使用过,可以自定义各种组和成员。
但是我觉得windows一些客户端也能完成上面的工作,比如xshell这样的工具,这样也可以自定义组和成员,也能一次操作对多个服务器进行生效。

既然是集群那时间同步是非常重要的,所以还要建立ntp服务器。

集群中所有服务器的认证也是非常头疼的,还好我们有NIS和openLDAP.
NIS我曾经在公司内部使用过,感觉需要在客户端上要修改挺多东西,而且不同Linux发行版本还修改的不同。openLDAP还没用过,但是听说非常好用,而且还不光能做服务器登录的认证还能做email认证等等。

在集群中不光有计算的服务器,还必须要有文件服务器,这个选择就很重要了
1 NFS: 常用,但是性能不怎么样,特别是client超过10个以上更是不行,同时不能支持对文件同时进行修改。于是衍生出了clusterFS, 这个就非常多了。
2 FressNAS: 基于FreeBSD操作系统的
3 openFilter: 基于Linux系统的
4 sun Lustre: 可以进行400台机器同时读写,这个太牛了。。。。
5 Redhat GFS: 这个不怎么好用,后面还得跟上SAN存储才行,这样成本就大了,除非你用netbsd实现SAN
6 PVFS/PVFS2

阅读全文 »

While的使用

 while read line do mysql ab -e "insert into filter values (null,'$line','xxxxxxxx','xxxxxxxx',1,8,1,1,188,'abc')" done = '"$sunday"%' and time >files/blog_we ek_num done fi done 

上面做了2次for语句,第一次表示i从1-7,而第二次a是从1-99.上面第一个for语句是为了查询今天是否为星期天而产生的。

要是shell里能进行很好的循环就好了。以及shell最不容易控制的就是’,”,这3个标点符号的区别。这个倒是比较简单,就是在shell里只是表示运行外部程序。”和’这个如果单独使用是没有任何问题的,但是一旦要配合使用就区分起来十分麻烦。

这个日志统计程序中总共用了500多行,先定义30个日期。这个要是能用循环就非常简单了。但是我还是用比较傻的一个个来进行定义。

 day=`date -d -1days +%F` day_1=`date -d -2days +%F` 

这里要是能够使用的数组来进行定义就非常简单了。

 for i in {2..30}
 do
   eval day_$i=`date -d -"$i"days +%F`
   eval echo $day_$i
done  

通过上面就可以进行循环定义了。

阅读全文 »

昨天从其它部门搞了一套统计程序过来。发现个问题,过了一段时间后我点任何链接都会给我重定向到首页登陆页中,但是看表象应该是已经登陆进去了。
问了下我们的开发,应该是session保持的问题。有修改web.xml文件就可以解决了,但是找了下web.xml中,里面已经包含了如下内容了

1
2
3
4
5
6
7
8
9
10
11

-1
```
一般google搜索出来的永不过期都是这样的结果。而且这个系统在其它部门中使用中没有出现我这样的问题。看来应该是resin版本不同导致的了,他们是3.1,我们是3.0。继续放狗搜索才找到这个timeout配置还必须在servlet-mapping设置的后面。看来这种bug应该是3.1都修复了,之前的el表达式识别也是resin版本不同造成的应该。
```c

action *.do
```
```c

-1

qpoper是用来运行pop3服务的。由于我的邮件服务器是用postfix的。
按正常来说是可以用/etc/postfix/aliases这个文件来控制,用来aliase系统账户跟真实的邮件账户。这样可以一定得保护系统账户的安全。但是由于这次是用qpopper4.0.16这个最新版本,发现怎么都没法跟那个aliases文件进行连接。
qpoper安装很简单,但是奇怪的是还是要自己每次手动建立man8目录

 mkdir -p /usr/local/qpopper/man/man8/ 

但这次由于出了问题,所以只能是换种安装方式来进行了。

 ./configure --prefix=/usr/local/qpopper --enable-standalone --enable-auth-file=/etc/mailauth --enable-64-bit --disable-check-pw-max --enable-specialauth make make install 

上面的方式就是使用本地认证,然后可以允许的用户都是放在/etc/mailauth文件中进行限制。当然系统新建这个用户的时候请使用-s /sbin/nologin已防止来登录到系统中来。
启动:

 /usr/local/qpopper/sbin/popper qpopper -s 110 
阅读全文 »

Urchin是google收购的一个日志分析工具。界面跟google analytics是几乎完全一样的。但是google analytics每个月的统计只能在500W PV以内,这个对于稍微有点规模的网站是不可忍受的。所以我们还是需要自己来架设一个urchin 首先需要下载一个urchin6501_linux2.6_kernel.tar.gz 这个是根据自己monitor的系统版本来进行确定的。然后还需要有一个mysql或者postgresql 创建相应的数据库和数据库用户。这里数据库名为urchin,数据库账户为urchin,urchin的账户密码为urchinapassword, urchin账户拥有urchin库的all权限。

root@monitor# mysql -u root -p mysql> create database urchin character set utf8; mysql> GRANT ALL ON urchin.* to 'urchin'@'10.2.%' IDENTIFIED BY 'urchinpassword';

接着使用程序目录下的install.sh脚本进行安装,这里主要是选择安装目录,数据库配置连接等等。

 ./install.sh 

安装完成后就可以通过下列网址查看urchin

 http://yourserver: 
阅读全文 »

虽然去过各种各样的公司,除了公司年会就再也没跟公司老板吃过饭,这次居然有幸跟沉一船吃饭,那真是三生有幸。以前最大也就跟CTO一起吃饭,比如nelson huang和james shen这两位CTO,基本算是欢迎部门新员工或者是领导刚到任的接风会。

吃饭那天天气晴朗,气温十分的高,吃饭时间是临近12点45分了,各位领导就坐,我十分“有幸”跟领导一桌,另外几位同志就没那么好的运气了,非常乖巧的先占了一桌。就坐完领导开始自己点菜了,当然我本人连菜谱都没摸到,也许领导是熟门熟路的主。点完菜有一点空余时间,一船老大可能十分高兴,于是直接就站在凳子上跟大家喊话。

话说我军是第二支杀入日本战场的部队,前面一支先锋队叫百度。不过还好2支队伍是2条战线的。那各自也算是先遣队。但是能在国外过活的网站能有多少呢?能在中国生存的国外网站有多少呢?所以一些叫本地化的知识还是很管用的。沉一船估计我们这条船会沉的。听完一船领导讲话,终于开始吃饭了。

菜上来了都,可居然没啥可吃的,看着领导大快朵颐终于明白另外一桌同事的幸运了,我们这一桌都装进船里了。

这个世界有些人对于名声很看重,有些人对于做了什么事很看重,有些人看的是过去,有些人看的是未来。看过去的比较简单,但是对于这个我们还是要有自己的判断,听这听那最终做决定的还是你自己。而对于未来那更是困难。如果根据过去来把握未来这个是十分十分困难的事情。

这一条船到底沉不沉不光看船好不好,更重要的是船员好不好。泰坦尼克号这个船够好了吧,可最后还是沉了。Yahoo!在多年以前多么的风光无限,可虽然还没沉可也已经千疮百孔了。

阅读全文 »

来北京第一次参加这样的论坛。
早上来的时候比较晚了,听的时候已经是中移动研究院院长开始讲了,还好微软还没开始。去之间虽然群里有人说去,但是到了那里我一个人也不认识。
转入正题,上午的流程主要是几个大佬在那边海聊,讲的内容基本跟现实差别很大,特别是微软的2个video,那个在国内基本不可能在最近几年实现。而所谓的圆桌会议好像是上课问答。

图像035

图像036

下午的内容可能更实用些,比如第一个是清华内部的GFS系统,ctrix对于xen的处理,emc对于vmware未来的一个态度,idc对于云技术的未来趋势的判断。
清华内部的GFS系统,其实应该就是HDFS+bigtable,在清华的这个GFS系统中分别被称为carrier和corsair。 不知道清华是否对这个东西进行开源呢。在这个企业级的存储方案中做到了可靠性,实时性以及部门共享性。对于这个部门共享性我是比较喜欢的,这样确是可以节约大量的无意义的空间,但是这当中如何识别是否相同,如何进行共享我还没仔细思考过,这位老兄也没有说。还有一个是关键的分布式数据库叫minsia,不知道跟bigtable比起来如何,或者跟市面上很多的Key/value数据库比起来呢。
在crtix的演讲中主要是2点,一个是免费,xenserver5.5是免费的。另外一个是存储和计算分离。这个我觉得还是得看实际情况来做,一旦分离那计算过程中大量的时间是否会花在了传输上。
emc一直是一家以存储为主业的公司,直到收购了vmware之后感觉才有点变化。虽然很久之前我认为emc就是做显示器的。这个演讲有2个重点,一个是vmware已经在一个物理机上虚拟出多个虚拟机上取得了很大的进步,以后的方向是如何把多个物理机虚拟成一个虚拟机上做出同样大的进步。其实这个我个人觉得是非常有意义的。另外一个是分析了作为系统维护人员的一些日常工作,以及云技术如何提升系统维护。
后面还有中科院计算所的研究员讲了如何从延迟,处理能力,GAP,message这4个方面进行评估,以及一个DVMM的分布式虚拟机监控。而INTEL中国的这位老兄也只是介绍了下intel的icloud分布式文件系统,已经最新的xeon芯片对于云技术的推进。idc的周研究员是分析了亚洲市场对于云技术的态度,以及客户最看重云技术

哪些方面,未来可能成为云计算服务领头企业的几个特性。
最后一位登场的是一位留学美国并在那里做研究的戴元顺博士。基于他现在所参与的一个系统的相关内容,如何从资源共享走向服务共享。以及云计算的核心是虚拟网格+透明计算+工作流管理。也就是云计算的几个关键部分:云服务管理,服务安全性和访问控制,服务调度和队列利用。他的Mail在

http://directory.utk.edu/show.jsp?dn=uid%3Dydai1%2Cou%3DPeople%2Cou%3DKnoxville%2Cdc%3Dtennessee%2Cdc%3Dedu 可以完全找到。
对于云技术,我并不是很清楚它跟分布式计算有何区别,所以上述内容只是泛泛而听。所有内容都没经过我自己加工过,也许是自己的眼界还不够远,只是盯着面前的这些。

阅读全文 »

百度面试,由于之前跟另外一个有冲突,于是就延后2周才进行了一次面试。
我一直以为他们在理想国际,原来已经到了旁边的普天大厦了。进去就跟金山一样层层设防,层层签名,还好记得了人事小姐的分机号,不然估计都进不了大门了。

图像033
前台就像一个公司的门面一样,感觉冷了点,前台也很冷,但是环境不错,来的时候看到后勤人员正在切很多西瓜和洗很多梨,当然这些都没我的份,这里又不是迪斯尼。
面试就在一个开放的场所进行的,旁边是假山和小水池。面试我的应该是运维部的头头徐婉,只能说是小妹,因为人家是84年出生的,这人跟人的差距还真是大啊,我一个83年的还没人家84的强呢,忽然想到前几日有个90后的小朋友因为要去SOHU面试问了我一些问题,现在的孩子真行。
面试自然是拿着简历一个个问,当然我这真实的简历自然没得挑了,但是面试过程中我就发现了一个问题,我以前一直做的是系统运维,但是百度需要的是产品运维,需要对某个产品有总体的概念。而我以前可能做的只能是偏重系统层面的,特别是在PPLIVE,因为要接触的产品特别多,所以没法都能兼顾,只能做到系统层面。而madhouse也许还跟产品运维更靠近些,因为madhouse共3个产品,而我更偏重其中2个,而一旦这2个有相关问题大家刚开始还是会找到我,当然也会找到我们徐老大。
面试出来我就觉得没戏了,毕竟方向并不是完全相同,但是能来一下也是挺不错的。

后记:后来跟徐婉在msn也聊到过这个问题,果然是这个原因,只能希望以后还能有进百度咯。最近他们招一些分布式文件系统的管理人员,有熟悉GFS或者HDFS的朋友完全可以去试试。还有面试的时候最好主动,由于我比较内向,所以刚认识的人不会说很多,大家面试的时候应该把自己最擅长的方面说下,而我面试的时候徐婉就问到我其中一处就是NGINX,而监控和报警这块根本没有问到,这些应该要主动说出来,这样会让你更竞争力。

前几周去了金山面试,是在金山在上地的新办公大楼,周围还是比较荒凉的感觉。到了那里直接跟前台小姐说了来面试的,于是帮我找了相关的人就上去了,还是很有亲和力的。
言归正传,面试的时候对面是2个面试官,一位是很多搞系统工程师的人都认识的张宴,另外一位逍遥网的技术老大张鹏翼了。
一开始就是随便聊到工作经历啥的。主要看你以前工作中涉及到哪些问题。当然我以前工作就一个WEB源站和报警监控系统。
对于我的问题主要有如下2个感觉回答不好,第一个是mysql slave中的SQL进程和I/O进程分别代表着什么。我基本的思路是跟FTP协议一样,一个是信号控制,另外一个是数据传递。但是我并确定,所以直接回答的是不知道。现在想想当初应该把自己的想法说下的再说不知道后。回家查了下资料,I/O是用来跟master之间进行信号控制的,而SQL进行更新MYSQL数据的。
另外一个是MYSQL HA的问题,这个我确实之前没有做过。所以一点头绪都没有。但是我还是想到了MYSQL有一个主-主模式。如果这个主-主模式的数据库机器之间是做HA的,那感觉主-主模式还是可以实现mysql HA功能的。但是主-主模式真的能保证2个mysql之间完全的同步吗?虽然发生不同步的情况几乎很少发生,但是在理论上还是会发生,比如同步有延时导致的2边数据库不完全同步。回家查了下资料是有这方面的软件,比如mysql-ha,或者google开发的replication semi-sync patch都能实现这样的功能。还有一个我们手动的检测方法是,每次主数据库进行了update或者insert以及create相关操作后再另外一台主上进行相应的查询。
接下来就是cacti方面的问题,这些都没什么难度,毕竟之前对cacti也是有过深入了解的。
其实一般面试官从来不会要求面试者能够全部回答出所有的问题,对于回答不出的问题只需要调整下思路,说出自己的看法来就成。很多问题很多时候我们就算知道它的答案,也未必知道它的原因,这样缺乏了一个思考的过程,这样我们的大脑就跟硬盘没有区别了。

后记:金山面试一般为3轮,第一轮为技术,第二轮为人事,第三轮为BOSS。主要是第一轮为主,后面2轮只要你人品没啥问题就基本OK的。金山的薪水水平算是中等,但是里面技术氛围应该挺不错的。

0%