分類:網格計算

辦公室網格計算使用虛擬環境-第4部分

,週五二○○九年十二月四日下午11時59分

簡介

我在一家公司工作,我們運行多個批處理作業處理數百萬條記錄的數據每一天,我一直在想最近關於所有的機器,圍坐每一天什麼都不做了幾個小時。 那豈不是一件好事,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處的用人辦公室電網使用虛擬化環境。

第三部分我們創建了虛擬加工機,並設置窗口的機器成為空閒時間的工人。

運行最新的代碼

在創建你的員工難免業務邏輯會改變,錯誤會被發現,更快,更高效的代碼會產生這樣離開你的工人圍坐在處理數據使用舊的臭代碼 那麼我們如何確保我們總是使用最新和最偉大的版本我們處理腳本?

有幾個非常容易簡單的方法,我們可以做到這一點,關鍵,然而,是降低處理能力和網絡通信在實現這一目標。 讓我們先從最簡單的解決方案和改進緩慢地一對夫婦的迭代。

第一種方法是將我們的工作簡單地連接到控制服務器(通過 Samba,FTP,或類似)和下拉的最新版本的代碼。 效率不是很高,但它會做的工作。 讓我們有所改善的,怎麼樣創造一個 rsync腳本和使用,每一次呢? 或者怎麼樣把我們的最新處理腳本到顛覆檢查出代碼,然後就開始更新我們的代碼在每次運行( SVN更新 )?

最後,我們可能會與一個 bash腳本(稱為由cron每10分鐘),它看起來那麼簡單的:

  #!/ bin / sh的
如果PS斧| grep的- V GREP | grep的PHP > / dev / null的
那麼
    迴聲“工作正在處理,退出”
其他
    迴聲“作業沒有運行,從現在做起”
     CD /路徑 /到/工作/複製
     SVN更新
     PHP yourJobProcessingScript.php
科幻 

現在,我們可以肯定,隨著我們一定每次運行運行最新的代碼。 我們保證此通過更新我們的代碼庫每一次我們執行運行,減少網絡流量僅傳輸文件的差異在我們的網絡。

在我的示範安裝,我沒有完全按照以上。 Subversion是安裝在我的工作處理服務器,我只是拉著最新的代碼從“工人”分支使用“SVN更新”。 我還添加了一個版本號標記到我的處理腳本返回了到數據庫的一部分返回結果。 這樣我可以看到我的代碼被更新,每次我複製我的樹幹分支即到工人,我是絕對運行最新的處理腳本。

採用最新的數據

如果你的工作處理使用的數據源,然後在某個時候這些將要被更新過。 除非你叫你的數據源的基礎上非常罕見的洪水你要你的網絡交通,盡快開始運行使你的員工都處於停頓狀態。 對於我的解決辦法,我決定,我想提出我的數據源的周圍與我的虛擬機。

握住你的馬有!如果我的數據源是巨大的? 嗯,這確實是一個案件有多少數據是我們在談論? 這可能更符合成本效益的安裝一個較大的硬盤驅動器附加到每一台機器,而不是購買更多的服務器進行處理。 這是一個問題的預算,要由企業來決定。 這也許是您的數據源是如此之大,它只是不可行保持這一數據量在你的工作機器。 在這種情況下你會怎麼辦? 那麼我們可以看看調用本地數據服務器,但是這可能會導致問題與網絡。 在這種情況下,電網系統等,因為這可能成為不切實際的,包括在您的辦公環境。 它也可能是因為你可以看看其他運行策略,例如只要求你的員工上午06時至晚上八時每天晚上和/或限制的數據源的請求。

移動上可以說我們的數據源量到100GB的數據。 嗯是的這是相當多的數據,移動網絡上的更新。 我們如何確保我們擁有最新的數據副本在這種情況下? Rsync是一個可能性,但我個人認為,通過運行最新的數據源處理服務器和你的工作設置此為一個掌握複製(用了漂亮的長濱日誌)可能要走的路:

複製 通過設置您的每個工人為一個奴隸的作業控制服務器更新您的數據源將很好地滴入你的員工沒有大幅增加,在網絡活動(即除非你執行一個龐大的數據更新和所有的工人踢在一次)。 這比rsync的優勢,因為你不會得到一個長時間的停頓在每個工作;作為數據庫的更新, mysql的守護在您的工作人員將不斷更新其數據,同時繼續處理。

