オープンソースのクラウドネイティブ分散ファイルシステム - JuiceFS

オープンソースのクラウドネイティブ分散ファイルシステム - JuiceFS

最もよく知られている分散ファイルシステムは HDFS です。その正式名称は​Hadoop Distributed File System​​ ​で、Hadoop テクノロジー スタックが普及しているときに輝きます。クラウド コンピューティングが成熟するにつれて、データをクラウドに移行することがトレンドになってきました。ただし、オブジェクト ストレージとファイル ストレージの構造が異なるため、クラウドにビッグ データを保存すると、クエリ パフォーマンスが遅くなったり、データの一貫性を確保できなかったりするなど、多くの問題が発生します。

本日ご紹介するのは、クラウド環境向けに設計されたファイルシステムです。 JuiceFS は、「データ」と「メタデータ」を分離するプラグイン アーキテクチャを採用した、クラウド ネイティブの高性能分散ファイル システムです。ユーザーは、シナリオの要件に応じて適切なメタデータとデータ エンジンを選択できます。 JuiceFS を使用してデータを保存する場合、データ自体はオブジェクト ストレージ (Amazon S3 など) に永続化され、対応するメタデータは、必要に応じて Redis、MySQL、TiKV、SQLite などの複数のデータベースに保存できます。

JuiceFS は 2021 年 1 月に GitHub でオープンソース化されました。1 年半で 6.5K スターを獲得し、インフラ分野で注目度の高いプロジェクトとなっています。 JuiceFS は Aache 2.0 ライセンスを使用しているため、ユーザーは JuiceFS をさまざまなビジネス環境により自信を持って適用し、独自のアプリケーションと統合できます。 JuiceFS は、AI コンポーネント Fluid と PaddlePaddle で確認できます。

特性

  • POSIX 互換性: ローカル ファイル システムのように使用し、既存のアプリケーションとシームレスに統合し、ビジネスに干渉しません。
  • HDFS互換性: HDFS API [1]と完全に互換性があり、より強力なメタデータパフォーマンスを提供します。
  • S3互換性:S3プロトコルと互換性のあるアクセスインターフェースを実装するためのS3ゲートウェイ[2]を提供します。
  • クラウドネイティブ: CSIドライバー[3]を介してKubernetesでJuiceFSを簡単に使用できます。
  • 分散設計: 同じファイル システムを数千台のサーバーに同時にマウントでき、高性能な同時読み取りと書き込み、およびデータの共有が可能です。
  • 強力な一貫性: 確認されたファイルの変更はすべてのサーバー上ですぐに表示され、強力な一貫性が確保されます。
  • 強力なパフォーマンス: ミリ秒単位のレイテンシとほぼ無制限のスループット (オブジェクト ストレージのサイズによって異なります)。性能試験結果[4]を参照。
  • データ セキュリティ: 転送中の暗号化と保存中の暗号化をサポートします。詳細は[5]を参照
  • ファイルロック: BSD ロック (flock) と POSIX ロック (fcntl) をサポートします。データ圧縮: ストレージスペースを節約するために、LZ4 および Zstandard 圧縮アルゴリズムをサポートします。

すぐに始めましょう

JuiceFS のインストールは非常に簡単です。メタデータ ストレージ エンジン (Redis、MySQL など) とオブジェクト ストレージを準備する必要があります。最後に、JuiceFS クライアントをダウンロードし、コマンド ラインを実行してすぐに使用を開始します。

最新の JuiceFS クライアントのダウンロード アドレスは GitHub プロジェクト ページで見つかります。プラットフォーム用のコンパイル済みバージョンを選択し、ダウンロードして /usr/local/bin/juicefs にインストールします。

ターミナルで juicefs と入力して実行し、プログラムのヘルプ情報が返された場合は、JuiceFS クライアントが正常にインストールされたことを意味します。

ファイルシステムの作成

ファイル システムを作成するには、クライアントが提供する format コマンドを使用します。一般的な形式は次のとおりです。

 juicefs フォーマット[ コマンドオプション] META - URL NAME

ファイル システムをフォーマットするには、次の 3 種類の情報が必要であることがわかります。

  • [コマンド オプション]: ファイル システムのストレージ メディアを設定します。空白のままにすると、デフォルトでローカル ディスクがストレージ メディアとして使用されます。パスは $HOME/.juicefs/local、/var/jfs​、または C:/jfs/local です。
  • META-URL: メタデータ ストレージ、つまりデータベース関連の情報 (通常はデータベースの URL またはファイル パス) を設定するために使用されます。
  • NAME: ファイル システムの名前です。

ファイルシステムのマウント

ファイル システムをマウントするには、クライアントが提供する mount コマンドを使用します。一般的な形式は次のとおりです。

 juicefs mount [ コマンドオプション] META - URL マウントポイント

