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

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

     

  • 相关阅读:
    jmeter(46) redis
    jmeter(45) tcp/ip协议
    Codeforces Round #538 (Div. 2)D(区间DP,思维)
    Codeforces Global Round 1D(DP,思维)
    Educational Codeforces Round 57D(DP,思维)
    UPC11073(DP,思维)
    Yahoo Progamming Contest 2019D(DP,思维)
    Atcoder Beginner Contest 118D(DP,完全背包,贪心)
    Xuzhou Winter Camp 1C(模拟)
    Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
  • 原文地址:https://www.cnblogs.com/oshine/p/3964362.html
Copyright © 2011-2022 走看看