Step by Step Server-to-server storage replication with Windows Server 2019 Storage Replica #WindowsAdminCenter #StorageReplica #WindowsServer2019 #ReFS #SR #Azure

In the old days all File servers where on one place, and if you want to replicate data you needed a extra tool to do this. Now days its already build in into Windows server. Storage replica can be used in several ways, replicate data from one Cluster to another or to Azure. but in this case I do a server to server replication as not everyone has a cluster.

For moving data to the Cloud there are currently several other applications like Azure file sync or Azure Migrate https://docs.microsoft.com/en-us/azure/migrate/migrate-overview Blog about Azure File Sync https://robertsmit.wordpress.com/2017/09/28/step-by-step-azure-file-sync-on-premises-file-servers-to-azure-files-storage-sync-service-afs-cloud-msignite/

Storage Replica is Windows Server technology that enables replication of volumes between servers or clusters for disaster recovery. It also enables you to create stretch failover clusters that span two sites, with all nodes staying in sync.

Storage Replica supports synchronous and asynchronous replication:

    • Synchronous replication mirrors data within a low-latency network site with crash-consistent volumes to ensure zero data loss at the file-system level during a failure.
    • Asynchronous replication mirrors data across sites beyond metropolitan ranges over network links with higher latencies, but without a guarantee that both sites have identical copies of the data at the time of a failure.

Storage Replica allows more efficient use of multiple datacenters. By stretching clusters or replicating clusters, workloads can be run in multiple datacenters for quicker data access by local proximity users and applications, as well as better load distribution and use of compute resources. If a disaster takes one datacenter offline, you can move its typical workloads to the other site temporarily.

Storage Replica may allow you to decommission existing file replication systems such as DFS Replication that were pressed into duty as low-end disaster recovery solutions. While DFS Replication works well over extremely low bandwidth networks, its latency is very high – often measured in hours or days. This is caused by its requirement for files to close and its artificial throttles meant to prevent network congestion. With those design characteristics, the newest and hottest files in a DFS Replication replica are the least likely to replicate. Storage Replica operates below the file level and has none of these restrictions.

Storage Replica also supports asynchronous replication for longer ranges and higher latency networks. Because it is not checkpoint-based, and instead continuously replicates, the delta of changes will tend to be far lower than snapshot-based products. Furthermore, Storage Replica operates at the partition layer and therefore replicates all VSS snapshots created by Windows Server or backup software; this allows use of application-consistent data snapshots for point in time recovery, especially unstructured user data replicated asynchronously.

The Setup I used two servers both domain joined, And there are different ways to configure the Storage Replica, the easy way and the 10 second way.

Diagram showing a server in Building 5 replicating with a server in Building 9

First we are installing the Storage replica feature and the File server Role.  The Storage replica feature needs a reboot.

image

Or use Powershell

install-WindowsFeature “Storage-Replica” –IncludeAllSubFeature

If you don’t know the module name you can find it easily

install-WindowsFeature "Storage-Replica" -IncludeAllSubFeature

A reboot is needed.

install-WindowsFeature "Storage-Replica" -IncludeAllSubFeature

Doing this server by server is not handy, So placing this together saves us some time.

$Servers = “Building-5”,”Building-9”

$Servers | ForEach { Install-WindowsFeature -ComputerName $_ -Name Storage-Replica,FS-FileServer -IncludeManagementTools -restart }

The –restart does an automatic restart if this is needed.

image

Storage Replica prerequisites

    • Active Directory Domain Services forest.
    • Storage Spaces with SAS JBODs, Storage Spaces Direct, fibre channel SAN, shared VHDX, iSCSI Target, or local SAS/SCSI/SATA storage. SSD or faster recommended for replication log drives. Microsoft recommends that the log storage be faster than the data storage. Log volumes must never be used for other workloads.
    • At least one Ethernet/TCP connection on each server for synchronous replication, but preferably RDMA.
    • At least 2GB of RAM and two cores per server. (with less memory the replication won’t start)
    • A network between servers with enough bandwidth to contain your IO write workload and an average of 5ms round trip latency or lower, for synchronous replication. Asynchronous replication does not have a latency recommendation.

As there is no Gui on the replica part we need to configure this by PowerShell or with the new Windows Admin Center

Both our servers had Two extra disks. One log and Data Disk.

image

