Introdución
Eu traballo nunha empresa na que corremos moitos traballos en lote de procesamento de millóns de rexistros de datos cada día, e eu pensei recentemente sobre todas as máquinas que se sentan arredor de cada e cada día sen facer nada por varias horas. Non sería bo se puidésemos utilizar esas máquinas para reforzar o poder de procesamento dos nosos sistemas? Neste conxunto de artigos que eu vou mirar para os potenciais beneficios da contratación dunha oficina da rede usando ambientes virtualizado.
Na parte 2 analizamos os traballos serán executados nun servidor, e como os traballos deben ser configurados para acadar a maior cantidade de procesamento, garantindo que cada traballo é procesado sen fallar.
Creación do seu traballo - ou servidor Limp
O paso seguinte no proceso é a creación dos seus traballadores virtual. Por iso eu vou usar unha instalación de CentOS usando VirtualBox. Vou instalar MySQL e PHP no servidor, tamén coñecido como un manco (Li nux, m ySQL, P HP) Serbia (I pode facer ese nome).
- VirtualBox instalar na súa máquina windows (sigan a ligazón)
- Descargar e instalar CentOS (versión actual 5.3) dentro dunha máquina virtual creada
Non hai ningún punto ir a este hai probablemente 1,000 's de tutoriais gran aí fóra (ok, aquí vai un: Creando e Managing CentOS máquina virtual no VirtualBox ). O punto importante a destacar, supoño, é que eu chamei a miña máquina virtual GridMachine.
Polo que as miñas opcións do cliente e do sistema operativo de virtualización van non hai gran razón convincente para cada elección. VirtualBox é algo que eu uso na miña máquina de casa e é apoiado polos tres principais sistemas operativos. Eu escollín o CentOS como sistema operativo estable e un bo que eu uso o meu propio servidor web. Son un gran crente nas ferramentas certas para o traballo (aínda que eu estou aplicando "uso máis rápido e máis fácil para ti" mentalidade aquí), entón sistema operativo X executa o seu código máis rápido e máis eficiente utilización que, en vez:)
É importante asegurarse de que a súa VM usa DHCP, se non, para cada nova máquina virtual precisaría ser configurado por separado, que é algo que non want.By usando DHCP non precisamos facer configuración da rede individualmente para máquinas de traballo, DHCP pode entregar IPs para ti. Así, pode copiar a máquina virtual sobre o escritorio sen preocuparse definición de cada un para arriba (que mellora a módulos e reduce a administración do traballador).
O proceso que ten que ter como obxectivo sería conseguir unha nova máquina física, instala o VirtualBox, e despois practicamente implantar a imaxe virtual, sen moito máis. Pode ser sabio para configurar os seus traballadores nunha sub-rede diferente para que poida, polo menos, ver cantas máquinas están funcionando. Tamén cómpre configurar as súas máquinas en un arrendamento a longo ou concesión ilimitada DHCP.
Como facer Jobs sobre o traballador
Esta é unha área interesante e existen varios métodos válidos para procesar os traballos sobre o traballador. Aquí eu só vou discutir as dúas máis obvias:
- Perpetuamente executando script: Un script, sexa un script shell ou un script PHP execútase unha vez sobre o traballador e é executada como parte dun loop infinito. Eu xa descontado a rede como un accidente do script e, potencialmente, os seus traballadores deixarán de funcionar sen algún tipo de intervención.
- Cron execución do script en base a: cada X minutos o cron servizo inicia unha chamada para o seu guión para comezar as cousas. Sen algunha comprobación isto podería conducir a moitas moitas copias da súa execución de scripts traballador.
A miña decisión foi ir con cron que comeza un script shell cada minutes. 10 O meu guión shell executa as seguintes tarefas:
- A lista de procesos e grep iso por 'php'. Se non está, a continuación continuar.
- Chamar o seu código de traballo, no meu caso iso sería algo baseado PHP
- Guión de traballo completa a súa execución
- Preparado para ir de novo a próxima chamada axeitada
O meu script bash parece algo como o seguinte:
#! / Bin / sh
se ps ax | grep-v grep | grep php> / dev / null
entón
echo "Job está a procesar, de saída"
outro
echo "O traballo non está en execución, comezar agora"
php yourJobProcessingScript.php
fi Nota: o de eco son case completamente inútil, pero pode axudar a seguinte persoa que vén para tratar de editalos.
Que conclúe a creación da máquina de traballo virtual, rápido, sinxelo e fácil de copiar a cada nova peza de hardware que é recibido. A "intelixencia" do sistema de rede realmente non é visto no sistema operativo, é todo que ver co código creado para procesar os traballos, a configuración do traballo, e para garantir que o traballo é executado no seu caso (ou sexa, cando o anfitrión está ausente ).
Configurar Windows para iniciar Traballadores
A primeira tarefa é descubrir o comando necesario para realizar a máquina virtual desde a liña de comandos de Windows. Se instalou o VirtualBox no lugar estándar e nomeou o seu traballador GridMachine entón o comando necesario para cargar o seu traballo é:
"C: \ Arquivos de programas \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine
Con todo, para executar o script nun estado "sen cabeza", necesitamos empregar:
"C: \ Arquivos de programas \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off
Isto iniciar a máquina virtual sen a GUI e permitir que salva o estado graciosamente. O segundo argumento desactiva RDP polo que non entra en conflito con fiestras RDP, ou darlle unha mensaxe sobre escoita na porta 3389. O nome da máquina virtual é case sensitive!
A continuación, imos ter para definir fiestras ata comezar a nosa VM traballador unha vez que a máquina está ociosa. Para iso (en Windows XP) ten que ir en Inicio -> Todos os programas -> Accesorios -> Ferramentas do Sistema -> Tarefas programadas conforme a continuación:
A continuación preme en "engadir tarefa programada 'seguido de navegar para engadir un programa personalizado. Desprácese ata o script VBoxManage e prema en Aceptar. Axenda súa tarefa para calquera das opcións (imos cambiar isto nun minuto) e seguir. Despois de saltar a seguinte pantalla fiestras pode pedirlle que quere realizar esta tarefa, eu suxiro ou 'Administrador' ou crear un novo usuario privilexiado. Lembre que nós non queremos interferir na conta persoal de patrón na máquina en calquera punto. Preme aquí ao lado e confía amosar opcións avanzadas para esta tarefa.
Para o fin do textbox executar engadir o noso cadea 'startvm GridMachine e garantir que só funciona cando conectado está desmarcada. Visita a tarefa programación seguinte e cambiar a programación suspendida ata a opción "cando ocioso", escolla a cantidade de tempo que lle gustaría que a máquina é ocioso antes de pasar á seguinte guía.
Finalmente desmarque a opción que afirma deixar a tarefa se foi correndo cantidade X de tempo, pero non marque a opción de deixar a tarefa a máquina non está ociosa.
É iso entón a configuración anfitrión das fiestras!
Resumo
Nesta parte temos un conxunto de unha máquina virtual para actuar como un traballador, así como a forma en que chamamos e executar os nosos scripts procesamento do traballo (para min un script PHP). A partir de aquí podemos ver como montar o noso copias de Windows para iniciar a máquina virtual en modo headless cando o computador se fai ocioso, e gardar o seu estado cando o usuario retomar a utilización da máquina. Esperemos que neste momento está a ver como é simple para configurar un sistema deste tipo e están ansiosos para comezar algunhas experiencias vai vostede mesmo!
Próxima vez
Na parte 4 , imos estar a ollar para o uso de ferramentas para garantir que está a empregar a última versión das fontes de código e datos, de xeito que os resultados obtidos son sempre up-to-date coas últimas información sobre negocios e da lóxica.