Skip to content

Commit 75c5e98

Browse files
committed
GlusterFS to Azure Files migration guide
1 parent 2138184 commit 75c5e98

File tree

2 files changed

+193
-0
lines changed

2 files changed

+193
-0
lines changed

articles/storage/files/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@
7777
href: ../common/storage-use-azcopy-files.md?toc=/azure/storage/files/toc.json
7878
- name: Configure, optimize, and troubleshoot AzCopy
7979
href: ../common/storage-use-azcopy-configure.md?toc=/azure/storage/files/toc.json
80+
- name: Migrate GlusterFS to Azure Files
81+
href: glusterfs-migration-guide.md
8082
- name: Authentication and authorization
8183
items:
8284
- name: Overview of identity-based authentication
Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
---
2+
title: GlusterFS to Azure Files migration guide
3+
description: Red Hat Gluster Storage (based on GlusterFS) has reached the end of its support lifecycle. Use this guide to migrate GlusterFS volumes to Azure Files.
4+
author: khdownie
5+
ms.service: azure-file-storage
6+
ms.topic: how-to
7+
ms.date: 05/01/2025
8+
ms.author: kendownie
9+
---
10+
11+
# Migrate GlusterFS volumes to Azure Files
12+
13+
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.
14+
15+
## GlusterFS end-of-life considerations
16+
17+
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.
18+
19+
- End of full support: November 2020
20+
- End of maintenance support: November 2021
21+
- End of extended life phase: June 2024
22+
23+
Organizations using GlusterFS should migrate to supported alternatives, such as Azure Files, to ensure continued support and security updates.
24+
25+
## Migration tools
26+
27+
For Windows clients, use Robocopy. For Linux clients, use rsync.
28+
29+
### For Windows clients: Robocopy
30+
31+
Robocopy is a built-in Windows command-line tool designed for copying SMB file shares.
32+
33+
#### Basic Robocopy syntax for migration
34+
35+
```powershell
36+
robocopy <GlusterFS_Source> <AzureFiles_Destination> /MIR /Z /MT:8 /W:1 /R:3 /LOG:migration_log.txt
37+
```
38+
39+
**Parameters:**
40+
- `/MIR`: Mirrors directory structure (includes subdirectories)
41+
- `/Z`: Enables restart mode for interrupted copies
42+
- `/MT:8`: Uses 8 threads for multi-threaded copying
43+
- `/W:1`: Wait time between retries (1 second)
44+
- `/R:3`: Number of retries on failed copies
45+
- `/LOG`: Creates a detailed log file
46+
47+
### For Linux clients: rsync
48+
49+
rsync is a fast, versatile file copy tool available on Linux systems.
50+
51+
#### Basic rsync syntax for migration
52+
53+
```bash
54+
rsync -avz --progress --stats --delete <GlusterFS_Source>/ <AzureFiles_Destination>/
55+
```
56+
57+
**Parameters:**
58+
- `-a`: Archive mode (preserves permissions, timestamps, etc.)
59+
- `-v`: Verbose output
60+
- `-z`: Compresses data during transfer
61+
- `--progress`: Shows progress during transfer
62+
- `--stats`: Provides transfer statistics
63+
- `--delete`: Removes files from destination that don't exist in source
64+
65+
## Step-by-step migration procedure
66+
67+
### Step 1: Assessment and planning
68+
69+
1. Inventory your GlusterFS volumes, noting:
70+
- Total data size
71+
- Number of files and directories
72+
- Access patterns and performance requirements
73+
- Client operating systems
74+
75+
1. Select the appropriate protocol:
76+
- SMB for Windows environments
77+
- NFS for Linux environments
78+
79+
1. Select HDD or SSD, and size your Azure file shares appropriately:
80+
- Standard (HDD): Up to 100 TiB
81+
- Premium (SSD): Up to 100 TiB with higher performance
82+
83+
### Step 2: Prepare Azure environment
84+
85+
1. Create a storage account in the appropriate Azure region.
86+
- Choose the right performance tier (Standard or Premium) based on your needs. Premium is required for NFS file shares.
87+
88+
1. Configure networking. See [Azure Files networking considerations](storage-files-networking-overview.md).
89+
- SMB: Configure firewall and private endpoints as needed. See [Configure Azure Storage firewalls](../common/storage-network-security.md) and [Configure network endpoints for accessing Azure file shares](storage-files-networking-endpoints.md).
90+
- NFS: Configure network security and private endpoints. See [Mount NFS Azure file shares on Linux](storage-files-how-to-mount-nfs-shares.md).
91+
92+
1. Create Azure file shares with appropriate protocols.
93+
94+
### Step 3: Mount Azure file share
95+
96+
Before migrating the data, you must mount the Azure file share(s). This article shows how to mount the Azure file share using NTLMv2 authentication (storage account key). In non-administrative scenarios, using identity-based authentication is preferred for security reasons. You can find your storage account key in the [Azure portal](https://portal.azure.com/) by navigating to the storage account and selecting **Security + networking** > **Access keys**, or you can use the `Get-AzStorageAccountKey` PowerShell cmdlet.
97+
98+
#### For Windows clients (SMB):
99+
100+
Be sure to replace `<storage-account-name>`, `<share-name>`, and `<storage-account-key>` with your actual values.
101+
102+
```powershell
103+
net use Z: \\<storage-account-name>.file.core.windows.net\<share-name> /u:AZURE\<storage-account-name> <storage-account-key>
104+
```
105+
106+
#### For Linux clients (NFS):
107+
108+
Be sure to replace `<storage-account-name>`, `<share-name>`, and `<mount-point>` with your actual values.
109+
110+
```bash
111+
sudo mount -t nfs <storage-account-name>.file.core.windows.net:/<storage-account-name>/<share-name> <mount-point> -o vers=4.1,sec=sys
112+
```
113+
114+
### Step 4: Perform data migration
115+
116+
#### For Windows workloads using Robocopy:
117+
118+
1. Open a command prompt or PowerShell window with administrator privileges.
119+
120+
1. Run the following Robocopy command:
121+
122+
```powershell
123+
robocopy X:\GlusterFSData Z:\AzureFilesData /MIR /Z /MT:8 /W:1 /R:3 /LOG:C:\migration_log.txt
124+
```
125+
126+
#### For Linux workloads using rsync:
127+
128+
Execute the following rsync command:
129+
130+
```bash
131+
rsync -avz --progress --stats --delete /mnt/glusterfs/ /mnt/azurefiles/
132+
```
133+
134+
For large datasets, consider using the `--exclude` parameter to perform the migration in phases.
135+
136+
### Step 5: Verify that migration succeeded
137+
138+
1. Compare file counts and sizes:
139+
- On Windows: Use `Get-ChildItem -Recurse | Measure-Object`
140+
- On Linux: Use `find . -type f | wc -l` and `du -sh`
141+
142+
1. Validate user/group permissions and access rights.
143+
144+
1. Perform application-specific tests.
145+
146+
### Step 6: Cutover
147+
148+
1. Redirect applications to use Azure Files endpoints.
149+
1. Update mount points in fstab (Linux) or mapped drives (Windows).
150+
1. Update documentation and monitoring tools.
151+
1. Decommission GlusterFS volumes after successful validation.
152+
153+
## Optimize performance
154+
155+
- For SMB shares:
156+
- Enable [SMB Multichannel](smb-performance.md#smb-multichannel) for higher throughput.
157+
- Consider using SSD file shares for IO-intensive workloads.
158+
159+
- For NFS shares:
160+
- Make sure you provision enough capacity to get the performance you need.
161+
- Configure appropriate read/write cache sizes on clients.
162+
163+
## Troubleshooting
164+
165+
Follow these instructions to troubleshoot common migration issues.
166+
167+
### Common issues with Robocopy
168+
169+
- **Error 5 (Access Denied)**: Verify permissions on source and destination.
170+
- **Error 67 (Network name not found)**: Check network connectivity and share name.
171+
- **Error 1314 (Not enough quota)**: Increase Azure Files quota or free space.
172+
173+
### Common issues with rsync
174+
175+
- **Permission denied**: Check file permissions and mount options.
176+
- **Connection timeout**: Verify network connectivity and firewall settings.
177+
- **Partial transfer**: Use `--partial` flag to resume interrupted transfers.
178+
179+
## Migration support
180+
181+
For issues related to Azure Files, contact Azure Support through the [Azure portal](https://portal.azure.com).
182+
183+
For GlusterFS migration assistance, consider engaging Microsoft Consulting Services or a Microsoft partner.
184+
185+
## See also
186+
187+
- [Use RoboCopy to migrate to SMB Azure file shares](storage-files-migration-robocopy.md)
188+
- [Migrate to NFS Azure file shares](storage-files-migration-nfs.md)
189+
- [Robocopy documentation](/windows-server/administration/windows-commands/robocopy)
190+
- [rsync manual](https://linux.die.net/man/1/rsync)
191+
- [Azure Files scale targets](storage-files-scale-targets.md)

0 commit comments

Comments
 (0)