首页 > 代码库 > nginx 负载均衡

nginx 负载均衡

负载均衡----文件服务策略

同类文章:负载均衡----概念认识篇、负载均衡----实现配置篇(Nginx)

那么我们就需要文件服务器,文件服务器从哪里来,我们先看图了解下:

                                                  图1

 

---------------------------------------------------------------------------------------------------------------

 

 

                                               图2

不管是图1还是图2都能解决问题。

当你拿着这两份图给老板审批的时候,老板都会选择图2。

这个涉及高层的问题,先不用去理会,今天我们主要的内容是文件服务策略。

 

今天介绍的文件服务策略分为三种(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 = 873address = 192.168.1.171    uid = rootgid = rootuse chroot = yes  read only = yes #limit access to private LANshosts 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 = yeslog format = %t %a %m %f %bsyslog facility = local3timeout = 300[storage]   path = /storagelist=yes ignore errors auth users = rootsecrets 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.gztar zxvf mfs-1.6.11.tar.gzcd mfs-1.6.11useradd mfs -s /sbin/nologin./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfsmakemake install

把Master配置文件,拷贝过去:

cd /usr/local/mfs/etc/cp mfsmaster.cfg.dist mfsmaster.cfgcp 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 . rw192.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.gztar zxvf mfs-1.6.11.tar.gz cd mfs-1.6.11useradd mfs -s /sbin/nologin./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfsmakemake install

把Chunk Server配置文件,拷贝过去:

cd /usr/local/mfs/etc/cp mfschunkserver.cfg.dist mfschunkserver.cfgcp 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.gztar zxvf mfs-1.6.11.tar.gz cd mfs-1.6.11useradd mfs -s /sbin/nologin./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs--enable-mfsmountmakemake install

PA、P1、P2、P3挂载文件系统:

/usr/local/mfs/bin/mfsmount /storage -H 192.168.2.2

 

总结: 好了,三种解决方案都介绍完了,整体都很简单,赶快来选择适合自己的解决方案吧,动手试试吧!
当然三种方案都有自己的优缺点。

nginx 负载均衡