Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article provides guidance on migrating data from GlusterFS volumes to Azure Files, Microsoft's fully managed file service in the cloud. Azure Files offers both SMB (Server Message Block) and NFS (Network File System) protocols, making it suitable for both Windows and Linux workloads.
Red Hat Gluster Storage (based on GlusterFS) has reached the end of its support lifecycle. Red Hat officially announced end of life for this product with the following schedule.
- End of full support: November 2020
- End of maintenance support: November 2021
- End of extended life phase: June 2024
- Formal end of life: December 2024
Organizations using GlusterFS should migrate to supported alternatives, such as Azure Files, to ensure continued support and security updates.
Before migrating from GlusterFS to Azure Files, ensure your client systems meet the necessary requirements for connecting to Azure file shares using either SMB or NFS protocols.
Linux clients connecting via SMB should have:
- A compatible Linux distribution with SMB support
- The
cifs-utils
package installed - SMB 3.0 protocol support (minimum)
- SMB 3.1.1 protocol support (recommended)
Important
We strongly recommend using SMB 3.1.1 protocol for Azure Files access. SMB 3.0 and 2.0 should only be used for legacy clients, and you must plan an OS upgrade to mitigate unpatched security vulnerabilities.
For specific distribution support and configuration steps, see Mount SMB Azure file shares on Linux clients.
Linux clients connecting via NFS should have:
- NFSv4.1 client support
- A compatible Linux distribution
- Proper network configuration for NFS traffic
For NFS mount requirements and configuration steps, see Mount an NFS share.
For Windows clients, we recommend using Robocopy.
For Linux clients, use rsync or fpsync, which allows you to parallelize rsync file operations. See Using fpsync vs. rsync.
rsync is a fast, versatile file copy tool available on Linux systems.
rsync -avz --progress --stats --delete <GlusterFS_Source>/ <AzureFiles_Destination>/
Parameters:
-a
: Archive mode (preserves permissions, timestamps, etc.)-v
: Verbose output-z
: Compresses data during transfer--progress
: Shows progress during transfer--stats
: Provides transfer statistics--delete
: Removes files from destination that don't exist in source
Inventory your GlusterFS volumes, noting:
- Total data size
- Number of files and directories
- Access patterns and performance requirements
- Client operating systems
Select the appropriate protocol. In most cases, you'll want to use SMB for Windows workloads and NFS for Linux workloads.
Select HDD or SSD, and size your Azure file shares appropriately:
- Standard (HDD): Up to 100 TiB
- Premium (SSD): Up to 100 TiB with higher performance
Create a storage account in the appropriate Azure region.
- Choose the right performance tier (Standard or Premium) based on your needs. Premium is required for NFS file shares.
Configure networking. See Azure Files networking considerations.
- SMB: Configure firewall and private endpoints as needed. See Configure Azure Storage firewalls and Configure network endpoints for accessing Azure file shares.
- NFS: Configure network security and private endpoints. See Mount NFS Azure file shares on Linux.
Create Azure file shares with appropriate protocols.
Before migrating the data, you must mount the Azure file share(s).
To mount the file share, run the following command. Be sure to replace <storage-account-name>
, <share-name>
, and <mount-point>
with your actual values.
sudo mount -t nfs <storage-account-name>.file.core.chinacloudapi.cn:/<storage-account-name>/<share-name> <mount-point> -o vers=4.1,sec=sys
For more information, see Mount NFS Azure file shares on Linux.
After you've mounted the Azure file share, you can perform the data migration.
Execute the following command:
rsync -avz --progress --stats --delete /mnt/glusterfs/ /mnt/azurefiles/
For large datasets, consider using the --exclude
parameter to perform the migration in phases.
Compare file counts and sizes:
- On Windows: Use
Get-ChildItem -Recurse | Measure-Object
- On Linux: Use
find . -type f | wc -l
anddu -sh
- On Windows: Use
Validate user/group permissions and access rights.
Perform application-specific tests.
- Redirect applications to use Azure Files endpoints.
- Update mount points in fstab (Linux) or mapped drives (Windows).
- Update documentation and monitoring tools.
- Decommission GlusterFS volumes after successful validation.
Follow these recommendations to optimize performance when migrating from GlusterFS to Azure Files. For detailed performance tuning, see Azure Files scalability and performance targets and Understand and optimize Azure file share performance.
Note
Check virtual machine (VM) size to ensure that VM network bandwidth isn't a bottleneck when your file shares are correctly sized for required throughput and IOPS. Different VM SKUs have different network bandwidth limits that can constrain overall file share performance. Select VM sizes that provide sufficient network throughput for your workload requirements. For more information, see Azure virtual machine sizes.
- Always use Premium (SSD) file shares for NFS workloads (required).
- Provision sufficient capacity based on your throughput requirements.
- Optimize client-side settings like read/write buffer sizes.
- Use nconnect, a client-side mount option that allows you to use multiple TCP connections between the client and your NFS file share. We recommend the optimal setting of
nconnect=4
. - Consider network latency between your clients and Azure.
- Follow Azure Files performance recommendations for NFS file shares.
Follow these instructions to troubleshoot common migration issues.
- Permission denied: Check file permissions and mount options.
- Connection timeout: Verify network connectivity and firewall settings.
- Partial transfer: Use
--partial
flag to resume interrupted transfers. - No such file or directory: Verify that the file path and directory exist.
For issues related to Azure Files, contact Azure Support through the Azure portal.
For GlusterFS migration assistance, consider engaging Microsoft Consulting Services.