MS SQL Server: vários bancos de dados em uma ou mais VMs?

2

Estamos planejando implantar uma solução de comércio eletrônico usando três bancos de dados distintos, todos hospedados no MS SQL Server 2008 R2. A pilha inteira será hospedada em um ambiente VMWare (duas máquinas físicas com uma configuração paralela de VMs).

A pergunta que tenho é se basta hospedar os três bancos de dados em uma instância do SQL Server ou separá-los em várias VMs. Eu posso ver alguns custos adicionais como uma desvantagem de várias VMs (mais taxas de licença, várias cópias de sistema operacional na memória), eu posso ver uma melhor separação como uma vantagem de várias VMs (CPU, IO, segurança).

Como o fornecedor é o mesmo em todos os bancos de dados, minha principal questão é quanto mais controle ganho com a alocação de CPU / IO. Em particular: colocar todos os três bancos de dados em uma VM cria um potencial de consultas ruins em relação a um DB, reduzindo o desempenho em todos os três?

EDIT em resposta a DaveH / Thirster42:

A pilha deve ser duplicada em duas máquinas físicas, usando clustering entre os bancos de dados. O IO é um potencial gargalo, embora pretendamos comprar o espaço de SAN de mais alto desempenho que a empresa de hospedagem oferece. A carga irá variar entre os diferentes bancos de dados e, como é um novo sistema, ainda é difícil de adivinhar. Estamos falando do banco de dados do CMS, do banco de dados do MS Commerce Server e de um banco de dados de controle de vendas de clientes para um site de pedidos de fast food, com cerca de 3 milhões de page views / mês. Esperamos que a análise de upsell / cross-sell seja usada extensivamente e algumas consultas complexas de análise de clientes no banco de dados de clientes (essa é a mais assustadora).

    
por Peter Becker 14.09.2010 / 02:22

2 respostas

2

Eu honestamente não consegui prever muito ganho de desempenho por ter três VMs separadas, principalmente pelo fato de que eu estou supondo que eles estarão no mesmo host e, portanto, ainda estarão brigando pelo disco i / o. Além disso, com vm's separadas, quaisquer consultas que passem por bancos de dados terão que acertar as outras vms. Vm separado também significa mais sobrecarga. Cada vm significa mais sobrecarga no host e mais sobrecarga para cada sistema operacional separado. Estes são todos os recursos que você poderia alocar para uma vm ..

    
por 16.09.2010 / 23:16
0

Depende da utilização e quanto você precisará dimensionar. A escala vertical (adição de CPU e memória) no VMware só vai até certo ponto. Várias cópias do O / S na memória não se aplicam necessariamente porque O VMware compartilhará a memória entre as VMs .

[nota lateral]: links http não estão funcionando por algum motivo, então aqui está o link para uma pequena descrição sobre o compartilhamento de memória: link –vmware-tem-e-os-outros-não-parte-1 /

Estou curioso para saber por que você está implantando um cluster SQL em dois hosts ESX? Você tem o VirtualCenter? Então, para resumir, rodar 3 DBs em uma única VM é bom até que você precise escalar. Eu consideraria, em seguida, dividi-los e, possivelmente, colocar meus hosts ESX em um cluster e ativar HA, DRS e talvez tolerância a falhas. : D

Boa sorte!

    
por 20.09.2010 / 03:58