Centos7でのFastDFSのインストールから入力まで

Githubリポジトリ##

Githubの紹介: [https://github.com/happyfish100/fastdfs](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fhappyfish100%2Ffastdfs)

Githubドキュメント: [https://github.com/happyfish100/fastdfs/wiki](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fhappyfish100%2Ffastdfs%2Fwiki)

FastDFSの概要##

FastDFSは、c言語で記述されたオープンソースの分散ファイルシステムです。 FastDFSは、冗長バックアップ、[ロードバランシング](https://cloud.tencent.com/product/clb?from=10680)、線形拡張などのメカニズムを十分に考慮し、高可用性や高性能などの指標に注意を払いながら、インターネット向けに調整されています。FastDFSを使用すると、高性能のファイルサーバークラスターを簡単に構築できます。ファイルのアップロードおよびダウンロードサービスを提供します。

FastDFSアーキテクチャには、トラッカーサーバーとストレージサーバーが含まれます。クライアントはトラッカーサーバーにファイルのアップロードとダウンロードを要求し、ストレージサーバーはトラッカーサーバーのスケジューリングを通じてファイルのアップロードとダウンロードを完了します。

トラッカーサーバーは、負荷分散とスケジューリングに使用されます。トラッカーサーバーは、ファイルをアップロードする際のいくつかの戦略に従って、ファイルアップロードサービスを提供するストレージサーバーを見つけることができます。トラッカーは、追跡サーバーまたはディスパッチサーバーと呼ばれます。

ストレージサーバーの機能は[ファイルストレージ](https://cloud.tencent.com/product/cfs?from=10680)です。クライアントによってアップロードされたファイルは最終的にストレージサーバーに保存されます。ストレージサーバーは独自のファイルシステムを実装しませんが、オペレーティングシステムのファイルシステムを使用してファイルを管理します。ストレージをストレージサーバーと呼ぶことができます。

サーバー側の2つの役割:

ファイルアップロードプロセス###

クライアントがファイルをアップロードした後、ストレージサーバーはファイルIDをクライアントに返します。このファイルIDは、将来、ファイルのインデックス情報にアクセスするために使用されます。ファイルインデックス情報には、グループ名、仮想ディスクパス、データ2レベルディレクトリ、およびファイル名が含まれます。

group1/M00/00/00/wKgrgF1Rp8uAeU2IAA-itrfn0m4.tar.gz

ファイルのダウンロードプロセス###

FastDFSのインストール##

使用したシステムソフトウェア###

名前 説明
centos 7.x
libfatscommon FastDFSで区切られたいくつかの一般的な関数パッケージ
FastDFS FastDFS本体
fastdfs-nginx-module FastDFSとnginxの関連モジュール
nginx nginx1.15.4

コンパイラ環境###

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

ディスクディレクトリ###

説明 場所
すべてのインストールパッケージ / usr / local / src
データの保存場所 / home / dfs /
# ここでは、便宜上、すべてのログをdfsに入れています
# データストレージディレクトリを作成します
[ root@server01 ~]# mkdir -p /home/dfs 
# インストールディレクトリに切り替えて、インストールパッケージをダウンロードする準備をします
[ root@server01 ~]# cd /usr/local/src 

コンポーネントのダウンロードとインストール###

次の手順では、インストールをインストールディレクトリ cd / usr / local / srcに切り替えて開始します。

libfatscommon ####をインストールします

git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/./make.sh &&./make.sh install #コンパイルしてインストール

FastDFSをインストールする####

cd ../ #前のディレクトリに戻る
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/./make.sh &&./make.sh install #コンパイルしてインストール
# 構成ファイルの準備
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #テスト用のクライアントファイル
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #nginxアクセスの場合
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #nginxアクセスの場合

fastdfs-nginx-module ###をインストールします

cd ../ #前のディレクトリに戻る
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

nginx ###をインストールします

wget http://nginx.org/download/nginx-1.15.4.tar.gz #nginx圧縮パッケージをダウンロードする
tar -zxvf nginx-1.15.4.tar.gz #解凍する
cd nginx-1.15.4/
# fastdfsを追加します-nginx-モジュールモジュール
. /configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ 
make && make install #コンパイルしてインストール

スタンドアロン展開##

展開トポロジ図###

上記のコマンドに従って、対応するコンポーネントをインストールしてから、スタンドアロン展開の構成を以下で実行します。

ファイアウォールをオフにします###

service firewalld stop

トラッカーサービス###

トラッカー構成####

# サーバーIPは192です.168.43.128
vim /etc/fdfs/tracker.conf
# 変更が必要な内容は以下のとおりです
port=22122  #トラッカーサーバーポート(デフォルトは22122,通常は変更されません)
base_path=/home/dfs  #ログとデータを保存するためのルートディレクトリ

トラッカーサービス関連コマンド####

/etc/init.d/fdfs_trackerd start #トラッカーサービスを開始する
/etc/init.d/fdfs_trackerd restart #トラッカーサービスを再起動します
/etc/init.d/fdfs_trackerd stop #トラッカーサービスを停止する
chkconfig fdfs_trackerd on #セルフスタートトラッカーサービス

トラッカーサービスを開始する####

[ root@server01 src]# /etc/init.d/fdfs_trackerd start
Reloading systemd:[  OK  ]
Starting fdfs_trackerd(via systemctl):[  OK  ][root@server01 src]# 

ストレージサービス###

ストレージ構成####

vim /etc/fdfs/storage.conf
# 変更が必要な内容は以下のとおりです
port=23000  #ストレージサービスポート(デフォルトは23000,通常は変更されません)
base_path=/home/dfs  #データおよびログファイルのストレージルートディレクトリ
store_path0=/home/dfs  #最初のストレージディレクトリ
tracker_server=192.168.43.128:22122  #トラッカーサーバーのIPとポート
http.server_port=8888  #httpアクセスファイルポート(デフォルト8888,状況に応じて変更する,nginxと一貫性を保つ)

ストレージサービス関連のコマンドを開始します####

/etc/init.d/fdfs_storaged start #ストレージサービスを開始します
/etc/init.d/fdfs_storaged restart #ストレージサービスを再起動します
/etc/init.d/fdfs_storaged stop #ストレージサービスを停止します
chkconfig fdfs_storaged on #セルフスタートストレージサービス

ストレージサービスを開始します####

[ root@server01 src]# /etc/init.d/fdfs_storaged start
Starting fdfs_storaged(via systemctl):[  OK  ][root@server01 src]# 

クライアントテストアップロードファイル###

vim /etc/fdfs/client.conf
# 変更が必要な内容は以下のとおりです
base_path=/home/dfs
tracker_server=192.168.43.128:22122    #トラッカーサーバーのIPとポート
# 保存後にテストする,戻りIDは、次のように成功を示します。group1/M00/00/00/xx.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz

実行は次のとおりです。


nginxサービス###

nginxアクセスを構成します####

vim /etc/fdfs/mod_fastdfs.conf
# 変更が必要な内容は以下のとおりです
tracker_server=192.168.43.128:22122  #トラッカーサーバーのIPとポート
url_have_group_name=true
store_path0=/home/dfs

# nginxを構成する.config
vim /usr/local/nginx/conf/nginx.conf
# 次の構成を追加します
server {
 listen       8888;    ##ポートはストレージです.confのhttp.server_同じポート
 server_name  localhost;
 location ~/group[0-9]/{
  ngx_fastdfs_module;}
 error_page   500502503504/50x.html;
 location =/50x.html {
 root   html;}}

# nginxサービスを開始します
/usr/local/nginx/sbin/nginx #nginxを開始します
/usr/local/nginx/sbin/nginx -s reload #nginxを再起動します

# テストダウンロード
wget http://192.168.43.128:8888/group1/M00/00/00/wKgrgF1Rp8uAeU2IAA-itrfn0m4.tar.gz

nginxサービスを開始し、ダウンロードファイルをテストします####

[ root@server01 src]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=4818[root@server01 src]# wget http://192.168.43.128:8888/group1/M00/00/00/wKgrgF1Rp8uAeU2IAA-itrfn0m4.tar.gz
- - 2019- 08- 1214:03:36- - http://192.168.43.128:8888/group1/M00/00/00/wKgrgF1Rp8uAeU2IAA-itrfn0m4.tar.gz
Connecting to 192.168.43.128:8888... connected.
HTTP request sent, awaiting response...200 OK
Length:1024694(1001K)[application/octet-stream]
Saving to: ‘wKgrgF1Rp8uAeU2IAA-itrfn0m4.tar.gz’

100 %[=================================================================================================================================>]1,024,694--.-K/s   in0.02s   

2019- 08- 1214:03:36(40.9 MB/s)- ‘wKgrgF1Rp8uAeU2IAA-itrfn0m4.tar.gz’ saved [1024694/1024694][root@server01 src]# 
[ root@server01 src]# ls
fastdfs  fastdfs-nginx-module  libfastcommon  nginx-1.15.4  nginx-1.15.4.tar.gz  wKgrgF1Rp8uAeU2IAA-itrfn0m4.tar.gz
[ root@server01 src]# 

ダウンロードが成功し、FastDFSの単一マシン展開が完了したことがわかります。

分散展開##

分散展開トポロジ###

TackerサービスとStorageサービスをそれぞれ両方のサーバーにインストールし、最初のサーバーにNginxをインストールして、ダウンロードサービスのリバースプロキシを実行します。
前の手順に従って2つのサーバーをインストールします。インストールが完了したら、分散構成に進みます。

トラッカー構成###

次の構成に従って、各サーバーのトラッカー構成を構成します。

# サーバーIPは192です.168.196.132,192.168.196.133
vim /etc/fdfs/tracker.conf
# 変更が必要な内容は以下のとおりです
port=22122  #トラッカーサーバーポート(デフォルトは22122,通常は変更されません)
base_path=/home/dfs  #ログとデータを保存するためのルートディレクトリ
# サービス開始
/etc/init.d/fdfs_trackerd start

ストレージ構成###

以下の構成に従って、各サーバーのストレージ構成を構成します。

vim /etc/fdfs/storage.conf
# 変更が必要な内容は以下のとおりです
port=23000  #ストレージサービスポート(デフォルトは23000,通常は変更されません)
base_path=/home/dfs  #データおよびログファイルのストレージルートディレクトリ
store_path0=/home/dfs  #最初のストレージディレクトリ
tracker_server=192.168.196.132:22122  #サーバー1
tracker_server=192.168.196.133:22122  #サーバー2
http.server_port=8888  #httpアクセスファイルポート(デフォルト8888,状況に応じて変更する,nginxと一貫性を保つ)
# サービス開始
/etc/init.d/fdfs_storaged start

クライアントテストアップロードファイル###

両方のサーバーは、テスト用のクライアントで構成されています。

vim /etc/fdfs/client.conf
# 変更が必要な内容は以下のとおりです
base_path=/home/dfs
tracker_server=192.168.196.132:22122  #サーバー1
tracker_server=192.168.196.133:22122  #サーバー2
# 保存後にテストする,成功を示すIDを返す
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz

アップロードされたファイルを実行した結果:

[ root@centos7-server02 nginx-1.15.4]# fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz
group1/M00/00/00/wKjEhF1SQHKAEN6aAA-itrfn0m4.tar.gz
[ root@centos7-server02 nginx-1.15.4]# 
[ root@server03 src]# fdfs_upload_file /etc/fdfs/client.conf 1.txt 
group1/M00/00/00/wKjEhV1SQLCAbAWtAAAABFqC_Qg891.txt
[ root@server03 src]# 

nginxアクセスを構成します###

どちらか一方にnginxを設定します。負荷を分散する場合は、両方にnginxを設定してから、F5またはhaproxyの負荷分散を構成できます。

vim /etc/fdfs/mod_fastdfs.conf
# 変更が必要な内容は以下のとおりです
tracker_server=192.168.196.132:22122  #サーバー1
tracker_server=192.168.196.133:22122  #サーバー2
url_have_group_name=true
store_path0=/home/dfs
# nginxを構成する.config
vim /usr/local/nginx/conf/nginx.conf
# 上記の構成を追加します
server {
 listen       8888;    ##ポートはストレージです.confのhttp.server_同じポート
 server_name  localhost;
 location ~/group[0-9]/{
  ngx_fastdfs_module;}
 error_page   500502503504/50x.html;
 location =/50x.html {
 root   html;}}

# nginxサービスを開始します
/usr/local/nginx/sbin/nginx #nginxを開始します
/usr/local/nginx/sbin/nginx -s reload #nginxを再起動します

nginx ###を使用してダウンロードファイルをテストします

wget http://192.168.196.132:8888/group1/M00/00/00/wKjEhF1SQHKAEN6aAA-itrfn0m4.tar.gz
wget http://192.168.196.132:8888/group1/M00/00/00/wKjEhV1SQLCAbAWtAAAABFqC_Qg891.txt

これらは、現在テストでアップロードされている2つのファイルです。nginxポート8888 +ファイルIDを介してダウンロードされます。ダウンロードが成功すると、インストールは完了です。

検出クラスター###

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
# 2つのストレージ1があるサーバーの数が表示されます-ストレージ2の詳細

関連する指示###

構成ファイル####

tracker_server #いくつのサーバーがいくつかを書き込みます
group_name #住所名
bind_addr #サーバーIPバインディング
store_path_count #store_path(デジタル)何人が数を書く
store_path(デジタル) #複数のストレージアドレスを設定し、0から始まるいくつかを書き込みます

考えられる問題####

rootユーザーでない場合は、cdコマンド以外のすべてにsudoを追加する必要があります
ルートユーザーでない場合は、個別にコンパイルしてインストールし、最初にコンパイルしてからインストールします
アップロードは成功したがnginxがエラー404を報告した場合は、最初にmodを確認してください_fastdfs.confファイルに保存_path0は一貫していますか
nginxにアクセスできない場合は、最初にファイアウォールとmodを確認してください_fastdfs.confファイルトラッカー_サーバーは一貫していますか
ない場合/usr/local/srcフォルダーにインストールすると、コンパイルエラーが発生する可能性があります

Recommended Posts

Centos7でのFastDFSのインストールから入力まで
CentOS7のインストールとエントリからマスターまでのnginxのメンテナンス
ジェンキンス学習のcentos6.9の下でのインストール
CentOSでのMysqlのインストールと使用
centos7でのredisのインストールと構成
CentOS6.5でのrsyncサーバーのインストールと構成
Centos7でのRedis3のインストール
CentosでのMicrosoftROpenの非ルートインストール
Centosでのconfluence6.3操作記録のインストールとクラッキング
CentosでのJira7操作記録のインストールとクラッキング
CentOSでのRedisクラスターのインストール
CentOSでのRedisクラスターのインストール
Oracle11gのCentos7サイレントインストール
DockerのCentOS環境インストール
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
CentOS7はopenjdk、tomcat、mysqlプロセスの紹介をインストールします
Centos7のインストールとJenkinsの構成
Hyper-VインストールCentOS8問題の分析
[redisの概要] Centosの下にredisをインストールします
ダメンデータベースチュートリアルのCentos7インストール
Centos6.5のインストールとKVMの展開
CentOS8インストールMariaDB詳細チュートリアル
Ubuntuでのdebパッケージのインストール
CentOSでのJava-JDKのインストールと構成
入門から習熟までのPython(2):Pythonの概要
UbuntuでのDockerCEのインストール
CentOS7でのErlang20.2のインストールと展開
Windowsでのpython共通ライブラリのインストール
pythonのインストールが成功したことを確認する方法
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
Centos-6.5LNMP環境のインストールと展開
PDFへのマークダウンを実現するためのPandocインストール(CentOS6)
Centos7のインストールとgitlabサーバーの展開
Ubuntu16.04でのCUDAのインストールとアンインストール
CentOSでのZabbixのインストールと展開およびローカリゼーション
(1)クラスター環境を構築するためのCentos7のインストール
CentOs7の下でのZabbixの4回目の分割払い
CentOS7.2でのKVMのインストールと予備使用
CentOS7でのZabbix監視プラットフォームの構築
centos7_1708のインストール
CentOSでJDKをインストールする3つの方法
Centos7のインストールとAirflowの展開の詳細
CentOS7システムでのJDKのインストールと構成
Python | 1からnまでの因数分解の合計を求めます
静的IPを設定するCentOSメソッドの概要
Ubuntu14.04でEvernoteを使用する方法の概要
Ubuntu12.04でのpulseaudioとAPIの使用法のインストール
centos7ソースコードからopensshをインストールする方法
CentOS7のソースコードからMySQL8.xをインストールします
VMware10でのCentOS7のインストールと構成のグラフィックチュートリアル
CentOS6でのrpmパッケージングの実際の戦闘
ubuntu18.04を最初から再インストールするための道
CentOS8でrootパスワードをすばやく変更する方法
VMwareWorkstationでのCentOS7のインストールと構成
CentOSでのMySQL8.0のインストールと展開、非常に詳細!
CentOS8でのApollo構成センターの分散展開
Centos5インストールガイド
[ビデオ] Centos8に最新のLinuxバージョンのQQをインストールする方法を教えてください
Python-centos6のインストール
CentOS7ドッカーのインストール
CentOS8はfastdfs6.06をインストールします