CentOS7ビルドFastDFS分散ファイルシステム(下記)

  1. テスト

前回の記事では、FastDFSのインストールと構成について詳しく説明しました。 FastDFSの基本モジュールがすべてセットアップされ、テストとダウンロードが開始されます。

1.1 クライアントを構成します

同様に、クライアント構成ファイルを変更する必要があります。

[ root@docker-01 00]# vim /etc/fdfs/client.conf

以下のように修正します。

base_path = / usr / yunweimao / fastdfs / fastdfs_tracker#trackerサーバーファイルパス

tracker_server = 172.17.120.50:22122#trackerサーバーのIPアドレスとポート番号

http.tracker_server_port = 6666#トラッカーサーバーのhttpポート番号は、トラッカー設定に対応している必要があります

ftp経由でCentOSに写真をアップロードします。

mac1.png

[ root@docker-01 fastdfs]# ls

fastdfs_storage fastdfs_storage_data fastdfs_tracker mac1.png

1.2 アップロードをシミュレートする

画像の場所を決定したら、uploadimageコマンドを入力します。

[ root @ docker-01 opt]#/ usr / bin / fdfs_upload_file /etc/fdfs/client.conf /usr/yunweimao/fastdfs/mac1.png#これは画像の場所です

成功すると、画像のパスが返されます。

[ root@docker-01 opt]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/yunweimao/fastdfs/mac1.png

group1/M00/00/00/rBF4Ml1rV3uAQqKmABkOCxpvlZg936.png

グループ名:group1

ディスク:M00

ディレクトリ:00/00

ファイル名:rBF4Ml1rV3uAQqKmABkOCxpvlZg936.png

アップロードされた画像は、作成したstorage_dataディレクトリにアップロードされます。チェックアウトできます。

[ root@docker-01 opt]# cd /usr/yunweimao/fastdfs/fastdfs_storage_data/data

[ root@docker-01 data]# ls

00 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 D0 DD EA F7

01 0 E 1B 28 35 42 4F 5C 69 76 83 90 9D AA B7 C4 D1 DE EB F8

02 0 F 1C 29 36 43 50 5D 6A 77 84 91 9E AB B8 C5 D2 DF EC F9

03 10 1 D 2A 37 44 51 5E 6B 78 85 92 9F AC B9 C6 D3 E0 ED FA

04 11 1 E 2B 38 45 52 5F 6C 79 86 93 A0 AD BA C7 D4 E1 EE FB

05 12 1 F 2C 39 46 53 60 6D 7A 87 94 A1 AE BB C8 D5 E2 EF FC

06 13 20 2 D 3A 47 54 61 6E 7B 88 95 A2 AF BC C9 D6 E3 F0 FD

07 14 21 2 E 3B 48 55 62 6F 7C 89 96 A3 B0 BD CA D7 E4 F1 FE

08 15 22 2 F 3C 49 56 63 70 7D 8A 97 A4 B1 BE CB D8 E5 F2 FF

09 16 23 30 3 D 4A 57 64 71 7E 8B 98 A5 B2 BF CC D9 E6 F3

0 A 17 24 31 3E 4B 58 65 72 7F 8C 99 A6 B3 C0 CD DA E7 F4

0 B 18 25 32 3F 4C 59 66 73 80 8D 9A A7 B4 C1 CE DB E8 F5

0 C 19 26 33 40 4D 5A 67 74 81 8E 9B A8 B5 C2 CF DC E9 F6

[ root@docker-01 data]# cd 00/

[ root@docker-01 00]# ls

00 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3 D0 DD EA F7

01 0 E 1B 28 35 42 4F 5C 69 76 83 90 9D AA B7 C4 D1 DE EB F8

02 0 F 1C 29 36 43 50 5D 6A 77 84 91 9E AB B8 C5 D2 DF EC F9

03 10 1 D 2A 37 44 51 5E 6B 78 85 92 9F AC B9 C6 D3 E0 ED FA

04 11 1 E 2B 38 45 52 5F 6C 79 86 93 A0 AD BA C7 D4 E1 EE FB

05 12 1 F 2C 39 46 53 60 6D 7A 87 94 A1 AE BB C8 D5 E2 EF FC

06 13 20 2 D 3A 47 54 61 6E 7B 88 95 A2 AF BC C9 D6 E3 F0 FD

07 14 21 2 E 3B 48 55 62 6F 7C 89 96 A3 B0 BD CA D7 E4 F1 FE

08 15 22 2 F 3C 49 56 63 70 7D 8A 97 A4 B1 BE CB D8 E5 F2 FF

