Jul
26
Anaconda是Red Hat、CentOS、Fedora、红旗等Linux的安装管理程序。它提供文本、图形等安装方式,并支持Kickstart等脚本提供自动安装的功能。此外,其还支持许多启动参数,熟悉这些参数可为安装带来很多方便。
Jul
16
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的 session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。
Jul
15
本文与之前[原]构建Heartbeat 2.1.3 GUI+DRBD+Oracle 10g 双机互备集群一文唯一的差别,是用Heartbeat 3.0.3替换原来的Heartbeat 2.1.3,其他系统环境保持不变。
Jul
14
我已经不是第一次介绍Heatbeat,通过yum可轻松安装Heartbeat 2.x,网上的资料(包括我以前的多篇日志)都已很详细的介绍了Heartbeat 2.x 的部署方式。而自2月Heartbeat 3.0.2,作为首个3.x Final Release 版本发布后,官方网站已改版,并建议从2.x更新到3.0.2,导致很多老的配置文档、说明等都很难找到链接。此外,触发我考虑使用Heartbeat 3,也正是前几天用Heartbeat 2.1.3+DRBD+Oracle配置时遇到大量的Bug,可见这里。虽然最终解决问题,但缺少官方的支持,今后的维护可能会遇到困难。为长远考虑,使用Heartbeat 3是势在必行的。
幸亏,Heartbeat 3对比Heartbeat 2.x实际区别并不大,甚至可把Heartbeat 3理解为Heartbeat 2.x 按模块拆分后的版本,配置方式类同。所以,实际部署时,遇到的最大困难是安装问题。官方资料提供的都是源码,我不喜欢以源码方式来在生成系统上部署软件,这会给后续的维护带来很大的问题。通过努力,我终于成功编译一套heartbeat 3.0.3,带GUI管理方式的rpm。
幸亏,Heartbeat 3对比Heartbeat 2.x实际区别并不大,甚至可把Heartbeat 3理解为Heartbeat 2.x 按模块拆分后的版本,配置方式类同。所以,实际部署时,遇到的最大困难是安装问题。官方资料提供的都是源码,我不喜欢以源码方式来在生成系统上部署软件,这会给后续的维护带来很大的问题。通过努力,我终于成功编译一套heartbeat 3.0.3,带GUI管理方式的rpm。
Jul
13
在 64位版本的 CentOS 5.4 上使用 yum 安装软件包的时候如果不小心的话会同时安装 i386 和 x86_64 版本的软件,如下面安装的 httpd-devel 就有 i386 和 x86_64 两个版本:
Jul
9
我已经写过不止一篇关于Heartbeat 2.x 配置方法的文档,包括1.x style和2.x style的配置方式、GUI 配置、双机互备集群等等,详细可见分类中“HA”部分。那为什么今天我还要再次重复类似的内容呢?原因有几个,例如:Heartbeat 2.1.3 中的Bug、DRBD resource agent 的Bug,Heartbeat 2.x 与 DRBD 的配合等。这些内容在我下面的文档中都会提到。
另外,特别需要说明的是,目前Heartbeat 最新版本是3.x,已停止对2.x 的支持(包括官网都已改版)。这也是导致我在使用Heartbeat 2.x 时遇到问题,可供参考资料较少的原因之一。当然,Heartbeat 2.x 与 3.x 的区别实际并不是特别大,很多东西还是可以相互借鉴、参考的。
另外,特别需要说明的是,目前Heartbeat 最新版本是3.x,已停止对2.x 的支持(包括官网都已改版)。这也是导致我在使用Heartbeat 2.x 时遇到问题,可供参考资料较少的原因之一。当然,Heartbeat 2.x 与 3.x 的区别实际并不是特别大,很多东西还是可以相互借鉴、参考的。
Jul
7
在高可用解决方案(HA)中,为了实现集群中数据的共享,常见两种架构:1、利用SAN等架构的盘柜存放共享数据;2、在每台集群中的机器本地磁盘中划分一个空间出来,并利用网络等方式,往集群中其他机器同步,以保证每台机器上的数据是一致的。当然,为了令第二种架构也能用于数据库等应用,同步应以数据块方式,而非文件拷贝的方式进行,而DRBD就是可用于实现第二种架构的软件。本文就模拟一个简单的架构来说明DRBD的配置方法。
Jul
6
Eclipse 是常见的开源IDE工具,通过增加插件,可用于PHP开发。下文参考CakePHP的bakery中一文:Setting up Eclipse to work with Cake,搭建一个Windows 7下面用于调试CakePHP的环境。特标注一些需留意的地方。
Jun
12
在测试某Web应用时,其中有段函数,用于动态的插入合适大小的图片到当前页面中。原理是:先利用JavaScript的Image对象读入图片,然后判断图片大小,当图片尺寸过大(超过阀值)时,给页面插入的HTML代码中,加入width和height的属性值。测试时发现,该功能有时候会失效,这时,width和height都会等于0。经分析,问题在于创建Image对象,并读入图片的过程会有延迟,不能立即得到图片的属性。而JavaScript是异步处理机制的,在图片未读完前,即继续往下执行。所以,导致获得的图片大小均为0。
既然知道原因,那么处理方法很简单,就是在读取图片后,做个延时的处理,详细可参考:这里。
没想到,在调整我的代码时,发现对setTimeout()方法的使用还有不少误解的地方,特整理如下。
既然知道原因,那么处理方法很简单,就是在读取图片后,做个延时的处理,详细可参考:这里。
没想到,在调整我的代码时,发现对setTimeout()方法的使用还有不少误解的地方,特整理如下。
Jun
11
在编写JavaScript时,遇到一个常见的问题“如何判断某值是否数组中的元素”?这让我想起了PHP中的in_array()函数和Python中in 操作符。但JavaScript似乎没有内置类似的函数,而其in 操作符的作用也有点不同。通过查询相关的资料,我发现JavaScript的in 操作符还是挺有用的。
Jun
7
某Web应用,为了方便浏览,使用表格进行汇总时,初始化状态仅显示概要,若点击该行才用显示下面的详细内容。用jQuery 来实现本来是很简单的事情,在IE 7 测试时很顺利。但Win 7下发现,IE 8中动作失效了。经查找原因,原来是jQuery 1.3.2的Bug。该问题早在网上有不少介绍:这里,转载如下:
Jun
5
前一篇日志提到的PHP Notice警告导致Ajax请求失效的情况。深究其原因,还是在13行的switch语句上。因此,我做了一些关于PHP变量使用大括号的测试,也发现了一下使用中需注意的地方。