zoukankan      html  css  js  c++  java
  • 负载均衡----文件服务策略

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

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

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

     

  • 相关阅读:
    Session机制详解及分布式中Session共享解决方案
    分布式事务解决方案及实现
    MYSQL学习之安装、主从复制、读写分离原理解析以及详细配置(MySQL5.7)
    MySQL常见问题集锦及注意事项
    MySQL学习之索引机制详解(B+树)
    最全排序算法原理解析、java代码实现以及总结归纳
    判断某一点是否在几何图形内部
    .net项目dll内嵌加载
    WPF实现分页控件
    .net实现网易云音乐下载
  • 原文地址:https://www.cnblogs.com/oshine/p/3964362.html
Copyright © 2011-2022 走看看