image

    • You must create two volumes on each enclosure: one for data and one for logs.
    • Log and data disks must be initialized as GPT, not MBR.
    • The two data volumes must be of identical size.
    • The two log volumes should be of identical size.
    • All replicated data disks must have the same sector sizes.
    • All log disks must have the same sector sizes.
    • The log volumes should use flash-based storage, such as SSD. Microsoft recommends that the log storage be faster than the data storage. Log volumes must never be used for other workloads.
    • The data disks can use HDD, SSD, or a tiered combination and can use either mirrored or parity spaces or RAID 1 or 10, or RAID 5 or RAID 50.
    • The log volume must be at least 9GB by default and may be larger or smaller based on log requirements.
    • The File Server role is only necessary for Test-SRTopology to operate, as it opens the necessary firewall ports for testing.

As you can see there are some needs for the Replication As I show you below with the performance test why you need this.

First we are configuring the Disks on both servers. with some PowerShell commands but this can also be done with Disk manager.

Get-Disk | Where FriendlyName -eq ‘Msft Virtual Disk’

image

Get-Disk | Where FriendlyName -eq ‘Msft Virtual Disk’|Initialize-Disk -PartitionStyle GPT –PassThru

image

1..2 | % { Get-Disk $_ }| Where FriendlyName -eq ‘Msft Virtual Disk’|New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem ReFS -NewFileSystemLabel “SR01-disk” -Confirm:$false

image

I formatted the disk with ReFS and not with NTFS.

Now that the disks are in place we can start but before we start building the replica I want to make sure the connection and the network is fast and the server can deliver the performance we need.

Therefor I download a test tool Diskspd. https://aka.ms/diskspd

Important is that the network speed between the server is good as this is the life line for the storage replica. We can test the replication before the build things for real.

With this test tool we bring up a small load to test the server.

image

Using the Diskspd with the line below.

Diskspd.exe -c1g -d600 -W5 -C5 -b8k -t2 -o2 -r -w5 –i100 –j2 E:\test

Storage replica has a great test tool report. So with this we configure the test. Using Powershell

MD c:\temp 

Test-SRTopology -SourceComputerName “Building-5” -SourceVolumeName “e:” -SourceLogVolumeName “f:” -DestinationComputerName “Building-9” -DestinationVolumeName “e:” -DestinationLogVolumeName “f:” -DurationInMinutes 30 -ResultPath c:\Temp

#set output file
$outputfile=”$Env:TEMP”

Test-SRTopology -SourceComputerName “Building-5” -SourceVolumeName “e:” -SourceLogVolumeName “f:” -DestinationComputerName “Building-9” -DestinationVolumeName “e:” -DestinationLogVolumeName “f:” -IntervalInSeconds 5 -DurationInMinutes 30 -ResultPath $outputfile

#open output file
If (Test-Path $outputFile) { Invoke-Item $outputFile\TestSrTopologyReport.html } Else { Write-Host “FAILED: Output file not found: $url” -fore red }
Write-Host “Done” -ForegroundColor Cyan

imageimage

while running the Test-SRTopology  with the -DurationInMinutes 30  option we also run Diskspd.

Diskspd.exe -c1g -d600 -W5 -C5 -b8k -t2 -o2 -r -w5 –i100 –j2 E:\test

It is a 1 Gb file placed on our E drive that is our Data disk for replication.

imageimage