這是如何設置我的演示服務器。 設置複製我跟著引導MySQL的網站( 設置複製 ),並在20分鐘內我有我的頭文字工作者複製作業控制服務器的數據集。 每增加工人的複製設置和處理工作,每次當虛擬機被複製。

摘要

在本節中的文章我們看到它多麼簡單,無痛的就是保持你的處理代碼是最新的using rsync或subverion(SVN)做工作,減少網絡流量的同時,我們還討論了如何time.Â讓您的數據源的信息了最新的允許它滴入到您的每個工人。 因此,我們區確保我們跟上業務邏輯和信息網格系統在我們的辦公室。 有無數的選擇顯然會在執行這些任務,但這裡有兩個簡單的例子來說明如何簡單的解決方案,是來之不易。

接下來的時間

在這個系列的最後一部分,恰當地命名為第5部分 ,我們將討論部署這一系統。 我總結了什麼教訓和我設法創造。

辦公室網格計算使用虛擬環境-第1部分

,二○○九年十二月四日(星期五)日下午11:23

簡介

我在一家公司工作,我們運行多個批處理作業處理數百萬條記錄的數據每一天,我一直在想最近關於所有的機器,圍坐每一天什麼都不做了幾個小時。 那豈不是一件好事,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處的用人辦公室電網使用虛擬化環境。

作為一個PHP開發人員,我要使用的工具,我每天使用,即Linux上, MySQL的 ,PHP,VirtualBox和顛覆(SVN)。 但我希望本指南將適應其他語言和技術一樣好。

提供的解決方案,我將十分鬆散型的基礎上,處理我們就需要實現但是這可能不是真正通過整篇文章的事情,我會改變為簡單起見,或產生更多有趣的使用場景。

這些虛擬化環境將運行在Windows機器上,因為這是大多數辦公室運行。 其中,加工,辦公室機器做不應該干預工作人員利用這些機器,應該不需要維護的機器,很容易地部署到新的機器,因為它們變得可用。 此外,新的虛擬機應該不需要任何額外的配置,因為這大大降低了可擴展性和易用性在該網格系統可以延長。

為什麼要部署Office網格計算?

首先,你可能會想,為什麼不使用雲計算資源,如亞馬遜的EC2平台 那麼原因可能有幾個,例如:

  • 你不會委託某些數據到雲計算環境
  • 你不能把某些數據到雲計算環境,法律上的原因(如數據離開國家),可能出於法律原因,如NHS記錄。
  • 你要保持你的加工單位的密切,並已完全控制的硬件太
  • 您沒有該項目資金運行雲實例
  • 你的辦公室沒有連接到互聯網,因此它不可能使用雲資源
  • 你不喜歡下雨,雨雲層建議,因此您保持遠離

我敢肯定列表可以繼續,但我認為這足夠了。

優勢的Office計算網格

那麼,讓我們做一些數學(和真正的物理風格讓做一些清掃假設)。 想像一下,你有大仡處理服務器上運行,每天100個就業機會。 在你的辦公室有50台機器是閒置的每天16小時,每個這些機器是10%作為您的強大仡處理斷絕。 (這裡是所有的結果四捨五入到低估的性能提升)。

因此,1台* 10%的電力* 2 / 3的時間= 0.067即1台式機處理過程中可能會在空閒時間,每天工作滿6。

如果現在這個規模達15閒置的台式機需要處理盡可能多的就業機會,每天為你的主處理服務器一樣。

所以在我們假裝辦公室50台機器 ,我們可以增加我們的服務器的處理能力從1到4個全處理服務器 ,或者我們可以每天處理400個職位 ,而不是100。

請注意,因為沒有投資新硬件的公司剛剛增加了批量處理能力4倍 潛在的你要增加你的電源使用,但大多數辦公環境我去過的機器一般都留在一夜之間,無論如何,所以你可以看到這樣的一個綠色的倡議。

其他優點還意味著投資在新的(或更新)處理服務器可以被延遲,如果你的辦公室機器已經足夠,當你提高功率的辦公室機器辦公室電網變得更加強大自動。

技術

