Office Computing Grid usando ambientes virtuais - Parte 3

Por Steven Lloyd Watkin , sexta-feira 04 de dezembro de 2009 23:37

Introdução

Eu trabalho em uma empresa onde corremos muitos trabalhos em lote de processamento de milhões de registros de dados a cada dia e eu tenho pensado recentemente sobre todas as máquinas que se sentam ao redor de cada e todos os dias sem fazer nada por várias horas. Não seria bom se pudéssemos usar essas máquinas para reforçar o poder de processamento dos nossos sistemas? Neste conjunto de artigos que eu vou olhar para os potenciais benefícios da contratação de um escritório grid usando ambientes virtualizados.

Na parte 2 analisamos os trabalhos serão executados num servidor, e como os trabalhos devem ser configurados para atingir a maior quantidade de processamento, garantindo que cada trabalho é processado sem falhar.

Criação de seu trabalho - ou servidor LIMP

O passo seguinte no processo é a criação de seus trabalhadores virtual. Por isso eu vou usar uma instalação do CentOS usando VirtualBox. Vou instalar mySQL e PHP no servidor, também conhecido como um manco (Li nux, m ySQL, P HP) ServerA (I pode ter feito esse nome).

  • VirtualBox instalar em sua máquina windows (sigam o link)
  • Baixar e instalar o CentOS (versão atual 5.3) dentro de uma máquina virtual criada

Não há nenhum ponto me ir a este há provavelmente 1,000 's de tutoriais grande lá fora (ok, aqui vai um: Criando e Managing CentOS máquina virtual no VirtualBox ). O ponto importante a notar, suponho, é que eu chamei a minha máquina virtual GridMachine.

Tanto quanto as minhas escolhas do cliente e do sistema operacional de virtualização vão não há grande razão convincente para cada escolha. VirtualBox é algo que eu uso em minha máquina de casa e é apoiado pelos três principais sistemas operacionais. Eu escolhi o CentOS como sistema operacional estável e um bom que eu uso no meu próprio servidor web. Sou um grande crente nas ferramentas certas para o trabalho (embora eu estou aplicando "uso mais rápido e mais fácil para você" mentalidade aqui), então se sistema operacional X executa seu código mais rápido e mais eficiente utilização que, em vez:)

Importante se certificar de que sua VM usa DHCP, caso contrário, para cada nova máquina virtual precisaria ser configurado separadamente, que é algo que não want.By usando DHCP não precisamos fazer configurações de rede individualmente para máquinas de trabalho, DHCP irá entregar IPs para você. Portanto, você pode copiar a sua máquina virtual sobre o escritório sem se preocupar com definição de cada um para cima (isso melhora a escalabilidade e reduz a administração do trabalhador).

O processo que você deve ter por objectivo seria obter uma nova máquina física, instale o VirtualBox, e depois praticamente implantar a imagem virtual, sem muito mais. Pode ser sábio para configurar todos os seus trabalhadores em uma sub-rede diferente para que você possa, pelo menos, ver quantas máquinas estão funcionando. Você também precisa configurar suas máquinas em um arrendamento a longo ou concessão ilimitada DHCP.

Como executar Jobs sobre o trabalhador

Esta é uma área interessante e existem vários métodos válidos para processar os trabalhos sobre o trabalhador. Aqui eu só vou discutir as duas mais óbvias:

  • Perpetuamente executando script: Um script, seja ele um script shell, ou um script PHP é executado uma vez sobre o trabalhador e é executado como parte de um loop infinito. Eu já descontado este método como um crash do script e, potencialmente, os seus trabalhadores deixarão de funcionar sem algum tipo de intervenção.
  • Cron execução do script com base em: a cada X minutos o cron daemon inicia uma chamada para o seu script para começar as coisas. Sem alguma verificação isto poderia conduzir a muitas muitas cópias de sua corrida script trabalhador.

Minha decisão foi de ir com cron que começa um script shell cada minutes. 10 Meu script shell executa as seguintes tarefas:

  1. Obter uma lista de processos e grep isso por 'php'. Se não for encontrado, em seguida continuar.
  2. Chamar seu código de trabalho, no meu caso isso seria algo baseado PHP
  3. Script trabalhador completa a sua execução
  4. Pronto para ir novamente na próxima chamada apropriada

Meu script bash parece algo como o seguinte:

  #! / Bin / sh
 se ps ax | grep-v grep | grep php> / dev / null
 então
     echo "Job está processando, de saída"
 outro
     echo "O trabalho não está sendo executado, começar agora"
     php yourJobProcessingScript.php
 fi 

