mogilefs高级应用(3)

发布时间:2019-08-25 09:33:53编辑:auto阅读(1830)

    mogilefs高级应用



    架构图:


    wKiom1hALQHyUPRTAAAdgHL7tZY802.png-wh_50


    实验说明:

        1个mysql+3个即是mogstored又是tracker节点+1个nginx实现反代



    为了使用更少的主机,我们采用2台主机


    nginx + mogstored + tracker 

    mysql + mogstored + tracker 



    这里首先快速部署 mogstored + tracker 环境 (详细部署请参照上篇博客)


    1.首先对mysql服务器进行设置

    mysql > grant all on mogdb.* to 'moguser'@'10.1.%.%' identified by 'mogpass';
    mysql > grant all on *.* to 'root'@'10.1.%.%' identified by 'root'; 
    --> 此权限过大,生成环境中可按需调整
    
    mysql > flush privileges;


    2.tracker + mogstored 配置


    tracker配置:

    # mogdbsetup --dbhost=10.1.249.125 --dbport=3306 --dbname=mogdb \
      > --dbrootuser=root --dbrootpass=root --dbuser=moguser --dbpass=mogpass
    
    # vim /etc/mogilefs/mogilefsd.conf 
    db_dsn = DBI:mysql:mogdb:host=10.1.249.125
    db_user = moguser
    db_pass = mogpass
    listen = 0.0.0.0:7001
    
    # service mogilefsd start
    
    # ss -tln | grep "7001"



    3.配置此台服务器同时为mogstored端

    # mkdir -pv /var/mogdata/dev1
    # chown -R  mogilefs.mogilefs /var/mogdata/
    
    # yum -y install perl-IO-AIO
    
    # service mogstored start
    # netstat -tlnp | grep "mogstored"
    
    # mogadm --trackers=10.1.249.125:7001 host add 10.1.249.125 --ip=10.1.249.125 --status=alive
    //如果创建失败,可能是由于 /etc/hosts文件的解析和真正的主机名不一致,修改/etc/hosts文件即可
    
    # scp /etc/mogilefs/* 10.1.252.53:/etc/mogilefs/ 
    --> 复制到另一个服务器,两个服务器使用相同的配置文件


    4.配置另一台服务器同时作为tracker+mogstored

    此时,该服务器作为tracker时,不需要再初始化数据库了,第一个已经初始化过了
    
    # mkdir /var/mogdata/dev3 -pv   --> 此处创建的目录需要和创建设备的名称保存一致
    # chown -R mogilefs.mogilefs /var/mogdata/
    # chown -R mogilefs.mogilefs /var/run/mogilefsd/
    # service mogilefsd start
    # service mogstored start
    # mogadm --trackers=10.1.252.53:7001 host add 10.1.252.53 --ip=10.1.252.53 --status=alive


    5.相互添加对方的主机

    # mogadm --trackers=10.1.252.53:7001 host add 10.1.249.125 --ip=10.1.249.125 --status=alive
    # mogadm --trackers=10.1.249.125:7001 host add 10.1.252.53 --ip=10.1.252.53 --status=alive
    
    # mogadm --trackers=10.1.249.125:7001 host list
    10.1.249.125 [1]: alive
      IP:       10.1.249.125:7500
    10.1.252.53 [2]: alive
      IP:       10.1.252.53:7500
    
      # mogadm --trackers=10.1.252.53:7001 host list
    10.1.249.125 [1]: alive
      IP:       10.1.249.125:7500
    10.1.252.53 [2]: alive
      IP:       10.1.252.53:7500


    6.添加设备,在同一个tracker操作即可

    # mogadm --trackers=10.1.249.125:7001 device add 10.1.249.125 1
    # mogadm --trackers=10.1.249.125:7001 device add 10.1.252.53 3  --> 和上述创建的目录保存一致
    
    # mogadm --trackers=10.1.249.125:7001 device list
    10.1.249.125 [1]: alive
                        used(G)    free(G)   total(G)  weight(%)
       dev1:   alive      6.484     84.630     91.114        100
    10.1.252.53 [2]: alive
                        used(G)    free(G)   total(G)  weight(%)
       dev3:   alive      6.176     84.938     91.114        100


    7.创建domain

    # mogadm --trackers=10.1.249.125:7001 domain add p_w_picpaths
    # mogadm --trackers=10.1.249.125:7001 domain add files
    
    # mogadm --trackers=10.1.249.125:7001 domain list
     domain               class                mindevcount   replpolicy   hashtype
    -------------------- -------------------- ------------- ------------ -------
     files                default                   2        MultipleHosts() NONE   
     p_w_picpaths               default                   2        MultipleHosts() NONE


    8.创建class

    # mogadm --trackers=10.1.252.53:7001 class add p_w_picpaths class0 --mindevcount=2
    # mogadm --trackers=10.1.252.53:7001 class add p_w_picpaths class1 --mindevcount=2
    
    # mogadm --trackers=10.1.252.53:7001 class list
     domain               class                mindevcount   replpolicy   hashtype
    -------------------- -------------------- ------------- ------------ -------
     files                default                   2        MultipleHosts() NONE   
     p_w_picpaths               class0                    2        MultipleHosts() NONE   
     p_w_picpaths               class1                    2        MultipleHosts() NONE   
     p_w_picpaths               default                   2        MultipleHosts() NONE



    9.nginx配置

    编译安装nginx使其支持mogilefs模块
    
    # tar xf nginx_mogilefs_module-1.0.4.tar.gz
    # tar xf nginx-1.8.0.tar.gz
    # cd nginx-1.8.0
    # ./configure \
      --prefix=/usr \
      --sbin-path=/usr/sbin/nginx \
      --conf-path=/etc/nginx/nginx.conf \
      --error-log-path=/var/log/nginx/error.log \
      --http-log-path=/var/log/nginx/access.log \
      --pid-path=/var/run/nginx/nginx.pid  \
      --lock-path=/var/lock/nginx.lock \
      --user=nginx \
      --group=nginx \
      --with-http_ssl_module \
      --with-http_flv_module \
      --with-http_stub_status_module \
      --with-http_gzip_static_module \
      --http-client-body-temp-path=/var/tmp/nginx/client/ \
      --http-proxy-temp-path=/var/tmp/nginx/proxy/ \
      --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
      --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
      --http-scgi-temp-path=/var/tmp/nginx/scgi \
      --with-pcre \
      --with-debug \
      --add-module=(nginx_mogilefs_module-1.0.4模块的路径)
    # make && make install


    nginx反代mogilefs的配置文件
    
    upstream mogilefscluster{
         server 10.1.252.53:7001;
         server 10.1.249.125:7001;
    }
    location /p_w_picpaths/ {
        mogilefs_tracker mogilefscluster;
        mogilefs_domain p_w_picpaths;
        mogilefs_pass {
            proxy_pass $mogilefs_path;
            proxy_hide_header Content-Type;
            proxy_buffering off;
            }
    }


    10.后端节点上传一张图片,用来做测试(后端两台服务器随便选择一台即可)

    # mogupload --trackers=10.1.252.53:7001 --domain=p_w_picpaths --key='1.jpg' --file='/tmp/1.jpg'
    # mogupload --trackers=10.1.252.53:7001 --domain=p_w_picpaths --key='2.jpg' --file='/tmp/2.jpg'
    
    # moglistkeys --trackers=10.1.252.53:7001 --domain=p_w_picpaths
    1.jpg
    2.jpg



    11.查看真实访问路径

    # mogfileinfo -trackers=10.1.252.53:7001 --domain=p_w_picpaths --key="1.jpg"
     - http://10.1.252.53:7500/dev3/0/000/000/0000000018.fid
     - http://10.1.249.125:7500/dev1/0/000/000/0000000018.fid  
    --> 可以看到有两个,由于我们有两个mogstored,所有mogilefs自动帮我们做了冗余


    wKiom1hAKoehAFkYAAE8jv9BRhk068.png-wh_50



    12.被nginx反代后的访问路径

    http://IP/p_w_picpaths/1.jpg
    http://IP/p_w_picpaths/2.jpg



    wKioL1hAKtXxFNJpAAErohnPQqw956.png-wh_50




    wKiom1hAKvbi8M09AAHhFzXUINI599.png-wh_50




关键字

上一篇: oracle-审计3

下一篇: Balsamiq Mockups 实例3