Thiago Zavaschi R2 www.zavaschi.com

1Jun/118

Licenciamento de SQL Server – Server + CAL ou Por Processador

Olá pessoal,

Vamos iniciar nossas discussões sobre licenciamento?

Antes de mais nada precisamos entender que todas as regras para o licenciamento Microsoft (não somente do SQL Server), bem como o que envolve os cenários estão em um documento chamado PUR (Product Use Rights) que pode ser baixando aqui: http://www.microsoft.com/licensing/about-licensing/product-licensing.aspx.

Outra coisa é que vou apenas tratar da parte do SQL Server, não vou entrar na parte de Windows Server que possui sua forma de licenciamento (diferentes cenários do SQL Server, external connector, etc…) própria.

Mais uma coisa: este licenciamento é valido para o SQL Server 2008 R2. Só é possível comprar licenças da versão mais atual do produto, mas o downgrade (para 2008, 2005, por exemplo) é possível.

Vamos lá. Lembrando que estas explicações ainda não estão cobrindo os cenários com alta disponibilidade (cluster, mirroring, etc) e nem virtualização. Trataremos disso em posts futuros.


Server + CAL (Client Access License)

Toda a linha de servers da Microsoft possui o licenciamento através do que chamamos de CAL (Client Access License), o que não é um software, e sim um documento que garante o acesso, e é necessário para cada usuário ou dispositivo que realiza acesso a este servidor.

Para esta forma de licenciamento deve ser adquirido uma licença para o servidor (server físico, independentemente do número de processadores) mais uma CAL por usuário/device.

Então vamos imaginar um cenário:

- Tenho um servidor físico com 8 processadores e 50 usuários. O que preciso licenciar/pagar?

Você vai precisar de UMA licença de server MAIS 50 CALs de usuários.

O meio para se chegar ao servidor de banco de dados não importa para o licenciamento da parte SQL Server no esquema de CAL. Continua sendo uma por dispositivo ou por usuário.

É importante ressaltar que tecnologias que fazem multiplexação ou pooling de usuários (aplicação que mapeia um único usuário de banco de dados, por exemplo) não reduzem o número de CALs necessárias.

- Ou seja, tenho um aplicativo que usa apenas um usuário para comunicação com o banco, então preciso de apenas uma CAL?

Não. Neste caso você precisaria de uma CAL de usuário por cada usuário da aplicação.

Partições ou blades separadas são consideradas servidores independentes no que tange a licenciamento.

Há também diversas edições de SQL Server, algumas delas, como a Web e a Datacenter suportam licenciamento apenas por processador. Cobrirei isso em um post futuro focando apenas nas edições.

Qual a diferença de CAL por dispositivo e CAL por usuário?

- O valor da licença por usuário e por dispositivo é a mesma, mas em que cenários eu devo adiquirir uma ou outra?

Imagine que você tenha o seguinte cenário:

image

O mesmo usuário acessando a base de dados de diferentes dispositivos.

Caso seja adquirido CAL por dispositivo, seria necessário 2 CALs. No caso da licença por usuário seria necessário apenas uma. Logo, licenciar por CAL de usuário, neste cenário, é mais interessante.

Em geral o cenário por CAL de usuário é o mais comum, mas há casos em que licenciar o dispositivo é melhor. Veja o cenário abaixo:

 

image

Tenho diferentes usuários (no caso 4, mas pode ser que talvez nem se saiba quantos) que fazem acesso a minha base de dados, mas através de um único dispositivo. Um exemplo comum neste caso são aquele tótens de auto-atendimento (comuns em aeroportos).

Neste cenário seriam necessárias 4 CALs por usuário ou então apenas uma por dispositivo. Logo o recomendado neste cenário é a compra de CAL por dispositivo (pois sai mais barato).

- Ok, mas eu tenho que escolher se compro somente CAL por dispositivo ou somente CAL por usuário?

Não! Você pode comprar “X” User CALs e Y “Device CALs” para o mesmo cenário. O importante é verificar qual o cenário que se enquadra para você.

Quando devo/é interessante licenciar através de Server/CAL ?

  • Quando é possível contar o número de usuários e dispositivos.
  • Quando o somatório do valor da licença + todas as CALs é inferior ao valor necessário pelo licenciamento por processador (ver abaixo), isto é, poucos usuários.
  • Quando você planeja escalar horizontalmente, ou seja, colocar mais servidores para atender aos mesmos usuários. Neste caso seria necessário comprar adicionalmente as licenças de servidor e não as CALs.

