Talk about client optimization of parallel file system
Introduction:ファイルストレージ CPFS について:Cloud Parallel File Storage (CPFS) は、Alibaba Cloud のフルマネージドかつスケーラブルな並列ファイルストレージシステムです。高性能コンピューティングシナリオのパフォーマンス要件に深く最適化を施し、ミリ秒レベルのデータアクセスと 100 万レベルの IOPS を備えたデータの読み取り・書き込みリクエストを実現します。AI ディープラーニング、自動運転、遺伝的コンピューティング、EDA シミュレーション、石油探査、気象分析、機械学習、ビッグデータ分析、映像レンダリングなどのビジネスシナリオに重点を置いています。
今すぐ視聴 → Storage Series Launch:File Storage CPFS New Capabilities Launch
ファイルストレージの高性能ブランチとして、並列ファイルシステムは、登場以来 20 年以上にわたり、気象予測、石油探査、高エネルギー物理学、自動車製造、チップ製造、自動運転、映像レンダリングなどの高性能コンピューティング分野で使用されてきました。AI 時代において、GPU 並列コンピューティングが本格化しています。Alibaba Cloud CPFS も正式に 2.0 時代に突入し、従来の並列ファイルシステムの技術体系において一連の革新と実践を重ねてきました。
1、並列ファイルシステムの進化
従来の並列ファイルシステムは、21 世紀初頭の CPU + 物理マシン時代に生まれ、21 世紀の 20 年代まで発展してきました。2012 年、Alex Krizhevsky(元 Google コンピュータサイエンティスト)がディープラーニング + GPU のソリューションにより、ImageNet LSVRC-2010 画像認識コンテストを一気に制し、認識成功率を 74% から 85% へと劇的に向上させました。GPU はこの一戦でその名を轟かせ、その膨大なストリームプロセッサとベクトル処理ユニットにより AI コンピューティングの第一選択となるアクセラレータとなりました。
同様に、コンテナ K8S プラットフォームの段階的な成熟に伴い、AI トレーニングの運用プラットフォームは、従来の仮想マシン + 物理マシンからコンテナ + クラウドコンピューティングプラットフォームへと移行しました。このような背景のもと、従来の並列ファイルシステムも大きな課題に直面しています。
本連載では、Alibaba Cloud CPFS がこれらの課題にどのように取り組み、並列ファイルシステムの探求と実装を以下の側面からどのように進めているかをご紹介します:
• 専用クライアントから NFS 標準プロトコルサービスへ
• ファイルストレージの自己完結型クローズドループからクラウドデータレイクを取り込むオープンエコロジーへ
• CPU 大規模ファイル計算から GPU 小規模ファイル計算へ
• より速く、より速く — サーバー側キャッシュとコンピューティング側キャッシュの進化
本号では、CPFS のクライアント側の軽量化について詳しくご紹介します。
2、専用クライアントの問題点
よく知られているように、世紀初頭における NFS などの共通プロトコルの未成熟さにより、従来の並列ファイルシステムは専用クライアントを設計・提供してきました。これは高性能並列ファイルシステムの象徴とも言えます。
専用クライアントは、並列ファイルシステムが高性能を実現するための重要な要素です。専用クライアントは並列ファイルシステムにとって不可欠であり、MPI-IO インターフェイス、マルチバックエンドサーバー接続性、負荷分散機能を提供するだけでなく、一部の専用クライアントはスタンドアロンのデータキャッシング機能も提供します。しかし、コンテナ時代の到来に伴い、専用クライアントは多くの問題を抱えるようになりました。
まず、ヘビークライアントは主にカーネルモードを採用しており、オペレーティングシステムとの深い結合を引き起こします。世紀初頭には、専門的な HPC アプリケーションは限定的であり、そのほとんどが専門企業のスーパーコンピューティングセンターで開発・運用されていたため、ヘビークライアントは問題視されませんでした。しかし、AI 時代の到来により GPU アプリケーション開発が百花繚乱となり、開発者の習慣も多様化しています。オペレーティングシステムやカーネルバージョンを限定することは、大きなハードルとなっています。
次に、弾力的なコンテナはアプリケーションの迅速なデプロイと弾力的なスケールアウト能力をもたらし、コンピューティングリソースの利用率を極限まで高めています。専用クライアントの遅いデプロイ速度とより多くのソフトウェア依存が、アプリケーションのデプロイ速度を低下させ、コンテナの柔軟性を制限しています。
第三に、アプリケーション指向のデータ管理が物理マシン指向のデータ管理に取って代わりました。コンテナ時代において、ユーザーのビジネスインターフェイスは物理マシンや仮想マシンからアプリケーションに移行しています。ヘビークライアントはファイルシステム全体を単一の名前空間として扱うため、従来の ACL 方式による複雑な権限設定しか行えず、コンテナ K8S の動的・静的 PV と連携して、コンテナ内のアプリケーションのデータアクセスを適切に分離することができません。
3、軽量 NFS クライアントの新しいアプローチ
専用クライアントの問題を解決するには、クライアントの「スリム化」と NFS プロトコル側の軽量化を実現する必要があります。オペレーティングシステムとのデカップリングにより、すべての Linux システムで CPFS を簡単に利用でき、開発者を開放します。次に、分散ファイルシステムの高性能上の利点を発揮します。最後に、K8S の弾力的な PV と PV 間の厳密なデータ分離を実現します。具体的な方法は以下の 3 つの側面に分かれます:
1. NFS プロトコルに基づく軽量エンドアクセス
NFS はファイルストレージ分野で最も広く使用されているプロトコルです。成熟した汎用性と使いやすさを備え、幅広いユーザーに受け入れられています。CPFS の利用ハードルを下げるには、CPFS を NFS 互換にする必要があります。
従来の並列ファイルシステムのヘビークライアントは、オペレーティングシステムとカーネルバージョンを指定することが多く、カーネルバージョンのアップグレード後はクライアントを再インストールする必要があり、運用コストが高いという問題がありました。CPFS-NFS クライアントはユーザーモードであり、カーネルバージョンに依存しません。これにより 2 つの利点がもたらされます。第一に、すべての主要オペレーティングシステムをサポートします。CPFS-NFS クライアントは、Alibaba Cloud Linux (Alinux)、CentOS、Ubuntu、Debian などをサポートします。第二に、ユーザーのオペレーティングシステムをアップグレードしても、CPFS-NFS クライアントはアップグレードなしで引き続き利用できます。
従来の並列ファイルシステムクライアントは、良好な動作を得るために複雑な設定が必要です。たとえば、Lustre はネットワークコンポーネント LNET、メタデータコンポーネント MDC、データコンポーネント OSC の同時実行数やブロックサイズを設定する必要があり、ユーザーのメンテナンスコストを増加させていました。CPFS-NFS クライアントは使い方がシンプルで、マウントコマンド 1 つだけで利用できます。クライアントのデフォルト設定は CPFS-NFS クライアント自身が処理するため、ユーザーのハードルを下げます。
並列ファイルシステムは通常、ファイルシステムのロジックをクライアント側に移して実行します。たとえば、Lustre の OSC はファイルスライスがどのストレージサーバーに存在するかを把握してデータを読み取る必要があり、クライアント側の CPU とメモリリソースのオーバーヘッドを増加させます。CPFS-NFS クライアントのリソースコストは軽く、データ転送と必要なメタデータ操作のみに使用され、CPU コストは通常 1 論理コア未満です。
2. プロトコルの最適化によるエンドアクセスの高性能確保
CPFS の並列 I/O と完全対称分散アーキテクチャが提供する基盤容量により、NFS プロトコルエンドも高いスループットと高い IOPS のクラスターパフォーマンスを備え、従来の NAS スタンドアロン構成がもたらすパフォーマンス指標をはるかに上回ります。たとえば、200 MB/s/TiB 仕様において、NFS プロトコルエンドは TiB 容量あたり 200 MB/s のスループットを実現するパフォーマンス指標を提供します。最大スループットは 20 GB/s で、最大 IOPS は 100 万に迫ります。
NFS プロトコルサービスはプロトコルクラスターを形成し、CPFS ファイルシステムの容量に応じて水平方向にスケールアウトします。CPFS-NFS クライアントとプロトコルノードは負荷分散機能を備えています。クライアントがマウントされる際、プロトコルノードの負荷(接続数、空き帯域幅、CPU など)に応じて最適なプロトコルノードを選択して接続を確立でき、単一プロトコルノード上でホットなファットクライアントが動作することによるパフォーマンス低下を効果的に回避します。
3. 複数のマウント方法、大規模マウント、およびディレクトリレベルのマウントポイントのサポート
K8S の弾力的な PV の要件を満たし、PV 間の厳密なデータ分離を実現するため、CPFS は以下を含む複数のマウント方法をサポートしています:
大規模コンテナマウント
従来の並列ファイルシステムクライアントは通常、状態を保持します。これにより、クライアント側にオープンファイルやリード・ライトロックなどの状態が保存されるため、クライアントの規模が制限されます。データ整合性を確保するために、クライアント間で状態の配布とリコールを行う必要があります。クライアント規模が大きいほど、クライアント間の相互作用とリソース消費が増加し、クライアントの規模を制限します。
CPFS-NFS クライアントはステートレスです。クライアントはストレージノードとの接続のみを行い、クライアントの規模増加に伴ってクライアントの負荷が増大することはありません。CPFS-NFS クライアントは、10,000 のクライアント/POD からの同時マウントアクセスをサポートします。
CSI プラグイン、静的・動的ボリュームに対応
CPFS-NFS クライアントは Alibaba Cloud Container Service for Kubernetes (ACK) と深く統合されています。CSI は静的ストレージボリュームマウントと動的ストレージボリュームマウントの両方に対応しています。詳細は CPFS 静的ボリュームおよび CPFS 動的ボリュームをご参照ください。
ディレクトリレベルのマウントポイント
ディレクトリレベルのマウントポイントは、エンドツーエンドのアクセス分離機能を提供します。コンテナがマウントする際、サブディレクトリのみをマウントするため、コンテナアプリケーションがファイルシステム全体に直接アクセスし、データセキュリティ上の問題が発生することを防止できます。ファイルセットと ACL を併用することで、CPFS はより強力なディレクトリ分離を提供できます。ファイルセットはクォータをサポートし、ディレクトリサブツリー内のファイル数と合計容量を設定できます。ACL でユーザーのアクセス権限を設定します。
まとめ
現在、CPFS の標準 NFS プロトコルアクセス方式が公開されています。これにより、元のオペレーティングシステムバージョンの制約によりクラウド上で CPFS を利用できなかった一部の顧客が、クラウド上でのビジネスの柔軟性を実現できるようになりました。同時に、Alibaba Cloud のコンテナ ACK サービスと組み合わせることで、毎秒数百 POD の動的スケーラビリティを顧客に提供し、繁忙期の迅速なスケールアップ、アイドル時の迅速なリリースを可能にし、GPU リソースのアイドルコストを削減します。
ファイルストレージ CPFS の NFS プロトコルサポート能力の重要な向上は、コンテナと仮想マシンのいずれにおいても、Linux のバージョンを問わず、高性能な CPFS 並列ファイルシステムに簡単にアクセスできることを意味し、自動運転シナリオの導入加速に貢献することは間違いありません。詳細は https://yqh.aliyun.com/live/detail/28624 からライブ配信をご予約ください。
今後も、データレイクエコシステム連携、小規模ファイルコンピューティング、キャッシュ技術などにおける CPFS の技術進化について引き続き共有していきます。本連載にご注目ください。
今すぐ視聴 → Storage Series Launch:File Storage CPFS New Capabilities Launch
ファイルストレージの高性能ブランチとして、並列ファイルシステムは、登場以来 20 年以上にわたり、気象予測、石油探査、高エネルギー物理学、自動車製造、チップ製造、自動運転、映像レンダリングなどの高性能コンピューティング分野で使用されてきました。AI 時代において、GPU 並列コンピューティングが本格化しています。Alibaba Cloud CPFS も正式に 2.0 時代に突入し、従来の並列ファイルシステムの技術体系において一連の革新と実践を重ねてきました。
1、並列ファイルシステムの進化
従来の並列ファイルシステムは、21 世紀初頭の CPU + 物理マシン時代に生まれ、21 世紀の 20 年代まで発展してきました。2012 年、Alex Krizhevsky(元 Google コンピュータサイエンティスト)がディープラーニング + GPU のソリューションにより、ImageNet LSVRC-2010 画像認識コンテストを一気に制し、認識成功率を 74% から 85% へと劇的に向上させました。GPU はこの一戦でその名を轟かせ、その膨大なストリームプロセッサとベクトル処理ユニットにより AI コンピューティングの第一選択となるアクセラレータとなりました。
同様に、コンテナ K8S プラットフォームの段階的な成熟に伴い、AI トレーニングの運用プラットフォームは、従来の仮想マシン + 物理マシンからコンテナ + クラウドコンピューティングプラットフォームへと移行しました。このような背景のもと、従来の並列ファイルシステムも大きな課題に直面しています。
本連載では、Alibaba Cloud CPFS がこれらの課題にどのように取り組み、並列ファイルシステムの探求と実装を以下の側面からどのように進めているかをご紹介します:
• 専用クライアントから NFS 標準プロトコルサービスへ
• ファイルストレージの自己完結型クローズドループからクラウドデータレイクを取り込むオープンエコロジーへ
• CPU 大規模ファイル計算から GPU 小規模ファイル計算へ
• より速く、より速く — サーバー側キャッシュとコンピューティング側キャッシュの進化
本号では、CPFS のクライアント側の軽量化について詳しくご紹介します。
2、専用クライアントの問題点
よく知られているように、世紀初頭における NFS などの共通プロトコルの未成熟さにより、従来の並列ファイルシステムは専用クライアントを設計・提供してきました。これは高性能並列ファイルシステムの象徴とも言えます。
専用クライアントは、並列ファイルシステムが高性能を実現するための重要な要素です。専用クライアントは並列ファイルシステムにとって不可欠であり、MPI-IO インターフェイス、マルチバックエンドサーバー接続性、負荷分散機能を提供するだけでなく、一部の専用クライアントはスタンドアロンのデータキャッシング機能も提供します。しかし、コンテナ時代の到来に伴い、専用クライアントは多くの問題を抱えるようになりました。
まず、ヘビークライアントは主にカーネルモードを採用しており、オペレーティングシステムとの深い結合を引き起こします。世紀初頭には、専門的な HPC アプリケーションは限定的であり、そのほとんどが専門企業のスーパーコンピューティングセンターで開発・運用されていたため、ヘビークライアントは問題視されませんでした。しかし、AI 時代の到来により GPU アプリケーション開発が百花繚乱となり、開発者の習慣も多様化しています。オペレーティングシステムやカーネルバージョンを限定することは、大きなハードルとなっています。
次に、弾力的なコンテナはアプリケーションの迅速なデプロイと弾力的なスケールアウト能力をもたらし、コンピューティングリソースの利用率を極限まで高めています。専用クライアントの遅いデプロイ速度とより多くのソフトウェア依存が、アプリケーションのデプロイ速度を低下させ、コンテナの柔軟性を制限しています。
第三に、アプリケーション指向のデータ管理が物理マシン指向のデータ管理に取って代わりました。コンテナ時代において、ユーザーのビジネスインターフェイスは物理マシンや仮想マシンからアプリケーションに移行しています。ヘビークライアントはファイルシステム全体を単一の名前空間として扱うため、従来の ACL 方式による複雑な権限設定しか行えず、コンテナ K8S の動的・静的 PV と連携して、コンテナ内のアプリケーションのデータアクセスを適切に分離することができません。
3、軽量 NFS クライアントの新しいアプローチ
専用クライアントの問題を解決するには、クライアントの「スリム化」と NFS プロトコル側の軽量化を実現する必要があります。オペレーティングシステムとのデカップリングにより、すべての Linux システムで CPFS を簡単に利用でき、開発者を開放します。次に、分散ファイルシステムの高性能上の利点を発揮します。最後に、K8S の弾力的な PV と PV 間の厳密なデータ分離を実現します。具体的な方法は以下の 3 つの側面に分かれます:
1. NFS プロトコルに基づく軽量エンドアクセス
NFS はファイルストレージ分野で最も広く使用されているプロトコルです。成熟した汎用性と使いやすさを備え、幅広いユーザーに受け入れられています。CPFS の利用ハードルを下げるには、CPFS を NFS 互換にする必要があります。
従来の並列ファイルシステムのヘビークライアントは、オペレーティングシステムとカーネルバージョンを指定することが多く、カーネルバージョンのアップグレード後はクライアントを再インストールする必要があり、運用コストが高いという問題がありました。CPFS-NFS クライアントはユーザーモードであり、カーネルバージョンに依存しません。これにより 2 つの利点がもたらされます。第一に、すべての主要オペレーティングシステムをサポートします。CPFS-NFS クライアントは、Alibaba Cloud Linux (Alinux)、CentOS、Ubuntu、Debian などをサポートします。第二に、ユーザーのオペレーティングシステムをアップグレードしても、CPFS-NFS クライアントはアップグレードなしで引き続き利用できます。
従来の並列ファイルシステムクライアントは、良好な動作を得るために複雑な設定が必要です。たとえば、Lustre はネットワークコンポーネント LNET、メタデータコンポーネント MDC、データコンポーネント OSC の同時実行数やブロックサイズを設定する必要があり、ユーザーのメンテナンスコストを増加させていました。CPFS-NFS クライアントは使い方がシンプルで、マウントコマンド 1 つだけで利用できます。クライアントのデフォルト設定は CPFS-NFS クライアント自身が処理するため、ユーザーのハードルを下げます。
並列ファイルシステムは通常、ファイルシステムのロジックをクライアント側に移して実行します。たとえば、Lustre の OSC はファイルスライスがどのストレージサーバーに存在するかを把握してデータを読み取る必要があり、クライアント側の CPU とメモリリソースのオーバーヘッドを増加させます。CPFS-NFS クライアントのリソースコストは軽く、データ転送と必要なメタデータ操作のみに使用され、CPU コストは通常 1 論理コア未満です。
2. プロトコルの最適化によるエンドアクセスの高性能確保
CPFS の並列 I/O と完全対称分散アーキテクチャが提供する基盤容量により、NFS プロトコルエンドも高いスループットと高い IOPS のクラスターパフォーマンスを備え、従来の NAS スタンドアロン構成がもたらすパフォーマンス指標をはるかに上回ります。たとえば、200 MB/s/TiB 仕様において、NFS プロトコルエンドは TiB 容量あたり 200 MB/s のスループットを実現するパフォーマンス指標を提供します。最大スループットは 20 GB/s で、最大 IOPS は 100 万に迫ります。
NFS プロトコルサービスはプロトコルクラスターを形成し、CPFS ファイルシステムの容量に応じて水平方向にスケールアウトします。CPFS-NFS クライアントとプロトコルノードは負荷分散機能を備えています。クライアントがマウントされる際、プロトコルノードの負荷(接続数、空き帯域幅、CPU など)に応じて最適なプロトコルノードを選択して接続を確立でき、単一プロトコルノード上でホットなファットクライアントが動作することによるパフォーマンス低下を効果的に回避します。
3. 複数のマウント方法、大規模マウント、およびディレクトリレベルのマウントポイントのサポート
K8S の弾力的な PV の要件を満たし、PV 間の厳密なデータ分離を実現するため、CPFS は以下を含む複数のマウント方法をサポートしています:
大規模コンテナマウント
従来の並列ファイルシステムクライアントは通常、状態を保持します。これにより、クライアント側にオープンファイルやリード・ライトロックなどの状態が保存されるため、クライアントの規模が制限されます。データ整合性を確保するために、クライアント間で状態の配布とリコールを行う必要があります。クライアント規模が大きいほど、クライアント間の相互作用とリソース消費が増加し、クライアントの規模を制限します。
CPFS-NFS クライアントはステートレスです。クライアントはストレージノードとの接続のみを行い、クライアントの規模増加に伴ってクライアントの負荷が増大することはありません。CPFS-NFS クライアントは、10,000 のクライアント/POD からの同時マウントアクセスをサポートします。
CSI プラグイン、静的・動的ボリュームに対応
CPFS-NFS クライアントは Alibaba Cloud Container Service for Kubernetes (ACK) と深く統合されています。CSI は静的ストレージボリュームマウントと動的ストレージボリュームマウントの両方に対応しています。詳細は CPFS 静的ボリュームおよび CPFS 動的ボリュームをご参照ください。
ディレクトリレベルのマウントポイント
ディレクトリレベルのマウントポイントは、エンドツーエンドのアクセス分離機能を提供します。コンテナがマウントする際、サブディレクトリのみをマウントするため、コンテナアプリケーションがファイルシステム全体に直接アクセスし、データセキュリティ上の問題が発生することを防止できます。ファイルセットと ACL を併用することで、CPFS はより強力なディレクトリ分離を提供できます。ファイルセットはクォータをサポートし、ディレクトリサブツリー内のファイル数と合計容量を設定できます。ACL でユーザーのアクセス権限を設定します。
まとめ
現在、CPFS の標準 NFS プロトコルアクセス方式が公開されています。これにより、元のオペレーティングシステムバージョンの制約によりクラウド上で CPFS を利用できなかった一部の顧客が、クラウド上でのビジネスの柔軟性を実現できるようになりました。同時に、Alibaba Cloud のコンテナ ACK サービスと組み合わせることで、毎秒数百 POD の動的スケーラビリティを顧客に提供し、繁忙期の迅速なスケールアップ、アイドル時の迅速なリリースを可能にし、GPU リソースのアイドルコストを削減します。
ファイルストレージ CPFS の NFS プロトコルサポート能力の重要な向上は、コンテナと仮想マシンのいずれにおいても、Linux のバージョンを問わず、高性能な CPFS 並列ファイルシステムに簡単にアクセスできることを意味し、自動運転シナリオの導入加速に貢献することは間違いありません。詳細は https://yqh.aliyun.com/live/detail/28624 からライブ配信をご予約ください。
今後も、データレイクエコシステム連携、小規模ファイルコンピューティング、キャッシュ技術などにおける CPFS の技術進化について引き続き共有していきます。本連載にご注目ください。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
