Azure File Sync–Otimizando seu File Server e Storage

Duas aplicações mais consomem storage em ambientes de TI:

  • Banco de dados – Por conterem dados analiticos e indexados podemos utilizar tecnicas de drill down para separar os dados analiticos dos dados resumidos facilitando o acesso e otimizando custos
  • File Server – Ao longo dos anos as empresas acumulam milhares de arquivos, o que custa caro e raramente é agrupado ou tierizado

Tierização: Tecnologia onde os dados são separados conforme regras de performance em discos mais caros ou mais baratos. Por exemplo, arquivos pouco usados ficam em discos SATA, arquivos com acesso ocasional em discos SAS e arquivos que são acessados diariamente em discos SSD.

Vamos abordar como utilizar o Azure File Sync para criar uma tierização dos dados em um File Server para permitir que arquivos mais acessados fiquem localmente guardados e os mais antigos apenas em nuvem.

Cenários Frequentes

O primeiro cenário é o de diminuir o tamanho total de espaço ocupado por arquivos antigos.

Nesse caso utilizamos as configurações de data do arquivo e espaço livre desejado para diminuir o espaço em disco que o File Server ocupa, liberando para uso com outras necessidades.

O segundo cenário é servidor de arquivos distribuidos, onde em cada filial da empresa é necessário ter um servidor para acessar os dados.

Nesse exemplo todos os servidores replicam a mesma pasta, o que não cria problemas de saturação local, já que o cache é apenas dos arquivos recentes e controlado pelo percentual desejado de espaço livre a ser mantido.

Componentes do Azure File Sync

  1. Storage Account – Um storage virtual onde os dados serão armazenados
  2. File Share no Storage Account – Pasta dentro do Storage Account para receber os arquivos que serão enviados
  3. Azure File Sync Service no Market Place – É o serviço e deve ser habilitado, diferente de outros serviços nativos. Porem, apesar de estar no Market Place o AFS não tem um custo, trata-se apenas da inclusão de um serviço
  4. File Sync Service – É o serviço no painel do Azure onde podemos criar os grupos, incluir os servidores e configurar storage
  5. Registered Services (servidores) – São os servidores que serão sincronizados, onde os arquivos estão armazenados e servirão de cache
  6. Sync Group – Forma a lista de servidores que irá receber a cópia dos arquivos a serem copiados e dar acesso aos arquivos em qualquer localidade

Criando um Storage

Esse é o primeiro passo e bem conhecido de quem já utiliza o Azure, uma vez que para tudo precisamos de um storage.

armazenamento

Para usar o AFS não é necessário qualquer configuração adicional, você poderá escolher qual região, tipo de storage e replicação que melhor se aplique ao seu ambiente. Obviamente algumas coisas precisam ser levadas em conta:

  • O tipo de conta envolve a performance maxima e irá afetar tanto o download quanto upload quando os usuários utilizam os arquivos
  • Replicação é importante se você terá servidores em várias localidades/paises
  • Camada Hot or Cold envolve a performance diretamente e tambem o custo, já que o acesso é bem lento em discos Cold e não recomendaria para uma solução como essa

Na sequencia é necessário criar o File Share para onde os arquivos irão quando sincronizados, e o conceito é o mesmo de um servidor comum:

compartilhamento

Quando sincronizado, os arquivos irão aparecer primeiro na pasta Sincronization e depois na pasta principal como podemos ver abaixo.

syncstaging

Files Sync

Lembrando que as duas telas acima se referem a sincronização já finalizada, a primeira para ver os arquivos sendo copiados e a segunda quando a primeira sincronização já finalizou.

Habilitando o Azure File Sync

Procure no Marketplace pelo Azure File Sync ou Serviço de Sincronização do Azure em portugues:

mktplace

mktplace-2

Nesse momento pode-se optar por utilizar um Resource Group existente ou um novo, não importando em qual Resource Group o Storage foi criado, uma vez que ele pode ter varios outros serviços atribuidos.

Criando o Serviço de Sincronização

A criação do grupo de sincronização é bem simples, bastante indicar a assinatura, storage e a pasta compartilhada definida anteriormente.

Servico

grupo sincronizacao

Registrando Servidores de Arquivos

Você poderá indicar servidores:

  • Novos servidores que não tenham arquivos e incluí-los em um grupo já sincronizado para que ele sirva de cache dos arquivos que já estão na pasta compartilhada do Storage no Azure
  • Servidor com dados onde o conteudo será copiado para o Azure e acrescentado

O primeiro passo é instalar as bibliotecas PowerShell do Azure (AZ) no servidor, o que pode ser feito seguindo os passos na página https://docs.microsoft.com/pt-br/powershell/azure/install-az-ps?view=azps-2.6.0&wt.mc_id=4029139

Após ter o Azure CLI instalado, baixe e instale o Agente de Sincronização que é muito simples de ser feito.

AZFAgente

registerserver

Após isso, já será possivel ver o servidor no painel do Azure:

serverregistrado

Nesse passo não é necessário configurações nem qualquer definição adicional, já que se trata de uma operação simples de agente.

Criando o Endpoint (Servidores Cache)

Aqui é onde realmente criamos o serviço e vemos a mágica acontecer!

Entrando dentro do grupo de sincronização que criamos anteriormente e usar a opção Adicionar ponto de extremidade ou Add Endpoint para incluir o servidor no grupo que criamos.

Extremidade

Vamos ver as opções que estão listadas:

  1. Caminho – É o diretório que queremos que fique sincronizado, lembrando que se estiver vazio para um grupo já existente ele irá baixar o conteudo conforme for sendo utilizado. Se for um servidor que já contem arquivos, esses serão carregadso para o Azure.
    Importante: Não é possivel usar a unidade root (C:) e sim um disca parte por conta dos arquivos de sistema.
  2. Percentual livre no volume – Não definimos quanto irá ser usado para cache e sim quanto de espaço no volume deverá ficar livre. Pode parecer um calculo invertido mas não é por conta de outros arquivos que o mesmo disco contenha. Por exemplo, se o volume é de 100GB e contem outros arquivos totalizando 40GB e definirmos que queremos deixar 50% do disco livre, apenas 10GB será usado pelo cache (50% de 100GB=50GB sempre livre) e conforme o uso de outros arquivos aumentar que não sejam sincronizados, menos irá ter espaço para o cache.
    Dica: Por conta dessa dificuldade, prefira utilizar um volume dedicado para fazer o File Sync
  3. Cache apenas de arquivos acessados ou modificados a x dias – Vimos que temos a opção de preservar um percentual do disco. Mas e se arquivos antigos ocupam muito espaço não irá adiantar muito. Nesse caso do meu exemplo qualquer arquivo com mais de 60 dias irá automaticamente para o Azure e será deletado no disco do servidor, ganhando espaço livre mesmo que o percentual de cache ainda esteja disponivel.

Painel

Ao finalizar essa configuração já é possivel acompanhar a sincronização clicando no servidor:

Server sync

Assim que sincronizado, podemos usar os paineis de metricas abaixo da tela para criar alertas quando ocorrerem erros ou distorções:

Metricas

No meu exemplo posso utilizar uma regra que se o numero de arquivos sincronizados for maior que 100 para upload no intervalo de 15 minutos pode ser uma alteração em massa causada por uma cópia indevida ou mesmo um malware.