CentOS 6 计划于5月发布

根据 CentOS 官方的日程计划来看,CentOS 6 很有可能会在本月发布。CentOS 6 上游的 RHEL 6 发布也快有半年的时间了,CentOS 6 还迟迟没有来到,按时间来看它是应该和大家见面了。RHEL 6 带来的新特性也将出现在 CentOS 6 中,因此它承载着大家太多太多的希望。

CentOS 是 RHEL(Red Hat Enterprise Linux)去掉 Red Hat 版权信息后的源代码再编译的产物,它继承了 Red Hat Enterprise Linux 的安全性、稳定性,而且又提供免费更新。这因为如此,它几乎是在IDC中是首选的 Linux 发行版,在IDC中装机量也非常大。下图为 CentOS 官方关于 CentOS 6 开发计划的简要日程表:

如果 CentOS 6 的开发计划按照现在的表来进行的话,我们在本月就能用上 CentOS 6,当然跳票也是有可能的,我们现在除了期待还能干什么呢?那就期待吧!

 

CentOS 5.5 yum源修改

在CentOS系统中,yum是个好东东,几乎大部分流行的组件都可以直接通过yum来安装,但系统默认的yum源速度往往不尽人意,而fastest mirror插件,有时候用起来并不是很适用,为了达到快递安装的目的,我们需要修改默认的yum源

中科大的Centos 开源镜像站点. http://centos.ustc.edu.cn/

执行以下命令就可以了

cd /etc/yum.repos.d

mv CentOS-Base.repo CentOS-Base.repo.bak

wget http://centos.ustc.edu.cn/CentOS-Base.repo.5

mv CentOS-Base.repo.5 CentOS-Base.repo

cat CentOS-Base.repo

[base]
name=CentOS-$releasever – Base
baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#released updates
[updates]
name=CentOS-$releasever – Updates
baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever – Addons
baseurl=http://centos.ustc.edu.cn/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever – Extras
baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

也可以使用,http://mirrors.163.com/ http://mirrors.sohu.com,电信用户使用163的镜像速度会比较快。

在Centos里安装小小输入法

感觉centos系统里的自代的scim输入法不太适合自己的操作习惯,所以决定改换输入法,选择有fcitx 和小小输入法。

这次决定试一下小小输入法,首先去yongim.ys168.com里下载安装包,我采用的是rpm格式的,因为我用的系统是centos 。

作者发布的安装方法:
如果是redhat系列的,则建议下载rpm包。
安装使用命令:
rpm -ivh yong-1.0.0-1.rpm
如果是其他的版本,下载7z包。先把7z包解压到你要的安装目录(7z解压工具在Linux下是p7zip),
然后根据你所使用的发行版配置环境变量,主要有:
XMODIFIERS=”@im=yong”
GTK_IM_MODULE=xim
QT_IM_MODULE=xim
把输入法设为自启动,启动命令是
yong -d
另外,安装目录下有个yong-tool.sh的工具,使用该工具可以简单的进行设置。
现在支持的有:
redhat,fedora,centos,debian,ubuntu,suse
使用方法:
安装:
进安装目录,执行命令
sudo ./yong-tool.sh –install
卸载:
sudo ./yong-tool.sh –uninstall
选择作为默认输入法:
./yong-tool.sh –select
运气好的话,注销重新进入系统就能用了。

首先采用作者的办法,在安装前利用yum remove scim命令把scim全部卸载,安装小小。
根据以前的经验我查看了一下 /etc/x11/xinit/xinput.d/文件夹下有了yong.conf文件
里面的内容是要配置的环境变量,重启电脑后,小小输入法并没有自动启动
在终端里手动启动后,右下角有图标,但是不能输入任何汉字
查找原因,修改了.bashrc文件添加了:
export LC_CTYPE=”zh_CN”
export XMODIFIERS=”@im=yong”
保存后还不行,
我又查看了/etc/x11/xinit/xinput.d/文件夹下的文件
有三个文件: yong.conf none.conf xim.conf
三个文件里 none.conf文件里没有参数, 想了想windows的配置输入法情况,
采用GUI界面来看看系统默认的输入法是什么,
采用 系统–首选项–更多首选项–输入法 打开输入法配置界面
使用系统范围的配置里显示是空的
原因在这儿,
使用自定义输入法 选中yong 保存
重启机器小小输入法可以使用。

Opening Windows to a Wider World

Opening Windows to a Wider World

