OpenSource 类别下的文章

Movable Type 与 WordPress

在几次跳票之后,Six Apart 终于发布了 Movable Type 5。作为少数坚守在 MT 阵地的用户,当然是第一时间升级到新版本进行了一番体验,结果就是这几天正在一点点修改升级后的一些模板上的问题。倒是有活干了。

一点小经验是如果是延续用旧的主题的话,迁移到新的目录后要确保有 "theme.yaml" 这个文件,否则后台点击 Setting 按钮的时候会弹出一个"Can't call method "label" on unblessed reference" 的错误。多数插件都能继续用,可以打开 MT 的 Debug 模式,然后查看 Plugin 列表,会显示哪些插件兼容性不够好。我觉得用好 MT 的一个秘诀就是...尽量少用插件。

总体来看 MT 新版本的确带来了很大改进,除了增加了版本历史功能外,内容结构的组织有更大的改进,模板的可定制化非常好,是目前能看到的 CMS 平台的登峰造极之作。只是从平台的角度考虑恐怕还竞争不过 WordPress ,我个人觉得语言的实现(Perl vs. PHP)造成了二者在最初发展上的差异,进而导致插件上开发的 Movable Type 远远不如 WordPress 容易,而插件的多寡影响功能的完善与丰富性。用户会接受哪一个不言而明了。另外一个影响因素就是更多的主机提供商对 PHP 的支持更为友好,甚至一些提供商提供一键安装 WordPress 的服务。而 MT 的安装怎么也需要用户懂一点点技术才成。

好的工具才会激发写作的乐趣,MT 属于这样的工具

--EOF--

DRBD 与 Pacemaker

如果有人问你一台 PC 服务器是否可以达到 99.99% 的高可用,该如何回答呢? 或许没有一台机器能"确保"达到这样的可用率,当然在某个时间段或许不会出问题,但这个肯定是看运气,而高可用基本上是没办法通过一台来达到目标的,我们更多的时候是设计方案确保在出问题的时候尽快接管故障机器,当然这要付出更大的成本。

对于 Oracle 的高可用方案可以参考 Maximum Availability Architecture (MAA) 白皮书,不过 Oracle 并不推崇操作系统级别的解决方案。MySQL 的指导策略倒是更为灵活一些,DRBD® (Distributed Replicated Block Device) 就是个可以考虑的选择。以前关注过这东西,但是据我了解,好像国内实现的案例不多,不知道是不是处于对网卡同步速度的限制考虑。现在这个有了新的转机,在 8.3 版本上已经能够支持 InfiniBand 。而原来通过网卡同步数据块的方式毕竟受网卡延时和带宽的限制,InfiniBand 的支持的实现相信能赢得一部分企业用户的信赖。

DRBD_overview.jpg

Linux Kernel Summit 2009 上这次有对 DRBD 的介绍(注意对数据一致性的介绍),这意味着能正式进入 Kernel 么?

相对专有的集群管理工具,也有开源的集群管理工具 Pacemaker (支持 HeartbeatOpenAIS 标准)可供配套使用。Pacemaker 能够较为灵活的实现主备、N+1 、N-N 等多种模式。感人感觉会比较有生命力。

Pacemaker.jpg

好的开源解决方案就是设计活动木板房,廉价灵活环保,当然,牢固肯定是第一目标。

补充:

根据 MySQLPerformanceBlog 的说法,MySQL 几种高可用解决方案能达到的可用性如下:


HA_ratio.png

--EOF--

Google 使用 Linux 的情况

Google, Inc.

Image via Wikipedia

技术爱好者大多都知道 Google 是使用 Linux 的大户,但是一直以来对于他们如何使用 Linux 却知之甚少,甚至内核开发社区对 Google 内部使用的情况也了解不多。LWN 上的这篇 How Google uses Linux 给我们带来了不少信息。

Google 使用 Linux 肯定有很多令人震惊的地方,第一个令人"惊讶"的是他们使用的代码管理工具:Perforce 。代码维护方式看起来也比较落后,当前维护的代码版本远远落后于开源社区内核版本,因为 Google 自己要维护大量的内部特性,每一个大版本发布周期是大约 18 个月,而内部特性的回归也要折腾6个月。因为版本滞后,所以有不少向后移植(Backporting)的工作要做,这个比例大约是 25%,还是不小的。

Google 内部大约有 30 个内核开发人员,而之所以外界很少看到 Google 对 Linux 的 Patch 代码,主要的原因居然是--担心代码不够优雅。我想这应该说的是大实话。我也遇到过很好的开发者对开源软件做了改进之后不愿意把代码贴出来,原因就是担心代码不好看,怕被笑话。

因为应用程序类型之故,对于 Google 来说,完全公平调度器(Completely Fair Scheduler)并不适合,采用了 O(1) 调度器,一般 16-32 核的机器要跑 5000 个线程左右。

Google 倒是喜欢用 Out-of-memory (OOM) killer 特性,这倒是出乎我的意料。Google 对于内存管理方面的改进或许是不小的突破: 通过伪 NUMA 模式来保证不同类型应用对内存的使用。除此之外,有大量的代码用于系统的监控,针对磁盘、网络等子系统或者是针对应用程序性能。

