Tutorial: Import data to Blob Storage with Azure Import/Export service

This article provides step-by-step instructions on how to use the Azure Import/Export service to securely import large amounts of data to Azure Blob storage. To import data into Azure Blobs, the service requires you to ship encrypted disk drives containing your data to an Azure datacenter.

In this tutorial, you learn how to:

  • Prerequisites to import data to Azure Blob storage
  • Step 1: Prepare the drives
  • Step 2: Create an import job
  • Step 3: Configure customer managed key (Optional)
  • Step 4: Ship the drives
  • Step 5: Update job with tracking information
  • Step 6: Verify data upload to Azure

Prerequisites

Before you create an import job to transfer data into Azure Blob Storage, carefully review and complete the following list of prerequisites for this service. You must:

  • Have an active Azure subscription that can be used for the Import/Export service.
  • Have at least one Azure Storage account with a storage container. See the list of Supported storage accounts and storage types for Import/Export service.
  • Have adequate number of disks of supported types.
  • Have a Windows system running a supported OS version.
  • Enable BitLocker on the Windows system. See How to enable BitLocker.
  • Download the current release of the Azure Import/Export version 1 tool, for blobs, on the Windows system:
    1. Download WAImportExport version 1. The current version is 1.5.0.300.
    2. Unzip to the default folder WaImportExportV1. For example, C:\WaImportExportV1.
  • Have a FedEx/DHL account. If you want to use a carrier other than FedEx/DHL, contact Azure Data Box Operations team at adbops@microsoft.com.
    • The account must be valid, should have balance, and must have return shipping capabilities.
    • Generate a tracking number for the export job.
    • Every job should have a separate tracking number. Multiple jobs with the same tracking number are not supported.
    • If you do not have a carrier account, go to:

Step 1: Prepare the drives

This step generates a journal file. The journal file stores basic information such as drive serial number, encryption key, and storage account details.

Perform the following steps to prepare the drives.

  1. Connect your disk drives to the Windows system via SATA connectors.

  2. Create a single NTFS volume on each drive. Assign a drive letter to the volume. Do not use mountpoints.

  3. Enable BitLocker encryption on the NTFS volume. If using a Windows Server system, use the instructions in How to enable BitLocker on Windows Server 2012 R2.

  4. Copy data to encrypted volume. Use drag and drop or Robocopy or any such copy tool. A journal (.jrn) file is created in the same folder where you run the tool.

    If the drive is locked and you need to unlock the drive, the steps to unlock may be different depending on your use case.

    • If you have added data to a pre-encrypted drive (WAImportExport tool was not used for encryption), use the BitLocker key (a numerical password that you specify) in the popup to unlock the drive.

    • If you have added data to a drive that was encrypted by WAImportExport tool, use the following command to unlock the drive:

      WAImportExport Unlock /bk:<BitLocker key (base 64 string) copied from journal (*.jrn*) file>

  5. Open a PowerShell or command-line window with administrative privileges. To change directory to the unzipped folder, run the following command:

    cd C:\WaImportExportV1

  6. To get the BitLocker key of the drive, run the following command:

    manage-bde -protectors -get <DriveLetter>:

  7. To prepare the disk, run the following command. Depending on the data size, disk preparation may take several hours to days.

    ./WAImportExport.exe PrepImport /j:<journal file name> /id:session<session number> /t:<Drive letter> /bk:<BitLocker key> /srcdir:<Drive letter>:\ /dstdir:<Container name>/ /blobtype:<BlockBlob or PageBlob> /skipwrite
    

    A journal file is created in the same folder where you ran the tool. Two other files are also created - an .xml file (folder where you run the tool) and a drive-manifest.xml file (folder where data resides).

    The parameters used are described in the following table:

    Option Description
    /j: The name of the journal file, with the .jrn extension. A journal file is generated per drive. We recommend that you use the disk serial number as the journal file name.
    /id: The session ID. Use a unique session number for each instance of the command.
    /t: The drive letter of the disk to be shipped. For example, drive D.
    /bk: The BitLocker key for the drive. Its numerical password from output of manage-bde -protectors -get D:
    /srcdir: The drive letter of the disk to be shipped followed by :\. For example, D:\.
    /dstdir: The name of the destination container in Azure Storage.
    /blobtype: This option specifies the type of blobs you want to import the data to. For block blobs, the blob type is BlockBlob and for page blobs, it is PageBlob.
    /skipwrite: Specifies that there is no new data required to be copied and existing data on the disk is to be prepared.
    /enablecontentmd5: The option when enabled, ensures that MD5 is computed and set as Content-md5 property on each blob. Use this option only if you want to use the Content-md5 field after the data is uploaded to Azure.
    This option does not affect the data integrity check (that occurs by default). The setting does increase the time taken to upload data to cloud.

    Note

    If you import a blob with the same name as an existing blob in the destination container, the imported blob will overwrite the existing blob. In earlier tool versions (before 1.5.0.300), the imported blob was renamed by default, and a \Disposition parameter let you specify whether to rename, overwrite, or disregard the blob in the import.

  8. Repeat the previous step for each disk that needs to be shipped.

    A journal file with the provided name is created for every run of the command line.

    Together with the journal file, a <Journal file name>_DriveInfo_<Drive serial ID>.xml file is also created in the same folder where the tool resides. The .xml file is used in place of the journal file when creating a job if the journal file is too big.

