Azure Data Lake Storage の機能で Azure Blob Storage をアップグレードする

この記事は、階層型名前空間を有効にし、ファイルやディレクトリ レベルのセキュリティや、より高速な操作などの機能を利用できるようにするのに役立ちます。 これらの機能は、ビッグ データ分析ワークロードで広く使用されており、まとめて Azure Data Lake Storage と呼ばれます。

これらの機能の詳細と、このアップグレードがワークロード、アプリケーション、コスト、サービス統合、ツール、機能、ドキュメントに与える影響を評価するには、Azure Data Lake Storage の機能を使用して Azure Blob Storage をアップグレードする方法に関するページを参照してください。

重要

アップグレードは一方向です。 アップグレードを実行した後で、アカウントを元に戻す方法はありません。 非運用環境でアップグレードを検証することをお勧めします。

アップグレードの準備

ストレージ アカウントを Data Lake Storage にアップグレードする準備をするには、次の手順を実行します。

レビュー機能のサポート

お使いのストレージ アカウントが、Data Lake Storage 対応アカウントでまだサポートされていない機能を使用するように構成されている場合もあります。 アカウントでそのような機能を使用している場合、アップグレードの検証手順は成功しません。 サポートされていない機能を識別するには、「Azure Storage アカウントにおける Blob Storage 機能のサポート」を参照してください。 アカウントでそのような機能を使用している場合は、アップグレードを開始する前にそれらを無効にしてください。

以下の機能は Data Lake Storage アカウントでサポートされていますが、アップグレード プロセスではサポートされていません。

  • BLOB のスナップショット
  • 暗号化スコープ
  • 不変ストレージ
  • ライフサイクル管理のための最終アクセス時刻の追跡
  • BLOB の論理的な削除
  • コンテナーの論理的な削除

ストレージ アカウントでこのような機能が有効になっている場合は、アップグレードを実行する前にそれらを無効にする必要があります。 アップグレードの完了後に機能の使用を再開する場合は、再度有効にします。

場合によっては、アップグレード前に機能を無効にした後、クリーンアップ操作の時間を確保する必要があります。 一例として、BLOB の論理的な削除機能が挙げられます。 アカウントをアップグレードする前に、BLOB の論理的な削除を無効にして、すべての論理的な削除 BLOB の有効期限が切れるようにする必要があります。

重要

変更フィード機能を一度でも有効にしたことのあるストレージ アカウントを Data Lake Storage にアップグレードすることはできません。 変更フィードを無効にするだけでは、アップグレードを実行できません。 代わりに、階層型名前空間の機能を有効にしてアカウントを作成し、データをそのアカウントに移動してから転送する必要があります。

ストレージ アカウントからページ BLOB を削除する

ページ BLOB を含むストレージ アカウントをアップグレードすることはできません。 アップグレードを実行する前に、必ずストレージ アカウントからページ BLOB を削除してください。

各 BLOB パスのセグメントに名前が付けられていることを確認する

