转到正文

Linux's Notes

李天宝's 部落格

系统日志默认的时候格式为RFC 3339 timestamps,类似于:
Oct 1 22:36:21
如果想更改时间格式,类似于:
2011-10-01 23:11:29
这样的好处就是更人性化,更本土化,适合直接入数据库,无语二次格式转换。

方法:
升级系统的日志服务版本,rhel5默认是syslog v2,需要升级为syslog v3以上。以下是rhel6的版本:rsyslog-4.6.2-2.el6.x86_64

日志服务升级后,更改配置文件:
shell> vim /etc/rsyslog.conf
# 定义自己的本土化的时间格式
$template xsformat, “%$NOW% %TIMESTAMP:8:15% %syslogtag% %msg%\n”
# Use default timestamp format
#$ActionFile[......]

继续阅读

在前天通过了最后的 Go/No-Go 会议后,Fedora 15 已定于下周正式发布,这个永远站在开源技术最前沿的发行版,即将迎来又一个新的大的变动。作为 Fedora 用户,相信你已经习惯了每个新版本的新功能所带来的种种不适,Fedora 15 也不会令你意外,它所采用的新的网卡命名方式 Consistent Network Device Naming (CNDN) 就是其中的一个。

比起 Fedora 15 的其它新功能,比如众所周知的 Gnome 3,CNDN 并不是一个多大的改动,但它所引起的争论以及带来的影响却不小,看看 NetworkWorldLWN 以及 Slashdot 上铺天盖地的争论,质疑甚至嘲讽你就知道了。当然这并不表示 CNDN 这个新功能就完全一无是处,或者是画蛇添足。CNDN 还是有一定的益处,前提是你深入理解了作者的意图。现在让我们来仔细看看这个即将影[......]

继续阅读

Linux内核启动参数

Console Options

参数
说明
选项
内核配置/文件

console=Options
用于说明输出设备
ttyn 终端 ttySn[,options], ttyUSB0[,options] 串口uart,io,addr[,options],uart,mmio,addr[,options]&<60;

netconsole=[src-port]@[src-ip]/[dev],[target-port]@target-ip/[targetmac-address]

debug
Enable kernel debugging.
启动时将所有的调试信息都输出到控制台

quiet
Disable al[......]

继续阅读

Linux下,可以通过export命令设定CFLAGS和CXXFLAGS,告诉编译器选择适合你服务器cpu的编译操作,configure在执行的时候会自动读入,make的时候会自动使用所选的优化参数。

访问http://gentoo-wiki.com/,在左侧的搜索栏输入cpu,结果如下:

确定自己的cpu信息:

确定服务器的GCC版本:

 

在搜索结果上选择正确编译器选项,我这里只能选择最为接近的:

 

根据提示,设置编译的环境变量:

[root@web2 ~]# export CHOST=”i686-pc-linux-gnu”

[root@web2 ~]# export CFLAGS=”-march=prescott -O2 -pipe -fomit-frame-pointer”[......]

继续阅读

众所周知,mysql复制是异步完成的,差异时间主要取决于数据传输上,但一般在通过一个网络上进行传输,时间差异不会太多。但随之问题就来了,如果不小心在主服务器上进行了误操作,所有的级联的从服务器也会复制改误操作,那么想恢复数据就只能从备份结合二进制日志了。而实现延时复制,就是可以在其中一台服务器上延迟执行记录更新,但二进制更新数据依然在后台传输,只是暂停执行下载回来的数据变更操作。这样,就可以从该服务器上找到误操作的数据了。

要实现Mysql的延迟复制,方法有三种:
1、升级到Mysql 5.6以上版本。
2、对旧版的mysql打补丁,比较复杂。

http://dev.mysql.com/doc/refman/5.6/en/replication-delayed.html

3、使用第三方工具包,或者自己编写脚本实现。原理是一样。

使用第三方工具实现延迟复制:
# rp[......]

继续阅读

使用MySQL Proxy实现读写分离

实验架构 Client
|172.16.1.1:4040
MySQL_Proxy(根据lua脚本进行读写分离)
|——————–|————–|
r/w r r
Master —异步—> Slave1 ——-> Slave2
\–延时2分钟–> Slave3 (一般生成环境延迟半天,作为逻辑备份)

MySQL_Proxy dr.upl.com 172.16.1.1

1、安装lua

# make linux
# make install

# export LUA_LIBS=’-L/usr/local/lib/lua/5.1 -llua -lm’
# export LUA_CFLAGS=” “[......]

继续阅读

MySQL AB复制原理:
Master 服务器 (主服务器) 通过把所有涉及到数据库更新操作都记录到二进制日志当中,
然后Slave 服务器(从服务器)就会通过IO_THREAD线程如连接主服务器,然后主服务器会通过IO_THREAD应答从服务器,然后开始传输二进制日志。从服务器接受到相应的日志记录之后,就会通过SQL_THREAD线程去执行日志当中记录的更改.

实现的级别:row level,statement level,mixed level
复制时延性:异步复制(MySQL AB复制天然属性),实时复制(MySQL + DRBD),半同步复制(>=5.5版本之后才有,暂时不算完善)

1、安装半同步复制的模块

master> install plugin rpl_semi_sync_master soname ‘semisync_master.so’;[......]

继续阅读

如何在使用Heartbeat做HA,但有没有stonith硬件设备,想尽可能地避免闹裂,使架构更稳定?很简单,使用冗余心跳线路,使用Ping 服务器等手段。

[client] 172.16.68.129
    |
   eth0 172.16.68.128
[router] eth1 172.16.0.254 <---------------------
   eth2 10.1.1.19          |
   |            |
    |vip:10.1.1.17       |
eth0 10.1.1.21  /————-[web1] 172.16.0.201---|
[Diretor] eth1 172.16.0.3
 | 两条心跳线路       |
eth0 10.1.1.18
[Backup Diretor][......]

继续阅读

MySQL体系结构图,参考简朝阳的《MySQL性能调优与架构设计》和国外的《深入理解MYSQL核心》一书。

Google首次展示自己的服务器设计

Google一向对自己的计算运营三缄其口,但去年Google在一次和数据中心效率相关的会议上首次展示了自己的核心硬件。

大部分公司都从戴尔、惠普、IBM、Sun等公司那里购买服务器,但Google需要的服务器太多,他们想把服务器做为自己的核心技术之一,设计并制造自己的服务器。Ben Jai是很多Google服务器的设计师,他在一群精通技术的观众面前展示了一台现代的Google服务器。

Google服务器设计师Ben Jai

Google最出乎意料的地方:每台服务器都有一块12伏内置电池,如果主电源遇到问题,这块电池就可以派上用场。Google还表示自2005年以来,其数据中心一直由标准的运输集装箱构成,每个集装箱里都装有1160台服务器,能耗达250千瓦。

令与会者感到震惊的不仅是Google服务器的内置电[......]

继续阅读