centos 7分散配置minioファイルクラスタ
目次
一、分布式Minioの概要
1.分散Minioのメリット
2.クラスタ時間の同期
二、Minio分布式クラスタ構築
1、Minioを取得する
2、ホスト名及びhostsの変更
3、システムの最大ファイル数の修正
4、ディレクトリの作成
5、クラスタ起動ファイル
6、minio.service
7、バイナリファイルのアップロード
8、権限の変更
9、クラスタの起動
10、エージェントクラスタ
11、テスト
分散Minioでは、複数のハードディスク(異なるマシンでも)をオブジェクトストレージサービスとして構成できます.HDDが異なるノードに分散されているため、分散Minioは単一の障害を回避します.
ビッグデータの分野では、通常の設計コンセプトは中心なしと分散型です.Minio分散モードは、実際の物理的な場所を考慮することなく、高可用性のオブジェクトストレージサービスを構築するのに役立ちます.
データ保護
分散Minioは、複数のノードのダウンタイムとビット減衰bit rotを防止するためにerasure code(削除符号)を採用しています.
分散Minioには少なくとも4つのノードが必要であり,分散Minioを用いて自動的に削除符号化機能を導入した.
高可用性
スタンドアロンMinioサービスには単一の障害があります.逆に、Nノードの分散Minioであれば、N/2ノードがオンラインであれば、データは安全です.ただし、新しいオブジェクトを作成するには、少なくともN/2+1ノードQuarumが必要です.
たとえば、8ノードのMinioクラスタでは、各ノードにディスクが1つあり、4ノードがダウンタイムしてもこのクラスタは読み取り可能ですが、データを書くには5ノードが必要です.
制限
分散Minioシングルテナントには、最低4ディスク、最大16ディスクの制限があります(削除コードに制限されています).この制限はMinioの簡潔さを確保し、伸縮性を維持します.マルチテナント環境を構築する必要がある場合は、複数のMinioインスタンスを管理するために、編成ツール(Kubernetes)を簡単に使用できます.
分散Minioの制限を遵守すれば、異なるノードとノードごとにいくつかのディスクを組み合わせることができます.たとえば、2つのノード、各ノード4つのディスク、または4つのノード、各ノード2つのディスクなどを使用できます.
コンシステンシ
Minioは分散モードとシングルマシンモードで、すべての読み書き操作がread-after-write整合性モデルに厳格に準拠している.
クラスタ内のすべてのマシンの時間は3秒を超えてはいけません.まずntpタイムサーバをインストールする必要があります.簡単です.
https://blog.csdn.net/ct_666/article/details/112598442
ディスク領域の表示、適切なインストールディレクトリの選択
生産環境最小4ノード
ノード
IP
データディレクトリ
minio1
192.168.44.10
/home/minio/data
minio2
192.168.44.11
/home/minio/data
minio3
192.168.44.12
/home/minio/data
minio4
192.168.44.13
/home/minio/data
https://dl.min.io/server/minio/release/linux-amd64/minio
起動スクリプトおよびバイナリファイルディレクトリrunデータストレージディレクトリdataプロファイルディレクトリ/etc/minio
MINIO_ACCESS_KEY:ユーザー名、最小5文字MINIO_SECRET_KEY:パスワード、パスワードは簡単に設定できない.そうしないとminioは起動に失敗する.長さは最小8文字である.config-dir:クラスタプロファイルディレクトリを指定する.
WorkingDirectory:バイナリ・ファイル・ディレクトリExecStart:クラスタ起動スクリプトの指定
ダウンロードしたminioバイナリファイルを/home/minio/runディレクトリにアップロード
関連するすべてのファイルまたはディレクトリに権限を追加
サービスファイルバイナリファイルクラスタ起動スクリプト
生産環境はNginxを用いてクラスタアドレスをエージェントし,対外的に入口を統一する必要がある.ここでnginxは192.168.44.10に配備されるため、ポートは9000を使用することができず、9001ポートを使用し、デフォルトでは負荷等化ラウンドメカニズムを採用し、4つのアドレスを平均転送する.
ブラウザはminioクラスタエージェントアドレス+9001ポートにアクセスし、ユーザー名パスワードは上述の起動ファイルrunである.shで設定した
:9001
この配置方式では、1台のマシンの許容誤差があります.
ダウンタイム=1の場合、読み書き可能、ダウンタイム=2の場合、読み書き不可、ダウンタイム>2の場合、クラスタは使用できません
一、分布式Minioの概要
1.分散Minioのメリット
2.クラスタ時間の同期
二、Minio分布式クラスタ構築
1、Minioを取得する
2、ホスト名及びhostsの変更
3、システムの最大ファイル数の修正
4、ディレクトリの作成
5、クラスタ起動ファイル
6、minio.service
7、バイナリファイルのアップロード
8、権限の変更
9、クラスタの起動
10、エージェントクラスタ
11、テスト
一、分布式Minioの概要
分散Minioでは、複数のハードディスク(異なるマシンでも)をオブジェクトストレージサービスとして構成できます.HDDが異なるノードに分散されているため、分散Minioは単一の障害を回避します.
1.分散Minioのメリット
ビッグデータの分野では、通常の設計コンセプトは中心なしと分散型です.Minio分散モードは、実際の物理的な場所を考慮することなく、高可用性のオブジェクトストレージサービスを構築するのに役立ちます.
データ保護
分散Minioは、複数のノードのダウンタイムとビット減衰bit rotを防止するためにerasure code(削除符号)を採用しています.
分散Minioには少なくとも4つのノードが必要であり,分散Minioを用いて自動的に削除符号化機能を導入した.
高可用性
スタンドアロンMinioサービスには単一の障害があります.逆に、Nノードの分散Minioであれば、N/2ノードがオンラインであれば、データは安全です.ただし、新しいオブジェクトを作成するには、少なくともN/2+1ノードQuarumが必要です.
たとえば、8ノードのMinioクラスタでは、各ノードにディスクが1つあり、4ノードがダウンタイムしてもこのクラスタは読み取り可能ですが、データを書くには5ノードが必要です.
制限
分散Minioシングルテナントには、最低4ディスク、最大16ディスクの制限があります(削除コードに制限されています).この制限はMinioの簡潔さを確保し、伸縮性を維持します.マルチテナント環境を構築する必要がある場合は、複数のMinioインスタンスを管理するために、編成ツール(Kubernetes)を簡単に使用できます.
分散Minioの制限を遵守すれば、異なるノードとノードごとにいくつかのディスクを組み合わせることができます.たとえば、2つのノード、各ノード4つのディスク、または4つのノード、各ノード2つのディスクなどを使用できます.
コンシステンシ
Minioは分散モードとシングルマシンモードで、すべての読み書き操作がread-after-write整合性モデルに厳格に準拠している.
2.クラスタ時間の同期
クラスタ内のすべてのマシンの時間は3秒を超えてはいけません.まずntpタイムサーバをインストールする必要があります.簡単です.
https://blog.csdn.net/ct_666/article/details/112598442
二、Minio分布式クラスタ構築
ディスク領域の表示、適切なインストールディレクトリの選択
df -h
生産環境最小4ノード
ノード
IP
データディレクトリ
minio1
192.168.44.10
/home/minio/data
minio2
192.168.44.11
/home/minio/data
minio3
192.168.44.12
/home/minio/data
minio4
192.168.44.13
/home/minio/data
1、Minioを取得する
https://dl.min.io/server/minio/release/linux-amd64/minio
2、ホスト名及びhostsの変更
#
hostnamectl set-hostname minio1
hostnamectl set-hostname minio2
hostnamectl set-hostname minio3
hostnamectl set-hostname minio4
#
cat >> /etc/hosts <
3、システムの最大ファイル数の修正
#
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
4、ディレクトリの作成
起動スクリプトおよびバイナリファイルディレクトリrunデータストレージディレクトリdataプロファイルディレクトリ/etc/minio
#
mkdir -p /home/minio/{run,data} && mkdir -p /etc/minio
5、クラスタ起動ファイル
vim /home/minio/run/run.sh
MINIO_ACCESS_KEY:ユーザー名、最小5文字MINIO_SECRET_KEY:パスワード、パスワードは簡単に設定できない.そうしないとminioは起動に失敗する.長さは最小8文字である.config-dir:クラスタプロファイルディレクトリを指定する.
#
#!/bin/bash
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=admin#2020
/home/minio/run/minio server --config-dir /etc/minio \
http://192.168.44.10/home/minio/data \
http://192.168.44.11/home/minio/data \
http://192.168.44.12/home/minio/data \
http://192.168.44.13/home/minio/data \
6、minio.service
WorkingDirectory:バイナリ・ファイル・ディレクトリExecStart:クラスタ起動スクリプトの指定
#
cat > /usr/lib/systemd/system/minio.service <
7、バイナリファイルのアップロード
ダウンロードしたminioバイナリファイルを/home/minio/runディレクトリにアップロード
8、権限の変更
関連するすべてのファイルまたはディレクトリに権限を追加
サービスファイルバイナリファイルクラスタ起動スクリプト
#
chmod +x /usr/lib/systemd/system/minio.service && chmod +x /home/minio/run/minio && chmod +x /home/minio/run/run.sh
9、クラスタの起動
#
systemctl daemon-reload
systemctl start minio && systemctl enable minio
systemctl disable firewalld && systemctl stop firewalld
# 4 , :
[root@minio1 conf]# systemctl status minio
● minio.service - Minio service
Loaded: loaded (/usr/lib/systemd/system/minio.service; enabled; vendor preset: disabled)
Active: active (running) since 2021-01-13 16:07:08 CST; 9h ago
Docs: https://docs.minio.io/
Main PID: 6196 (run.sh)
CGroup: /system.slice/minio.service
├─6196 /bin/bash /home/minio/run/run.sh
└─6221 /home/minio/run/minio server --config-dir /etc/minio http://192.168.44.10/home/minio/data http://192.168.44.11/home/minio/data http://192.168.44.12/home/minio/data http://192.168.44.13/hom...
1 13 18:19:02 minio1 run.sh[6196]: Endpoint: http://192.168.44.10:9000 http://127.0.0.1:9000
1 13 18:19:02 minio1 run.sh[6196]: Browser Access:
1 13 18:19:02 minio1 run.sh[6196]: http://192.168.44.10:9000 http://127.0.0.1:9000
1 13 18:19:02 minio1 run.sh[6196]: Object API (Amazon S3 compatible):
1 13 18:19:02 minio1 run.sh[6196]: Go: https://docs.min.io/docs/golang-client-quickstart-guide
1 13 18:19:02 minio1 run.sh[6196]: Java: https://docs.min.io/docs/java-client-quickstart-guide
1 13 18:19:02 minio1 run.sh[6196]: Python: https://docs.min.io/docs/python-client-quickstart-guide
1 13 18:19:02 minio1 run.sh[6196]: JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
1 13 18:19:02 minio1 run.sh[6196]: .NET: https://docs.min.io/docs/dotnet-client-quickstart-guide
1 13 18:19:02 minio1 run.sh[6196]: Waiting for all MinIO IAM sub-system to be initialized.. lock acquired
10、エージェントクラスタ
生産環境はNginxを用いてクラスタアドレスをエージェントし,対外的に入口を統一する必要がある.ここでnginxは192.168.44.10に配備されるため、ポートは9000を使用することができず、9001ポートを使用し、デフォルトでは負荷等化ラウンドメカニズムを採用し、4つのアドレスを平均転送する.
# nginx 9001
upstream minio{
server 192.168.44.10:9000;
server 192.168.44.11:9000;
server 192.168.44.12:9000;
server 192.168.44.13:9000;
}
server {
listen 9001;
server_name minio;
location / {
proxy_pass http://minio;
proxy_set_header Host $http_host;
client_max_body_size 1000m;
}
}
11、テスト
ブラウザはminioクラスタエージェントアドレス+9001ポートにアクセスし、ユーザー名パスワードは上述の起動ファイルrunである.shで設定した
:9001
この配置方式では、1台のマシンの許容誤差があります.
ダウンタイム=1の場合、読み書き可能、ダウンタイム=2の場合、読み書き不可、ダウンタイム>2の場合、クラスタは使用できません