Nota: o de eco são quase completamente inútil, mas pode ajudar a próxima pessoa que vem para tentar editá-los.

Que conclui a criação da máquina virtual trabalhador, rápido, simples e fácil de copiar a cada nova peça de hardware que é recebido. A "inteligência" do sistema de grid realmente não é visualizado no sistema operacional, é tudo a ver com o código criado para processar os trabalhos, a configuração do trabalho, e para garantir que o trabalho é executado quando for o caso (ou seja, quando o anfitrião está ocioso ).

Configurando o Windows para inicializar Trabalhadores

A primeira tarefa é descobrir o comando necessário para executar a máquina virtual a partir da linha de comando do Windows. Se você instalou o VirtualBox no local padrão e você nomeou seu trabalhador GridMachine então o comando necessário para carregar o seu trabalho é:

  "C: \ Arquivos de programas \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

No entanto, para executar o script em um estado "sem cabeça", precisamos usar:

  "C: \ Arquivos de programas \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Isto irá iniciar a máquina virtual sem a GUI e permitir que ele salve o estado graciosamente. O segundo argumento desliga RDP por isso não entra em conflito com janelas RDP, ou dar-lhe uma mensagem sobre escuta na porta 3389. O nome da máquina virtual é case sensitive!

Em seguida, vamos precisar para definir janelas até começar a nossa VM trabalhador uma vez que a máquina estiver ociosa. Para fazer isso (no Windows XP) você precisa ir em Iniciar -> Todos os Programas -> Acessórios -> Ferramentas do Sistema -> Tarefas agendadas conforme abaixo:

tarefas agendadas

Em seguida clique em "Adicionar tarefa agendada 'seguido de navegar para adicionar um programa personalizado. Navegar para o seu script VBoxManage e clique OK. Agende sua tarefa para qualquer uma das opções (vamos mudar isso em um minuto) e continuar. Depois de pular a próxima tela windows irá pedir-lhe que você deseja executar essa tarefa, eu sugiro ou 'Administrador' ou criar um novo usuário privilegiado. Lembre-se que nós não queremos interferir com a conta pessoal de padrão na máquina em qualquer ponto. Clique ao lado e confira mostrar opções avançadas para esta tarefa.

Para o fim do textbox executar adicionar o nosso string 'startvm GridMachine e garantir que funcionam apenas quando conectado fica desmarcado. Visite a tarefa programação seguinte e alterar a programação suspensa até a opção "quando ocioso", escolha a quantidade de tempo que você gostaria que a máquina seja ocioso antes de passar para a próxima guia.

Finalmente desmarque a opção que afirma parar a tarefa se ela foi correndo quantidade X de tempo, mas não marque a opção de parar a tarefa se a máquina não está mais ociosa.

horário

É isso então para a configuração host windows!

Sumário

Nesta parte temos um conjunto de uma máquina virtual para agir como um trabalhador, bem como a maneira pela qual nós chamamos e executar nossos scripts de processamento de trabalho (para mim um script PHP). A partir daqui podemos ver como montar o nosso cópias do Windows para iniciar a máquina virtual no modo headless quando o computador se torna ocioso, e salvar seu estado quando o usuário retomar a utilização da máquina. Esperemos que neste momento você está vendo como é simples para configurar um sistema desse tipo e estão ansiosos para começar algumas experiências vai você mesmo!

Próxima vez

Na parte 4 , vamos estar a olhar para o uso de ferramentas para garantir que você está rodando a última versão das fontes de código e dados, de modo que os resultados obtidos são sempre up-to-date com as últimas informações sobre negócios e da lógica.

3 Responses to "Grid Computing Office usando ambientes virtuais - Parte 3"

  1. [...] Parte 3 vamos criar nossa máquina de processamento virtual e configurar máquinas nossas janelas para se tornar [...]

  2. [...] Parte 3, criamos a nossa máquina de processamento virtual e configurar máquinas Windows a se tornar tempo ocioso [...]

  3. Você é um Blogger realmente experiente, você quer ter a compreensão da qualidade do que o seu falar ou você fez alguma pesquisa fantástica. Obrigado por este excelente post.

Deixe uma resposta













Tema por Panorama Themocracy

4 visitantes online agora
2 visitantes, 2 bots, 0 membros
Max visitantes hoje: 23 às 08:39 UTC
Este mês: 52 em 18-06-2011 03:11 UTC
Este ano: 130 em 28-03-2011 22:40 UTC
Todos os tempos: 130 em 28-03-2011 10:40 UTC