Important

  • Do not modify the journal files or the data on the disk drives, and don't reformat any disks, after completing disk preparation.
  • The maximum size of the journal file that the portal allows is 2 MB. If the journal file exceeds that limit, an error is returned.

Step 2: Create an import job

Perform the following steps to create an import job in the Azure portal.

  1. Log on to https://portal.azure.com/.

  2. Search for import/export jobs.

    Search on import/export jobs

  3. Select + New.

    Select New to create a new

  4. In Basics:

    1. Select a subscription.

    2. Select a resource group, or select Create new and create a new one.

    3. Enter a descriptive name for the import job. Use the name to track the progress of your jobs.

      • The name may contain only lowercase letters, numbers, and hyphens.
      • The name must start with a letter, and may not contain spaces.
    4. Select Import into Azure.

    Create import job - Step 1

    Select Next: Job details > to proceed.

  5. In Job details:

    1. Upload the journal files that you created during the preceding Step 1: Prepare the drives. If waimportexport.exe version1 was used, upload one file for each drive that you prepared. If the journal file size exceeds 2 MB, then you can use the <Journal file name>_DriveInfo_<Drive serial ID>.xml also created with the journal file.

    2. Select the destination Azure region for the order.

    3. Select the storage account for the import.

      The dropoff location is automatically populated based on the region of the storage account selected.

    4. If you don't want to save a verbose log, clear the Save verbose log in the 'waimportexport' blob container option.

    Create import job - Step 2.

    Select Next: Shipping > to proceed.

  6. In Shipping:

    1. Select the carrier from the dropdown list. If you want to use a carrier other than FedEx/DHL, choose an existing option from the dropdown. Contact Azure Data Box Operations team at adbops@microsoft.com with the information regarding the carrier you plan to use.

    2. Enter a valid carrier account number that you have created with that carrier. Microsoft uses this account to ship the drives back to you once your import job is complete. If you do not have an account number, create a FedEx or DHL carrier account.

    3. Provide a complete and valid contact name, phone, email, street address, city, zip, state/province and country/region.

      Tip

      Instead of specifying an email address for a single user, provide a group email. This ensures that you receive notifications even if an admin leaves.

    Create import job - Step 3

    Select Review + create to proceed.

  7. In the order summary:

    1. Review the Terms, and then select "I acknowledge that all the information provided is correct and agree to the terms and conditions." Validation is then performed.
    2. Review the job information provided in the summary. Make a note of the job name and the Azure datacenter shipping address to ship disks back to Azure. This information is used later on the shipping label.
    3. Select Create.

    Create import job - Step 4

Step 3 (Optional): Configure customer managed key

Skip this step and go to the next step if you want to use the Microsoft managed key to protect your BitLocker keys for the drives. To configure your own key to protect the BitLocker key, follow the instructions in Configure customer-managed keys with Azure Key Vault for Azure Import/Export in the Azure portal.

Step 4: Ship the drives

FedEx, UPS, or DHL can be used to ship the package to Azure datacenter. If you want to use a carrier other than FedEx/DHL, contact Azure Data Box Operations team at adbops@microsoft.com

  • Provide a valid FedEx, UPS, or DHL carrier account number that Microsoft will use to ship the drives back.
    • A FedEx, UPS, or DHL account number is required for shipping drives back from the US and Europe locations.
      • A DHL account number is preferred for shipping drives back from Asia and Australia locations.
      • If you do not have an account number, create a FedEx or DHL carrier account.
  • When shipping your packages, you must follow the Microsoft Azure Service Terms.
  • Properly package yours disks to avoid potential damage and delays in processing.

Step 5: Update the job with tracking information

After shipping the disks, return to the Import/Export page on the Azure portal.

Important

If the tracking number is not updated within 2 weeks of creating the job, the job expires.

To update the tracking number, perform the following steps.

  1. Select and click the job.
  2. Click Update job status and tracking info once drives are shipped.
  3. Select the checkbox against Mark as shipped.
  4. Provide the Carrier and Tracking number.
  5. Track the job progress on the portal dashboard. For a description of each job state, go to View your job status.

Note

You can only cancel a job while it's in Creating state. After you provide tracking details, the job status changes to Shipping, and the job can't be canceled.

Step 6: Verify data upload to Azure

Track the job to completion. Once the job is complete, verify that your data has uploaded to Azure. Delete the on-premises data only after you have verified that the upload was successful. For more information, see Review Import/Export copy logs.

Next steps