八月, 2009


7
八 09

MogileFS安装学习记录——续

我的系统环境:CentOS i386 5.3,最小化安装,带Development Tools组。

安装MogileFS
整个安装过程,主要参考这里:http://durrett.net/mogilefs_setup.html

1. 获得 mogilefs

cd /usr/local/src
mkdir mogilefs-src
svn checkout http://code.sixapart.com/svn/mogilefs/trunk  mogilefs-src

2. 建立数据库

# mysql
mysql> CREATE DATABASE mogilefs;
mysql> GRANT ALL ON mogilefs.* TO ‘mogile’@'%’;
mysql> SET PASSWORD FOR ‘mogile’@'%’= OLD_PASSWORD( ‘sekrit’);
mysql> FLUSH PRIVILEGES;
mysql> quit

3. 准备安装

安装MogileFS之前,需要先安装N个perl 模块,通过CPAN安装。以root用户运行下面安装命令:

cpan install Danga::Socket
cpan install Gearman::Client
cpan install Gearman::Client::Async
cpan install Gearman::Server
cpan install Net::Netmask
cpan install Perlbal
cpan install IO::AIO
cpan install DBD::mysql

需要注意的是,可能cpan不能正常运行,一般是因为配置里的CPAN的镜象站点儿有问题,编辑/usr/lib/perl5/5.8.8/CPAN/Config.pm(跟据自己的系统不同,路径会不尽相同),替换‘urllist’一行成如下:

‘urllist’=> [q[ftp://ftp.dti.ad.jp/pub/lang/CPAN/], q[ftp://ftp.nara.wide.ad.jp/pub/CPAN/], q[ftp://ftp.riken.jp/lang/CPAN/]],

删除~/.cpan,重新运行cpan即可。

假如安装失败,那么可以试试在cpan中运行:

cpan>force install X::XXX

4. 编译安装服务端

cd /usr/local/src/mogilefs-src/server
perl Makefile.PL
make
make test
make install

5. 编译安装工具

cd /usr/local/src/mogilefs-src/utils
cpan install MogileFS::Client
perl Makefile.PL
make
make test
make install

6. 初始化MogileFS数据库

# mogdbsetup –dbhost=192.168.1.186 –dbport=3301 –dbname=mogilefs –dbuser=mogile –dbpassword=sekrit

mogdbsetup –help 可以查看帮助。

7. 配置tracker
建立tracker运行用用户 mogile : ueradd mogile

MogileFS Tracker的默认配置文件在:/etc/mogilefs/mogilefsd.conf

内容如下:
db_dsn DBI:mysql:mogilefs:192.168.1.186:3301
db_user mogile
db_pass sekrit
conf_port 6001
listener_jobs 5

8. 配置storaged
建立storaged用目录:mkdir /srv/mogdata
配置文件:/etc/mogilefs/mogstored.conf
内容如下:
httplisten=0.0.0.0:7500
mgmtlisten=0.0.0.0:7501
docroot=/srv/mogdata

9. 启动tracker
#sudo -u mogile mogilefsd –daemon

10. 启动storaged
#mogstored –daemon


7
八 09

挂载Windows共享到Linux系统

首先,需要samba的客户端软件包:samba-client。

比如将 \\192.168.0.61\editors 挂载到 /mnt/editors

mount.cifs //192.168.0.61/editors /mnt/editors -o user=editors,pass=xxxxxx


7
八 09

自动挂载NFS、CIFS

系统重启后常常出现nfs没有被挂载,不管是配置在/etc/fstab里,还是将挂载命令写在/etc/rc.local里。

总是有原因的,可是我不能反复的重启系统试验,于是不得不绕过这个问题,于是想到了autofs。

参考:http://doc.chinahtml.com/Manual/rhl-cg-zh_CN-9/s1-nfs-mount.html

比如我有两个目录需要挂载远程的nfs:

/srv/data1

/srv/data2

对应的远程的nfs:

192.168.1.200:/srv/data1

192.168.1.201:/srv/data2

那么,我需要在 /etc/auto.master里添加这么一行:

/srv                /etc/auto.nfs.srv

然后建立 /etc/auto.nfs.srv,写入如下两行:

data1    -rw,nolock,noatime      192.168.1.200:/srv/data1
data2    -rw,nolock,noatime      192.168.1.201:/srv/data2

但是需要说明的是:

1. 我的系统是CentOS 5.3

2. 需要将autofs设置成开机自动启动:chkconfig autofs on,并启动autofs服务:/etc/init.d/autofs start

3. 使用autofs时,本地的/srv目录下面应该是空的,就是说data1目录和data2目录也不存在。当系统试图访问/srv/data1这个目录时autod daemon会自挂载nfs到/srv/data1目录,那时/srv下原来的存在的所有目录、文件将不能被访问。

那么也捎带着自动挂载一下windows的共享吧:

在/etc/auto.master里加入下面一行:

/mnt/smb                        /etc/auto.smb.mnt

在/etc/auto.smb.mnt时加入下面一行:

editors  -fstype=cifs,username=editors,password=xxxxxx  ://192.168.0.61/editors

需要说明的是,这里的//192.168.0.61前面的冒号,是不能省的。


6
八 09

CentOS自动升级问题

CentOS的yum-updatesd服务是可以自动更新系统的,只用稍微调整一个配置文件/etc/yum/yum-updatesd.conf:
[main]
# how often to check for new updates (in seconds)
run_interval = 3600# how often to allow checking on request (in seconds)
updaterefresh = 600

# how to send notifications (valid: dbus, email, syslog)
#emit_via = dbus
emit_via = email
email_from = yum-updatesd@MO01H36
email_to = caoyuwei@xxxx.com

# should we listen via dbus to give out update information/check for
# new updates
dbus_listener = yes

# automatically install updates
do_update = yes

# automatically download updates
do_download = yes

# automatically download deps of updates
do_download_deps = yes

但是最近发生一件怪事儿,由到了许多邮件,内容大致如下:
Hi,
This is the automatic update system on MO01H36.There was a problem updating the system. The following error message was reported:Failed to build transaction: Missing Dependency: /usr/lib/python2.4 is needed by package libxml2-python-2.6.26-2.1.2.7.i386 (installed)
Missing Dependency: /usr/lib/python2.4 is needed by package gamin-python-0.1.7-8.el5.i386 (installed)
If the problem persists, manual intervention may be required.
Thank You,
Your Computer

最终解决方法是:yum clean all
然后便可以 yum update了,yum-updated也会自动更新系统。

感慨一下团队的力量。这个解决办法是神仙发现的,哈,我们总是能遇到这样的惊喜!

PS: 2010-5-14

阅读CentOS 5.4发行说明的时候发现:

CentOS 5.4 包含了 glibc 及内核的更新。通过 yum 来更新的推荐程序是:
yum clean all
yum update glibc\*
yum update yum\* rpm\* python\*
yum clean all
yum update
shutdown -r now
升级是讲求顺序的。