09 16 23 30 3 D 4A 57 64 71 7E 8B 98 A5 B2 BF CC D9 E6 F3

0 A 17 24 31 3E 4B 58 65 72 7F 8C 99 A6 B3 C0 CD DA E7 F4

0 B 18 25 32 3F 4C 59 66 73 80 8D 9A A7 B4 C1 CE DB E8 F5

0 C 19 26 33 40 4D 5A 67 74 81 8E 9B A8 B5 C2 CF DC E9 F6

[ root@docker-01 00]# cd 00/

[ root@docker-01 00]# ls

rBF4Ml1rV3uAQqKmABkOCxpvlZg936.png

案の定、戻ってきたばかりの道を通って、私たちはうまく写真を見つけました。

詳細を見てみましょう。実際の[ファイルストレージ](https://cloud.tencent.com/product/cfs?from=10680)パスによって、マルチレベルのディレクトリが作成されています。

データの下には256のレベル1ディレクトリがあり、各レベルディレクトリの下には256のレベル2サブディレクトリがあり、合計65536のファイルがあります。新しく書き込まれたファイルは、ハッシュモードでサブディレクトリの1つにルーティングされ、ファイルデータは直接送られます。このディレクトリにローカルファイルとして保存されます。

1.3 ファイルへのHTTPアクセス

ブラウザに移動し、httpリクエストを使用して画像にアクセスしてみましょう。

アクセスが不可能であることがわかりました。

httpは写真に直接アクセスできないことがわかりました。どうしてこれなの?

早くも4.05で、埋め込みHTTPサポートが削除されたことが判明しました。

Version 4.05 2012-12-30

1.4 HTTPリクエストがファイルにアクセスできない理由

FastDFSを使用して分散ファイルシステムを展開する場合、FastDFSのクライアントAPIを使用してファイルをアップロード、ダウンロード、および削除します。同時に、HTTPサービスはFastDFSHTTPサーバーを介して提供されます。ただし、FastDFSのHTTPサービスは比較的単純で、[Load Balancing](https://cloud.tencent.com/product/clb?from=10680)などの高性能サービスを提供できないため、FastDFSの開発者であるTaobaoのアーキテクトであるYu Qingから、Nginxで使用されるFastDFSモジュールが提供されました(これもFastDFSのNginxモジュールと呼ぶことができます)。

FastDFSはトラッカーサーバーを使用してストレージサーバーにファイルを保存しますが、同じグループ内のサーバーはファイルをコピーする必要があるため、遅延の問題があります。

トラッカーサーバーがファイルを192.168.235.32にアップロードし、ファイルIDがクライアントに返されたとします。この時点で、バックグラウンドでファイルが192.168.235.32にコピーされます。コピーが完了していない場合、クライアントはこのIDを使用して192.168.235.32でファイルをフェッチします。間違いなくエラーが発生します。

このfastdfs-nginx-moduleは、接続をソースサーバーにリダイレクトしてファイルをフェッチし、レプリケーションの遅延によるクライアントでのエラーを回避できます。

このため、FastDFSをnginxと組み合わせる必要があるため、HTTPの元の直接サポートはキャンセルされます。

  1. FastDFSnginxモジュールのインストール

2.1 nginxのインストールの準備

nginxをインストールする前に、nginxに必要な依存関係ライブラリをインストールします。

[ root@docker-01 00]# yum -y install pcre pcre-devel

[ root@docker-01 00]# yum -y install zlib zlib-devel

[ root@docker-01 00]# yum -y install openssl openssl-devel

2.2 nginxをインストールし、fastdfs-nginx-moduleを追加します

nginxとfastdfs-nginx-moduleを解凍します。

[ root@docker-01 opt]# wget http://nginx.org/download/nginx-1.13.0.tar.gz

[ root@docker-01 opt]# tar -zxvf nginx-1.13.0.tar.gz

[ root@docker-01 opt]# unzip fastdfs-nginx-module-master.zip

解凍後、nginxディレクトリに移動してnginxをコンパイルおよびインストールし、fastdfs-nginx-moduleを追加します。

[ root@docker-01 opt]# mkdir /usr/yunweimao/nginx

[ root@docker-01 opt]# mv fastdfs-nginx-module-master /usr/yunweimao/nginx/

[ root@docker-01 opt]# cd nginx-1.13.0

[ root@docker-01 nginx-1.13.0]# mkdir /usr/software/nginx

[ root @ docker-01 nginx-1.13.0]#。/ configure --prefix = / usr / software / nginx --add-module = / usr / yunweimao / nginx / fastdfs-nginx-module-master / src / #Unzip戻るfastdfs-nginx-moduleの場所

構成でエラーが報告されない場合は、コンパイルを開始します。

[ root@docker-01 nginx-1.13.0]# make

[ root@docker-01 nginx-1.13.0]# make install

エラーが報告された場合は、バージョンが原因である可能性があります.2番目のブログ投稿で、テストに成功したバージョンのダウンロードを提供しましたが、エラーは報告されませんでした。

nginxのデフォルトディレクトリは/ usr / software / nginxです。インストールが成功したら、次のことを確認してください。

[ root@docker-01 nginx-1.13.0]# cd /usr/software/nginx/

[ root@docker-01 nginx]# ll

合計金額4

drwxr-xr-x。2ルートルート40969月1日14:02conf

drwxr-xr-x。2ルートルート409月1日13:43html

drwxr-xr-x。2ルートルート589月1日14:02ログ

drwxr-xr-x。2ルートルート19September 1 13:43 sbin

2.3 ストレージnginxを構成する

nginx.confを変更します。

[ root@docker-01 nginx]# cd conf/

[ root@docker-01 conf]# ls

fastcgi.conf koi-win scgi_params

fastcgi.conf.default mime.types scgi_params.default

fastcgi_params mime.types.default uwsgi_params

fastcgi_params.default nginx.conf uwsgi_params.default

koi-utf nginx.conf.default win-utf

[ root@docker-01 conf]# vim nginx.conf

リスニングポートlisten9999を変更し、場所を追加します。

server {

listen 9999;

server_name localhost;

location / {

root html;

index index.html index.htm;

    }

location ~/group1/M00 {

root /usr/yunweimao/dev/fastdfs/fastdfs_storage_data/data;

ngx_fastdfs_module;

    }

location = /50x.html {

root html;

    }

}

次に、FastDFSのインストール中に解凍されたディレクトリに入り、http.confとmime.typesを/ etc / fdfsディレクトリにコピーします。

[ root@docker-01 fdfs]# cd /opt/fastdfs-master/conf

[ root@docker-01 conf]# ls

anti-steal.jpg http.conf storage.conf tracker.conf

client.conf mime.types storage_ids.conf

[ root@docker-01 conf]# cp http.conf /etc/fdfs/

[ root@docker-01 conf]# cp mime.types /etc/fdfs/

さらに、fastdfs-nginx-moduleインストールディレクトリのsrcディレクトリにあるmod_fastdfs.confを/ etc / fdfsディレクトリにコピーする必要があります。

[ root@docker-01 conf]# cp /usr/yunweimao/nginx/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/

コピーしたmod_fastdfs.confファイルを変更します。

[ root@docker-01 conf]# vim /etc/fdfs/mod_fastdfs.conf

改訂内容は以下のとおりです。

base_path = / usr / yunweimao / fastdfs / fastdfs_storage#ログディレクトリを保存

tracker_server = 172.17.120.50:22122#trackerサーバーのIPアドレスとポート番号

storage_server_port = 23000#ストレージサーバーのポート番号

url_have_group_name = true#ファイルurlにグループ名があるかどうか

store_path0 = / usr / yunweimao / fastdfs / fastdfs_storage_data#ストレージパス

group_count = 3#グループの数を設定します。実際、今回はgroup1のみが使用されます。

ファイルの最後に、グループを設定します

[ group1]

group_name=group1

storage_server_port=23000

store_path_count=1

store_path0=/usr/yunweimao/fastdfs/fastdfs_storage_data

[ group2]

group_name=group2

storage_server_port=23000

store_path_count=1

store_path0=/usr/yunweimao/fastdfs/fastdfs_storage_data

[ group3]

group_name=group3

storage_server_port=23000

store_path_count=1

store_path0=/usr/yunweimao/fastdfs/fastdfs_storage_data

M00からストレージストレージディレクトリへのシンボリックリンクを作成します。

[ root@docker-01 conf]# ln -s /usr/yunweimao/fastdfs/fastdfs_storage_data/ /usr/yunweimao/fastdfs/fastdfs_storage_data/data/M00

nginxを開始します。

[ root@docker-01 conf]# /usr/software/nginx/sbin/nginx

正常な開始:

[ root@docker-01 conf]# /usr/software/nginx/sbin/nginx

ngx_http_fastdfs_set pid=24740

訪問:

172.17.120.50:9999

ウェルカムインターフェイスが表示されたら、ストレージのnginxが正常に構成されています。

2.4 トラッカーnginxを構成する

別のnginxを解凍します。

自分の作業で別のnginx2を作成し、元のnginx-1.13.0.tar.gzを解凍しました。

[ root@docker-01 conf]# cd /usr/yunweimao/

[ root@docker-01 yunweimao]# ls

fastdfs nginx

[ root@docker-01 yunweimao]# mkdir nginx2

[ root@docker-01 yunweimao]# ls

fastdfs nginx nginx2

構成:

[ root@docker-01 nginx2]# mkdir /usr/software/nginx2

[ root@docker-01 nginx2]# tar -xzvf nginx-1.13.0.tar.gz

[ root@docker-01 src]# cd /usr/yunweimao/nginx2/nginx-1.13.0

[ root@docker-01 nginx-1.13.0]# ls

auto CHANGES.ru configure html man src

CHANGES conf contrib LICENSE README

[ root @ docker-01 nginx-1.13.0]#。/ configure --prefix = / usr / software / nginx2 --add-module = / usr / yunweimao / nginx / fastdfs-nginx-module-master / src#解凍後fastdfs-nginx-moduleの場所

コンパイル:

[ root@docker-01 nginx-1.13.0]# make

[ root@docker-01 nginx-1.13.0]# make install

次に、同じことがnginx.confを変更することです。ポート番号を変更する必要はなく、80を使用します。トラッカーのnginxアドレスをアップストリームで指す必要があります。

[ root@docker-01 nginx-1.13.0]# vim /usr/software/nginx2/conf/nginx.conf

upstream fdfs_group1 {

server 127.0.0.1:9999;

}

server {

listen 80;

server_name localhost;

charset koi8-r;

access_log logs/host.access.log main;

location /group1/M00 {

proxy_pass http://fdfs_group1;

    }

location / {

root html;

index index.html index.htm;

    #}

error_page 404 /404.html;

redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

    }

}

nginxを開始します。

[ root@docker-01 nginx-1.13.0]# /usr/software/nginx2/sbin/nginx

訪問:172.17.120.50

ウェルカムインターフェイスが表示されます。

2.5 ファイアウォールポート設定

それは成功しています、なぜ私はこれについて話す必要がありますか?一部の学生はまだここにアクセスできないため、ファイアウォールが対応するポートを開いていない可能性があります。少し面倒ですが、ファイアウォールをオフにしないことをお勧めします。

開いているポートを表示します。

[ root@docker-01 nginx-1.13.0]# firewall-cmd --zone=public --list-ports

20880 /tcp 80/tcp 2181/tcp 23000/tcp 22122/tcp 9999/tcp

これらのポートは私のCentOSで開いています。

storage:20880

tracker:23000

これらの2つのポートを開く必要があります。次の記事でfastdfs-client-javasについて説明すると、接続障害が発生する可能性があります。

9999 nginxアクセス用にポートと80が用意されています。

ポート番号を開くコマンド:–永続的とは永続的な効果を意味します。追加しないと、再起動後に有効になりません。

[ root @ docker-01 nginx-1.13.0]#firewall-cmd --zone = public --add-port = 23000 / tcp --permanent#アカウント開設ポート番号

CentOS7ファイアウォール関連コマンド:

systemctl enable Firewalld.service#ファイアウォールを開く

systemctl stop Firewalld.service#ファイアウォールを閉じます(商談が開かれたときに引き続き開始されます)

systemctl disable Firewalld.service#ファイアウォールを無効にします(起動後に起動しなくなります)

2.6 HTTPテスト

もう一度アップロードした画像にアクセスしてください。

http://172.17.120.50:9999/group1/M00/00/00/rBF4Ml1rV3uAQqKmABkOCxpvlZg936.png

運用と保守の学習、共有、コミュニケーションに関して、著者はWeChatパブリックアカウント[O&M Cat]を開設しました。興味のある友人はそれをフォローし、参加を歓迎し、運用と保守の知識を一緒に学ぶための独自の小さなサークルを設立できます。

Recommended Posts

CentOS7ビルドFastDFS分散ファイルシステム(下記)
CentOS7ビルドFastDFS分散ファイルシステム(オン)
CentOS7でScaleIO分散ストレージクラスターを構築する
セントスシステム管理
Centosビルドlnmp
CentOS8はfastdfs6.06をインストールします
CentOS7.3 64ビット、ビルドZabbix3.4
01 CentOS7.6スイッチシステム言語
CentOSビルドプライベートgit
Linux(centos7)ビルドgitlab
CentOS7.5-1804システムカーネルのアップグレード
centos7でk8s1.9.9をビルドする
CentOS6.7ビルドLNMP環境
Centos7.6ビルドLNMP環境
CentOSシステムの起動プロセス
Centos7ビルドKubernetesクラスター
ジェンキンスはセントスに基づいて構築されています
Centos7.2システム最適化オリジナル
Centosシステムプロセス管理