Паведамленні з тэгамі: рэплікацыя

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 4

Па , у пятніцу 4 снежні 2009 года 11:59 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У частцы 3 мы стварылі віртуальную машыну апрацоўкі і налады вокны машыны, каб стаць часу прастою работнікаў.

Запуск апошняй версіі кода

Непазбежна пасля стварэння працоўных бізнес-логіка не зменіцца, памылкі будуць знойдзены хутчэй, больш эфектыўны код будзе вырабляцца ў выніку чаго вашыя работнікі сядзелі апрацоўкі дадзеных, выкарыстоўваючы старыя смярдзючыя код . Як жа мы гарантуем, што мы заўсёды выкарыстоўвалі найноўшая і самая лепшая версія нашага сцэнары апрацоўкі?

Ёсць некалькі вельмі простых спосабаў лёгка мы маглі б гэта зрабіць, як трэба, аднак, заключаецца ў скарачэнні магутнасцяў і сеткавага трафіку ў дасягненні гэтай мэты. Пачнем з самых простых рашэнняў і палепшыць яе павольна, на працягу пары ітэрацый.

Першы метад быў бы проста падключыцца да нашай працы серверных элементаў кіравання (праз Samba, FTP, або аналагічныя) і апусціце апошнюю версію кода. Не вельмі эфектыўны, але ён будзе рабіць гэтую працу. Дазваляе палепшыць, што некалькі, як аб стварэнні Rsync сцэнар і выкарыстанні, што кожны раз, а? Акрамя таго, што аб уводзе нашых апошніх апрацоўка сцэнарыя ў падрыўной праверыць код спачатку, а потым проста абнаўляем наш код пры кожным запуску ( запускалі )?

У рэшце рэшт, мы маглі б у канчатковым выніку з дапамогай сцэнарыя баш (выклікаецца крон кожныя 10 хвілін), які выглядае так проста, як гэта:

  #! / Бэн / ш
 PS калі сякера | Grep-V GREP | GREP PHP > / Dev / нуль
 затым
     рэха "Праца ў цяперашні час апрацоўкі, выхад"
 яшчэ
     echo "Праца не працуе, пачніце прама цяпер"
     кд / шлях / да / працоўны / копія
     запускалі
     PHP yourJobProcessingScript.php
 Fi 

Цяпер мы можам быць упэўнены, што з кожным запускам мы вызначана ўстаноўлена апошняя версія кода. Мы забеспячэння гэтага, абнаўленне нашай базы кода кожны раз, калі мы выконваем перспектыве і зніжэння сеткавага трафіку толькі перадачы файла адрозненняў паміж нашай сеткі.

У маёй дэманстрацыйнай ўстаноўкі, я зрабіў менавіта так, як вышэй. Subversion быў усталяваны на маім серверы апрацоўкі працу, і я проста націснуў на апошні код ад "работніка філіяла з дапамогай" запускалі ". Я таксама дадаў тэг версіі ў маёй апрацоўцы сцэнара, які быў вернуты ў базу дадзеных як часткі на вынік. Такім чынам, я мог бачыць, што мой код абнаўляецца кожны раз, калі я скапіяваў мой ствол у той аддзяленне работніка, што я пэўна ўстаноўлена апошняя апрацоўка сцэнара.

Выкарыстоўваючы апошнія дадзеныя

Калі ваша праца апрацоўка дазваляе выкарыстоўваць крыніцы дадзеных, то ў нейкі момант яны будуць абноўлены. Калі вы называеце крыніц дадзеных на аснове вельмі рэдка вы збіраецеся затапіць сеткі з трафікам, як толькі вашыя работнікі пачнуць выконвацца чаго ўсё ў тупік. Для майго рашэнні, я вырашыў, што я хацеў бы перанесці крыніц дадзеных прыкладна з маю віртуальных машын.

Трымайце вы коні там! Што рабіць, калі крыніцы дадзеных велізарна? Ну гэта на самай справе ідзе аб тым, колькі дадзеных можа ісці гаворка? Гэта можа быць больш эканамічна эфектыўным, каб усталяваць дадатковы цвёрды дыск большага ў кожнай машыне, чым купля дадатковага сервера апрацоўкі. Гэта пытанне бюджэту і да бізнес-рашэнні. Гэта, можа быць, крыніцы дадзеных настолькі вялікі, што яго проста немагчымым захаваць гэты аб'ём дадзеных у вашых машынах работніка. У такім выпадку, што б вы зрабілі? Ну, мы маглі глядзець на выклік лакальны сервер дадзеныя, але гэта можа выклікаць праблемы з сеткай. У гэтым выпадку сетка сістэмы, так як гэта можа стаць нерэальным ўключыць у офісе. Ён таксама можа быць тое, што вы можаце паглядзець у альтэрнатыўных стратэгій працы, напрыклад, толькі патэлефанаваўшы ў працоўныя паміж 8 вечара і 6 раніцы кожную ноч і / або рэгуляванне крыніцы дадзеных запытаў.

