SNSの導入——MFS分散ファイルシステム

4865 ワード

ケースの概要
ある会社のSNSはPHP言語開発を採用しており、PHPプログラマーが開発したコードを管理するために、上司はSVNサーバーを構築してバージョン管理を行うように要求している.ソーシャル・ネットワーク・サービス(SNS)の最初のバージョンはLNMPプラットフォームの上に配置され、フロントエンドはNginxサーバであり、fastcgiプロトコルを通じてバックエンドのPHPサーバにアクセスします.データの安全を確保するために、MySQLデータベースのマスタークラスタを構築する必要があります.
ソーシャルサイトプロジェクトには、ユーザーのアルバム機能が含まれており、ユーザーが写真をアップロードすることができ、写真をアップロードするには共有ストレージを使用して保存する必要があります.共有ストレージに対して利用可能なオープンソース方式は、MFS、FastDFSなど多くある.同社はMFS分散ファイルシステムを用いて実現し,MFSをPHPサーバの関連ディレクトリにマウントすることにした.
導入事例
会社のニーズに応じて、実施過程は大きく以下のステップに分けられる.
  • SVNサーバを配備し、PHPプログラマーのためにrepoディレクトリのアクセスアカウントを作成し、プログラマーにコードをインポートできることを通知する.
  • MySQLマスターサーバを配備し、PHPプログラマーの要求に従ってデータベースとテーブルを作成します.
  • Nginxサーバを配備します.PHPサーバーを配備します.
  • MFSを配備し、MFSファイルシステムをフロントエンドPHPサーバの関連ディレクトリの下にマウントする.
  • は、オンラインデプロイメント担当者にオンラインを公開できることを通知します.

  • MFS配備とマウント
    Master Serverの構築
    1、MFSを取り付ける
    yum install -y zlib-devel gcc gcc-c++      //        
    useradd mfs -s /sbin/nologin -M            //      
    
    tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
    cd /opt/mfs-1.6.27/
    
    ./configure \
    --prefix=/usr/local/mfs \
    --with-default-user=mfs \
    --with-default-group=mfs \
    --disable-mfschunkserver \
    --disable-mfsmount
    
    make && make install 

    2、ファイルのコピー
    cd /usr/local/mfs/etc/mfs/
    cp mfsmaster.cfg.dist mfsmaster.cfg          #      
    cp mfsexports.cfg.dist mfsexports.cfg           #     
    cp mfstopology.cfg.dist mfstopology.cfg           # top    
    
    cd /usr/local/mfs/var/mfs/ 
    cp metadata.mfs.empty metadata.mfs        #   
    

    3、Master Serverを起動する
    /usr/local/mfs/sbin/mfsmaster start       //  
    /usr/local/mfs/sbin/mfsmaster -s        //  
    netstat -antp | grep mfs
    
    systemctl stop firewalld.service 
    setenforce 0         //          

    Metalogger Serverの構築
    1、MFSを取り付ける
    yum install -y zlib-devel gcc gcc-c++       //        
    useradd mfs -s /sbin/nologin -M          //      
    
    tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
    cd /opt/mfs-1.6.27/
    
    ./configure \
    --prefix=/usr/local/mfs \
    --with-default-user=mfs \
    --with-default-group=mfs \
    --disable-mfschunkserver \
    --disable-mfsmount
    
    make && make install

    2、ファイルのコピー
    cd /usr/local/mfs/etc/mfs/
    cp mfsmaster.cfg.dist mfsmaster.cfg 
    cp mfsexports.cfg.dist mfsexports.cfg 
    cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
    
    vim mfsmetalogger.cfg
    ......
    MASTER_HOST = 192.168.43.118         //IP  master

    3、Metalogger Serverを起動する
    /usr/local/mfs/sbin/mfsmetalogger start   //  
    /usr/local/mfs/sbin/mfsmetalogger -s    //  
    netstat -antp | grep mfs
    
    systemctl stop firewalld.service 
    setenforce 0         //          

    Chunk Serverの構築
    1、MFSを取り付ける
    yum install -y zlib-devel gcc gcc-c++        //        
    useradd mfs -s /sbin/nologin -M          //      
    
    tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
    
    cd /opt/mfs-1.6.27/
    ./configure \
    --prefix=/usr/local/mfs \
    --with-default-user=mfs \
    --with-default-group=mfs \
    --disable-mfsmaster \
    --disable-mfsmount
    
    make && make install 

    2、ファイルのコピー
    cd /usr/local/mfs/etc/mfs/ 
    cp mfschunkserver.cfg.dist mfschunkserver.cfg
    cp mfshdd.cfg.dist mfshdd.cfg
    
    vim mfschunkserver.cfg
    ......
    MASTER_HOST = 192.168.43.118         //IP  master
    
    vim mfshdd.cfg
    ......
    /data            //    /data,   /data    MFS   ,                      
    
    mkdir /data        //     
    chown -R mfs:mfs /data        //       mfs

    3、Chunk Serverを起動する
    /usr/local/mfs/sbin/mfschunkserver start   //  
    /usr/local/mfs/sbin/mfschunkserver start -s    //  
    netstat -antp | grep mfs
    
    systemctl stop firewalld.service 
    setenforce 0         //          
    

    クライアント構成
    ここでPHPサーバーはクライアントの役割で、PHPサーバーの上で構築します
    1、fuseをインストールする
    yum install -y zlib-devel gcc gcc-c++     //        
    
    tar xzvf fuse-2.9.2.tar.gz -C /opt        //mfs      fuse
    cd /opt/fuse-2.9.2
    
    ./configure
    
    make && make install

    2、環境変数の設定
    vim /etc/profile
    #      
    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
    
    source /etc/profile         //      

    3、MFSクライアントのインストール
    useradd mfs -s /sbin/nologin -M        //      
    tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
    cd /opt/mfs-1.6.27/
    
    ./configure \
    --prefix=/usr/local/mfs \
    --with-default-user=mfs \
    --with-default-group=mfs \
    --disable-mfschunkserver \
    --enable-mfsmount       //         
    
    make && make install

    4、MFSファイルシステムのマウント
    MFSファイルシステムをフロントエンドPHPサーバーの/var/www/html/webphp/uploads/photosディレクトリにマウントする
    mkdir -p /var/www/html/webphp/uploads/photos         //     
    modprobe fuse                     //  fuse     
    /usr/local/mfs/bin/mfsmount /var/www/html/webphp/uploads/photos -H 192.168.43.118        //  MFS

    転載先:https://blog.51cto.com/13641879/2151786