xuanxi 发表于 2015-9-10 11:15:23

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

  客串:屌丝的坑人表单神器、数据库那点事儿
  面向对象升华:面向对象的认识----新生的初识、面向对象的番外----思想的梦游篇(1)、面向对象的认识---如何找出类
  PHP项目 起点:手把手教你做关键词匹配项目(搜索引擎)---- 第一天最新:手把手教你做关键词匹配项目(搜索引擎)---- 第二十一天
  
  负载均衡----文件服务策略
  同类文章:负载均衡----概念认识篇、负载均衡----实现配置篇(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-getinstallrsync#在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
   
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
  
  总结: 好了,三种解决方案都介绍完了,整体都很简单,赶快来选择适合自己的解决方案吧,动手试试吧!
当然三种方案都有自己的优缺点,我希望看了文章的不点推荐的人就回答下这些问题吧!
  
  
页: [1]
查看完整版本: 负载均衡----文件服务策略