你需要什麼? (或更正確地我怎麼使用):

  • 空閒辦公室機器(在我的情況下,舊的Windows XP的筆記本電腦備用)
  • VirtualBox的(或其他虛擬化客戶端軟件)
  • 虛擬機使用PHP,MySQL的runningÂ運行削減操作系統,我打電話我LIMP這些服務器 :)
  • 喬布斯運行
  • 作業服務器(可以是另一個虛擬機的地方)

典型工作

該類型的工作,該系統的設計運行情況如下:

  • 系統接收到的數據列表時,我們需要匹配並返回結果
  • 匹配包括檢查 /搜索數(相當靜態)數據源
  • 結果從數據源可能需要進一步驗證,合併,檢查的其他數據源的響應結果
  • 數據一起返回匹配的記錄,充分驗證和處理
  • 每個記錄在一個工作是獨立的休息

所以基本上我們正在尋找正在運行的作業,要求混合物的數據庫查詢和一些數字運算,一個相當典型的場景是在商業環境。

電網解決方案不僅便於處理這種類型的工作。 基本上,任何進程可分為獨立單元可以並行運行。 看到這個維基的例子和更多的信息: 網格計算 ,但一對夫婦的例子是著名的SETI @ homeBIONC 有框架的運行計算網格,這些都是值得研究的。

我們會怎樣實現?

截至去年底,這些文章中,我希望表明,部署辦公室電網不必花大錢或費時。 我將討論:

  • 建立作業控制制度,崗位配置
  • 創建一個適當的處理虛擬機
  • 如何設置系統在Windows機器
  • 確保您使用的是最新的代碼和數據
  • 部署和基準
  • 展望未來

我會建設(OK我建,然後寫了這個)一個示例應用程序來測試的概念在本地計算機使用Windows XP和我的'GridMachine“虛擬機。 我的工作控制服務器將是我的主要機器,運行Fedora 11中

這是沒辦法為了充分表現出強大的系統工作,它意味著更多的是示範和討論表明,這些東西就可以實現在相當短的時間和空間較小的代價。 請隨時給我任何意見,更正,或改進,我會盡我所能,讓這篇文章的更新相匹配。

接下來的時間

第二部分我將首先著眼於作業控制系統,以及研究如何工作應配置,以達到最大的處理量,同時確保每個作業處理沒有失敗。

辦公室網格計算使用虛擬環境-第2部分

,二○○九年十二月四日(星期五)日下午11:23

簡介

我在一家公司工作,我們運行多個批處理作業處理數百萬條記錄的數據每一天,我一直在想最近關於所有的機器,圍坐每一天什麼都不做了幾個小時。 那豈不是一件好事,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處的用人辦公室電網使用虛擬化環境。

第1部分介紹了我概述的制度和technologies我將使用以及討論一些可能的原因,你為什麼會想要建立一個辦公室的網格。

作業控制

如果你要運行的工作,然後你會需要一些方法來管理它們。 你的任務控制系統(根據您的作業服務器)的需求,真正做到深思熟慮之前,甚至試圖運行一個辦公室的網格。 那麼首先,什麼是任務作業控制系統:

  • 失控的工作要求,從工人
  • 告訴工人什麼類型的工作運行
  • 跟踪工作
  • 確保作業只運行一次
  • 工人提供就業數據,或者至少告訴他們在哪裡得到它

該系統還需要進行擴展,一個解決方案,工程正處在一個單一的情況下可以延長至運行多種類型的工作隨著企業認為值得在網格的解決方案。 例如,可能會獲得優先就業機會,超過一個作業類型可能存在(即幾個代碼庫),最終你甚至可以運行多個不同的工作機器,優化了每種類型的工作(雖然,它擺脫了“普通工人“想法)。 應盡量考慮未來系統開發時,短期目標可導致長期挫折和更多的發展時間。

作業服務器

我們將需要控制的地方,從我們的工作,這應該是唯一的系統在你的網格,有一個固定資源定位器,是一個 IP地址,主機名稱,URL(使用內部 DNS)等,這是因為工人需要知道在哪裡找工作,工人們需要找到作業控制系統(不是作業控制系統找到工人)。

