#garageとは何か?セルフホスティング用に調整されたオープンソースの分散オブジェクトストレージサービス #七20

  #garageとは何か?セルフホスティング用に調整されたオープンソースの分散オブジェクトストレージサービス #七20


https://garagehq.deuxfleurs.fr

私たちの目標

軽量化を図り、効率性を重視しました:自己完結型

すべての Linux ディストリビューションで実行される依存関係のない単一のバイナリを出荷します
展開が速く、安全に動作します

私たちはシステム管理者であり、オペレーターに優しいソフトウェアの価値を知っています
あらゆるマシンであらゆる場所に展開します

私たちには専用のバックボーンがありませんし、あなたもそうではありません
そこで、複数のデータセンターにわたってインターネット上で実行されるソフトウェアを作成しました
弾力性が高い

ネットワーク障害に, ネットワーク遅延, ディスク障害, sysadmin の障害

要件を低く保つ

私たちは、要件を可能な限り低く保つために懸命に働きました:

 CPU過去 10 年間の x86_64 CPU、ARMv7 または ARMv8


 ラム1 ギガバイト


 ディスクスペース少なくとも16 GB


 ネットワーク200 ミリ秒以下、50 Mbps以上


 異種ハードウェア利用可能な中古機械を使用してクラスターを構築します

巨人の肩に立つ

ガレージは、分散システムにおける最近の研究から得られた洞察を活用しています:

スポンサーと資金提供

ガレージはから資金提供を受けています NGI ポインター (1 年間正社員3 名、2021-2022 年度)、およびから NLnet / NGI0 Entrust (1 年間正社員1 名、2023-2024 年度)となります。

寄付またはサポート契約を通じて、ガレージ開発への資金提供に参加したい場合は、ぜひご参加ください 私たちに連絡してください.


このプロジェクトは、助成契約 N° 871528 に基づいて資金提供された NGI-POINTER プロジェクトの枠組み内で、欧州連合の Horizon 2021 研究およびイノベーション プログラムから資金提供を受けています。

このプロジェクトは、助成契約番号 101069594 に基づいて、DG Communications Networks, Content and Technology の支援の下、欧州委員会の次世代インターネット プログラムからの資金援助を受けて NLnet が設立した基金である NGI0 Entrust Fund から資金提供を受けています。
Garageの旅を始めましょう!この章では、Garage をシングルノード サーバーとしてデプロイする方法と、それと対話する方法について説明します。

Garageとは?
飛び込む前に、次のページを読むことに興味があるかもしれません:

目標と使用例
機能一覧
このチュートリアルの範囲
ガレージのワークフローをご紹介するのが目標です に進む前に、このガイドに従うことをお勧めしますマルチノードクラスタの構成.

この種のデプロイメントは、データに冗長性を提供しないため、実稼働環境で使用すべきではないことに注意してください!

バイナリを取得
リポジトリのリリースページから最新のGarageバイナリをダウンロードしてください:

https://garagehq。deuxfleurs。fr/download/

このバイナリをあなたのどこかに置きます $PATH を呼び出すことができるようにします garageコマンドを直接実行します(たとえば、バイナリをコピーできます) /usr/local/binまたは で ~/.local/bin) を。

ディストリビューションにすでに a が含まれているかどうかを確認することもできますgarage用バイナリパッケージ.

アーキテクチャで最後のバージョンのバイナリが利用できない場合、またはシステム用にカスタマイズされたビルドが必要な場合は、利用できます ソースからガレージを構築します.

Garage の設定と起動
最初の構成ファイルを生成しています
この最初の構成ファイルを使用すると、可能な限り単純な Garage 展開を簡単に開始できるはずです。

次のコマンドで作成します lineto セキュリティ上の理由から、一意の秘密とプライベートな秘密を生成します:

cat > garage.toml <<EOF
metadata_dir = "/tmp/meta"
data_dir = "/tmp/data"
db_engine = "sqlite"

replication_factor = 1

rpc_bind_addr = "[::]:3901"
rpc_public_addr = "127.0.0.1:3901"
rpc_secret = "$(openssl rand -hex 32)"