Пераходзячы дазваляе сказаць, што нашы крыніцы дадзеных складае 100 ГБ дадзеных. Ну ды гэта зусім трохі дадзеных, каб перамяшчацца па сетцы на абнаўленне. Як бы мы гарантуем, што ў нас ёсць апошняя копія дадзеных у гэтым выпадку? Rsync магчымасць, але асабіста я думаю, што, запусціўшы апошні крыніца дадзеных на серверы апрацоўкі заданняў і наладзе, як майстар рэплікацыі (з прыемным доўгім часопіса бін), можа быць шлях:

Рэплікацыя Пры ўсталёўцы кожнага з вашых рабочых у якасці рабоў для працы абнаўлення серверных элементаў кіравання да крыніц дадзеных будзе працякаць ўніз прыгожа вашых работнікаў без велізарнага павелічэння сеткавай актыўнасці (гэта значыць, калі вы выконваеце велізарную абнаўленне дадзеных, і ўсе вашы працоўныя ўдар у адразу). Гэта мае перавагі ў параўнанні з Rsync ў тым, што вы не атрымаеце доўгую паўзу перад кожнай рабоце; як абнаўлення базы дадзеных, MySQL дэмана на ваш работнік будзе пастаянна абнаўляць свае дадзеныя, а апрацоўка працягваецца.

Гэта, як мне наладзіць сервер дэманстрацыі. Каб наладзіць рэплікацыю я ішоў кіраўніцтва на сайце MySQL ( налада рэплікацыі ) і на працягу 20 хвілін у мяне быў працоўны Пачатковая тыражаванне кіравання працай сервераў дадзеных. Для кожнага дадатковага работніка налады рэплікацыі і працэс працуе кожны раз, калі VM была скапіяваная.

Рэзюмэ

У гэтай частцы артыкула мы разгледзелі, як лёгка і бязбольна гэта захаваць ваш код апрацоўкі да цяперашняга часу using Rsync або subverion (SVN), каб зрабіць працу і зменшыць сеткавай трафік, у той жа time. Мы таксама абмеркавалі, якім чынам захаваць вашыя дадзеныя ў крыніцы інфармацыі да сучасных, дазваляючы ёй сцячы, каб кожны з вашых работнікаў. Такім чынам, плошча забеспячэнне, што мы ў нагу з бізнес-логікай і інфармацыі ў нашай сістэме, сеткі офіса. Там, відавочна, будзе незлічоныя альтэрнатывы выкананню гэтых задач, але вось два простых прыкладу, каб паказаць, наколькі лёгка гэта рашэнне знайсці.

Наступны раз

У заключнай частцы гэтай серыі, трапна назваў Частка 5 , мы будзем абмяркоўваць разгортванне гэтай сістэмы. Я буду рэзюмаваць, што было вывучана і тое, што мне ўдалося стварыць.

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 5

Па , у пятніцу 4 снежні 2009 года 11:03 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У частцы 4 мы разглядалі з дапамогай інструментаў, каб гарантаваць, што мы бяжым апошнюю версію кода і крыніцы дадзеных, так што атрыманыя вынікі з'яўляюцца заўсёды сучаснымі з апошнімі бізнес-інфармацыі і логіку.

Перад разгортваннем

Да разгортвання сеткі сістэмы, калі ёсць адна рэч, вы робіце, і адно толькі гэта тэст бягучай сістэмы! Усё роўна, што вы кажаце калегам пра тое, колькі дадатковай працы вашай сістэмы будзе рабіць, калі ў вас ёсць ліку, каб падтрымаць гэта ваш гарантыі нічога. Такім чынам,

  • колькі запісаў вы можаце апрацоўваць ў цяперашні час? У дзень? У гадзіну?
  • Колькі часу звычайна патрабуецца, каб разгарнуцца на працу?
  • Наколькі больш магчымасцяў у вас ёсць?

Там таксама дадатковыя пытанні:

  • Калі ваш сервер апрацоўкі (або адзін з сервераў апрацоўкі) падае як гэта паўплывае на вашы магчымасці, вы будзеце калекамі?
  • Якія перавагі вы спадзеяцеся / чакаеце атрымаць ад падвеснай сістэмы?
  • Вашы офіснае абсталяванне можа працаваць працоўныя месцы?
  • Вашы (ці вы можаце быць пераўтвораны працоўных месцаў) у wrok ў гэтым стылі працуе?

