Azure DataBox Diskで大容量データをオンプレからクラウド移行する手順|azコマンドで転送を制御

運営:リナックスマスター.JP(代表 宮崎智広)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > Azure > Azure DataBox Diskで大容量データをオンプレからクラウド移行する手順|azコマンドで転送を制御
「データセンターのサーバー群をAzureへ移行したいが、数十TBのデータを専用線なしで転送すると数日どころか数週間かかる」
こんな状況に直面したことはないだろうか。

ネットワーク経由のデータ移行は、帯域幅がボトルネックになる。100Mbpsの回線で10TBを転送すると、理論値でも約9日かかる計算だ。実際にはプロトコルのオーバーヘッドや本番トラフィックとの競合で、さらに時間がかかる。

この記事では、Azure DataBox Diskを使ったオフラインデータ移行の全手順を解説する。az databox job コマンドでジョブを注文・追跡し、LinuxサーバーからDataBox Diskへデータをコピーし、返送後にAzureストレージへ安全にインポートされるまでの流れをステップごとに紹介する。

動作確認環境: Ubuntu 24.04 LTS / Azure CLI 2.65.0

この記事のポイント

・Azure DataBox Diskは最大40TBをオフラインでAzureへ移行できる物理デバイスサービス
・az databox job createで注文、az databox job showで進捗をリアルタイム追跡できる
・LinuxからexFATディスクをマウントしてrsyncでデータをコピーする手順を解説
・返送後は自動でAzureストレージへインポートされ、ステータスが「Completed」に変わる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Azure DataBox Diskとは何か

Azure DataBox DiskはMicrosoftが提供するオフラインデータ移行サービスだ。暗号化済みのSSDディスク(最大8TB×5枚=40TB)をMicrosoftから発送してもらい、オンプレミスのデータをコピーした後に返送すると、Azureのストレージアカウントへ自動でインポートされる仕組みだ。

ネットワーク転送が非現実的な大容量データ移行に最適で、特に以下のようなケースで威力を発揮する。

・大規模なデータセンター撤廃・移行(数十TB規模)
・帯域幅が限られたオンプレミス環境からのバースト移行
・初回クラウド移行で大量のアーカイブデータをまとめて持ち込む場合

Azure DataBox Diskはディスクごとにデバイス暗号化(BitLocker)が適用されており、パスキーなしにはデータを読み取れない設計だ。また、Microsoftはデータインポート完了後にディスクを安全消去するため、情報漏洩リスクを最小限に抑えられる。

DataBox製品ラインの比較:

・DataBox Disk(本記事): 最大40TB、SSDディスク、個人~中規模移行
・DataBox: 最大100TB、専用アプライアンス、エンタープライズ向け
・DataBox Heavy: 最大1PB、大型筐体、超大規模移行

事前準備:az databox拡張機能のインストール

Azure DataBox Diskを操作するには、Azure CLI本体に加えて databox 拡張機能が必要だ。まだインストールしていない場合は以下のコマンドを実行する。

# Azure CLI のインストール確認 az version # databox 拡張機能のインストール az extension add --name databox # インストール確認 az extension list --output table # Name Version Preview Experimental # ------- --------- --------- -------------- # databox 1.0.0b5 False False

インストール後は az databox --help でサブコマンドが表示されることを確認しておこう。

Azure DataBox Diskの注文から返送までの全手順

1. Azureへのログインとリソースグループの準備

まずAzure CLIでログインし、DataBox Diskのジョブを作成するリソースグループとストレージアカウントを用意する。

# Azure へのログイン az login # サブスクリプションの確認 az account show --output table # EnvironmentName IsDefault Name State TenantId # ----------------- ----------- -------------------- ------- ------------------------------------ # AzureCloud True MySubscription Enabled xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # リソースグループの作成(East Japan リージョン) az group create --name databox-rg --location japaneast # インポート先ストレージアカウントの作成 az storage account create --name mydataboxstorage --resource-group databox-rg --location japaneast --sku Standard_LRS