这个广告词我觉得写得不错,如前述,在FreeBSD下频繁的读写ext3分区有导致分区dirty的可能,所以我把接入磁盘阵列的操作系统换成了Centos5.5,使用LiveCD灌到U盘,然后通过VNC,局域网网络安装,没有图形界面,速度很快,十几分钟就欧了,这台笔记本配置很低,一枚VIA的800Mhz处理器,2G内存,80G硬盘,我最中意它的是因为它作为一台笔记本,是没有风扇的~大大减少了物理损坏的可能。装好Centos,yum了一个samba3x上去,mount上磁盘阵列,修改好配置文件,发现总是启动failed,我英明的查看了一下samba日志,然后上网搜了搜~

[2011/04/01 15:28:20,  0] smbd/server.c:main(1275)
smbd version 3.3.8-0.52.el5_5.2 started.
Copyright Andrew Tridgell and the Samba Team 1992-2009
[2011/04/01 15:28:20,  0] lib/messages_local.c:messaging_tdb_init(96)
ERROR: Failed to initialise messages database: Permission denied
[2011/04/01 15:28:20,  0] lib/messages.c:messaging_init(204)
messaging_tdb_init failed: NT_STATUS_ACCESS_DENIED

搜索的结果是,出现这些个错误的原因林林种种,什么数据库错误,编码问题,但很明显都不是我要的结果,就在我准备放弃的时候,我看见有人在其它的问题上抱怨SElinux……电光火石间,我意识到了这个问题。

究其根本,是因为以前在安装Centos服务器的时候,考虑到使用Oracle数据库的可能,都装上了图形界面,而且我习惯性的在装好之后把SElinux和iptables都禁用掉,这次只安装了命令行,木有安装图形界面,于是,SElinux和iptables都在那运行着……找到了问题,解决起来就很简单,把SElinux直接disable掉(/etc/sysconfig/selinux),然后chkconfig iptables off,chkconfig ip6tables off,reboot。

终于可以顺利的启动Samba服务,接下来进行配置,参考原来mybookworld中的配置文件,简单的说呢就是,有一些目录大家可读可写,有一些目录大家可读不可写,有一些目录大家不可读不可写,有一些目录我可读可写,嗯,还没晕的话说明你逻辑思维能力很强。

smb.conf配置如下:

[global]
server string = MyBookWorld Version %v
netbios name = mybookworld
workgroup = WORKGROUP
interfaces=192.168.151.5/24 127.0.0.1/8
security=user
smb passwd file=/etc/samba/smbusers
guest account=www
log file=/var/log/log.%m
max log size=50
dns proxy=No
unix charset = utf8
lock directory=/var/lock
pid directory=/var/lock
use sendfile=Yes
map to guest = Bad User
create mask = 755
map hidden = Yes

[dummy-1]
include=/etc/samba/shares.inc

其中,包含了一个配置文件,shares.inc,这个文件中含有所有的共享目录设置,配置如下:

[PRIVATE]
path=/shares/PRIVATE
force user=www
valid users=kenbaby
write list=kenbaby

[MOVIE]
path=/shares/MOVIE
force user=www
guest ok=Yes
valid users=kenbaby www
write list=kenbaby
read list=www

[PUBLIC]
path=/shares/PUBLIC
force user=www
valid users=www kenbaby
write list=www kenbaby
guest ok=Yes

这个配置文件很简单,英文过了四级的都能看懂,第一个PRIVATE目录,只允许kenbaby进行读写,写入的文件权限赋给www用户,第二个MOVIE目录,所有用户都可以读取,但只有kenbaby可以写入,同样,写入的文件权限赋给www用户,第三个目录PUBLIC,所有的用户都可以进行读写。将写入的文件权限赋给www用户,很好的保证了文件在磁盘上的权限统一在一个用户下,前面的smb.conf配置文件中,已经将www用户指定为来宾用户,也就是说,在Windows PC访问共享的时候,默认的Guest用户就能够直接访问,不用输入用户名和密码了。

最后一步,添加系统用户和samba用户,首先是添加系统用户:

groupadd www
useradd www -g www
groupadd kenbaby
useradd kenbaby -g kenbaby

系统用户无需初始化密码,这样它们也无法通过shell登入操作系统。然后我们添加samba用户,由于www用户是指定的来宾帐户,不需要设置密码,我们只需要为kenbaby用户添加密码即可。

smbpasswd -La kenbaby

添加完成后,重新启动smb服务即可访问共享啦!当然,如果要使用netbios name,还需要启动nmbd服务(/etc/init.d/nmbd restart)

CentOS下安装Openvpn(含VPS)