[s3_api]
s3_region = "garage"
api_bind_addr = "[::]:3900"
root_domain = ".s3.garage.localhost"

[s3_web]
bind_addr = "[::]:3902"
root_domain = ".web.garage.localhost"
index = "index.html"

[k2v_api]
api_bind_addr = "[::]:3904"

[admin]
api_bind_addr = "[::]:3903"
admin_token = "$(openssl rand -base64 32)"
metrics_token = "$(openssl rand -base64 32)"
EOF
設定ファイルが作成されたので、選択したディレクトリに保存することができます。デフォルトでは、Garage が探します /etc/garage.toml.別の場所に保存することもできますが、指定する必要があります -c path/to/garage.tomlの各呼び出しで garage バイナリ(例:) garage -c ./garage.toml server, garage -c ./garage.toml status) を。

ご覧のとおり、 rpc_secret は 32 バイトの 16 進文字列です。で再生成できます。 openssl rand -hex 32。複数のノードを含むクラスター展開をターゲットにする場合、すべてのノードで同じ値を使用していることを確認してください。

でわかるように、 metadata_dir そして data_dir パラメーター、garage のデータインを保存しています /tmp システムが再起動すると消去されます。つまり、thisGarage サーバーに保存されているデータは永続的になりません。データを適切に保持したい場合は、これらをローカル ディスク上の場所に変更してください。

Garageサーバーの起動
Garageサーバーを起動するには、次のコマンドを使用します:

garage -c path/to/garage.toml server
を配置した場合 garage.toml ファイルイン /etc (デフォルトの場所)を実行するだけで済みます garage server.

を設定することで、Garage の冗長性を調整できます RUST_LOG= 環境変数。
利用可能なログレベルは(冗長性が低いものから、より冗長なものまで): error, warn, info (デフォルト)を指定します, debug そして trace.

RUST_LOG=garage=info garage server # default
RUST_LOG=garage=debug garage server
RUST_LOG=garage=trace garage server
ログレベル info はデフォルト値で、ほとんどのユースケースで推奨されます。Log レベル debug s3 API 呼び出しが機能しない理由を確認するのに役立ちます。

Garageが正しく実行されていることを確認します
の The garage ユーティリティは、garageデプロイメントを構成するためのcliツールとしても使用されます。toml構成ファイルの値を使用して、ローカルノードで実行されているgarageデーモンを見つけますので、構成ファイルがatにない場合は /etc/garage.toml 再び指定する必要があります -c path/to/garage.toml 呼び出しのたびに。

もし garage CLIはローカルGarageノードのパラメータを正しく検出することができます、次のコマンドはクラスタの状態を示すのに十分であるはずです:

garage status
これは次のようなものを示すはずです:

==== HEALTHY NODES ====
ID                 Hostname  Address         Tag                   Zone  Capacity
563e1ac825ee3323   linuxbox  127.0.0.1:3901  NO ROLE ASSIGNED
クラスタレイアウトの作成
Garage デプロイメント用のクラスター レイアウトを作成するということは、クラスターの各ノードで利用可能なディスク領域と、各マシンが配置されているゾーン(データセンターなど)を Garage に通知することを意味します。

テスト展開では、1 つのノードのみを使用します。私たちがconfigureitをどのように構成するかは関係ありません、あなたは単に書くことができます:

garage layout assign -z dc1 -c 1G <node_id>
どこで <node_id> で示されるノードの識別子に対応する garage status (最初の列)を表す。その識別子の接頭辞を単純に入力することができます。たとえば、ここでは just と書くことができます。 garage layout assign -z dc1 -c 1G 563e.

次に、以下を使用して、レイアウトをクラスターに適用する必要があります:

garage layout apply
バケットとキーの作成
このセクションでは、という名前のバケットを作成すると仮定します nextcloud-bucketこれには、指定されたキーを通じてアクセスされます nextcloud-app-key.

それを忘れないで help コマンド および --help サブコマンドはどこでも役立ちます。CLI ツールは自己文書化されています!2 つの例:

