Introdução ao particionamento de hardware dinâmico
A alteração da configuração de hardware de um servidor enquanto o servidor está em execução é conhecida como particionamento dinâmico de hardware. Se você quiser executar os drivers de dispositivo em servidores que dão suporte ao particionamento dinâmico de hardware, os drivers deverão dar suporte a alterações dinâmicas na configuração de hardware do servidor.
Um servidor particionável de hardware é um servidor que pode ser configurado em uma ou mais partições de hardware isoladas. Cada partição de hardware executa uma instância independente do sistema operacional. Você pode atribuir cada um dos recursos de hardware do servidor a cada uma das várias partições de hardware em qualquer configuração apropriada para o aplicativo do servidor. Os recursos de hardware atribuídos a uma partição de hardware específica são isolados das outras partições de hardware no servidor.
Uma partição de hardware consiste em uma ou mais unidades de partição. Uma unidade de partição é a menor unidade de hardware que você pode atribuir a uma partição de hardware. Uma unidade de partição pode ser um processador, um módulo de memória ou uma ponte de host de E/S. Normalmente, os processadores e os módulos de memória são conectados a soquetes que podem ser ligados ou desligados independentemente.
Um servidor particionável de hardware pode ser um dos dois tipos: particionável estaticamente ou particionável dinamicamente. Em um servidor particionável estaticamente, você não pode alterar a configuração de unidades de partição atribuídas a cada partição de hardware enquanto o servidor está em execução. Para alterar a configuração, você deve desligar e reiniciar o computador servidor. O Microsoft Windows Server 2000 e versões posteriores do sistema operacional Windows Server dão suporte a servidores particionáveis estaticamente.
Em um servidor particionável dinamicamente, você pode alterar a configuração das unidades de partição atribuídas a cada partição de hardware enquanto o servidor está em execução. Isso é conhecido como particionamento dinâmico de hardware. Se o sistema operacional em execução em uma partição de hardware der suporte ao particionamento de hardware dinâmico, você poderá adicionar, substituir ou remover unidades de partição sem reiniciar o sistema operacional. Dependendo dos recursos do sistema operacional, você pode executar uma ou mais das seguintes operações dinâmicas de particionamento de hardware:
Adição dinâmica
Adicionando uma unidade de partição a uma partição de hardware em execução.
Remoção frequente
Removendo uma unidade de partição de uma partição de hardware em execução.
Substituição frequente
Substituindo uma unidade de partição por uma unidade de partição de substituição idêntica que já está presente no computador servidor. Uma operação de substituição dinâmica é uma única operação que difere de uma operação de remoção frequente seguida por uma operação de adição dinâmica.
O Windows Server 2003 com Service Pack 1 (SP1) dá suporte a operações de adição dinâmica para módulos de memória em servidores baseados em x86, baseados em x64 e itanium. O Windows Server 2003 SP1 não dá suporte a operações hot remove ou hot replace.
A partir do Windows Server 2008, o sistema operacional dá suporte a operações de adição dinâmica para processadores, módulos de memória e pontes de host de E/S e operações de substituição dinâmica para processadores e módulos de memória em computadores de servidor baseados em x64 e itanium. O sistema operacional também dá suporte a operações de adição dinâmica para módulos de memória em computadores servidores baseados em x86. O sistema operacional não dá suporte a operações de remoção dinâmica.
A tabela a seguir resume o suporte ao particionamento de hardware dinâmico incluído em cada versão do Windows Server.
Windows Server 2003 com SP1 | Windows Server 2008 e versões posteriores do Windows Server em servidores baseados em x86 | Windows Server 2008 e versões posteriores do Windows Server em servidores baseados em x64 e itanium | |
---|---|---|---|
adição dinâmica |
módulos de memória |
módulos de memória |
processadores, módulos de memória, pontes de host de E/S |
remoção dinâmica |
|||
substituição quente |
processadores, módulos de memória |
Sugerimos que você considere as seguintes diretrizes ao desenvolver seus drivers de dispositivo:
Você deve entender o particionamento dinâmico de hardware porque determinadas suposições sobre a configuração de hardware de um computador servidor não são válidas em servidores particionáveis dinamicamente. Drivers de dispositivo que não foram projetados para acomodar o particionamento dinâmico de hardware podem causar corrupção de dados ou fazer com que o sistema operacional gere um bug marcar se eles forem executados em um servidor particionável dinamicamente.
Você deve considerar os problemas críticos identificados para particionamento dinâmico de hardware, mesmo que não esteja desenvolvendo drivers de dispositivo para computadores servidores.
Você deve examinar e atualizar todos os drivers de dispositivo que está desenvolvendo para servidores que executam o Windows Server 2008 e versões posteriores do Windows Server. Os drivers de dispositivo podem se registrar no sistema operacional para serem notificados sobre alterações na configuração de hardware. Quando os drivers de dispositivo são notificados sobre uma alteração na configuração de hardware, eles podem responder à alteração conforme necessário para uma operação segura e ideal. Isso garante que os drivers funcionem corretamente em servidores particionáveis dinamicamente.
Os drivers que você desenvolve para o Windows XP e versões posteriores do Windows que participam corretamente do rebalanceamento de recursos e não fazem suposições sobre o número de processadores, a máscara de afinidade do processador ou a quantidade de memória física continuarão a operar corretamente em um servidor particionável dinamicamente.
A maioria dos aplicativos existentes no modo de usuário deve continuar a ser executada em servidores particionáveis dinamicamente sem nenhuma modificação. No entanto, se um aplicativo aloca threads para cada processador ou executa alocações de memória com base na quantidade de memória física disponível, o aplicativo pode se registrar no sistema operacional para ser notificado sobre as alterações na configuração de hardware. Quando o aplicativo é notificado sobre uma alteração na configuração de hardware, ele pode ajustar sua alocação de recursos adequadamente.