Home > Google Drive Migration Process

Download this article

Google Drive Migration Process

The sections below contain the general migration process for Google Drive Migration, including migration from Google Drive to SharePoint Online and migration from Google Drive to OneDrive. The details outlined in this document can serve as general guidelines for Google Drive migration projects with some minor adjustments.

More steps may be needed, and some steps included in the process may be optional according to your migration requirements.

Preparation

Before the migration, you need to identify what object types you want to migrate. See the Supported and Unsupported List.

1. Configure a filter for source users (optional)

If there are many user drives in your Google tenant and you only want to migrate some of them, you can create a Google group or an organizational unit in your source tenant, and add the users you want to migrate and the user used to consent the Fly migration for Google app to the Google group or organizational unit. When you install the Fly migration for Google app, select the Certain groups or organizational units Select users in the next step option and then select the specific group or organizational unit and finish installing the app. Then, user drives that do not in the selected group or organizational unit cannot be migrated.

NOTE

This filter only applies to user drives.

2. Create an app profile with required permissions for Google Drive

To connect Fly to your Google Drive, create an app profile with the required permissions in AvePoint Online Services. Refer to Permissions for Source Google Drive to check the required permissions. 

3. Create a service account or app profile with required permissions for SharePoint Online/OneDrive

To connect Fly to your destination SharePoint Online/OneDrive, create a service account or an app profile with required permissions in AvePoint Online Services. Refer to Permissions for Destination SharePoint Online/OneDrive to check the required permissions.

NOTE

Users with Multi-Factor Authentication (MFA) enabled cannot be used as the service account to perform migrations. You can use a delegated app profile instead.

4. Run the source tenant discovery (optional)

Before you migrate from Google Drive, you can run a tenant discovery for Google Drive to scan and report the object count, object type, object size, and other details. According to the discovery reports, you can better understand your source environment and plan for your migrations. Refer to user guide for Tenant Discovery for details.

5. Provision all necessary users/groups in the destination tenant

Fly does not automatically provision new users in Microsoft 365. Make sure the destination users already exist before the migration.

There are different ways to add new Microsoft 365 users:

  • Adding users individually. See instructions here.

  • Adding users in bulk. See instructions here.

  • Adding users via PowerShell. See instructions here.

  • Synchronizing users from local Active Directory to Microsoft 365 via Microsoft Entra Sync or Microsoft Entra connect. See instructions here.

6. Provision all necessary external users in the destination tenant

External users cannot be migrated in the migration. Make sure the external users have been created or imported into the destination tenant before the migration. Then you can map the source external users to the destination users in the migration.

7. Pre-provision OneDrive sites in the destination

If you want to migrate content to OneDrive, make sure the corresponding OneDrive site has been created. Refer to Pre-provision OneDrive for users in your organization for PowerShell Scripts to pre-provision OneDrive with PowerShell.

You can configure mappings of the Drive level. Refer to the example below for reference.

Mapping example of Drive level.

You can also configure mappings of the folder level. The destination folder’s parent folder must exist. If not, create the parent folder first. Refer to the example below for reference.

Mapping example of folder level.

For example: The destination URL is user@contosodest.com\folder1\folder2, so the folder1 must exist in the destination. If not, create this folder under the user’s My files.

8. Pre-provision SharePoint site collections in the destination (optional)

If you want to migrate content to team sites, group sites, or other sites, make sure the destination site already exists. You can refer to the example below for reference.

Example.

  • If the destination list/library in your specified path https://contosodest/sites/sc/library does not exist, regardless of whether you select Merge or Attach as the migration method, Fly can create the list/library in the destination.

  • If the destination list/library and folder in your specified path https://contosodest/sites/sc/sub/list/folder do not exist, and you select Merge as the migration method, Fly can create the list/library and folder in the destination.

  • If the destination list/library or folder in your specified path https://contosodest/sites/sc/sub/list/folder does not exist, and you select Attach as the migration method, the migration job will fail.

9. Extend the storage before migration (optional)

By default, there is 1 TB storage space per user for Microsoft 365 subscriptions with less than 5 users. For subscriptions with 5 or more users (can be any combination of qualifying plans), Microsoft will initially provide 1 TB per user, which admins can increase to up to 5 TB per user. (For instructions, see Set the default storage space for OneDrive users.) To request additional storage, admins must contact Microsoft Support. This should be done by IT admins.

If you want to set the site storage, go to the SharePoint Admin Center to set the maximum storage for the site collection.