ストレージアカウント名はグローバルで一意である必要がある。 mydataboxstorage の部分は実際の環境に合わせて変更すること。

2. az databox job createでDataBox Diskを注文する

az databox job create コマンドでインポートジョブを作成する。これがDataBox Diskの「注文」に相当する。

# ストレージアカウントのリソースID取得 STORAGE_ID=$(az storage account show --name mydataboxstorage --resource-group databox-rg --query id --output tsv) echo "Storage ID: $STORAGE_ID" # Storage ID: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/databox-rg/providers/Microsoft.Storage/storageAccounts/mydataboxstorage # DataBox Disk ジョブの作成(注文) az databox job create --resource-group databox-rg --name my-databox-disk-job --location japaneast --sku DataBoxDisk --expected-data-size-in-terra-bytes 8 --contact-details emailList=admin@example.com contactName="Taro Yamada" phone="03-XXXX-XXXX" phoneExtension="" notificationPreference="[{stageName:'DeviceOrdered',sendNotification:true},{stageName:'DeviceDispatched',sendNotification:true},{stageName:'DeviceDelivered',sendNotification:true},{stageName:'DataCopy',sendNotification:true},{stageName:'Delivered',sendNotification:true}]" --destination-account-details "[{dataAccountType:'StorageAccount',accountId:'$STORAGE_ID'}]" --shipping-address city="Tama-shi" companyName="Example Corp" country=JP postalCode="206-0025" stateOrProvince=Tokyo streetAddress1="1-1-1 Ochiai"

--sku DataBoxDisk がDataBox Diskを指定するオプションだ。 DataBox や DataBoxHeavy に変更すると別製品になるので注意する。 --expected-data-size-in-terra-bytes は移行予定のデータ量(TB単位)を指定する。この値をもとにMicrosoftが適切な枚数のディスクを選んで送付する。

3. az databox job showでジョブの進捗を確認する

注文後は発送までに数営業日かかる。進捗は az databox job show コマンドで確認できる。

# ジョブのステータス確認 az databox job show --resource-group databox-rg --name my-databox-disk-job --output table # Location Name ProvisioningState ResourceGroup Status # ----------- --------------------- ------------------- --------------- ---------------- # japaneast my-databox-disk-job Succeeded databox-rg DeviceOrdered # ジョブのステージ詳細を取得 az databox job show --resource-group databox-rg --name my-databox-disk-job --query "details.jobStages" --output json # [ # { # "displayName": "Device ordered", # "errorDetails": [], # "stageName": "DeviceOrdered", # "stageStatus": "Succeeded", # "stageTime": "2026-10-01T09:23:45.000000+00:00" # }, # { # "displayName": "Device dispatched", # "errorDetails": [], # "stageName": "DeviceDispatched", # "stageStatus": "Succeeded", # "stageTime": "2026-10-03T14:10:22.000000+00:00" # }, # { # "displayName": "Device delivered", # "errorDetails": [], # "stageName": "DeviceDelivered", # "stageStatus": "Succeeded", # "stageTime": "2026-10-05T11:30:00.000000+00:00" # } # ]

ステータスは DeviceOrdered → DeviceDispatched → DeviceDelivered の順に変化する。 DeviceDelivered になったらディスクが手元に届いた状態だ。

4. ディスクのロック解除(パスキー取得)

DataBox Diskはデフォルトで暗号化されている。データをコピーする前に、パスキーを取得してロックを解除する必要がある。

# パスキーの取得 az databox job list-credentials --resource-group databox-rg --name my-databox-disk-job # { # "additionalInfo": null, # "jobName": "my-databox-disk-job", # "jobSecrets": { # "diskSecrets": [ # { # "bitLockerKey": "123456-234567-345678-456789-567890-678901-789012-890123", # "diskSerialNumber": "DbxDisk00A1B2C3D4" # } # ], # "jobSecretsType": "DataBoxDisk", # "podSecrets": null # } # }

