两种方法都可以实现,不过在实际应用中很少采用第一种方式,毕竟那有点浪费资源。很多时候都是采用第二种方式。
今天介绍的文件服务策略分为三种(Linux):
1. 文件共享
2. 文件同步
3. 分布式文件系统
三种的优缺点,本篇不作声明。
1. 文件共享篇
参照图2,PA为文件服务器,文件主要存放服务器。
P1,P2,P3执行以下命令即可,你可以把该命令放入/etc/rc.local,开机自动启动 :
mount -o rw 192.168.2.2:/storage /storage
注:PA,P1,P2,P3 /storage为文件路径
2. 文件同步篇
PA安装rsync服务端,如何安装请查看:http://rsync.samba.org/
2.1 软件包安装
sudo apt-get install rsync #在debian、ubuntu 等在线安装方法; yum install rsync #Fedora、Redhat 等在线安装方法; rpm -ivh rsync #Fedora、Redhat 等rpm包安装方法;
2.2 配置文件
rsync的主要有以下三个配置文件/etc/rsyncd.conf(主配置文件)、/etc/rsyncd.secrets(密码文件)、/etc/rsyncd.motd(rysnc服务器信息)
注:rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!
/etc/rsyncd.conf:
pid file = /var/run/rsyncd.pid port = 873 address = 192.168.1.171 uid = root gid = root use chroot = yes read only = yes #limit access to private LANs hosts allow=192.168.2.0/255.255.255.0 hosts deny=* max connections = 5 #motd file = /etc/rsyncd.motd #This will give you a separate log file #log file = /var/log/rsync.log #This will log every file transferred - up to 85,000+ per user, per sync #transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 [storage] path = /storage list=yes ignore errors auth users = root secrets file = /etc/rsyncd.secrets
rsyncd.secrets:
root:storage@mydomain.com
2.3 启动服务
/etc/init.d/xinetd reload
P1、P2、P3也一样安装rsync。
开个定时命令crontab,每几分钟同步一次,执行以下命令:
rsync -vzrtopg --delete root@192.168.2.2::storage --password-file=/etc/rsync.pass
为了不用输入密码,/etc/rsync.pass加入密码
storage@mydomain.com
3. 分布式文件系统
首先了解下几个概念:
1. PA:Master文件服务器(主服务器)
2. P1、P2、P3:chunk文件服务器(文件存放服务器)
文件介绍的也是使用moosefs,官方网站:http://www.moosefs.org/reference-guide.html#making-and-installing
里面有篇中文文档,挺靠谱的。
3.1 PA安装MooseFS Master
wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz tar zxvf mfs-1.6.11.tar.gz cd mfs-1.6.11 useradd mfs -s /sbin/nologin ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs make make install
把Master配置文件,拷贝过去:
cd /usr/local/mfs/etc/ cp mfsmaster.cfg.dist mfsmaster.cfg cp mfsexports.cfg.dist mfsexports.cfg
启动、暂停命令
/usr/local/mfs/sbin/mfsmaster start /usr/local/mfs/sbin/mfsmaster –s
Master mfsexports.cfg配置
192.168.2.0/24 . rw 192.168.2.0/24 / rw
设置副本的份数,推荐 3 份
/usr/local/mfs/bin/mfssetgoal -r 3
3.2 P1、P2、P3安装MooseFS Chunk Server
wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz tar zxvf mfs-1.6.11.tar.gz cd mfs-1.6.11 useradd mfs -s /sbin/nologin ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs make make install
把Chunk Server配置文件,拷贝过去:
cd /usr/local/mfs/etc/ cp mfschunkserver.cfg.dist mfschunkserver.cfg cp mfshdd.cfg.dist mfshdd.cfg
启动、暂停命令
/usr/local/mfs/sbin/mfschunkserver start /usr/local/mfs/sbin/mfschunkserver stop
mfshdd.cfg配置
/data/mfs #文件存放路径
3.3 MooseFS Client安装
PA、P1、P2、P3都安装,安装如下:
wget http://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz tar zxvf mfs-1.6.11.tar.gz cd mfs-1.6.11 useradd mfs -s /sbin/nologin ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount make make install
PA、P1、P2、P3挂载文件系统:
/usr/local/mfs/bin/mfsmount /storage -H 192.168.2.2
以上三种方法都可以解决文件的一致性问题,具体用那个自己测测吧。如何实现负载均衡,可参考http://www.eqdh.com/index.php/archives/442(nginx负载均衡)
我只想默默的拜读您的博客!