Апошняе буйное справа ў тым, каб правесці час якіх-небудзь сур'ёзных змяненняў, як гэта. Абнаўленне апрацоўкі кода для працы з выкарыстаннем новай метадалогіі, тэст зноў. Магчыма наладзіць апрацоўку сервер для запуску віртуальнай машыны, у рэшце рэшт сервер апрацоўкі вашага будзе проста яшчэ адзін рабочы (толькі вельмі магутны адносна). Дайце новы працэс ўрэгулявання.

Разгортванне

Мая прапанова было б з'явіцца ў офісе адзін з выхадных дзён выконваць усе ўстаноўкі і наладкі. Рабіце гэта перад святам два тыдні і сысці, каб іншыя небарака, каб мець справу з наступствамі ... можа быць, не ...

Разгортванне сістэмы, як гэта павінна быць павольным. Нягледзячы на ​​гэта час адносна просты ва ўсталёўцы гэтай сістэмы паўплывае на ўсю інфраструктуру офіса (і лічбавай). Па-першае, раскачаць на некалькі машын адначасова, маніторынг сеткавага трафіку, як работнік выконвае хастоў у дзень, у дзень аснове. Магчыма, вам прыйдзецца змяніць канфігурацыю вашай працы ў адказ на вашыя высновы.

Пасля таго як сістэма пасяліўся з некалькімі машынамі (скажам 10% усіх офісных машын, гэта значыць 5) весці маніторынг сеткавага трафіку і машыне performance. Далей тэст яшчэ раз, цяпер вы павінны быць апрацоўкі 33% больш працоўных месцаў, чым ваш першы тэстаў. Праверце гэта так, або, што вы па крайняй меры, у гэтым футбольным полі. Калі няма, высветліць, што адбываецца, перш чым рухацца далей. Паўтарыце гэты цыкл, пакуль вы з радасцю ўсё офіснай тэхнікі працуе без забойства індывідуальнай працы машыны або драбнення сеткі ў тупік.

Ва ўсе часы трымаць параўнання, нават пасля разгортвання зробленыя. Праверце, як новыя абнаўлення кода ўплывае на хуткасць вашай сістэмы, праверце, усе работнікі паведамляюць у апрацоўцы і працоўных месцаў. Паступова (вельмі павольна) павялічвае вашу працу канфігурацыі, каб атрымаць лепшае з вашых работнікаў і сеткі.

Стоп!

Што рабіць, калі вы хочаце спыніць працоўныя працуюць на некаторы час? Яны ўсе там працуе, якое рэгенеруе, і з усіх сіл спрабуюць апрацоўваць дадзеныя, як галодныя казуркі. Адказ можа здацца відавочным, але яго варта дадаць толькі ў выпадку, калі яго ігнараваць. Проста рэдагаваць свае апрацоўкі сцэнараў з выхадам (0) або die () ці іншыя заявы, каб забіць вашага заданні апрацоўкі. Адной з важных прычын, чаму мы заўсёды імкнемся абнавіць да апошняй апрацоўкі сцэнара да таго, як бегчы!

Дэманстрацыя сістэмы

Для таго, каб напісаць гэта мноства кароткіх артыкулаў, якія я стварыў вельмі невялікую сетку для дэманстрацыі тэхналогій і метадалогій. Я чытаў шмат артыкулаў, навучальных дапаможнікаў і выкарыстоўваць розныя прылады для налады і маніторынгу, што адбываецца. Ні ў якім выпадку я сышоў і насычаны цэлы офіс з трафікам і пры гэтым я не меў доступ да рэгулярных супрацоўнікі PC бачыць, як гаспадар выкананне якіх паўплывалі.

Мая дэманстрацыйная сістэма была сапраўды вельмі сціплы. Я выкарыстаў свой звычайны працоўны стол настроены як сервер кіравання заданнямі. На гэтым я ўсталяваў MySQL сервер усталяваная настроены як майстар рэплікацыі, PHP , а, SVN звязаныя праз Apache (для доступу праз працоўны VM).

Затым я стварыў машыну CentOS работніка на VirtualBox на 6-гадовы ноўтбук Windows XP. Я наладзіць запланаваныя задачы, названыя пасля капіявання віртуальнай машыны на машыну і адпусціць яе.

Віртуальная машына была створана з PHP, падрыўной дзейнасці, і MySQL. Я праверыў філіял пад назвай «працоўны» ад маёй працы рэпазітара сервера кіравання і пераканаліся, што ён можа быць абноўлены з дапамогай "запускалі". Затым я ўстаноўка MySQL ў якасці раба і праверыць, што рэплікацыя дадзеных з MySQL на серверы кіравання працай да працоўнага VM. Пасля ўсяго гэтага мне ўсталяваць скрыпт баш і хранічны.

Мой сцэнар апрацоўкі ў асноўным ішлі па лініі гэтага (вельмі простыя рэчы):

  • Чытайце ў поле імя
  • Падлічвалі колькасць падобных імёнаў у табліцу з крыніцы дадзеных праводзіцца на VM
  • Падлічвалі колькасць імёнаў, як і вышэй, але расшчапленне імя прасторы (напрыклад, імя, сярэдні, прозвішча)
  • Паўторны працэс у 1000 разоў