As you can see I have just one network adapter and no RDMA and in this config I hit the limit of the CPU and the network card max 4.4 Gbps not bad for a test config. (if you use a better machine in Azure Pick a Azure H-series those have RDMA

image

One CPU with 99% usage.

When the test is done the is a log file created  in    -ResultPath c:\Temp
Open the log file and detailed information is there about the test. this is why I choose 30 min duration.

image

Nice graph about the Data throughput, in this case not bad.

image

the Latency is always a issue this could change you from sync to async or more network adapters or better disks.  But for now it is good.

image

Log Volume Free Disk Space Test: The log volume F: in Building-5 has enough free space to hold the recommended log volume size of 8GB

Log Volume Free Disk Space Test: The log volume F: in Building-9 has enough free space to hold the recommended log volume size of 8GB

Storage replica has not that much PowerShell commands

#list all the commands
get-command *sr*

Setting up the actual replica is done with a long PowerShell command

The default log size is 8GB. Depending on the results of the Test-SRTopology cmdlet, you may decide to use -LogSizeInBytes with a higher or lower value.

New-SRPartnership -SourceComputerName “Building-5” –SourceRGName rg01 -SourceVolumeName “e:” -SourceLogVolumeName “f:” -DestinationComputerName “Building-9” –DestinationRGName rg02 -DestinationVolumeName “e:” -DestinationLogVolumeName “f:”

image

The default log size is 8GB. Depending on the results of the Test-SRTopology cmdlet, you may decide to use -LogSizeInBytes with a higher or lower value.

New-SRPartnership -SourceComputerName “Building-5” –SourceRGName rg01 -SourceVolumeName “e:” -SourceLogVolumeName “f:” -DestinationComputerName “Building-9” –DestinationRGName rg02 -DestinationVolumeName “e:” -DestinationLogVolumeName “f:” -LogSizeInBytes 1gb

image

here you can see the disk setup between both servers, the active side you can access the data disk, on the passive side the disk is not accessible.

Don’t place files on the Log disk.

To get replication source and destination state, use Get-SRGroup and Get-SRPartnership

Get-SRGroup

Get-SRGroup |fl *

image

Get-SRPartnership

image

(Get-SRGroup).replicas

image

This is just after the creation so no data yet for the last time in sync.

New-SRPartnership -SourceComputerName “Building-5” –SourceRGName rg01 -SourceVolumeName “e:” -SourceLogVolumeName “f:” -DestinationComputerName “Building-9” –DestinationRGName rg02 -DestinationVolumeName “e:” -DestinationLogVolumeName “f:”

For troubleshooting there are some events that you can check, go to the event viewer and check for the Storage replica events.

image

Or check the events with PowerShell

Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica -max 20

image

On the destination server, we can do the same or look for the events in the eventlog.

Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | Where-Object {$_.ID -eq “1215”} | fl

image

(Get-SRGroup).Replicas | Select-Object numofbytesremaining

There are also a lot of performance counters that can be viewed with PowerShell

Get-Counter -Counter “\Storage Replica Statistics(*)\Total Bytes Received”
Get-Counter -Counter “\Storage Replica Statistics(*)\Total Bytes Sent”
Get-Counter -Counter “\Storage Replica Statistics(*)\Avg. Network Send Latency”
Get-Counter -Counter “\Storage Replica Statistics(*)\Replication State”
Get-Counter -Counter “\Storage Replica Statistics(*)\Last Recovery Elapsed Time”
Get-Counter -Counter “\Storage Replica Partition I/O Statistics(*)\Number of times flush paused”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Flushed Recovery Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Recovery Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Flushed Replication Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Replication Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Messages Received”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Messages Sent”
Get-Counter -Counter “\Storage Replica Partition I/O Statistics(*)\Avg. App Write Latency”
Get-Counter -Counter “\Storage Replica Partition I/O Statistics(*)\Avg. App Read Latency”
Get-Counter -Counter “\Storage Replica Statistics(*)\Target RPO”
Get-Counter -Counter “\Storage Replica Statistics(*)\Current RPO”
Get-Counter -Counter “\Storage Replica Statistics(*)\Avg. Log Queue Length”
Get-Counter -Counter “\Storage Replica Statistics(*)\Current Log Queue Length”
Get-Counter -Counter “\Storage Replica Statistics(*)\Total Bytes Received”
Get-Counter -Counter “\Storage Replica Statistics(*)\Total Bytes Sent”
Get-Counter -Counter “\Storage Replica Statistics(*)\Avg. Network Send Latency”
Get-Counter -Counter “\Storage Replica Statistics(*)\Replication State”
Get-Counter -Counter “\Storage Replica Statistics(*)\Avg. Message Round Trip Latency”
Get-Counter -Counter “\Storage Replica Statistics(*)\Last Recovery Elapsed Time”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Flushed Recovery Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Recovery Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Flushed Replication Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Replication Transactions”
Get-Counter -Counter “\Storage Replica Statistics(*)\Max Log Sequence Number”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Messages Received”
Get-Counter -Counter “\Storage Replica Statistics(*)\Number of Messages Sent”

these counters look like this

image

To remove the Replication we run the following command :

Get-SRPartnership Get-SRPartnership | Remove-SRPartnership Get-SRGroup | Remove-SRGroup

Or change the direction of the replication just run the PowerShell command

#move the replication direction from one site, use the

Set-SRPartnership -NewSourceComputerName “Building-9” -SourceRGName rg02 -DestinationComputerName “Building-5” -DestinationRGName rg01

Why not use Windows Admin Center ?

But all this PowerShell my fear you on using this. Good news than when using Windows Admin Center

Windows Admin Center is a locally deployed, browser-based app for managing servers, clusters, hyper-converged infrastructure, and Windows 10 PCs. It comes at no additional cost beyond Windows and is ready to use in production.

Get it here

When opening the Source Storage Replica server you will see a quick over view of you configuration

image

Easy switch replication direction.

imageimage

Notifications on the preformed actions

image

With an overview of the current configuration.

But the best part of Windows Admin Center is creating a new Replica. I removed the old replica and create a new one with the WAC.

Fill in the source and destination and your done.

imageimageimage

With the Admin center you got a GUI wrapper for creating the Storage replica, No PowerShell needed

image

So removing the replication or in case one server is dead.

Normaly you would do

Get-SRPartnership | Remove-SRPartnership –confirm:$false

this removes the replication and both locations will show the Data.

But if source server is no longer there this will not work

Remove-SRPartnership –Name RG02 -IgnoreRemovalFailure so that it breaks the partnership completely

Remove-SRPartnership [[-SourceComputerName] <String>] [-SourceRGName] <String> [-DestinationComputerName] <String> [-DestinationRGName] <String> [-IgnoreRemovalFailure] [-Force] [-CimSession <CimSession[]>] [-ThrottleLimit <Int32>] [-AsJob] [-WhatIf] [-Confirm] [<CommonParameters>]

here is the source link

https://docs.microsoft.com/en-us/powershell/module/storagereplica/remove-srpartnership?view=win10-ps

Clear-SRMetadata Removes unreferenced Storage Replica metadata.

There are more options in Windows Admin Center that could be useful to you just try it.

And if you want to use file replication to Azure take a look at the Azure File Sync https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction

Step by Step Azure File Sync – on-premises file servers to #Azure Files Storage Sync Service

https://robertsmit.wordpress.com/2017/09/28/step-by-step-azure-file-sync-on-premises-file-servers-to-azure-files-storage-sync-service-afs-cloud-msignite/

Follow Me on Twitter @ClusterMVP

Follow My blog https://robertsmit.wordpress.com

Linkedin Profile Robert Smit MVP Linkedin profile

Google  : Robert Smit MVP profile

Author: Robert Smit [MVP]

Robert Smit is Senior Technical Evangelist and is a current Microsoft MVP in Clustering as of 2009. Robert has over 20 years experience in IT with experience in the educational, health-care and finance industries. Robert’s past IT experience in the trenches of IT gives him the knowledge and insight that allows him to communicate effectively with IT professionals who are trying to address real concerns around business continuity, disaster recovery and regulatory compliance issues. Robert holds the following certifications: MCT - Microsoft Certified Trainer, MCTS - Windows Server Virtualization, MCSE, MCSA and MCPS. He is an active participant in the Microsoft newsgroup community and is currently focused on Hyper-V, Failover Clustering, SQL Server, Azure and all things related to Cloud Computing and Infrastructure Optimalization. Follow Robert on Twitter @ClusterMVP Or follow his blog https://robertsmit.wordpress.com Linkedin Profile Http://nl.linkedin.com/in/robertsmit Robert is also capable of transferring his knowledge to others which is a rare feature in the field of IT. He makes a point of not only solving issues but also of giving on the job training of his colleagues. A customer says " Robert has been a big influence on our technical staff and I have to come to know him as a brilliant specialist concerning Microsoft Products. He was Capable with his in-depth knowledge of Microsoft products to troubleshoot problems and develop our infrastructure to a higher level. I would certainly hire him again in the future. " Details of the Recommendation: "I have been coordinating with Robert implementing a very complex system. Although he was primarily a Microsoft infrastructure specialist; he was able to understand and debug .Net based complext Windows applications and websites. His input to improve performance of applications proved very helpful for the success of our project

54 thoughts on “Step by Step Server-to-server storage replication with Windows Server 2019 Storage Replica #WindowsAdminCenter #StorageReplica #WindowsServer2019 #ReFS #SR #Azure”

  1. Hi,
    Yes SR is replication blocks from one location to the other. it is fast and Synchronous replication mirrors data on low-latency high-bandwidth networks to ensure zero data loss at the file-system level in the case of a failure,asynchronous replication which is designed for use across high-latency networks.
    DFS is provision namespaces to access files without needing to know their physical location.DFS Replication was designed for use over low-bandwidth networks. DFS-R also requires that files be closed before they can be replicated.
    Storage Replica works at block-level, it can replicate open files.It replicates all VSS snapshots, enabling administrators to run application-aware, point-in-time restore operations using backups created by Windows Backup or third-party backup solutions that use Microsoft’s APIs.

    But if you want to have multiple locations and access to the files maybe Azure file sync it the right solution.
    https://robertsmit.wordpress.com/2017/09/28/step-by-step-azure-file-sync-on-premises-file-servers-to-azure-files-storage-sync-service-afs-cloud-msignite/

  2. creates a replication but this error occurs.

    New-SRPartnership : Unable to synchronize replication group rgteste2, detailed reason: Cannot update state for replication group rgteste2 in the Storage Replica driver.
    At line:1 char:1
    + New-SRPartnership -SourceComputerName SR1 -SourceRGName rgteste1 -Sou …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (MSFT_WvrAdminTasks:root/Microsoft/…T_WvrAdminTasks) [New-SRPartnership], CimException
    + FullyQualifiedErrorId : Windows System Error 1395,New-SRPartnership

    Can anyone tell me why this error?

    Att. Gabriel Luiz

  3. Hi,

    did you test the replica ? before you create this.
    Test-SRTopology -SourceComputerName “Building-5” -SourceVolumeName “e:” -SourceLogVolumeName “f:” -DestinationComputerName “Building-9” -DestinationVolumeName “e:” -DestinationLogVolumeName “f:” -DurationInMinutes 30 -ResultPath c:\Temp

    and did you follow the blog post or is your configuration different ?

  4. I followed my setup. Test-SRTopology has resulted in everything ok.

    Create the same commit in Windows Server 2016 did not give any error.

  5. I have a doubt, if in case the server “Building-5” suffers a disaster. What command should I perform to access from disk on the “Building-6” server until the “Building-5” server is repaired?

  6. with the set-srpartnership you can reverse the replication. the partner will become active. you can do this with windows Admin Center or with powershell on the other node
    Set-SRPartnership -NewSourceComputerName “Building-6” -SourceRGName rg02 -DestinationComputerName “Building-5” -DestinationRGName rg01

  7. How do I execute this Set-SRPartnership command, which completely loses communication with the Building-5 server?

  8. Hi, when running the Test-SRTopology from one of the nodes i get “The specified volume cannot be found on computer”. I checked the know issue, but no luck. Any idea?

  9. SR is now available on Windows Server 2019 Preview Standard Edition, not just on Datacenter Edition. When installed on servers running Standard Edition, SR has the following limitations:
    SR replicates a single volume instead of an unlimited number of volumes.
    Servers can have one partnership instead of an unlimited number of partners.
    Volume size limited to 2 TB instead of an unlimited size.

    https://docs.microsoft.com/en-us/powershell/module/storagereplica/set-srpartnership?view=win10-ps

  10. so for the 2016 it should look like something

    Test-SRTopology -SourceComputerName “SR-SRV05” -SourceVolumeName “D:” -SourceLogVolumeName “E:” -DestinationComputerName “SR-SRV06” -DestinationVolumeName “D:” -DestinationLogVolumeName “E:” -DurationInMinutes 10 -ResultPath “C:\temp”

    In the commands in 2019 and 2016 maybe a bit different.

    https://docs.microsoft.com/en-us/powershell/module/storagereplica/test-srtopology?view=win10-ps

  11. Two questions.
    #1 – Is anyone else getting errors for Element IsMounted not found when doing the switch to the new destination? The failover switch still goes though but this error is quite deceiving. Has anyone figured out a way to get around this error
    #2 – How can you switch the file drives in replica to a new source if the one that was primary goes offline? The commands for Set-SRPartnership will fail if one of the servers is actually offline, like you know in a real disaster. How can we get around this issue?

  12. I have the same question as Victor. This is the error i get when i run set-srpartnership.

    Set-SRPartnership -NewSourceComputerName “drserver” -SourceRGName “rg02” -DestinationComputerName “prodserver” -DestinationRGName “rg01”

    I get the following error:

    Set-SRPartnership : There is no partnership between source replication group rg02 and destination replication group
    rg01. Please check that partnership has been removed from all computers.

  13. Good Question As the source is no longer there you need to remove the replica, both servers are showing the files than.
    Get-SRPartnership | Remove-SRPartnership –confirm:$false
    Remove-SRGroup –Name RG02

    this is not needed if you do de failover when the machines are alive.

  14. Good Question As the source is no longer there you need to remove the replica, both servers are showing the files than.
    Get-SRPartnership | Remove-SRPartnership –confirm:$false
    Remove-SRGroup –Name RG02

    If the server goes planned down the move the replica first. Unplanned and you need the files just remove the replica and set this up later again.

  15. Thanks for your reply Robert. I’ve tried running the first command and got this error:

    Remove-SRPartnership : Failed to find replication group rg01 on machine prodserver.
    At line:1 char:21
    + Get-SRPartnership | Remove-SRPartnership -confirm:$false
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (MSFT_WvrAdminTasks:root/Microsoft/…T_WvrAdminTasks) [Remove-SRPartnersh
    ip], CimException
    + FullyQualifiedErrorId : MI RESULT 1,Remove-SRPartnership

    The prodserver is completely offline right now to simulate the failover.

  16. Found the answer – when using the remove-srpartnership, use the parameter for -ignoreremovalfailure so that it breaks the partnership completely.

  17. Thank you for the article.
    Are there any examples where you would potentially have a cluster-to-server storage replica?
    For example if I have a WSFC with the file server role, can I setup a storage replica to a server in a DR site always from the active cluster node?

  18. I found my answer:

    Test-SRTopology : Standalone server to cluster replication and the reverse is not supported by Storage Replica
    At line:1 char:1

  19. Has anyone managed to get this working between a VMware VM and Azure? Keeps telling me that the sector sizes are different.

  20. Hi, you mean vmware on prem and Azure ? unless you have express route this is not gona work, as most internet lines are to slow and have to much latency. But on premise between two Datacenter this works perfectly. even on vmware.
    Sector size is no issue unless you are running an real old version then you need to set the offset, in a Modern config it works.

  21. Hi Paul,

    did you use the Test-SRTopology and what was the result ? and what are the errors ? what kind of storage is attached ? are you running Vm’s on vmware ?

  22. Hey Robert,

    thanks for this great how to but one question, is it possible from s2d 2016 to s2d 2019 replica? thanks in advance

  23. Does Test-SRTopology work after storage replica with stretch cluster has been created and the volumes added to a cluster role?
    I have a two node cluster and am getting errors that the tool cannot see volumes on the secondary server.
    it is usual not to see the volumes because it is a cluster

    Test-SRTopology -SourceComputerName “SVR-SOURCE” -SourceVolumeName “E:” -SourceLogVolumeName “F:” -DestinationComputerName “SVR-DEST” -DestinationVolumeName “E:” -DestinationLogVolumeName “F:” -DurationInMinutes 1 -ResultPath “C:\temp” -IgnorePerfTests
    Test-SRTopology : The specified volume E: cannot be found on computer SVR-DEST. If this is a cluster node, the volume must be part of a role or CSV; volumes in Available Storage are not accessible

  24. The Problem of “The specific object was not found on the computer”has been listed as problem in more than one place including this blog with no solution.

    In my case the error is shown below.
    PS C:\WINDOWS\system32> Test-SRtopology -SourceComputerName Server1 -SourceVolumeName H: -SourceLogVolumeName G: -DestinationComputerName Server2 -DestinationVolumeName H: -DestinationLogVolumeName G: -DurationinMinutes 1 -Res
    ultPath c:\temp
    Validating data and log volumes…
    Measuring Storage Replica recovery and initial synchronization performance…
    WARNING: PdhAddEnglishCounter: “\\Server2\LogicalDisk(H:)\Disk Write Bytes/sec”. The specified object was not found on the computer.
    WARNING: Microsoft.FileServices.SR.Powershell.SrNativePerfCounterHelper+PdhException
    WARNING: at Microsoft.FileServices.SR.Powershell.SrNativePerfCounterHelper..ctor(String CounterPath)
    at Microsoft.FileServices.SR.Powershell.Utilities.CollectDiskPerfCounters(String ComputerName, String VolumePath, UInt32 DurationInSeconds, UInt32 IntervalInSeconds, String CounterName, String OutputFileName, Boolean IsCSV) at Microsoft.FileServices.SR.Powershell.TestSRTopologyCommand.c__DisplayClass75_0.b__1() at System.Threading.Tasks.Task.Execute()
    Test-SRtopology : PdhAddEnglishCounter: “\\Server2\LogicalDisk(H:)\Disk Write Bytes/sec”. The specified object was not found on the computer.
    At line:1 char:1
    + Test-SRtopology -SourceComputerName Server1 -SourceVolumeName …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (:) [Test-SRTopology], PdhException
    + FullyQualifiedErrorId : TestSRTopologyFailure,Microsoft.FileServices.SR.Powershell.TestSRTopologyCommand

    WARNING: PdhAddEnglishCounter: “\\Server2\LogicalDisk(H:)\Disk Write Bytes/sec”. The specified object was not found on the computer.
    WARNING: Microsoft.FileServices.SR.Powershell.SrNativePerfCounterHelper+PdhException
    WARNING: at Microsoft.FileServices.SR.Powershell.SrNativePerfCounterHelper..ctor(String CounterPath)
    at Microsoft.FileServices.SR.Powershell.Utilities.GetAvgDiskThroughput(String ComputerName, String Counter, String
    VolumeName, UInt32 DurationInSecond, UInt32 IntervalInSeconds, Boolean IsCSV)
    at Microsoft.FileServices.SR.Powershell.TestSRTopologyCommand.c__DisplayClass75_0.b__2()
    at System.Threading.Tasks.Task.Execute()
    Test-SRtopology : PdhAddEnglishCounter: “\\Server2\LogicalDisk(H:)\Disk Write Bytes/sec”. The specified object
    was not found on the computer.
    At line:1 char:1
    + Test-SRtopology -SourceComputerName Server1 -SourceVolumeName …

    This is a case of two Windows Server 2019 standard servers.

    When I first tried the Test-SRtopology complaint was the data volumes were not the correct size. I thought volumes complaint was due that the disk size was greater that limit of 2TB. At that point, the volumes appear acceptable because the Volume Available Test:s all pass.

    However, once I trimmed down the data volumes to 2TB, now the volume can not be found.

    I was told that the volume letters should be the same on each server but making the volume letters the same did not seem to help.

    You formatted with ReFS and not with NTDS. Does that mean the NTDS does not work? The production server is formatted NTDS.

    You set up using a whole disk as a volume. Does this not work with volume occupying a part of a disk?

    You are also using quotes around volume and server name. I am not getting a difference whether or not I use quotes.

  25. Hi Thanks for visiting my blog.
    SR is a nice option in Windows server 2019 and if you want an easy setup there is also an option in Windows Admin center https://www.youtube.com/watch?v=dYil_i9JSJE or https://www.microsoft.com/en-us/evalcenter/evaluate-windows-admin-center

    but yes it works on a disk and not on a volume, so what I did was create a vhdx file and this is attached to a server both disks have the same size. If you run the latest version of Windows server 2019 1809 then both will work ntfs and refs. I used refs as the format was quicker. the Quotes should not matter us less there is a space in the name. regarding the drive letters if you don’t use the same drive letters the application will not get the disk. as this is now a different drive letter. The blog post is valid and should work. there where more users that had issues with SR

    I would suggest setup Windows Admin center and see if this will help you. but make sure your disks are at the same size! https://www.microsoft.com/en-us/evalcenter/evaluate-windows-admin-center

  26. “I would suggest setup Windows Admin center and see if this will help you. but make sure your disks are at the same size! https://www.microsoft.com/en-us/evalcenter/evaluate-windows-admin-center” Windows Admin Center is currently installed on a Windows 10 computer. Yes, I have put in the disk mismatched size by factor of 10 and the TEST-SRTopology does pick that up.

    I had started with Windows Admin Center and that gives the same type of error as does the Test-SRTopology (Can not find a volume) . It was suggested to use the Test-SRTopogy to help determine the problem. I do not get same clean results as shown on https://www.youtube.com/watch?v=dYil_i9JSJE or https://docs.microsoft.com/en-us/windows-server/storage/storage-replica/server-to-server-storage-replication videos. Neither video gives any clue of the setup.
    Do you have any links when things go wrong?

    https://docs.microsoft.com/en-us/windows-server/storage/storage-replica/server-to-server-storage-replication gives prerequisites

    Active Directory Domain Services forest (doesn’t need to run Windows Server 2016).
    Have Active Directory Domain Services.

    Two servers running Windows Server 2019 or Windows Server 2016, Datacenter Edition. If you’re running Windows Server 2019, you can instead use Standard Edition if you’re OK replicating only a single volume up to 2 TB in size.
    Have two Windows Server 2019 Standard. Is the 2TB a hard limit? If I use the 3TB as I originally did, what problem would I see?

    Each set of storage must allow creation of at least two virtual disks, one for replicated data and one for logs. The physical storage must have the same sector sizes on all the data disks. The physical storage must have the same sector sizes on all the log disks.
    As written this requirement suggests that the Storage Replica will create the virtual disks. I wonder if the requirement is that the virtual disks have to be created before the Storage Replica operation. I have to created virtual disk first using something like Hyper-V and the problem is I am using physical disks that the Storage Replica does not support. I do remember seeing on the Internet demonstration showing the virtual disks created first.

    At least one ethernet/TCP connection on each server for synchronous replication, but preferably RDMA.
    Do I read into this requirement to preferably use Hyper-V?

    Appropriate firewall and router rules to allow ICMP, SMB (port 445, plus 5445 for SMB Direct) and WS-MAN (port 5985) bi-directional traffic between all nodes.
    If there is a communication problem what would I see?

    A network between servers with enough bandwidth to contain your IO write workload and an average of =5ms round trip latency, for synchronous replication. Asynchronous replication doesn’t have a latency recommendation.
    This synchronous is on 1G network.

    If you’re replicating between on-premises servers and Azure VMs, you must create a network link between the on-premises servers and the Azure VMs. To do so, use Express Route, a Site-to-Site VPN gateway connection, or install VPN software in your Azure VMs to connect them with your on-premises network.
    Azure is not used.

    The replicated storage cannot be located on the drive containing the Windows operating system folder.
    I read this to mean the data storage can not be located on the same drive as Windows operating system but that requirement allows the log storage to be on the same drive as Windows operating system.

  27. I am running Windows Server 2019 1809. The drive letters do match currently. I tried taking Flash USB devices formatted with GPT and NTDS.

  28. I do not know what triggered the post to go to the moderator or if the post will ever be released. I will try reposting parts.

    I had started with Windows Admin Center and that gives the same type of error as does the Test-SRTopology (Can not find a volume) . It was suggested to use the Test-SRTopogy to help determine the problem. I do not get same clean results as shown on https://www.youtube.com/watch?v=dYil_i9JSJE or https://docs.microsoft.com/en-us/windows-server/storage/storage-replica/server-to-server-storage-replication videos. Neither video gives any clue of the setup.

  29. Hi thank you for your excellent article. I don’t understand how is managed the client access ?
    With DFS is the namespace, with Storageréplicat?

    Thank

  30. Hi, good description and I followed all but I still have an issue. Test-SRTopology is running ok, so the start is ok. But when I try to create e new partnership or a new replication group I do get the following error:
    PS C:\Windows\system32> New-SRGroup -ComputerName “server01” -Name “RG01” -VolumeName “F:” -LogVolumeName “L:”
    New-SRGroup : Unable to create replication group RG01, detailed reason: The requested object could not be found.
    At line:1 char:1
    + New-SRGroup -ComputerName “ams3saw201” -Name “RG01” -VolumeName “F:” …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (MSFT_WvrAdminTasks:root/Microsoft/…T_WvrAdminTasks) [New-SRGroup], Ci
    mException
    + FullyQualifiedErrorId : MI RESULT 6,New-SRGroup
    I have tried it via PowerShell, FCM and WAC but all end up in the same error.

  31. HI Arjan, I think it has something to do with the disk or size. this needs to be the same and not around the same but 100% the same. Also you could try to wipe the disks. as the provided scripts works did also demo’s with this. let me know how it is going

  32. Hi Robert,

    Thanks for your feedback. After returning from holidays I had a look at the issue again and I finally found that a registry key ConfigStore was missing under HKLM\Cluster\WVR. After adding the key everything went fine (so far).

    Kind regards,

    Arjan de Mol
    Teamleader Application Technology

  33. I am using Windows 2019 Standard. The Test-SRTopology -SourceComputerName DFS-Test-01 -SourceVolumeName f: -SourceLogVolumeName g: -DestinationComputerName DFS-Test02 -DestinationVolumeName “f:” -DestinationLogVolumeName “g:” -DurationInMinutes 5 -ResultPath c:\Temp

    Worked Well.
    Then I Removed the Partnership and the SRGroup
    Then I deleted from the Registery: omputer > HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ConfigStore\ in SourceServer and DestinationServer **
    ==

    When I am creating a New-SRPartnerhip I am getting an error message.
    New-SRPartnership : Unable to create replication group rg01, detailed reason: Failed to provision partition 9c26…. at line:1 char:1.

    Then I noticed that Disk G was not accessible. Then I removed and readded. But still getting the same error.

    Your help will be appreciated. Thanks.

  34. Many Thanks Robert. I followed your advice. That did not work. Then I reinstalled with Windows 2019 DataCenter and it worked in the Powershell Script. Bravo!

    ============================================================================================================

    However, when I create using Windows Admin Center (WAC) I am getting an error message: ERROR: Cannot read property ‘pipe’ of null

    I tried from various servers and reformatted the Hard Disks too. but still getting the same message. Would appreciate your advise.

  35. Hi,
    All issues with replications has always to do with the disks. Important is to clean the disks remove partition etc make sure there are no “leftovers” on the disk as an format is not cleaning the disk. run Clear-SRMetadata -AllPartitions To remove all orphaned Storage Replica partition databases slots and remount all partitions. To remove all orphaned Storage Replica log data Clear-SRMetadata -AllLogs or Clear-SRMetadata -Name RG01 -Logs -Partition
    Hope this helps. let me know

  36. Thanks you Robert for your reply. I tried exactly what you told me. Additionally, I created 2 new Windows 2019 Servers. The CLI Storage Replica works fine. But the problem is when I am using WAC (Windows Admin Center) latest version 2009. It is able to see both the servers and the volumes. The moment I click on “Create” I get this error: Replicate with another server Error: Cannot read property ‘pipe’ of null. I have tried total of 6 servers in the domain. I disabled the firewalls too. All the servers are giving the same message. Any advise will be appreciated. Kind regards.

  37. Get-Disk | Where FriendlyName -eq ‘Msft Virtual Disk’ |Clear-Disk -RemoveData -Confirm this could help to clean out the data on the disk. BUT first do a Get-Disk | Where FriendlyName -eq ‘Msft Virtual Disk’ to see it select only the disks you want else other disk wil also be wiped!

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.