Biroja Grid Computing, izmantojot virtuālo vidi - 2.daļa
Ievads
Es strādāju uzņēmumā, kur mēs palaist daudzas partijas darba apstrāde miljoniem pieraksti par datiem, katru dienu, un es esmu domājis nesen par visām mašīnām, sit pa katru dienu neko nedarot vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai pastiprinātu datu apstrādes jaudu no mūsu sistēmu? Šo kopu rakstu es esmu gatavojas apskatīt iespējamos ieguvumus nodarbina biroja tīklu , izmantojot virtualised vidē.
In 1 daļa I sniedza pārskatu sistēmas un tehnoloģijas man būs, izmantojot, kā arī apsprieda dažus potenciālos iemeslu, kāpēc jūs vēlaties, lai izveidotu biroju tīklu.
Darba kontroles
Ja jūs gatavojas darboties darbu, tad jūs dodas uz nepieciešamību kaut kādā veidā, ar tiem tikt galā. Jūsu darbs kontroles sistēma (par savu darbu serverī) ir ļoti labi pārdomāta, pirms vēl mēģināt palaist biroja tīklam. Tātad, pirmkārt, kādi ir par darbu kontroles sistēmas uzdevumi:
- Rokas no darba pēc pieprasījuma darbiniekiem
- Pastāsti darbinieki, kāda veida darbavietas palaist
- Track darba
- Nodrošinātu, ka darba vietas ir darbojas tikai vienu reizi
- Sniegt darbu datu darbiniekiem, vai vismaz pateikt viņiem, kur to iegūt
Sistēma arī jābūt paplašināms, risinājums, kas strādā tagad vienā gadījumā var tikt pagarināts, lai palaistu vairāku veidu darbavietu kā biznesa redz vērts režģa risinājumu. Piemēram, darba vietu var iegūt prioritātes, vairāk nekā viena darba veida var būt (ti, vairāku kodu bāzes), iespējams, jums var pat palaist vairākus atšķirīgus darba ņēmēju mašīnām, kas ir optimizēti katra veida darbu (lai gan tas virzīties prom no "sugas ņēmējs "ideja). Vienmēr cenšas domāt par nākotni, izstrādājot sistēmu, īstermiņa perspektīvu, var izraisīt ilgtermiņa vilšanās un palielināta attīstības laiks.
Darba Server
Mēs būs nepieciešama kaut kontrolēt mūsu darbu no, tas būtu vienīgais, jūsu tīkla, kas ir noteikta resursu vietrādis, tā, ka IP adrese, resursdatora nosaukumu, URL (izmantojot iekšējo DNS), uc Tas ir tāpēc, ka darbiniekiem ir jāzina, kur meklēt darbu, darbiniekiem ir nepieciešams atrast darbu vadības sistēma (nav darba kontroles sistēmu atrast darba ņēmējiem).
Darba servera pati nav īsti sarežģīts uzdevums (jo sistēmas pamata tik un tā), tai ir nepieciešama, lai saglabātu vakanču sarakstu, roku, darba vietas, saņemt rezultātus, un pēc tam uzglabāt vēlākam laikam atgūt. Kā šīs daļas (piemēram, "rokas no darbavietām") ir definēti var būt ļoti vienkāršas. Vēlāk mēs varam attiecināt sistēmu, lai iekļautu administrācijas saskarni, lai pievienotu, rediģētu, dzēstu, apturēt darba vietas, bet tas pārsniedz šo uzdevumu ir.
Nav nekādu iemeslu tam, ka jūsu darbs serveris nevar virtuālā mašīna darbojas savā galveno apstrādes serveri ja tas nav aizplūšanu pārāk daudz resursu no tā. Darbs serveris Tomēr tas ir nepieciešams augstas pieejamības, ja tā iet uz leju piektdienas vakarā jūs gatavojas zaudēt visu nedēļas nogali apstrādes, iespējams, maksā jums pāris nedēļas vērts apstrādes laiks (salīdzinājumā ar jūsu galveno apstrādes serveri vien) . Jūs varat apsvērt liekot jūsu darbu serverī slodze ir līdzsvarota vides augstu pieejamību.
Pamata Setup
Pamata setup mūsu darbu serveris veidos, ko es esmu aicinot viens no maniem Limp serveriem (tas ir Li nux, m ySql, P HP). Kodu, kas darbojas the darbiniekiem būs faktiski strādā, kādas darbavietas var darboties, mijiedarbojoties ar ar darba kontroles sistēmas datubāzēm. Vēlāk mēs varētu radīt interneta pakalpojumu un faktiski rokas no darba vietas nevis darba ņēmēji to smago darbu pašiem, bet tagad mēs turpināsim izmantot KISS principu (Keep it simple, stulba!).
Tātad, ļauj izveidot trīs MySQL tabulas, lai risinātu darba vietas. Tās tiks "darba", "jobRecords", un "jobResults".
Šeit es esmu, izmantojot SQL Buddy ļoti maz alternatīvu phpMyAdmin tikai tāpēc, ka tā ir vieglāk instalēt CentOS (par citiem redzēt: 10 Great alternatīvas phpMyAdmin )
Šī tabula sastāv no 5 vienkārši lauki,
- id: identificētu darbu
- nosaukums: Varētu būt klienta atsauksme, vai identifikatori vairākām citām
- Statuss: Jums ir jāzina, kur šis darbs ir, piemēram,
- 0: nav sākusies
- 1: Paņēma
- 2: Pabeigts
- started_by: Kas ir sākusi darīt darbu? Tas nav pilnīgi nepieciešams, bet ir jauki, ir. Es gribētu ieteikt uzskaites darbinieki to IP adresi no jūsu tīkla
- started_at: Kad darbinieks sāk darbu? Ar sekošanas darbavietas, kas nav pabeigts X laika mēs zinām, mums ir nepieciešams uzņemt darba atkal un sākt pārstrādei citā darba ņēmēju. Ņēmēji var pārtraukt apstrādes / go offline kāda vairāku iemeslu dēļ, enerģijas padevei, crash, tīkla zudumu, utt
Tas ir viegli, kā šī tabula, varētu attiecināt arī ar dažiem papildu laukus, lai varētu statistikai uzskaiti, finiša laika kolonnas, lai redzētu, cik ilgi darba bija, skaitïtàjs, lai apskatïtu, cik darba ņēmēji paņēma darbu (protams, tas ir tendence 1) darba prioritāte, sarakstu var turpināt vēl un vēl. Sarežģītākos darba scenāriji būtu iespējams noteikt, cik daudz atmiņas darba ņēmējam ir vajadzīga piekļuve (un tādēļ izmanto tikai piemērotus darbiniekus), vai pat kāda veida darba ņēmējam būtu nepieciešams.
Ļauj pievienot dažus piemērs darba vietas:
Nākamajā tabulā atkal ir diezgan vienkārši saprast, tie ir mūsu darba ierakstiem. Tie ir saistīti ar galveno darbu tabulu, kolonnu "jobs_id". Pants veido šīs tabulas lielā mērā atkarīgs no datiem, kas jums ir nepieciešams, lai sniegtu jūsu darbiniekiem, ļauj veikt ļoti vienkāršs piemērs, kur mums ir četras ailes:
- id: ID ierakstu
- vārds: Personas vārds
- adrese: Personas adrese
- jobs_id: darba ID, šis ieraksts ir saistīts ar
Trešā un pēdējā tabula sastāv no rezultātu tabulas, tas ir līdzīgi veido kā mūsu ierakstu tabulā un pievienojot dažas kolonnas varētu būt daļa no uzskaites tabulu:
- job_record_id: Saite rezultātu uz darba galda
- Rezultāts: Rezultāts datu
... Un tas ir viss, kas vajadzīgs darba kontroles! (Lai gan ļoti vienkāršas) Manā gadījumā es esmu norādījis uz citu tabulu, kur mani dati jāapstrādā atradās, bet tas tikpat labi ir lietas, parametri, lai palaistu simulāciju kodu, Jūs nosaukums tam.
Izvēloties darbu
Kā norādīts iepriekš, darbinieku darīs savu darbu vadība mums tagad, lai viss, kas mums patiešām ir atrast darbu, kas nepieciešams pārstrādes un saņemt informāciju. Kā mēs to darām? Nu paņemt mūsu darbs atlases kritērijus un meklēt darba vietas, jo SQL es darīju šādi:
- Veikt darbu, kas nav atzīmēti kā pabeigta, bet no mūsu darbinieku un atjaunotu tos (aizvietošanas __ME__ ar identifikatoru, vienkāršākais būtu IP adrese):
UPDATE `darba` SET `statusu" = 0, ja "statusu" = 1 un "started_by" = __ME__; - Izmantojot mūsu darbs atlases kritērijus, izvēlieties darbu un pateikt kontroles sistēmu, kas šim darba ņēmējam ir ar to nodarbojas:
UPDATE `darba` SET `statusu" = 1, "started_by` = __ME__, "started_at` = NOW () WHERE `statusu" = 0 vai ("Statuss" = 1 un "started_at"> DATE_SUB (NOW (), Interval X stunda)) ORDER BY `id` ASC;
Ar satveršanas darbavietas, kas nav atgriezies rezultātus X laiku mēs nodrošinām, ka visi darbi ir darboties gadījumā, ja darba ņēmēja crashing vai iet AWOL.
- Nākamās greifers darba detaļas, kam seko ierakstu sevi:
SELECT * FROM `darbu` WHERE `started_by` = __ME__ 1 LIMIT; SELECT * FROM `job_records` WHERE `id` = __JOBID__;
Pabeidzot darbu, mēs ievietotu savu rezultātu uzskaiti un preču zīmes darbu kā pabeigtu. Atcerieties, jo darbus var pārtraukt vai atsākt jebkurā brīdī pieļautu zināmu stabilitāti, kas savu skriptu. Tas varētu būt, ka uzdevums aptur pusceļā ar ko atjaunina darba kontroles sistēmas, lai pārbaudot ierakstus darbu skaitu un rezultātu atkal saglabātu darba kontroles sistēma varētu būt gudrs kustēties numuru.
Turklāt, lai gan tas parāda, kā darba vietu var izvēlēties un pārvalda no SQL vaicājumu rāmja jums patiešām vajadzētu būt abstrahējoties Jūsu darba kontroli, lai, ja jūs nolemjat, lai pārslēgtos uz, izmantojot interneta pakalpojumu, failu balstītai sistēmai, XML , vai jebkuru citu vairākas sistēmas, tas neietekmēs kodu virs tā.
Darba konfigurācija
Nākamais aspekts, kas jāapsver, ir darba apjoms un konfigurāciju. Spēlējoties ar darbu konfigurācija mēs varam panākt lielisku līdzsvaru starp ātrumu, procesu replikācijas un uzticamību. Veikt pāris of scenāriji:
- Darba vietām 1 dienas katru palaist: Tas nozīmē, ka jūsu darbinieki ir 15 dienas, lai apstrādātu katru darbu (atcerieties 10% no jaudas 2/3rds laika). Šis noteikti nav gudrs konfigurācija, jūsu darbs izmērs ir pārāk liels! Tas būtu jāņem vismaz divreiz laiks, lai iegūtu darbu pārstrādās, būtu sākotnēji darbinieks aiziet AWOL (laiks uzņemt, ka tā nav atgriezies rezultātu plus pārstrādes laikā). Ir ideāla jūs ir vismaz vienu pilnu darbu vienkārši izgājuši katra ilgu tukšgaitas periodu, tādā veidā jūs saglabāt darbavietas atzīmējot virs un sliktākajā gadījumā darbu veiks divas dienas, lai process būtu pirmā pazūd.
- Darba vietām 1 minūti, lai palaistu: Tas nozīmē, ka jūsu darbinieki ņem apmēram 15 minūtes, lai palaistu katram darbam. Kaut gan tas sākotnēji var likties ideāls, jūs iegūstat papildu darba pārstrādei pusdienas laikā, kafijas pauzes, sanāksmes uc šis scenārijs rada spriedzi citās jomās jūsu sistēmas, un ievieš savas problēmas. Piemēram, vispirms jūsu setup / apstrādes laiks attiecība gatavojas iet labi uz leju, tādējādi saglabājot sistēmas efektivitāti. Jūsu tīkls būs pastāvīgi straumēšanas darba informāciju uz dažādiem darba ņēmējiem nomākta darbiniekiem, kuri ir dong viņu ikdienas darbā. Jūs arī gatavojas īstenot lielāku spriedzi jūsu darbu apstrādes servera, jo tas ir uz šķīvja daudz un daudz mazos gabaliņos, kas strādā uz regulāri. Visbeidzot, šajā situācijā, ja jūsu darbs serveris iet uz leju jūs gatavojas izveidot milzīgu atpakaļ žurnālu nepabeigto darbu tā lielāks darbavietu un lietvedības turpināšanu blissfully neapzinās, ka darbs serveris tika grūtības.
Patiesībā nebūs neviena ideāla konfigurācija jūsu tīkla setup, daudz kas ir atkarīgs arī pieejamos līdzekļus, darbu veidiem, darba atgriešanas laiku prasības, tīkla jaudu, un tā tālāk. Tomēr dažas vadlīnijas būtu:
- Izmērs darbu tā, lai katrs darba ņēmējs varētu saņemt, izmantojot vismaz 3-4 darba vietas uz 15 stundām (garāko iespējamo dīkstāves laiku)
- Spēlē ar darba apjomu tā, lai setup laiks kļūst diezgan nenozīmīga, salīdzinot ar procedūras laiku (ņemot vērā iepriekšējo punktu).
- Ja darba neaizpilda divvietīgā laiku (varbūt mazāk) jūs sagaida to, lai pabeigtu to pieņemt, ka tā gājusi AWOL un sākt apstrāde ar citu darba ņēmēju. Tas nozīmē, ka Jums var būt jāgaida pat trīs reizes lielāka par parasto ilgumu darbu, lai to pabeigtu (iespējams arī ilgāk, ja pēc darba nav). Jūs varat samazināt šo laiku, bet jābūt uzmanīgiem, lai samazinātu to pārāk daudz, kā jūs varat sākt kopēšanas apstrādes uzdevumus regulāri.
- Darba vietas, jābūt neatkarīgam no ārpuses prasībām, cik vien iespējams. Darba serveri, piemēram, tikai iespējams sazināties sākumā un beigās katru darbu.
- Nav piesātinātu tīkla, tas ir divas negatīvas sekas, jūsu dienas personāls atrast, izmantojot tīkla nomākta un problēmas var būt pieredzējuši ar savienojumiem laiku no problēmu, ka tikai pasliktināsies, kā jūs mēroga Jūsu tīklam.
- Nodrošina darbavietas var palaist uz jūsu darbiniekiem. Ja darba vietas kļuvusi pārāk atmiņietilpīga vai diskā intensīvu darbu sāks Pārtrauc un vienīgā lieta, jūs paziņojums ir samazinājies darbavietu skaits apstrādā bez patiesais iemesls, kāpēc.
Iesniegšana rezultāti Darbs
Iesniedzot rezultātus, darbs ir svarīgi pārbaudīt, rezultāti nav iesniedzis cits darbinieks, it īpaši, ja pašreizējā darba ņēmējs ir neaktivizētas kādu laiku.
Ja rezultāti tiek iesniegti nodrošinātu to, ka rezultātu skaits atbilst ierakstu skaitu, kas darbu.
Kā norādīts iepriekš, un nav iespējams novērtēt par augstu, veidot pieļaujamo kļūdu robežu uz darbu izguves un rezultātu iesniegšanu. Darbinieki var (un, visticamāk, būs) iedziļināties apturēt režīmā ne vairāk neizdevīgā reizes un tas ir iedzīvotājus. Arī vēlreiz abstrahējoties prom savu rezultātu iesniegšana, palīdzēs rūpēties par turpmākajām pārmaiņām savā darba kontroles sistēma daudz vieglāk tikt galā ar.
Kopsavilkums
Šajā section mēs esam izskatījuši, ko darba kontroli serveris jādara un kā to saņemt vienkāršu sistēmu, kas izveidota. Mēs apspriedām kā atgūt darbu no kontroles sistēmu un to, kā vislabāk konfigurēt darba vietu, lai saņemtu lielāko daļu mūsu Jūsu birojā tīkla sistēmu. Lai pabeigtu, punkts vai diviem Iesniedzot rezultātus atpakaļ uz darba kontroli serveris tika iesniegts.
- Darba kontroli serveris pārvalda darbavietas un nodrošina, ka visi strādā vienības pabeigti
- , Abstrahējoties savu darbu select / rezultātu iesniegšana, mēs varam mainīt tehnoloģiju kontroles servera bez daudz problēmu
- Konfigurējiet savu darbu, lai nodrošinātu, ka tie darbojas ātri un efektīvi, liekot pārāk lielu spiedienu uz savu tīkla infrastruktūru, un bez kopēšanas apstrādes uzdevumus regulāri.
- Pārliecinieties, ka jums veidot defektu pielaidi un kļūda checking savā rutīnu, darbinieki var apturēt un atsākt, un visnepiemērotākā reizes. Neaizmirstiet pārbaudīt, vai rezultāti jau ir iesniedzis cits darbinieks.
Nākamreiz
Jo 3 daļu mēs veidojam mūsu virtuālo apstrādes mašīnas un izveidot mūsu logiem mašīnas kļūt dīkstāvi darbiniekiem.



















































Heya! Labs jēdziens, taču tas varētu tiešām darbu?