Кожнае заданне сышло каля 20 хвілін, каб бегчы. У адзін момант я адкрыў некалькі копій працоўных VM на наўтбуку акна і глядзеў на працу правяраць у кожнага з адрасоў IP работніка. У гэты момант я таксама пацвердзіў, што рэплікацыя аўтаматычна перазагружаны.

Пакінуўшы ноўтбук на халастым ходу ў выніку працаўнік пачынае апрацоўваць заданні з сервера кіравання заданнямі. Пры аднаўленні выкарыстання ноўтбука была затрымка каля 30-60 секунд, гэта шмат часу і персанал павінны быць дасведчаныя, што іх машына можа прыпыніць на некаторы час, вяртаючыся да машыны. Новыя машыны могуць не мець паўзу так доўга. Перавага аб'ём апрацоўкі выконваюцца гэтыя машыны падчас прастою будзе больш, чым перавешваюць супрацоўнікаў чакаючы кароткі тэрмін (скажам, 1 хвіліну), прыбыўшы на свае машыны раніцай (я часта чакаць даўжэй, чым гэта для Windows Defender абнаўленне пройдзе), калі яны былі пастаўлены ў вядомасць аб гэтым (карыснае час, каб захапіць ранішні кава!).

У цэлым, я ўпэўнены, што я прадэманстраваў тэхналогіі, якія могуць быць выкарыстаны для стварэння такой сістэмы. Я паказаў, што такая сістэма працуе на (вельмі) невялікіх маштабах і яшчэ некалькі эксперыментаў можа быць пашыраны выкарыстоўваць рэсурсы машыны офіса. Калі я не атрымліваю да кропкі гэтым я быў бы вельмі цікава ведаць / бачыць, калі нехта іншы.

Высновы / Ацэнка

Наступным відавочным крокам было б на самой справе атрымаць рэальны прыклад і пачаць разгортванне такой сістэмы, як гэта ў офісе і паглядзець, што адбываецца. Запытаная бізнесу да здзяйснення гэтага без следу палаючага кампаніі, каб даказаць эфектыўнасць тэхналогіі і можа быць крыху больш складана. Сетка / Размеркаваныя вылічэнні вельмі папулярная пэўных колах і мае некаторыя вялікія прыкладанні (BIONC, SETI @ Home, Folding @ Home і г.д.). Я, аднак, не знайсці і ў меншых маштабах і простая сістэма, як гэта ў маіх пошуках, якія маглі б быць разгорнута ў офісе.

Я стварыў у асноўным свабодныя сістэмы, выкарыстоўваючы галоўным чынам з адкрытым зыходным кодам і інструменты, даступныя практычна ў любым офісе. Тэхналогіі ў асноўным паказалі і паказваюць выступаць і працаваць, як чакалася. Спадзяюся, у мяне паказвае, што з не так шмат працы і вельмі просты ўстаноўкі можна разгарнуць вылічальнай сеткі офіса сістэма, магутны, танны, а і маштабуецца усё ў той жа час.

Пасля таго, як сістэма ўстаноўлена і працуе амаль няма канца на суму налады і паляпшэнні, якія вы можаце зрабіць. Напрыклад, статыстыка / тэставання могуць быць лёгка дададзеныя паказвае каштоўнасць такой сістэме кожны дзень. Новыя машыны могуць быць дададзеныя хутка і лёгка, як і калі яны прыходзяць з мадэрнізацыі існуючага абсталявання ўмацавання вашай вылічальнай магутнасці.

Я спадзяюся, вам спадабалася чытаць гэтую серыю артыкулаў і даў вам ежу для разважанняў аб запуску сістэмы офіса сеткі. Рашэнне, прадстаўленае тут, не абавязкова будуць працаваць ва ўсіх сітуацыях, але яны павінны быць адаптаваныя, каб дазволіць вам атрымаць апрацоўка дадзеных ажыццяўляецца з дапамогай уласнага рашэння.

Калі ласка, не саромейцеся, дасылайце мне любыя заўвагі, выпраўленні і паляпшэнні, і я зраблю ўсё магчымае, каб захаваць гэты артыкул абнаўлення, каб адпавядаць.













Панарама Тэма Themocracy

6 наведвальнікаў онлайн
3 гасцей, 3 ботаў, 0 карыстальнікаў
Макс наведвальнікаў сёння: 23 у 7:18 раніцы UTC
У гэтым месяцы: 26 у 2012/04/04 10:27 вечара UTC
У гэтым годзе: 69 у 2012/02/27 09:56 UTC
За ўвесь час: 130 у 2011/03/28 10:40 вечара UTC