对于计划中的将实现的新特性,在一堆列表中看到了在 I/O 层对于高速 Flash 盘的支持计划。在文末,另一个有趣的技巧是,Google 喜欢把文件系统的元数据 Pin 到内存里以便提高读取响应时间。

或许将来能看到 Google 为 Linux 内核贡献更多代码,那会是一件很有意义的事情。

--EOF--

尽管 Nginx 前不久才提供对 Windows 操作系统的友好支持。其实 Windows 下潜在的用户一直都不少。在 Windows 下安装调试的教程貌似并不多。介绍一个在 Windows 下帮你节省 Nginx 调试时间的项目:Farseer。(Farseer 是魔兽世界中的角色?)

这是淘宝 UED 部门的 明城 捣鼓的一个工具。刚刚新鲜发布。他这么描述该项目:

Nginx 的确是 *ix 系统下非常优秀的 HTTP 服务器,但开发人员而言搭建 Windows 平台的 Nginx + PHP 环境的确非常的繁琐而且容易出错。 如果您有上述的问题,那么这个包能够帮得上您的忙。使用这名为 Farseer 的软件包,能够让您在两分钟内完成 Nginx + PHP for Windows 平台的安装。

繁忙的工作之余还有精神头捣鼓这个,发自内心的觉得应该表扬。

--EOF--

以前在 AIX 下,有的时候祭起 nmon ,比 topas 好用多了(去年 AIX 干脆集成了 nmon )。在 Linux 下,top 命令基本也是摆设。如果遇到某些机器没有安装 SYSSTAT 包, 直接把 nmon 抓回来还是挺方便的,省去了安装的麻烦。

NMON.png

最方便的就是能迅速抽取不同维度的性能概览数据。想想其实一个日常用的工具也有很多创新的,nmon 和 topas 读取的数据源是一样的(Perfstat API),但细节上做得更为到位(看来 Nigel 对用户体验也"略懂"阿)。nmon 抓取的数据很容易输出为 Round-Robin Database (RRD) 格式。便于进一步做数据展现。

AIX 提供的 Perfstat API 很赞,如果自己有兴趣,也可以自己写工具调用数据用以运维数据参考。我以前还写了两个山寨小工具,一个抽取网卡数据吞吐量,一个抽取磁盘 I/O 量。不会 C 也能照猫画虎弄出来。

--EOF--

GNU Bash, version 4.0

GNU Bash(Bourne-Again SHell) 发布了 4.0 版本。新增加了不少特性。最近大半年基本上很少在终端里了,不过还是要关注一下。

新特性不完全列表

列出几个日常使用有关的:

  • 新的环境变量 $BASHPID 用以返回当前进程 PID。
  • 新的 'checkjobs' 命令检查报告 Job 运行的情况。
  • 如因为缺少资源而创建子进程失败,bash 再尝试几次之后再报错(这个怎么觉得有点傻?)
  • 'ulimit' 内建新选项 -b (socket buffer size) 与 -T (number of threads)。
  • 新的 &>> 重定向操作符,追加标准输出与标准错误到指定文件中。

其他新功能多和 Bash 下的 Shell 编程有关,感兴趣的可以仔细看一下说明文件

此外,Readline 有了比较大的功能增强。大家用的最多的命令行历史,现在有了新的 history-size 变量用来设定。

--EOF--

杭州 OpenSolaris/OpenSource User Group(OSUG) 活动Open_Solaris_logo_200.gif

Solaris系统中网络虚拟机构架分析

分享嘉宾会就虚拟化技术的逻辑结构及其层次,具体部署一个Solaris虚拟化环境,初步实现数据迁移、容器设置、容器管理等一系列虚拟化技术进行了充分的探讨。

基于Groovy的Grails开源框架分析

动态语言已经迎来它的春天,我们感受过PHP的便捷,Python的简约,以及Ruby的强大直观,现在一个被称为"第二代Java语言"的晚辈----Groovy试图跳出来唱主角。它是怎样地优秀和特殊,又和Java有着如何密切的亲戚关系,在这个讲座里,大家将听到关于动态语言形象和深入的诠释,看到Groovy on Grails的方方面面。共分为动态语言、Groovy介绍和Grails框架分析等三个部分。

感兴趣的朋友请先去活动页面查看信息。周六下午,我在支付宝恭候各位。也可以来找我进行技术聊天 :)

--EOF--

小道消息:Linux 操作系统下的 Firefox 用户,从现在开始也可以用支付宝了。参见支付宝官方网志安装指导。最近微软黑屏事件闹得挺凶,但这个时候支付宝发布新的安全控件,应该和此事无关。

至于很多苹果用户期待的在 Mac 下使用支付宝的事情,请稍安勿躁,有望在 11 月中旬得到解决。届时也将在支付志第一时间发布。支付宝安全工程师一直在努力!

支持 Mac 操作系统,通用的数字证书,更为安全、开放的支付宝时代即将到来。

--EOF--

1 2 3 4 5 6 7 8 9 10

关于归档

本页包含 OpenSource 类别下的所有文章.

上一类别为 MyLife.

Review 为下一类别.

回到 首页 查看最近发表的文章或者查看所有 归档文章.