Logs de transação do SQL Server na nuvem

8

É uma prática comum colocar os logs de transações ( *.ldf) em um sistema de disco físico separado dos arquivos de banco de dados ( *.mdf, *.ndf).

Em um ambiente em nuvem de máquina virtual, é permitido colocar os logs de transações na mesma letra de unidade que os outros arquivos de dados? Como isso geralmente é tratado nos ambientes populares de máquinas virtuais em nuvem atuais.

NOTA: Não usando o SQL Azure. Usando uma máquina virtual Windows com acesso total.

Jason Kresowaty
fonte
11
Se você está falando do Azure, não acho que tenha realmente nenhum controle sobre o posicionamento dos arquivos ou mesmo a visibilidade do sistema de disco subjacente. Dito isso, acho que não seria muito inteligente da Microsoft violar as práticas recomendadas e colocar dados e arquivos de log no mesmo disco, especialmente considerando a sobrecarga adicional de gravação inerente à plataforma.
Aaron Bertrand
Esclarecido: Não está usando o SQL Azure. Usando uma máquina virtual do Windows completo para que a colocação do log de transações seja minha.
Jason Kresowaty
11
Portanto, se você possui vários volumes independentes acessíveis à sua VM, por que você acha que as considerações de posicionamento de log seriam diferentes entre uma máquina virtual e uma máquina física?
Aaron Bertrand
Eu acho que é preciso conhecer as recomendações de um determinado fornecedor para responder com certeza. Acho que gostaria apenas de algumas idéias gerais sobre o que as pessoas realmente estão fazendo a esse respeito com os fornecedores populares de nuvem.
Jason Kresowaty
11
Então, do que estamos falando aqui? Uma VM hospedada por você no hardware e armazenamento que você controla ou uma VM hospedada por um provedor de nuvem como o Azure ou EC2?
Mark Storey-Smith

Respostas:

4

Em meus extensos testes de SQL na nuvem em servidores em nuvem (nuvem da rackspace, para ser específico), descobri que dividir o ldf e o mdf em volumes distintos de armazenamento em bloco fez uma melhoria significativa no desempenho. Consegui um desempenho realmente bom colocando o ldf em um volume de armazenamento em bloco baseado em SSD e o mdf em um volume de armazenamento em bloco padrão.

Por fim, é claro, um volume de armazenamento em bloco é uma SAN compartilhada em algum lugar. E o armazenamento de "instância" local está no próprio hipervisor. Portanto, a topologia de hardware do seu ambiente de nuvem determinará qual configuração funcionará melhor.

Jonesome Restabelecer Monica
fonte
2

Depende do ambiente de nuvem que você está usando, mas geralmente faz sentido colocá-los na mesma unidade lógica. Se você precisar de IOPS adicionais, poderá distribuir vários volumes, mas ainda assim apresentar uma única unidade.

Em um ambiente em nuvem, você não é o único consumidor do armazenamento alocado. Você recebe uma pequena fatia de uma torta muito grande e, como tal, todo o IO é de natureza aleatória. Não há nada a ganhar ao tentar separar o acesso seqüencial (log) do aleatório (dados).

Nada a ser ganho a partir do ângulo de recuperação, pois você não pode insistir em que os dois volumes serão alocados a partir de matrizes diferentes. Além disso, tende a haver uma classe diferente de proteção oferecida à disponibilidade de armazenamento dos grandes players. O armazenamento do Azure, por exemplo, é replicado três vezes no data center, com uma cópia adicional replicada em um data center de failover por padrão.

Mark Storey-Smith
fonte