Azure Blob Storage にデータを移動するMove data to Azure Blob storage

Azure Blob Storage へのデータの移動がワークフローに含まれる場合は、効率的な方法を使用していることを確認してください。If your workflow includes moving data to Azure Blob storage, make sure you are using an efficient strategy. ストレージ ターゲットとして定義する前に、新しい BLOB コンテナーにデータを事前に読み込むか、コンテナーを追加してから、Azure HPC Cache を使用してデータをコピーすることができます。You can either preload data in a new Blob container before defining it as a storage target, or add the container and then copy your data using Azure HPC Cache.

この記事では、Azure HPC Cache で使用する Blob Storage にデータを移動する最良の方法について説明します。This article explains the best ways to move data to Blob storage for use with Azure HPC Cache.

次の情報に留意してください。Keep these facts in mind:

  • Azure HPC Cache では、Blob Storage 内のデータを整理するために、専用のストレージ形式が使用されます。Azure HPC Cache uses a specialized storage format to organize data in Blob storage. Blob Storage ターゲットが、新しいコンテナーか空のコンテナー、またはそれまで Azure HPC Cache データに使用されていた BLOB コンテナーのいずれかでなければならないのは、そのためです。This is why a Blob storage target must either be a new, empty container, or a Blob container that was previously used for Azure HPC Cache data.

  • バックエンドのストレージ ターゲットに Azure HPC Cache 経由でデータをコピーするのが最善の選択肢となるのは、複数のクライアントおよび並列操作を使用するときです。Copying data through the Azure HPC Cache to a back-end storage target is more efficient when you use multiple clients and parallel operations. 1 つのクライアントからの単純なコピー コマンドでは、データの移動が低速になります。A simple copy command from one client will move data slowly.

Blob Storage コンテナーにコンテンツを読み込む Python ベースのユーティリティが利用できます。A Python-based utility is available to load content into a Blob storage container. 詳細については、Blob Storage へのデータの事前読み込みのセクションを参照してください。Read Pre-load data in Blob storage to learn more.

読み込みユーティリティを使用したくない場合、または既存のストレージ ターゲットにコンテンツを追加したい場合は、「Azure HPC Cache 経由でデータをコピーする」にある並列データ取り込み処理のヒントを参考にしてください。If you don't want to use the loading utility, or if you want to add content to an existing storage target, follow the parallel data ingest tips in Copy data through the Azure HPC Cache.

CLFSLoad を使用して Blob Storage にデータを事前に読み込むPre-load data in Blob storage with CLFSLoad

新しい Blob Storage コンテナーをストレージ ターゲットとして追加する前に、Avere CLFSLoad ユーティリティを使用して、Blob Storage コンテナーにデータをコピーすることができます。You can use the Avere CLFSLoad utility to copy data to a new Blob storage container before you add it as a storage target. このユーティリティは単一の Linux システム上で動作し、Azure HPC Cache に必要な独自の形式でデータを書き込みます。This utility runs on a single Linux system and writes data in the proprietary format needed for Azure HPC Cache. キャッシュで使用する Blob Storage コンテナーにデータを事前設定する方法としては、CLFSLoad が最も効率的です。CLFSLoad is the most efficient way to populate a Blob storage container for use with the cache.

Avere CLFSLoad ユーティリティは、Azure HPC Cache チームからの要求によって入手できます。The Avere CLFSLoad utility is available by request from your Azure HPC Cache team. それについてチームの担当者に問い合わせるか、サポート チケットを開いてサポートを依頼してください。Ask your team contact for it, or open a support ticket to request assistance.

この方法が使用できるのは新しい空のコンテナーのみです。This option works with new, empty containers only. コンテナーは、Avere CLFSLoad を使用する前に作成してください。Create the container before using Avere CLFSLoad.

詳細情報は、Avere CLFSLoad ディストリビューションに含まれています。これは、Azure HPC Cache チームからの要請によって利用できます。Detailed information is included in the Avere CLFSLoad distribution, which is available on request from the Azure HPC Cache team.

大まかな手順を以下に示します。A general overview of the process:

  1. Python バージョン 3.6 以降を使用して Linux システム (VM または物理) を準備しますPrepare a Linux system (VM or physical) with Python version 3.6 or later. パフォーマンスを高めるために Python 3.7 を推奨します。Python 3.7 is recommended for better performance.
  2. Avere-CLFSLoad ソフトウェアを Linux システムにインストールします。Install the Avere-CLFSLoad software on the Linux system.
  3. Linux のコマンド ラインから転送を実行します。Execute the transfer from the Linux command line.