取得した bitLockerKey を使ってディスクのロックを解除する。Windowsでは manage-bde -unlock コマンドを使うが、LinuxではDislocker等のツールが必要だ。データコピーの規模が大きい場合はWindowsマシンでのコピーが公式推奨とされているが、Linuxでも以下の手順で対応できる。

5. LinuxからDataBox Diskへデータをコピーする

LinuxからDataBox Diskへのデータコピーは、dislocker でBitLockerを解除してからマウントする方法と、Microsoftが提供する DataBoxDiskUnlock ツールの2種類がある。ここでは実際の現場でよく使われる方法を紹介する。

# DataBox Disk ロック解除ツールのインストール # ディスクが接続されているか確認 lsblk # NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT # sda 8:0 0 200G 0 disk # sdb 8:16 0 7.4T 0 disk <- DataBox Disk(BitLocker暗号化) # dislocker でBitLockerを解除 sudo apt install dislocker sudo mkdir /mnt/databox-encrypted /mnt/databox # パスキーを使ってロック解除(-p の後にbitLockerKeyを指定) sudo dislocker /dev/sdb -p 123456-234567-345678-456789-567890-678901-789012-890123 -- /mnt/databox-encrypted # 解除後のexFATパーティションをマウント sudo apt install exfatprogs sudo mount -t exfat /mnt/databox-encrypted/dislocker-file /mnt/databox -o loop,rw,uid=$(id -u),gid=$(id -g) df -h /mnt/databox # Filesystem Size Used Avail Use% Mounted on # /mnt/databox-encrypted/dislocker-file 7.3T 0 7.3T 0% /mnt/databox

マウントが確認できたら、rsyncでデータをコピーする。

# データのコピー(PageBlob 用ディレクトリへ) # DataBox Disk のディレクトリ構造: /PageBlob / /BlockBlob / /AzureFile rsync -avh --progress /data/archive/ /mnt/databox/PageBlob/mycontainer/ # コピー後の確認 du -sh /mnt/databox/PageBlob/ # 4.2T /mnt/databox/PageBlob/ ls /mnt/databox/PageBlob/mycontainer/ | head # backup-2026-01.tar.gz # backup-2026-02.tar.gz # db-dump-2026-01.sql.gz # コピー完了後のアンマウント sudo umount /mnt/databox sudo umount /mnt/databox-encrypted

DataBox Diskのディレクトリ構造は、インポート先のBlobの種類に対応している。
・/PageBlob: Azureページblobへインポート(VHDファイル等)
・/BlockBlob: Azureブロックblobへインポート(一般ファイル)
・/AzureFile: Azure Filesへインポート(SMB共有)

6. ディスクの返送とインポートの完了確認

データコピーが完了したらディスクを指定の返送先へ発送する。返送先はAzureポータルのジョブ詳細画面またはCLIで確認できる。

# 返送先住所の確認 az databox job show --resource-group databox-rg --name my-databox-disk-job --query "details.returnPackage" # 返送後: ジョブステータスをポーリングして確認 az databox job show --resource-group databox-rg --name my-databox-disk-job --query "status" # "DataCopy" <- インポート処理中 # 完了したら # "Completed"

インポートが完了したら、ストレージアカウントにデータが到着しているか確認する。

# インポート先コンテナのblobを確認 az storage blob list --account-name mydataboxstorage --container-name mycontainer --auth-mode login --output table | head -10 # Name Blob Type Blob Tier Length Content Type Last Modified # ---------------------------- ----------- ----------- -------- ------------------- ------------------------- # backup-2026-01.tar.gz BlockBlob Hot 4831838 application/gzip 2026-10-10T08:34:01+00:00 # backup-2026-02.tar.gz BlockBlob Hot 5234112 application/gzip 2026-10-10T08:34:15+00:00 # db-dump-2026-01.sql.gz BlockBlob Hot 1024000 application/gzip 2026-10-10T08:34:45+00:00 # コピー後のジョブを削除(課金対象外に) az databox job delete --resource-group databox-rg --name my-databox-disk-job --yes