Imagine o primeiro cenário com mais de um servidor:

image

A expansão neste caso seria “X” CALs de usuário + 3 licenças de servidor (independente da quantidade de processadores das máquinas).

Mas e nos cenários que eu não sei o número de usuários, na web por exemplo? Vou ter que comprar MUITAS CALs?

Neste caso não. Devemos fazer então o licenciamento por processador.


Licenciamento por Processador

No modelo de licenciamento que não é o Server + CAL o número de processadores importa.

Com o licenciamento por processador, o número de usuários é ilimitado sob o ponto de vista de licenciamento (esbarrando apenas na capacidade técnica do servidor).

Para este caso, SEM virtualização, o número de núcleos (com ou sem hyper threading) não importa. O termo processador se refere ao número de pastilhas físicas presentes nos servidores.

Imaginem o seguinte cenário:

image

Apenas um servidor com quatro processadores (16 núcleos), mas sem saber a quantidade de usuários. Cenários web e extranet se encaixam muito bem aqui.

Neste caso seriam necessárias 4 licenças do tipo “por processador”, não importa a quantidade de núcleos dos processadores para este cenário;

- Coloquei o affinity do SQL Server para apenas 2 processadores, posso licenciar somente dois processadores (ou menos que o total de processadores da máquina)?

Não! Não é possível. Para um cenário sem virtualização (cobrirei em post futuro) TODOS os processadores físicos devem estar licenciados (seja standard, enterprise ou datacenter).

Não importa se o acesso é feito pela mesma pessoa usando dispositivos diferentes, ou diversos usuários na web. O que interessa é ter todos os processadores licenciados.


Bom pessoal, este for o primeiro post da série sobre licenciamento. Espero que ajude vocês a entenderem melhor os cenários de licenciamento necessários ao adotarem o SQL Server como plataforma de dados.

Há ainda diversos cenários, mais complexos, como virtualização, alta disponibilidade (cold backup), diferentes edições do SQL Server (no que isso influencia), SQL Azure (como é cobrado na nuvem). Todos esses tópicos veremos na sequência!

Até a próxima!

Abraços,
Thiago Zavaschi

Comments (8) Trackbacks (1)
  1. Olá Thiago,

    Tenho dúvidas referente a licenciamento do SQL Server 2008 R2 em virtualização.
    Apesar de consultar documentação do site da Microsoft sobre licenciamento e falar com algumas empresas que fornecem o produto, vejo que existem diferênças na forma adotada para licenciamento do SQL Server por processador, sendo executado em servidores virtualizados.
    Estarei aguardando esclarecimentos em post futuro.
    De qualquer forma, esse post já esclareceu bem os outros tipos de licenciamento.

  2. Eu aguardando o post sobre licenciamento SQL por processador com cenários de virtualização. \o/

  3. Uma Duvida,tenho uma rede local com 120 user estou implantando um novo servidor com win server 2002 e sql server 2008 standard r2 sendo assim preciso adiquerir 120 licenças?? estive levantando alguns orçamentos e chegaram ate 40mil

  4. Gostaria de saber como instalar as call licence nao conheco o banco de dados da Microsoft.

    Grato

  5. Douglas, depende do modelo de contrato e o modo de licenciamento.
    Para o SQL Server 2008 R2 você pode fazer o licenciamento por processador e assim não precisará comprar as CALs.
    A conta é simples: para poucos usuários vale a pena o modelo Server/Cal. Para muitos usuários vale a pena o modelo por processador.

  6. Carlos,
    Desde o SQL Server 2005 não é necessário “instalar” licença por CAL. CAL significa Client Access License, e é um documento (contrato, ou compra avulsa) que garante o acesso a um usuario ou por um dispositivo.
    Não há restrições técnicas ou físicas no servidor que bloqueiem o acesso.
    É baseado em um “acordo de cavalheiros”.

  7. Uma duvida que tenho.
    Como funcionaria o licenciamento para acesso aos dados via Report Services, é necessário a compra de CALs para esse tipo de acesso?

    Seria necessário a compra de somente uma CAL para o usuário padrão do Reporting Services Ex; (Usuário: Servidor\Relatorios) ?

  8. Só completando acima:
    Seriam N usuários/dispositivos acessando o Reporting Services atravez de uma conta de usuário conforme exemplo.


Leave a comment