10. Check destination retention policies

If retention policies are configured for the source data, check to make sure the destination retention policies are the same as the source retention policies. Otherwise, the destination data may be deleted due to different retention policies.

11. Throttling limits in Google Drive migration

Google has throttling restrictions. The more mappings you run at a time, the greater the effect of throttling restrictions on the migration speed. You can contact Google Support for help.

12. Migration throughput

For Google Drive migrations, generally, a reasonable migration speed is 5-20 GB/hour/mapping. For the number of mappings that can be run, it is automatically allocated based on the subscription you purchased. The more user seats you purchase, the more mappings you can run in a project.

There are many factors which may affect migration performance:

  • The above throughput number is for full migration. Generally, it may be lower for incremental migration since Fly needs to spend quite some time in checking the migrated item status for incremental migration. 

  • Throttling: There may be throttling in the source or destination, which will reduce the migration performance.

13. Create source and destination connections

Refer to Create a Connection to connect Fly to your source Google tenant and destination Microsoft 365 tenant. 

14. Design the migration policy

A Google Drive migration policy allows you to configure the conflict resolution, filter policy, user mapping, and other options for Google Drive Migration. Refer to Configure a Migration Policy for details.

15. Plan a Pilot run

We recommend that you perform a pilot run for the following purposes:

  • Get familiar with the Fly interface and understand the whole migration process.

  • Discover and resolve any potential issues before production migration.

  • Understand the throttling situation if the content size is large, and then try to resolve it with the source and destination.

Migration Execution

Refer to the following sections to execute the migration.

1. Configure projects and mappings in Fly

To configure projects and mappings, refer to Create a Project and Create Migration Mappings for details.

When dealing with a large number of items under one user, to meet your project schedule, you can split this user into multiple mappings. See the examples below.

Case1: Migrate the top-level folder of the relatively small size of data and filter out folder1

  • Source folder structure:

    -User A

    -folder1, folder2, folder3, folder4

  • Solution: Add/Import mappings

    • Source: User A

    • Destination: https://contoso-my.sharepoint.com/personal/userA_contoso_onmicrosoft_com/Documents/Google Drive

    • Method: Merge

  • Filter Policy: Folder Name Does not equal folder1

  • Migration result: The top-level folder of User A is merged with the destination folder. All files in the top-level folder of User A and folder 2/3/4 will be migrated, without any data under folder1. In the migration job report, all data under folder1 is marked as filtered out.

Case 2: Migrate the top-level folder only (without filter policy)

  • Source folder structure:

    -User A

    -folder1, folder2, folder3, folder4

  • Solution: Add/Import mappings

    • Source: User A\folder1

    • Destination: https://contoso-my.sharepoint.com/personal/userA_contoso_onmicrosoft_com/Documents/Google Drive

    • Method: Attach

    In the migration policy, select the option Only migrate objects in the top-level folder.

  • Migration result: Only folder1 and items in it are migrated.

Case 3: Filter out subfolders

  • Source folder structure:

    -User A

    -folder1> subfolder1 > subfolder2

  • Solution: Add/Import mappings

    • Source: User A\folder1

    • Destination: https://contoso-my.sharepoint.com/personal/userA_contoso_onmicrosoft_com/Documents/Google Drive

    • Method: Attach

  • Filter Policy: Folder Name Does not equal subfolder1

  • Migration result: folder1 is created in the destination path, and all items under folder1 are migrated without subfolder1 and the data under subfolder1.

2. Perform regular full migrations

Before running the job, we recommend you verify the mappings to ensure that the mappings are available for migration. Refer to Pre-analyze Mappings for details.

Then you can run a full migration job to migrate the objects based on your configured migration policy. Refer to Run Migrations to Migrate Objects for details.

3. Perform regular incremental migrations

Some issues may occur during a full migration job. Run an incremental migration job to handle new, updated, and failed data. Refer to Run Migrations to Migrate Objects about how to perform regular incremental migrations.

4. Validate migration results

  • Check the mapping report. If the mapping failed or finished with exceptions, you can check the error code and comment for the mapping in the Migration error section. You can click the error code to view the details and recommendations of the code in the Troubleshooting Guide, which can assist you in resolving or avoiding the error.

  • Check if the data is correctly migrated to the destination.

  • Check if the data properties are correctly migrated.

  • Check if the data permissions are correctly migrated.

5. Perform the final incremental migrations for current wave

Ensure all source data are migrated to the destination.