Avere CLFSLoad ユーティリティには、次の情報が必要です。The Avere CLFSLoad utility needs the following information:

  • Blob Storage コンテナーが存在するストレージ アカウントの IDThe storage account ID that contains your Blob storage container
  • 空の Blob Storage コンテナーの名前The name of the empty Blob storage container
  • コンテナーへの書き込みをユーティリティに許可する Shared Access Signature (SAS) トークンA shared access signature (SAS) token that allows the utility to write to the container
  • データ ソースへのローカル パス (コピーするデータが格納されたローカル ディレクトリ、またはデータが格納されているマウントされたリモート システムのローカル パス)A local path to the data source - either a local directory that contains the data to copy, or a local path to a mounted remote system with the data

Azure HPC Cache 経由でデータをコピーするCopy data through the Azure HPC Cache

Avere CLFSLoad ユーティリティを使用したくない場合、または大量のデータを既存の Blob Storage ターゲットに追加したい場合は、キャッシュ経由でデータをコピーすることができます。If you don't want to use the Avere CLFSLoad utility, or if you want to add a large amount of data to an existing Blob storage target, you can copy it through the cache. Azure HPC Cache は、複数のクライアントからの要求を同時に処理するように設計されています。したがって、キャッシュ経由でデータをコピーするには、複数クライアントからの並列書き込みを使用する必要があります。Azure HPC Cache is designed to serve multiple clients simultaneously, so to copy data through the cache, you should use parallel writes from multiple clients.

マルチクライアントのマルチスレッドのデータ移動を示す図:左上に、オンプレミスのハードウェア ストレージを表すアイコンがあり、そこから複数の矢印が出ています。

ストレージ システム間でデータを転送するためによく使われる cp または copy コマンドは、一度に 1 つのファイルだけをコピーするシングルスレッドのプロセスです。The cp or copy commands that you typically use to transfer data from one storage system to another are single-threaded processes that copy only one file at a time. つまり、一度に 1 つのファイルしかファイル サーバーに取り込まれません。これでは、キャッシュのリソースを浪費してしまいます。This means that the file server is ingesting only one file at a time - which is a waste of the cache's resources.

このセクションでは、Azure HPC Cache の Blob Storage にデータを移動するための、マルチクライアント、マルチスレッドのファイル コピー システムを作成する方法について説明します。This section explains strategies for creating a multi-client, multi-threaded file copying system to move data to Blob storage with Azure HPC Cache. 複数のクライアントとシンプルなコピー コマンドを使ってデータを効率よくコピーするために使用できる、ファイル転送の概念と決定点について説明します。It explains file transfer concepts and decision points that can be used for efficient data copying using multiple clients and simple copy commands.

便利なユーティリティについても説明します。It also explains some utilities that can help. msrsync ユーティリティを使用すると、データセットを複数のバケットに分割したうえで rsync コマンドを使用するというプロセスを部分的に自動化できます。The msrsync utility can be used to partially automate the process of dividing a dataset into buckets and using rsync commands. もう 1 つ、parallelcp スクリプトというユーティリティがあります。これはソース ディレクトリを読み取り、自動的にコピー コマンドを発行するユーティリティです。The parallelcp script is another utility that reads the source directory and issues copy commands automatically.

戦略的計画Strategic planning

データを並列コピーするための戦略を作成するときは、ファイルのサイズ、ファイルの数、ディレクトリの深さにおけるトレードオフを理解する必要があります。When building a strategy to copy data in parallel, you should understand the tradeoffs in file size, file count, and directory depth.

  • ファイルが小さいとき、注目すべきメトリックは 1 秒あたりのファイル数です。When files are small, the metric of interest is files per second.
  • ファイルが大きい場合 (10 MiBi 以上)、注目すべきメトリックは 1 秒あたりのバイト数です。When files are large (10MiBi or greater), the metric of interest is bytes per second.

コピー プロセスごとにスループット率とファイル転送された率が示されます。これらは、コピー コマンドの長さのタイミングを計り、ファイル サイズとファイル数を考慮することによって、測定できます。Each copy process has a throughput rate and a files-transferred rate, which can be measured by timing the length of the copy command and factoring the file size and file count. それらの測定方法についての説明は、このドキュメントの範囲外ですが、小さいファイルを処理するのか、大きいファイルを処理するのかを把握することが不可欠です。Explaining how to measure the rates is outside the scope of this document, but it is imperative to understand whether you’ll be dealing with small or large files.

Azure HPC Cache を使用した並列データ取り込みには、次の方法があります。Strategies for parallel data ingest with Azure HPC Cache include:

次のステップNext steps

ストレージのセットアップ後にクライアントからキャッシュをマウントする方法を確認しましょう。After you set up your storage, learn how clients can mount the cache.