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

客串:屌丝的坑人表单神器数据库那点事儿

面向对象升华:面向对象的认识----新生的初识面向对象的番外----思想的梦游篇(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-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:[email protected]

2.3 启动服务

/etc/init.d/xinetd reload

P1、P2、P3也一样安装rsync。

开个定时命令crontab,每几分钟同步一次,执行以下命令:

rsync -vzrtopg --delete [email protected]192.168.2.2::storage --password-file=/etc/rsync.pass

为了不用输入密码,/etc/rsync.pass加入密码

[email protected]

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

总结: 好了,三种解决方案都介绍完了,整体都很简单,赶快来选择适合自己的解决方案吧,动手试试吧!
当然三种方案都有自己的优缺点,我希望看了文章的不点推荐的人就回答下这些问题吧!

 

时间: 2024-10-07 08:08:25

负载均衡----文件服务策略的相关文章

高可用集群技术之keepalived实现lvs高可用并负载均衡web服务

Keepalived概述: Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器. keepalived实现lvs高可用并负载均衡web服务: 准备工作: 2台keepalived节点为: node1.samlee.com

根据DNS的A记录负载均衡web服务请求

做为论坛站点:有两种类型的数据要处理:  1.结构化的数据:  如:用户名.用户发表的评论等,这些可以存储在关系型数据库中:  2.非结构化的数据:如:用户上传的附件.则存储到文件系统中. 论坛的架构: 使用两台httpd服务器来服务用户的访问请求.使用DNS的A记录做客户访问轮循到这两台服务器上.php做为httpd的模块工作. 论坛架构如下图所示: 一.搭建NFS文件共享服务器. 要点:保证192.168.60.99与192.168.60.40两台httpd服务器的进程能够往共享文件系统(目

基于HAProxy+Keepalived高可用负载均衡web服务的搭建

一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进当前的架构中, 同时可以保护web服务器不被暴露到网络上.2.KeepalivedKeepalived 是一个基于VRRP协议来实现的LVS服务高

说说服务路由,服务负载均衡与服务去中心化结构

首先如果你的业务量不是很大,服务都是单台部署,那么你的服务地址可以硬编码到你的项目中,但是如果你的服务单台扛不住流量并发甚至性能特别差,那么我们就需要分布式部署我们的服务. 最初我们是这样子实现的 不论你走的是老式的Esb,还是一些代理服务器,都是先把请求打到另外一台服务器,然后给你转接给服务提供方. 现在我们是怎么实现的呢 Note:Soa架构会提供一个Client.dll,给到调用方,让调用方不必关系你的传输协议怎么实现,负载算法怎么实现,这都可以配置出来.然后服务每上线一台机器,都会自动注

Nginx 负载均衡配置和策略

Nginx 的 HttpUpstreamModule 提供对后端(backend)服务器的简单负载均衡.一个最简单的 upstream 写法如下: upstream backend { server backend1.example.com; server backend2.example.com; server.backend3.example.com; } server { location / { proxy_pass http://backend; } } 1.后端服务器 通过 upst

haproxy笔记之六:负载均衡MySQL服务的配置示例

#--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1)

day10 nfs服务,nginx负载均衡,定时任务

=====================nginx 负载均衡======================= 实现nginx负载均衡的效果,并运用nfs服务共享目录,使所有nginx服务拥有共同的http目录 nginx安装:http://www.cnblogs.com/alwaysInMe/p/6924859.html nfs安装:NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定. ===>  环境配置及软件安装 注:本次安装用的是cent

nginx+tomcat负载均衡策略

測试环境均为本地,測试软件为: nginx-1.6.0,apache-tomcat-7.0.42-1.apache-tomcat-7.0.42-2.apache-tomcat-7.0.42-3 利用nginx做负载均衡,三台tomcat做WEB详细业务处理. nginx配置nginx.conf: #Nginx所用用户和组.window下不指定 #user niumd niumd; #user nobody; #工作的子进程数量(通常等于CPU数量或者2倍于CPU) worker_processe

Spring Cloud Ribbon---微服务调用和客户端负载均衡

前面分析了Eureka的使用,作为服务注册中心,Eureka 分为 Server 端和 Client 端,Client 端作为服务的提供者,将自己注册到 Server 端,Client端高可用的方式是使用多机部署然后注册到Server,Server端为了保证服务的高可用,也可以使用多机部署的方式.前面简单搭建了Eureka Client 和 Server,然后将Client成功注册到 Server,本节我们将来看看如何调用Eureka服务,在多机部署情况下如何保证负载均衡.Spring Clou