オープンソースのクラウドネイティブ分散ファイルシステム - 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をご覧ください。

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

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

推薦する

基本的な最適化の強化: ウェブサイトの内部リンク構築をより洗練させる方法

検索エンジンのランキングの決定的な列に入るにはどうすればよいでしょうか? 多くの人は、外部リンクとコ...

事実に基づいた素晴らしいマーケティング:老舗の茶農家がタオバオでビデオライブストリーミングを有効活用

ニュース報道の過程でよく使われる「事実を語る」報道手法とは、記者がニュース報道の事実を慎重に選択し、...

トゥニウがいかにして伝統産業を破壊したか

はじめに: 1980年代生まれの2人、于盾徳氏と燕海鋒氏は、8年かけて最も細分化され、標準化が難しい...

Douban CEO ヤン・ボー: テクノロジーはニーズを解決し、多目的ネットワークを構築する

Abei は楊波(Weibo)の Douban でのオンライン ニックネームであり、Douban の...

完璧なリンクベイティング戦略を構築する方法

リンク ベイトの作成とは、他の人に転載してもらい、外部リンクを取得するために記事、ツール、ビデオ、電...

タオバオ電子商取引の2か月間の経験と洞察、そして業界に関するいくつかの考察

私はTaobao電子商取引に正式に2か月間従事してきました。主に目標がより明確になったため、最初から...

小紅書のライブ放送が群衆を突破

トラックがますます混雑する中、半年前​​にライブストリーミングサービスを開始したXiaohongsh...

あなたは本当に検索エンジンに夢中になりますか?

作者の智怡はつい最近、恋に落ちました。長い間追いかけていた女の子が、ついに私と一緒になることに同意し...

BaiduやTencentなどの主要な情報流通チャネルの特徴を一覧にしました。今すぐ保存しましょう!

ソーシャルメディアの発展に伴い、Weibo、Tencent、Toutiaoは早くから情報フロー広告商...

有料広告を使用するウェブサイトの長所と短所の簡単な分析(パート 2)

こんにちは、ウェブマスターの皆さん。前のセクションでは、有料広告を使用するウェブサイトの利点について...

Googleは、少数のウェブサイトが最初の画面の結果を独占するのを防ぐためにアルゴリズムを調整しました

北京時間9月15日、海外メディアの報道によると、多くのユーザーが、Googleで検索した後、多くのウ...

Kubernetes の可観測性を高める 3 つの優れたツール

適切に管理および実装された可観測性システムは、複雑なシステムのデバッグと修正に使用できるきめ細かい洞...

キーワードをホームページに一括で単一リンクプッシュする方法

このテーマで記事を書くのは初めてなので、さらにアドバイスをいただければ幸いです。キーワード、特に比較...

ウェブサイトのホームページで「画像回転」を使用すると、なぜコンバージョン率が高くならないのでしょうか?

編集者注: マーケティングは常に謎に包まれています。できるだけ多くの製品情報を顧客に見せるために複数...