作業服務器本身並沒有真正有一個複雜的任務(在基本制度無論如何),它需要存儲一個列表的職位,手出的工作,得到的結果,隨後它們存儲供日後檢索。 如何將這些部件(如“不可收拾工作”)被定義可以是很基本的。 後來,我們可以擴展系統,包括一個管理界面,添加,編輯,刪除,暫停工作,但這個已經超出這項工作。

沒有任何理由再你的作業服務器無法運行的虛擬機內的主處理服務器提供不流失太多的資源,它。 但是這項工作確實需要服務器的高可用性,如果出現故障在星期五晚上你會失去整個週末的處理,你可能花費數週值得一對夫婦的處理時間(相對於主服務器進行處理單) 。 您可能要考慮把你的作業服務器上的負載平衡環境中實現高可用性。

基本設置

基本設置服務器為我們的工作將包括什麼我打電話我的一個LIMP服務器 (即馬錢, 米ySql,P HP)。 該代碼將運行在THEA工人實際工作了哪些工作可以通過交互運行與作業控制系統數據庫。 後來,我們可以創建一個Web服務,實際上不可收拾工作,而不是讓工人自己的辛勤工作,但現在我們將繼續使用KISS原則 (保持簡單,愚蠢!)

因此,讓創建三個MySQL的表來處理工作。 這將是'工作','jobRecords`和`jobResults`。