garage help
garage bucket allow --help
バケットを作成します
Garageをメインデータストレージとして使用してNextCloudを展開する例を見てみましょう。

まず、次のコマンドでバケットを作成します:

garage bucket create nextcloud-bucket
すべてがうまくいったことを確認してください:

garage bucket list
garage bucket info nextcloud-bucket
APIキーを作成します
の The nextcloud-bucket bucket は Garage サーバー上に存在しますが、適切なアクセス権を持つ API キーを追加するまでアクセスできません。

API キーはバケットから独立していることに注意してください。1 つのキーは複数のバケットにアクセスでき、複数のキーは 1 つのバケットにアクセスできます。

次のコマンドを使用してAPIキーを作成します:

garage key create nextcloud-app-key
出力は次のように見えるはずです:

Key name: nextcloud-app-key
Key ID: GK3515373e4c851ebaad366558
Secret key: 7d37d093435a41f2aab8f13c19ba067d9776c90215f56614adad6ece597dbb34
Authorized buckets:
すべてが意図したとおりに機能することを確認してください:

garage key list
garage key info nextcloud-app-key
キーがバケットにアクセスできるようにします
バケットとキーがあるので、バケット上のキーに権限を与える必要があります:

garage bucket allow \
  --read \
  --write \
  --owner \
  nextcloud-bucket \
  --key nextcloud-app-key
バケットの許可されたキーは、次の方法でいつでも確認できます:

garage bucket info nextcloud-bucket
Garageからのアップロードとダウンロード
ガレージ上のファイルをダウンロードしてアップロードするには、という名前のサードパーティのツールを使用できます awscli.

インストールして構成します awscli
システムにpythonがある場合は、次の方法でインストールできます:

python -m pip install --user awscli
今 それ awscli インストールされている場合は、キーを使用して Garage インスタンスと通信するように構成する必要があります。それを行う方法は複数ありますが、最も簡単な方法はファイル名を作成することです ~/.awsrc このコンテンツで:

export AWS_ACCESS_KEY_ID=xxxx      # put your Key ID here
export AWS_SECRET_ACCESS_KEY=xxxx  # put your Secret key here
export AWS_DEFAULT_REGION='garage'
export AWS_ENDPOINT_URL='http://localhost:3900'

aws --version
少なくとも持っている必要があることに注意してください awscli >=1.29.0 または >=2.13.0, 、そうでなければ指定する必要があります --endpoint-url それぞれに明示的に awscli 呼び出し。

さて、使いたいと思うたびに awscli このターゲットでは、次のように実行します:

source ~/.awsrc
複数の Garage クラスターまたは異なるキーがある場合は、異なる名前の複数のファイルを作成できます。あるクラスターから別のクラスターへの切り替えは、適切なファイルを簡単に調達できます。

の用例 awscli
# list buckets
aws s3 ls

# list objects of a bucket
aws s3 ls s3://nextcloud-bucket

# copy from your filesystem to garage
aws s3 cp /proc/cpuinfo s3://nextcloud-bucket/cpuinfo.txt

# copy from garage to your filesystem
aws s3 cp s3://nextcloud-bucket/cpuinfo.txt /tmp/cpuinfo.txt
を使うことができることに注意 awscli バケットの作成、リクエストの事前署名、web サイトの管理などのより高度な操作を行う場合。詳細については、ドキュメント全文をお読みください.

いくつかの機能は、しかし、ACLやpolicy。Checkのように実装されていません 当社の s3 互換性リスト.

Garage と対話するためのその他のツール
次のツールは、Garage から/へのファイルの送信と受信にも使用できます:

minioクライアント
s3cmd
rclone
サイバーダック
Winscp
網羅的なリストは に維持されます 「統合」> 「ブラウジング ツール」セクション.

コメント

このブログの人気の投稿

nitter.netが2021年1月31日から沈黙。代替インスタンスは?

#INVIDIOUSを用いて広告なしにyoutubeをみる方法 #士17

#nitterがtwitterからBANされた?ツイート取得ができない #o7oI