ファイルシステムを作成するコマンドと同様に、ファイルシステムをマウントするときには次の情報を指定する必要があります: **[コマンド オプション]**: ファイルシステム関連のオプションを指定するために使用されます。たとえば、-d を使用するとバックグラウンド マウントを実現できます。 META-URL: メタデータの保存を設定するために使用されます。つまり、データベースに関連する情報、通常はデータベースの URL またはファイル パスです。 MOUNTPOINT: ファイル システムのマウント ポイントを指定します。たとえば、次のコマンドは、myjfs ファイル システムを ~/jfs フォルダーにマウントします。

 juicefs マウント sqlite3://myjfs.db ~/jfs

以下のようなフィードバックが得られればマウント成功です! !

ファイルシステムを確認する

ファイルシステムがマウントされたら、juicefs bench コマンドを使用してファイルシステムの基本的なパフォーマンス テストと機能検証を実行し、JuiceFS ファイルシステムに正常にアクセスでき、パフォーマンスが期待どおりであることを確認できます。

 juicefsベンチ ~/jfs

juicefs bench コマンドを実行すると、指定された同時実行数 (デフォルトは 1) に従って、N 個の大きなファイル (デフォルトは 1) と N 個の小さなファイル (デフォルトは 100) を JuiceFS ファイル システムに書き込み、読み取り、単一操作の読み取りおよび書き込みスループットと待ち時間、およびメタデータ エンジンへのアクセスの待ち時間をカウントします。

検証が成功したら、ぜひあなたのスキルを披露し、より多くの遊び方を模索してください〜

プロジェクトアドレス: https://github.com/juicedata/juicefs.

参考文献

[1] HDFS API: https://juicefs.com/docs/zh/community/hadoop_java_sdk.

[2] S3 ゲートウェイ: https://juicefs.com/docs/en/community/s3_gateway。

[3] CSIドライバー: https://juicefs.com/docs/zh/community/how_to_use_on_kubernetes/.

[4]パフォーマンステスト結果: https://juicefs.com/docs/zh/community/benchmark/.

[5]詳細については、https://juicefs.com/docs/en/community/security/encryptをご覧ください。

<<:  マルチクラウド管理の課題を克服するにはどうすればよいでしょうか?

>>:  分散クラウドの自動化を拡張する際に考慮すべきこと

推薦する

Cloud Custodian を使用してクラウド ガバナンスをコードとして実装する方法

[51CTO.com クイック翻訳] Cloud Custodian を使用するユーザーは、シンプル...

デジタルオーシャンはどうですか? [年] Digitaloceanのシンガポールデータセンターの簡単なレビュー

デジタルオーシャンはどうですか? DigitalOcean のネットワークの現在の状況はどうですか?...

パシフィックダイレクトパーチェスマルチレベルマーケティング帝国が崩壊:680万人の被害者が38億ドルを騙し取られる

同社は全国30省の人員を巻き込み、680万人以上の会員を育成し、最大38億元の預金を集めた。江西ワン...

インテルはクラウドコンピューティングの基盤を提供し、開発者がテクノロジーを使って社会を変革できるよう支援します

[51CTO.com からのオリジナル記事] すべての開発者には、コードで世界を変えるという夢があり...

Blog.com の崩壊: もう一つの 10 億ドルの教訓

著者プロフィール: 林俊は、CITIC Press および Blue Lion の契約ライターであり...

ウェブサイトの重量が 6.28K から 4 レコードに

2012 年 6 月 28 日は、多くのウェブマスターや SEO 実践者に深い印象を残した日でした。...

CKはミニプログラムに定着したか?まだミニプログラム特急列車に乗っていない起業家はもっと注意した方がいいです!

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています8月14日...

Dockerの基本原理とソースコード分析 Dockerアーキテクチャ

[[279395]]序文Docker入門Docker は、Docker が開発した軽量仮想化テクノロ...

K8s のアップグレードにより Didi が 12 時間停止したのですか?

みなさんこんにちは。ジュン兄です。少し前に起きた Didi の障害については、皆さんご存知だと思いま...

弾幕システムアップデートの血と涙

2016年はライブ放送の波が高まった最初の年であり、多くのインターネット企業がライブ放送コンテンツモ...

ストレージ仮想化技術の実装方法

ストレージ仮想化の最も一般的な理解は、ストレージ ハードウェア リソースを抽象化することです。仮想化...

新しいサイトをどのように計画しますか?

最近記事をあまり書いていませんが、その理由の1つは時間の問題で、もう1つは新しいウェブサイトを計画し...

boltvm-$4.2/kvm/ddos 保護/512m メモリ/20g ハードディスク/500g トラフィック

boltvm は、無料の DDoS 保護と最新の 10 月の 30% 割引コードを提供する、 KVM...

中国モバイルインターネット開発レポート、2016年第3四半期

01. モバイルデバイス:モバイルデバイスのアクティブ数 アクティブデバイスの観点から見ると、And...