Migrating to DFSR with dfsrmig
The dfsrmig tool
is used to migrate the SYSVOL folder from New Technology File
Replication Service (NT FRS) to Distributed File System Replication
(DFSR). FRS was the first method, and it was used in all AD domains by
default up to and including Windows Server 2008. Windows Server 2008 R2
is the first version that uses DFSR by default.
Note
The SYSVOL folder hosts AD data that is shared
between DCs. Changes to the SYSVOL folder on one DC are automatically
replicated to other DCs. Data in the SYSVOL folder includes Group
Policy objects, logon scripts, and more.
DFSR is more efficient than FRS, so many administrators want to switch over to DFSR from FRS in existing domains.
The primary requirement is that the domain
functional level must be Windows Server 2008. You can raise the domain
functional level from within Active Directory Users and Computers
(ADUC) by right-clicking over the domain and selecting Raise Domain Functional Level. Figure 4 shows the screen that appears. The functional level is raised after you click Raise and click OK.
Note
You cannot lower the domain functional level; you
can only raise it. You can raise it to Windows Server 2008 only after
all DCs in the domain are running at least Windows Server 2008. After
raising it to Windows Server 2008, you cannot promote any Windows
Server 2003 servers to DCs.
The process to migrate to DFSR uses several steps
identified as global states. The primary goal is to ensure that
problems in the migration do not take down the domain. You can verify
that replication is working as expected after each of the steps.
The following table identifies the four dfsrmig global states.
dfsrmig Global State | Comments |
---|
0 Start | SYSVOL replication is handled by FRS. |
1 Prepared | FRS still replicates the SYSVOL folder.
DFSR also replicates a copy of the SYSVOL folder but the DFSR-replicated copy is not used by any DCs. |
2 Redirected | DFSR takes over replication of the SYSVOL folder and DCs use the DFSR-replicated copy.
FRS continues to replicate the SYSVOL folder. |
3 Eliminated | DFRS continues to replicate the SYSVOL folder.
The original SYSVOL folder used by FRS is deleted, and FRS no longer replicates the SYSVOL folder. |
The following table shows the dfsrmig switches and commands you use in the migration process.
dfsrmig Switches | Comments |
---|
Get global state.
C:\> dfsrmig /getglobalstate
| Returns the current state of the migration as long as the migration has been started. |
Get migration state.
C:\> dfsrmig /getmigrationstate
| Shows
the progress of migration across all DCs in the domain. You can use
this to verify that all of the DCs are ready to progress to the next
global state in the migration process. |
Set global state.
dfsrmig /setglobalstate state C:\> dfsrmig /setglobalstate 1
| Sets the global state. Valid states are 0, 1, 2, and 3.
The example assumes the current state is 0 and changes it to 1. |
Tip
You should ensure that the FRS replication of the
SYSVOL folder is running without any problems. The migration process
will fail in some instances if FRS is not working correctly. One way to
verify that FRS replication is working correctly is by checking the
File Replication Service log in Event Viewer, as shown in Figure 5. Investigate any errors to determine whether it is running correctly.
You can use the following steps to migrate from FRS to DFS for SYSVOL replication.
Tip
Ensure that you have a current backup of system state data before beginning this process.
Step | Action | Comments |
---|
1. | Ensure the domain is raised to Domain Functional Level 2008. | Figure 4 (shown previously) shows how this is done. |
2. | Type C:\> dfsrmig /setglobalstate 0 | Sets the new DFSR global state to Start. |
3. | Type C:\> dfsrmig /getglobalstate | Verifies the global state is set to Start. |
4. | Type C:\> dfsrmig /getmigrationstate | When this indicates that all DCs have migrated successfully to the global state Start, you can continue. |
5. | Type C:\> dfsrmig /setglobalstate 1 | Changes the new DFSR global state to Prepared.
Tip
This takes some time. In a production environment, it’s easier to
execute this on one day, and then continue the migration on the
following day.
|
6. | Type C:\> dfsrmig /getglobalstate | Verifies whether the global state is set to Prepared. |
7. | Type C:\> dfsrmig /getmigrationstate | When this indicates that all DCs have migrated successfully to the global state Prepared, you can continue.
Note
If you use this command at different times, you may see the state of other DCs change as the migration progresses.
|
8. | Type C:\> dfsrmig /setglobalstate 2 | Changes the new DFSR global state to Redirected. |
9. | Type C:\> dfsrmig /getglobalstate | Verifies whether the global state is set to Redirected. |
10. | Type C:\> dfsrmig /getmigrationstate | When this indicates that all DCs have migrated successfully to the global state Redirected, you can continue.
Note
This is much quicker than changing the state to Prepared.
|
11. | Type C:\> dfsrmig /setglobalstate 3 | Changes the new DFSR global state to Eliminated. |
12. | Type C:\> dfsrmig /getglobalstate | Verifies the global state is set to Eliminated. |
13. | Type C:\> dfsrmig /getmigrationstate | When this indicates that all DCs have migrated successfully to the global state Redirected, the migration is complete. |