前提:VPS已经打开tun/tap,装有iptables,openssl及openssl-devel,现在很多VPS尽量简化,编译器可能会需要安装gcc。

1,下载LZO和OpenVPN。
wget http://www.oberhumer.com/opensource/lzo … .04.tar.gz
wget http://openvpn.net/release/openvpn-2.1_rc22.tar.gz

2,安装,都使用默认路径,
./configure && make && make install
即可。

3,拷贝文件,初始化PKI。
cp -r /root/src/openvpn-2.1_rc22/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/2.0/
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY_DIR=$D/keys
export KEY_SIZE=1024
export KEY_COUNTRY=US
export KEY_PROVINCE=FL
export KEY_CITY=Taipei
export KEY_ORG=”Sun”
export KEY_EMAIL=”[email protected]
. /vars

4,创建CA。

./clean-all
./build-ca

5,签发服务器证书和客户端证书。
./build-key-server server
./build-key client1

6,生成Diffie Hellman。
./build-dh
若不能执行,则 openssl dhparam -out ./keys/dh1024.pem 1024

证书生成完毕,可以把keys目录打包下载到本地以供客户端使用,下面进行openvpn服务器配置,

7,修改配置文件,如需使用代理连接,例如穿过中国移动CMWAP网关,配置文件中应使用tcp proto。
mkdir /etc/openvpn/2.0/conf
cd /etc/openvpn/2.0/conf && vi server.conf
——
port 1194
proto udp
dev tun
ca /etc/openvpn/2.0/keys/ca.crt
cert /etc/openvpn/2.0/keys/server.crt
key /etc/openvpn/2.0/keys/server.key置
dh /etc/openvpn/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push “redirect-gateway def1 bypass-dhcp”
push “dhcp-option DNS 10.8.0.1″
push “dhcp-option DNS 8.8.8.8″
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
——

8,启动openvpn.
/usr/local/sbin/openvpn –config /etc/openvpn/2.0/conf/server.conf

9,设置iptables nat,下面的环节,独立主机和OpenVZ会有一些区别,但区别不大,下为独立主机例,OpenVZ需要把eth0替换成venet0。

独立主机一般输入
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
即可,部分OpenVZ VPS需要执行
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT –to-source x.x.x.x
其中x.x.x.x是VPS的IP地址。
保存防火墙配置:
/etc/init.d/iptables save
/etc/init.d/iptables restart

10,设置转发参数。
检查当前参数:sysctl -a | grep forward
对比下列参数,若有为0的项目,使用
sysctl -w net.ipv4.ip_forward=1
类似命令修改。
——
net.ipv4.conf.tun0.mc_forwarding = 0
net.ipv4.conf.tun0.forwarding = 1
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.virbr0.mc_forwarding = 0
net.ipv4.conf.virbr0.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.forwarding = 1
net.ipv4.ip_forward = 1
——

11,服务端设置已经完成,客户端配置文件如下,其中,x.x.x.x是服务器对外的服务IP地址,ca.crt,client1.crt,client1.key是之前在服务器上生成的服务器证书,客户端证书和客户端密钥。
——
client
dev tun
proto udp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3
redirect-gateway def1
——

Tomcat集群和Oracle EMS…..

这两天一直在搞tomcat的集群,网络上很多资料都是过时的,还有很多是错误的,不过没关系,我一般不看中文资料,一是翻译不到位,二是那些SB根本不 知道怎么去翻译一些专有名词,就像洋人始终理解不到成语的意思一样,tomcat的documents里面有一个简单的clustering,先用上,因 为javagroups使用的也是多播,和tomcat自带的这个是一个原理,在网络良好的状态下,这种方式应该没什么问题,虽然是执行的会话all to all copy,tomcat也说了,下一个发行版本会推出适用于大型集群的session复制体系,5.5是beta的,我想是不是要等到6.0哦。
———————————————–
In this release of session replication, Tomcat performs an all-to-all replication of session state. This is an algorithm that is only efficient when the clusters are small. For large clusters, the next release will support a primary-secondary session replication where the session will only be stored at one or maybe two backup servers. In order to keep the network traffic down in an all-to-all environment
———————————————-
总而言之呢,昨天和今天测试的集群看起来就像下面这样,不过呢,我不确定是不是每一个程序都能在上面正常的运行,而且分别是在redhat9和freebsd上面。

Oracle还是有问题,我想可能是我使用了额外的JDK1.1.8导致了错误,虽然表面上看起来一切都是正常的……找不出来问题所在就是最大的问题,下午开会的时候33打电话来了,没接,不知道她找我干嘛呢。