09 2012存档

这个是帮一个在EMC的朋友发的,他们是EMC的统一存储组,做VNX产品系列的(这套产品卖得很好,所以待遇方面也不错的),工作地点在北京,清华科技园。此次招聘主要针对有一定工作经验,对filesystem或storage有一定研究(甭管是哪个filesystem,ext4/btrfs/xfs/nfs/ntfs/lustre/ceph/hdfs,只要熟悉一个就行)且c\c++熟练的同学,简历可以邮件我(我的邮箱在博客右上角,有问题也可以咨询)。

教育背景要求:
计算机或相关专业的本科、硕士或博士,至少3年相关工作经验

技能要求:
有大规模系统的开发和设计经验
有良好的团队合作精神
具备深入的操作系统知识(linux/windows/solaris)
丰富的c/c++和多线程编程经验
有linux(或windows)内核开发经验
有丰富的linux(或windows)下的内核和用户态程序调试经验(包括内存泄漏、程序coredump等)
英语交流无障碍

加分技能要求(非必须):
有linux下设备驱动开发经验
有存储行业(RAID/SAN/NAS)工作经验

有位叫“summer77”的同学发邮件询问我如何使用ext4的bigalloc特性,主要是不方便直接把内核从2.6.28升到3.2去,跨度太大。但是我给他的回信用gmail死活发不出去(summer77同学,是不是你的邮箱有问题呀),我只能在这里做答了。

bigalloc是在3.2版以后的linux kernel才有的,因为公司要用,所以我们backport到了淘宝kernel上——淘宝kernel是基于rhel6的2.6.32-kernel的
(跟这则新闻提到的所谓“淘宝linux发行版”没有任何关系,我们自己也不知道那个“发行版”是谁做的),我们backport了一些业务部门要用到的内核组件(比如netoops、drbd等),也fix了一些功能性能bug(这些bug都已经反馈给了redhat和内核社区)。

淘宝linux kernel的代码是公开的:http://kernel.taobao.org/git/?p=taobao-kernel.git;a=summary 有兴趣的同学可以

2. cd taobao-kernel
3. ./scripts/package.py --buildid 20120921 (buildid可以自己随意)
4. cd taobao-kernel-build
5. rpmbuild -bb kernel.spec --with rhel5 --with baseonly --without dracut --define="_sourcedir `pwd`" --define="_builddir `pwd`" --define="_rpmdir `pwd`/rpm"

这样就能编译出基本的包了,具体参考淘宝@内核开发的“本地编译方法”
(第5步执行中可能会提示需要你跑一下“ rngd -r /dev/urandom”)

先装kernel-firmware,再装kernel,重启,新内核就生效了。

要使用bigalloc,还需要安装最新stable的e2fsprogs-1.42.5(bigalloc要求用户态工具也是新的) 
然后就可以:

mke2fs -O extent,bigalloc -C 65536 /dev/sda
mount -t ext4 /dev/sda /test/

了。



=== 2012.09.24 ===

tina: 请问你们porting的工作量大概多少人周?因为没有找到这个patch包,不知道涉及的修改工 作量到底有多少?另外你们是从哪里找到资料做这个backport工作的?谢谢

答:@tina,bigalloc的全套工作是我负责的,backport本身只用了不到一个月,再就是两个月的功能和性能测试(我们组没有QA,测试全靠自己),然后是长达数月的线上稳定性验证和收集性能测试报告——不要小看这性能测试报告,说实话,采集数据和整理报告比backport累人多了,也枯燥多了。当然,线上验证不用人守着,那段时间我又去搞overlayfs和hadoop集群的kernel优化了(不然老大们肯定会嫌我工作不饱满)。

我们backport的那些bigalloc的patch是从ext4的maintainer——Ted的代码库里的一个临时分支里找来的(那个临时分支是他给linus的),但是现在这个临时分支可能已经被删掉了。如果您有兴趣,可以直接看upstream的git log,里面从 021b65bb1e4e4b625c80bbb82651e5e155721ef3 到 5356f2615cd558c57a1f7d7528d1ad4de3640d96,是最初的十几个patch,后面还有一些小fix就只能靠自己整理了。

=== 2012.10.19 ===

claire:我能否放弃rpmbuild的编译方式,通过make menuconfig重新配置编译,而进行安装?以及,64位能否改成32位?

答:可以自己用源代码编译,步骤如下
   2. cd taobao-kernel
   3. ./scripts/seq-patch.py
   4. cd tmp/linux-2.6.32-279.9.1.el5/
这里面就是源代码了,可以自己make menuconfig编译。

关于存档

This page is an archive of entries from 09 2012 listed from newest to oldest.

08 2012 is the previous archive.

10 2012 is the next archive.

Find recent content on the main index or look in the 存档 to find all content.