ジョブが Completed になり、ストレージアカウントでblobが確認できれば移行完了だ。 Azure環境の構築から運用まで体系的に学びたいなら、ハンズオン形式のセミナーも参考にしてほしい。

Azure DataBox Disk使用時のトラブルシュート

ジョブ作成時に「ValidationException」が出る場合

az databox job create でエラーが出る場合、多くは --contact-details や --destination-account-details の引数フォーマットが原因だ。

# エラー例 # (ValidationException) The request is invalid. # Detail: contactDetails.emailList: A valid email address is required. # 対策: emailListをカンマなしの単一アドレスで試す --contact-details "emailList=['admin@example.com'] ..." # または、フラットな文字列形式ではなくJSON文字列で渡す --contact-details '{"emailList":["admin@example.com"],"contactName":"Taro Yamada","phone":"03-XXXX-XXXX"}'

Azure CLIのバージョンによってパラメータ渡し方が変わることがあるため、 az databox job create --help で最新の引数仕様を確認すること。

dislockerでマウントできない場合

パスキーの形式が違う、またはディスクのパーティションが認識されていないケースが多い。

# dislocker のエラー確認 sudo dislocker -v /dev/sdb -p <パスキー> -- /mnt/databox-encrypted 2>&1 # If "Can't retrieve information" が出た場合 -> パーティション番号を確認 fdisk -l /dev/sdb # /dev/sdb1 2048 15728639 15726592 7.5T Microsoft basic data <- この場合 /dev/sdb1 を使う sudo dislocker /dev/sdb1 -p <パスキー> -- /mnt/databox-encrypted

DataBox Diskが「Stalled」のまま進まない場合

ネットワーク確認よりも、先にジョブのエラー詳細を確認する。

# ジョブのエラー詳細確認 az databox job show --resource-group databox-rg --name my-databox-disk-job --query "error" # キャンセルして再注文する場合 az databox job cancel --resource-group databox-rg --name my-databox-disk-job --reason "Stalled due to incorrect destination account"

本記事のまとめ

Azure DataBox Diskによるオフラインデータ移行の全手順を振り返ろう。
工程 azコマンド / 作業 ポイント
注文 az databox job create --sku DataBoxDisk --expected-data-size-in-terra-bytesでディスク枚数を決定
進捗確認 az databox job show --query status DeviceOrdered→DeviceDispatched→DeviceDeliveredの順
パスキー取得 az databox job list-credentials bitLockerKeyでBitLocker解除
データコピー dislocker + exFATマウント + rsync Linuxではdislockerを使ってBitLocker解除後マウント
返送・完了確認 az databox job show --query status Completedになったらストレージでblob確認
クリーンアップ az databox job delete 完了後はジョブを削除して課金を止める
Azure DataBox Diskは、ネットワーク転送が現実的でない大容量データ移行の切り札だ。 az databox job コマンドをマスターすれば、CLIベースで注文から完了確認まで一貫して自動化できる。

Azureの大容量データ移行を本格的に学びたい場合は、オフライン移行の設計と並行して、AzCopyやAzure Data Factoryによるオンライン移行パターンも押さえておくと選択肢が広がる。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、Azure環境での実践的なサーバー管理・クラウド移行を含むLinux Master Pro Seminarの詳細はこちら>>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

運営

リナックスマスター.JP(代表 宮崎智広)

株式会社イーネットマーキュリーが運営するLinux教育サイトです。代表の宮崎智広は現役のLinuxサーバー管理者として20年以上の実務経験を持ち、累計3,100名以上のエンジニアを指導してきました。実践型のLinuxセミナーや無料マニュアルの配布を通じてLinux人材の育成に取り組んでいます。