Como configurar replicação DFSR com PowerShell

Olá amigos, tudo bem?

Recentemente me deparei com um problema na replicação do Windows Server 2012 R2 aonde no momento de criar um grupo de replicação ocorria o erro: “Value does not fall within the expected range”.  Este erro ocoria  no momento de selecionar os servidores que seriam utilizados na replicação.

Mas esse erro não será o tema abordado desta postagem, mas sim como foi feito para contornar esse problema de forma rápida para recriar a replicação.

Sempre é bom ter um diagrama bem definido de como sua replicação está configurada, segue um exemplo:

 

Configurar um grupo de replicação:

Conforme abaixo estamos primeiramente criando o grupo techpoligroup, informando que o nome da pasta a ser replicada será a pasta publico, e por ultimo informaremos o nome dos servidores que vao fazer parte da replicação,srv01 e srv02.

New-DfsReplicationGroup -GroupName techpoligroup | New-DfsReplicatedFolder -FolderName publico | Add-DfsrMember -ComputerName srv01,srv02

Definir conexões e associação:

Neste exemplo, vou configurar a replicação bidirecional entre os dois servidores de arquivos do grupo. Será criado uma parceria lógica entre os computadores de origem e de destino. As parcerias são sempre bidirecionais, a menos que o parâmetro -CreateOneWay seja especificado.

Add-DfsrConnection -GroupName techpoligroup -SourceComputerName srv01 -DestinationComputerName srv02

Definir diretórios da replicação:

Finalmente, ativarei a replicação para as pastas em ambos os servidores usando o cmdlet Set-DfsrMembership, definindo o parâmetro -PrimaryMember como $ true para srv01. Um servidor deve ser designado como o membro primário para cada grupo.

Set-DfsrMembership -GroupName techpoligroup -FolderName accounts -ComputerName srv01 -ContentPath ’C:\shares\publico’ –PrimaryMember $true
Set-DfsrMembership -GroupName techpoligroup -FolderName accounts -ComputerName srv02 -ContentPath ’C:\shares\publico’

Bom amigos, qualquer problema estou a disposição.

Continue Reading

Como determinar o tamanho mínimo de Quota para o Staging DFSR

Olá amigos, gostaria de compartilhar uma dica importante que acabei me deparando enquanto realizava a configuração de alguns servidores de arquivo. Durante a configuração de um ambiente de alta disponibilidade foi necessária a configuração do DFSR: (Distributed File System Replication), e tive vários problemas de replicação desde lentidão e até mesmo a não sincronização de diretórios. Pesquisando um pouco mais vi que a configuração de quota do staging deve estar bem configurada, caso contrario pode ocasionar problemas de performance na replicação.

Encontrei este artigo que trás a fórmula para o cálculo da quota do staging:

How to Determine the Minimum Staging Area DFSR Needs for a Replicated Folder

O artigo mostra que, somamos o tamanho dos maiores arquivos da pasta que será replicada e dividimos o resultado por 1 gigabyte. Porem a quantidade de arquivos a serem somados varia de acordo com a versão do Windows Server

  • Windows Server 2003 R2: 9 arquivos
  • Windows Server 2008 e 2008 R2: 32 arquivos

O artigo apenas fala das versões acima, porem durante minhas pesquisas não encontrei diferença para as versões abaixo:

  • Windows Server 2012 R2: 32 arquivos
  • Windows Server 2016: 32 arquivos

Nota: A replicação que configurei foi realizada entre 3 sites diferentes ambos com Windows Server 2012 R2 Standard somando o total de 4TB, levando em consideração a recomendação de calculo de 32 arquivos .
Os comandos a abaixo, devem ser executados dentro do ambiente do PowerShell com privilegio elevado.

Para somar o tamanho dos maiores arquivos, utilizamos o seguinte comando:

$big32 = Get-ChildItem c:\temp -recurse | Sort-Object length -descending | select-object -first 32 | measure-object -property length –sum

Mudamos a pasta c:\temp pela sua pasta de replicação. Note que foi passado o parâmetro -first 32 que indica que este comando está sendo executado em um computador rodando o Windows Server 2008 ou superior.

Será necessário aguardar a execução do comando que depende do tamanho da pasta cauculada. Então, divida o valor obtido por 1 gigabyte com o seguinte comando:

$big32.sum / 1gb

Do valor obtido, arredonde a parte fracionada para cima.Exemplo, se o valor obtido foi 19,8 arredonde para 20.

Basta agora multiplicar o valor obtido por 1024 e digitar o resultado no campo Quota da guia Staging na janela de Propriedades.

Qualquer duvida ou problema só avisar.

Abraços

Continue Reading

How to Create a Storage Pool with PowerShell

The three things that are required are:
The storage pool name
Which disks to use to create the pool?
The storage subsystem (Storage Spaces)

The cmdlet we use to create the storage pool is New-StoragePool. While the only
The name of the storage pool will be passed through the “FriendlyName” parameter.

The disks to create the storage pool on will be passed into the New-StoragePool in the “PhysicalDisks” parameter. Which are either pooled, or can be made even easier using the “-IsPooled” parameter (which will either provide all of the disks that are already pooled, or if set to false will all return
The Get-PhysicalDisk cmdlet can be run as part of the -PhysicalDisk parameter, or can be run previously and the results stored in a variable. If creating a script that will be reused, it’s advisable to use a variable, so that it is easier to read and understand.

Code below:

$s=Get-StorageSubSystem

$disk=Get-PhysicalDisk -FriendlyName PhysicalDisk16

New-StoragePool -FriendlyName Pool1 -StorageSubSystemUniqueId $s.UniqueId -PhysicalDisks $disk

That is all that is needed to create a basic storage pool. However, these optional parameters for New-StoragePool may provide some benefit.

Continue Reading