工作表 在這裡我使用SQL好友一個偉大的小替代phpMyAdmin的只是因為它更容易安裝在CentOS(對於其他人看到: 10大phpMyAdmin的替代品

此表由5個簡單的領域,

  • ID:唯一標識工作
  • 名稱:客戶可參考,或任意數量的其他標識
  • 狀態:你需要知道的工作是,如
    • 0:未開始
    • 1:拿起
    • 2:已完成
  • started_by:誰開始做的工作? 這是必須的,但不完全是一個不錯的。 我建議工人跟踪其IP地址在網絡上
  • started_at:什麼時候工人開始工作呢? 通過跟踪工作還沒有完成在X時間量,我們知道我們需要拿起工作再次開始處理由另一名工人。 工人可以停止處理 /離線的任意數量的原因,停電,死機,網絡損失等。

這是很容易如何表可以延長一些額外的領域,以便統計跟踪,結束時間列,看看工作了多長時間,一個計數器,看看有多少工人拿起作業(顯然這需要趨向1),工作重點,名單可以一直開下去。 在更複雜的工作方案將有可能指定多少內存工人將需要訪問(因此只使用合適的工人),甚至是什麼類型的工人將是必需的。

讓我們添加一些示例工作:

例如工作

下表又是很容易理解,這些都是我們的工作記錄。 他們是聯繫在一起的主要工作表中的列'jobs_id`。 在彌補此表非常依賴於數據,你需要提供你的工人,讓做一個很簡單的例子,我們有四個列:

  • ID:ID的記錄
  • 名稱:人的名字
  • 地址:人的地址
  • jobs_id:作業ID,這個記錄是與

第三個,也是最後表由一個結果表,它有許多相同的組成為我們的記錄表,並與另外一些列可以部分記錄表:

  • job_record_id:鏈接結果的工作表
  • 結果:結果數據

... ...,這一切您需要的作業控制! (雖然在一個非常基本的水平)在我的情況下,我指著我的另一個表中的數據處理的位置,但這很可能只是得到一個文件,參數運行仿真代碼,你的名字。

選擇工作

如前所述,工人將盡我們的工作為我們現在的管理,所以我們需要真正做的是找到一份工作,需要處理和獲取信息。 我們怎麼做呢? 挑好了我們的工作選擇標準和找工作,在SQL我做了以下幾點:

  1. 採取任何工作都沒有標記為完成,但我們的工人和重置(替代__ME__同一個標識符,最簡單的將是IP地址):
      UPDATE``SET`工作狀態'= 0 WHERE`地位`和`started_by = 1'= __ME__; 
  2. 使用我們的工作選擇標準,選擇一份工作,告訴控制系統,這名工人正在處理它:
      UPDATE``SET`工作狀態'= 1,`started_by`= __ME__,`started_at`= NOW()WHERE`地位`= 0或
     (`地位`和`started_at = 1`> DATE_SUB(NOW(),間隔 X小時))ORDER BY`ID`ASC; 

    通過抓工作,但沒有返回的結果在X數量的時間,我們確保所有的工作都運行在事件的一個工人會崩潰或擅離職守。

  3. 下一步的工作抓細節其次是記錄自己:
      SELECT * FROM``WHERE`started_by工作`= __ME__ LIMIT 1;
     SELECT * FROM WHERE```job_records ID`= __JOBID__; 

在完成這項工作,我們插入我們的結果記錄並標記為已完成的工作。 記得作業可以暫停 /繼續在任何時候允許一些穩健性在你的腳本。 這可能是該任務中途暫停更新作業控制系統,使檢查的數量記錄在工作和數字結果保存到作業控制系統將是一個明智之舉。

此外,雖然這表明如何工作的,可以選擇和管理,從一個SQL查詢幀你應該是抽象的作業控制,因此如果您決定轉而使用Web服務,基於文件系統, XML ,或任何其他數字系統也不會影響它上面的代碼。

人才配置

接下來的方面要考慮的是作業的大小和配置。 通過玩弄作業的配置,我們可以取得一個很好的平衡速度,處理複製和可靠性。 以一對夫婦奧法的情況:

  1. 喬布斯以1日當天跑:這意味著你的員工需要15天時間來處理每個作業(記住10%的功率2/3rds的時間)。 這顯然不是一個明智的配置,你的工作的大小是太大了! 這將需要至少兩倍的時間來處理工作應在初始工人去AWOL(時間拿起它沒有返回結果加後處理時間)。 在一個理想的你至少有一個完整的工作很容易清除 ,最終每個長期閒置期,這樣你的工作保持滴答過去,在最壞的情況下,工作將採取兩天的過程中應首先失踪。
  2. 喬布斯需要1分鐘跑:這意味著你的員工需要大約15分鐘,運行每個作業。 雖然這可能最初似乎理想,您將獲得額外的處理工作,在午餐時間,茶點,會議,這種情況使得應變等其他領域的系統,並介紹自己的問題。 例如,首先你的設置 /處理時間比是要去對倒,因此失去系統的效率。 您的網絡將是不斷流作業信息的各種工人洞令人沮喪的工作人員誰是他們的日常工作​​。 你也將投入更多的應變處理服務器上的工作,因為它拋出很多,很多的小件工作定期。 最後,在這種情況下,如果你的工作服務器出現故障你要創建一個巨大的回未完成的工作日誌,而更大的工作可以繼續處理工作暗藏不知道該服務器遇到的困難。

在現實中不​​會有一個理想的配置為您的網格設置,在很大程度上取決於可用的資源,類型的作業,作業周轉時間的要求,網絡能力,等等​​。 然而,一些準則是:

  • 大小工作,使每個工人可以通過至少3-4職位,為期 15小時(最長可能空閒時間)
  • 發揮與作業的大小,使安裝時間變得相當微不足道相比,處理時間(銘記上述點)。
  • 如果作業沒有完成一倍的時間(或許更少),你希望它完成了它認為其擅離職守,並開始處理它與另一名工人。 這意味著你可能要等上三倍的正常長度為它的工作完成(可能更長,如果後續作業失敗)。 您可能要縮短這個時間,但要注意不要減少太多,否則可能會開始複製處理任務定期。
  • 喬布斯應該是獨立的外部需求,盡可能。 作業服務器,例如,只應接觸的開始和結束的每一項工作。
  • 不飽和您的網絡,這將有兩個負面影響,你會發現白天的工作人員使用網絡沮喪和問題可能會遇到與連接超時的問題只會變得更糟為您擴展您的網格。
  • 確保作業可以運行在您的工人。 如果工作過於密集的內存或磁盤空間密集的工作將開始中止,唯一你會發現在數量上是一個下拉處理的工作,沒有真正原因。

結果提交的作業

在提交成果的工作是很重要的檢查結果沒有被提交的另一名工人,特別是如果目前的工作已經蟄伏一段時間。

當結果提交確保結果的數量相匹配的記錄數內的工作。

如前所述,並不能過分強調,建立容錯檢索到的工作和成果提交。 工人們可以(而且很可能會)進入掛起模式在最不方便的時間,這需要得到照顧。 也再次抽象離開你的結果提交將有助於應付未來的變化,以您的作業控制系統更容易處理。

摘要

在此sectionÂ我們看到什麼是作業控制服務器需要做,如何得到一個非常基本的系統設置。 我們討論了如何檢索工作從控制系統以及如何最好地配置工作,以獲得最大的我們對您的辦公網系統。 要完成,一個段落或兩個提交結果返回給服務器提交作業控制。

  • 作業控制服務器管理工作,確保各單位完成
  • 通過提煉你的工作選擇 /結果提交我們可以改變技術的控制服務器,沒有什麼問題
  • 配置您的工作,以確保它們運行快速,高效地沒有把太多的壓力在你的網絡基礎設施,並在不重複處理任務定期。
  • 確保你建立容錯和錯誤 checkingÂ到您的程序,工人可以暫停,恢復和最不方便的時候。 記住要檢查結果已經提交另一名工人。

接下來的時間

第三部分 ,我們將創建我們的虛擬加工機,並設置了我們的Windows機器成為空閒時間的工人。

辦公室網格計算使用虛擬環境-第5部分

,二○○九年十二月四日(星期五)11:03 PM

簡介

我在一家公司工作,我們運行多個批處理作業處理數百萬條記錄的數據每一天,我一直在想最近關於所有的機器,圍坐每一天什麼都不做了幾個小時。 那豈不是一件好事,如果我們可以利用這些機器的處理能力來支持我們的系統? 在這組文章中,我要去看看的潛在好處的用人辦公室電網使用虛擬化環境。

第4部分 ,我們看著使用工具,以確保我們正在運行最新版本的代碼和數據來源,以便得到的結果始終保持最新與最新的商業信息和邏輯。

預部署

在部署電網系統,如果有一件事情一件事情你做,僅僅是基準當前系統 不管你告訴同事多少額外的工作,你的系統是要幹什麼,除非你有編號,以支持這一行動的保證是什麼。 所以,

  • 有多少紀錄可以在處理目前? 每一天? 每小時?
  • 多久通常需要扭轉工作嗎?
  • 多少容量更大,你呢?

還有其他問題:

  • 如果您的服務器進行處理(或一個你處理服務器)出現故障這將如何影響你的能力,你會被削弱?
  • 你希望有什麼優勢 /希望得到來自電網系統?
  • 你們的辦公室機器能夠運行的工作?
  • 是您的(或你的工作被轉換)工作在這種風格的運行?

最後一個主要的一點是把你的時間在任何重大改變這樣。 更新您的處理代碼以使用新的方法,基準試。 可能設置了處理服務器運行虛擬機後,服務器將所有的處理只是另一名工人(只是一個非常強大的一個相對)。 允許新的進程來解決。

部署

我的建議是將彈出一個週末走進辦公室執行所有的安裝和設置。 這樣做只是前兩週的假期,離開讓其他貧困章處理的後果... ...也許不

部署這樣一個系統需要很慢。 儘管它是相對簡單的設置這個系統將影響整個辦公室的基礎設施(以及數字之一)。 首先,推出一對夫婦的機器在同一時間,監控網絡流量,如何在主機上執行工人每天的日常基礎。 您可能需要改變你的工作配置,響應你的發現。

一旦系統已解決了幾台機器(可以說 10%的辦公設備,即5)隨時監控網絡流量和主機 performance.Â下一步基準再次,你現在應該處理 33%以上的就業機會比你的第一個基準。 檢查是這樣的話,或者說,你至少在這個球場。 如果不是,調查是怎麼回事,才進入。 重複這個循環,直到你幸福都辦公室機器運行沒有造成個人或研磨機性能的網絡癱瘓。

在任何時候保持基準,即使在所有部署進行的。 如何檢查新代碼更新速度影響你的系統,檢查所有的工人都在報告和處理工作。 慢慢(很慢)增加你的工作配置,以獲得最佳的從你的工人和網絡。

住手!

如果你要停止你的員工在運行一段時間? 他們都在那裡運行,再生,並盡力處理數據,如飢餓的昆蟲。 答案似乎是顯而易見的,但它的價值增加,以防萬一其忽視。 您只需編輯處理腳本退出(0)或死亡()或其他一些語句來殺死你的處理工作。 一個重要原因,我們總是嘗試更新到最新的處理腳本之前運行!

演示系統

為了寫這組短文我創建了一個很小的以展示的技術和方法。 我看了很多文章,教程和使用各種工具來設置和監控發生了什麼事情。 並不意味著我有沒有出去和飽和的交通和整個辦公室,我也接觸到普通工作人員的電腦,看看主機性能受到影響。

我的演示系統確實很謙虛。 我用我的桌面設置為作業控制服務器。 在此我已經安裝MySQL的服務器上安裝設置為掌握複製, PHP ,A和SVN連接通過阿帕奇 (用於訪問通過工人VM)。

然後,我創建了一個 CentOS工作者機在VirtualBox上一個 6歲的Windows XP的筆記本電腦。 我的設置為指定的計劃任務後,複製到虛擬機的機器,讓它去。

虛擬機成立,PHP,顛覆和MySQL。 我簽出的一個分支命名為“工人”從我的工作控制服務器資源庫,並確保它可以更新使用“SVN更新”。 接下來,我安裝 MySQL作為一個奴隸,並檢查這些數據被複製從 MySQL服務器上的作業控制下至工人VM。 畢竟這是我設置的bash腳本和cron作業。

我去處理腳本基本上沿此線(很簡單的東西):

  • 閱讀在名稱字段
  • 清點人數的類似名稱表中的數據源舉行了VM
  • 清點人數名稱同上,但分裂的名稱空間(即用的名字,中,姓)
  • 重複這個過程 1000次

每個作業大約需要20分鐘運行。 有一次我打開多個副本的工人VM上的窗戶,看著筆記本電腦的工作進行檢查關閉的每個工人的IP地址。 在這一點上我也證實,複製自動重新啟動。

離開筆記本電腦閒置造成一名工人開始處理作業的作業控制服務器。 當恢復筆記本電腦的使用有一個延遲約 30-60秒,這是一個相當的時間和工作人員將需要作出意識到,他們的機器可能會暫停一小會兒,當返回到本機。 較新的機器可能沒有停頓這麼久。 這樣做的好處的金額進行處理,這些機器空閒期間將更多的工作人員超過不必等待很短的時間(比如1分鐘)到達在他們的機器上的一個早晨(我經常等待更長的時間,這為 Windows Defender的更新發生)提供的,他們意識到了這個(有用的時間搶了一上午的咖啡!)

總的來說,我覺得有信心,我已經證明的技術,可用於建立這樣一個系統。 我已經表明,這種系統可以工作在一個(非常)小規模試驗,並與一些更可以利用的資源,擴大規模的一間辦公室的機器。 如果我不切入正題,這樣做我會非常有興趣知道/時看到別人做。

結論 /評估

下一個明顯的步驟將是真正得到一個真實的例子,並開始部署這種系統,如在一個辦公環境,看看會發生什麼。 要求企業承諾本公司沒有線索證明熾烈的技術和效果可能會有點困難。 網格/分佈式計算是非常流行的是一些圈子,並有一些大型應用程序(BIONC,SETI @ HOME,折疊 @家等)。 我沒有,但是,找到一個較小的規模,這樣的簡單系統,可以在我的搜索範圍內陸續推出辦公環境。

我創建了一個基本上是免費的系統主要使用開源軟件和工具,可在幾乎任何職位。 這些技術基本上表現,並顯示執行和正常工作。 希望我表明,沒有太多的工作,一個非常簡單的設置就可以部署一個辦公室網格計算系統,該系統功能強大,價格便宜,A和可擴展性都在同一時間。

一旦系統啟動並運行,幾乎沒有盡頭的數額定制和改善你可以。 例如統計 /基準可以方便地添加,顯示價值的這樣一個系統的每一天。 新機器可以快速,容易地加入,當他們到達與升級現有的硬件作為支撐你的處理能力。

我希望您喜歡閱讀這個系列的文章和它給你回味無窮上運行辦公網格系統。 這裡介紹的解決方案並不一定適用於所有情況,但應該適應,讓您讓您的數據處理通過使用自己的解決方案。

請隨時給我任何意見,更正,或改進,我會盡我所能,讓這篇文章的更新相匹配。













由全景主題 Themocracy

9訪客在線
8位客人,1個機器人,0會員
今天最多訪問:16日下午12點 59 UTC
本月:19在19-08-2011上午6時 09分UTC
今年:130 28-03-2011 10:40 PM UTC
所有時間:130 28-03-2011 10:40 PM UTC