移行プロセスでは、BLOB のパスのセグメントごとにディレクトリが作成されます。 Data Lake Storage のディレクトリには名前が必要です。そのため、移行を成功させるには、仮想ディレクトリ内の各パス セグメントに名前を指定する必要があります。 スペース文字のみを使用して名前が付けられたセグメントについても、同じ要件が当てはまります。 パス セグメントに名前がない (//) 場合や、スペース文字のみを使用して名前が付けられている (_) 場合は、移行を続行する前に、これらの名前付け要件と互換性のある新しいパスにそれらの BLOB をコピーする必要があります。

ストレージ アカウントへの書き込みアクティビティを禁止する

アップグレード中にアプリケーションがストレージ アカウントに書き込む場合、アップグレードが失敗する可能性があります。 このような書き込みアクティビティを防ぐには:

  1. 書き込み操作を実行する可能性があるアプリケーションまたはサービスを休止します。

  2. ストレージ アカウント内のコンテナーと BLOB の既存のリースを解放または中断します。

アップグレードが完了したら、作成したリースを解除して、コンテナーと BLOB への書き込みアクセスを許可するように再開します。

警告

これらのリソースに現在アクセスしているアプリケーションまたは仮想マシンを適切に無効にせずにアクティブなリースを解除すると、予期しない結果が生じる可能性があります。 現在のリースを解除する前に、現在の書き込みアクティビティを休止してください。

アップグレードを実行する

  1. Azure ポータルにサインインして、作業を開始します。

  2. ストレージ アカウントを見つけて、アカウントの概要を表示します。

  3. [Data Lake Gen2 の移行] を選択します。

    [Azure Data Lake Gen2 の機能を持つストレージ アカウントにアップグレードする] 構成ページが表示されます。

    [構成] ページ

  4. [手順 1: アップグレードする前にアカウントの変更を確認する] セクションを展開し、 [変更を確認して同意する] をクリックします。

  5. [Review account changes](アカウントの変更の確認) ページで、チェック ボックスをオンにして、 [Agree to changes](変更に同意する) をクリックします。

  6. [手順 2: アップグレードする前にアカウントを検証する] セクションを展開し、 [検証の開始] をクリックします。

    検証に失敗した場合は、ページにエラーが表示されます。 場合によっては、 [エラーの表示] リンクが表示されます。 リンクが表示されたら、それを選択します。

    [エラーの表示] リンク

    次に、error.json ファイルのコンテキスト メニューから、 [ダウンロード] を選択します。

    エラー json ページ

    ダウンロードしたファイルを開き、アカウントが検証ステップに合格しなかった理由を確認します。 次の JSON は、アカウントで互換性のない機能が有効になっていることを示しています。 この場合は、その機能を無効にしてから、検証プロセスを再度開始します。

    {
     "startTime": "2021-08-04T18:40:31.8465320Z",
     "id": "45c84a6d-6746-4142-8130-5ae9cfe013a0",
     "incompatibleFeatures": [
         "Blob Delete Retention Enabled"
     ],
     "blobValidationErrors": [],
     "scannedBlobCount": 0,
     "invalidBlobCount": 0,
     "endTime": "2021-08-04T18:40:34.9371480Z"
    }
    
  7. アカウントが正常に検証された後、 [手順 3: アカウントのアップグレード] セクションを展開して、 [アップグレードの開始] をクリックします。

    重要

    アカウントがアップグレードされている間、書き込み操作は無効になります。 読み取り操作は無効になりませんが、アップグレード プロセスが不安定になる可能性があるため、読み取り操作を中断することを強く推奨します。

    移行が正常に完了すると、次のようなメッセージが表示されます。

    移行完了ページ

アップグレードを停止する

移行が完了する前に、それを停止できます。

アップグレードが完了する前にそれを停止するには、アップグレードの進行中に [アップグレードの取り消し] を選択します。

アップグレードの取り消し

データ、ワークロード、アプリケーションを移行する

  1. Blob service エンドポイントまたは Data Lake Storage エンドポイントを指し示すように、ワークロード内のサービスを構成します。

    アカウントのエンドポイント

  2. Windows Azure Storage Blob ドライバーまたは WASB ドライバーを使用する Hadoop ワークロードの場合は、Azure Blob File System (ABFS) ドライバーを使用するようにそれらを変更します。 Blob service エンドポイントに対して要求を行う WASB ドライバーとは異なり、ABFS ドライバーはアカウントの Data Lake Storage エンドポイントに対して要求を行います。

  3. カスタム アプリケーションをテストして、アップグレードされたアカウントで想定どおりに動作することを確認します。

    Data Lake Storage でのマルチプロトコル アクセスを使用すると、ほとんどのアプリケーションで BLOB API を変更せずに引き続き使用できます。 問題が発生する場合、または API を使用してディレクトリ操作と ACL を使用したい場合は、Data Lake Storage API を使用するようにコードの一部を移動することを検討します。 .NETJavaPythonNode.jsREST に関するガイドを参照してください。

  4. カスタム スクリプトをテストして、アップグレードされたアカウントで想定どおりに動作することを確認します。

    BLOB API の場合と同様に、スクリプトの多くは、変更を必要とせずに機能する可能性があります。 ただし、必要な場合は、Data Lake Storage の PowerShell コマンドレットAzure CLI コマンドを使用するようにスクリプト ファイルをアップグレードできます。

関連項目

Azure Data Lake Storage の概要