Office Computing Grid usando ambientes virtuais - Parte 3
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:
- Obter uma lista de processos e grep isso por 'php'. Se não for encontrado, em seguida continuar.
- Chamar seu código de trabalho, no meu caso isso seria algo baseado PHP
- Script trabalhador completa a sua execução
- 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:
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.
É 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.




















































[...] Parte 3 vamos criar nossa máquina de processamento virtual e configurar máquinas nossas janelas para se tornar [...]
[...] Parte 3, criamos a nossa máquina de processamento virtual e configurar máquinas Windows a se tornar tempo ocioso [...]
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.