文章標籤:SVN

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

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

介紹

我在一家公司上班,我們許多批處理作業處理數據每天數以百萬計的記錄,我一直在想最近所有的機器,周圍坐的每一天做幾個小時沒有運行。 如果我們可以使用這些機器,以增強我們的系統的處理能力,豈不是好? 在這組文章中,我要去看看用人辦公室電網使用虛擬環境的潛在好處。

第三部分中,我們創建我們的虛擬加工機,並成立窗機成為空閒時間工人。

運行最新的代碼

不可避免創建您的工作人員的業務邏輯,將改變後,錯誤會被發現,更快,更高效的代碼將產生,從而使處理數據使用你的工人,周圍坐著老臭代碼 那麼我們如何確保我們總是使用最新和最偉大的版本我們處理腳本?

有幾個很容易簡單的方法,我們可以做到這一點的伎倆,然而,在實現這一目標,以減少處理能力和網絡流量。 讓我們用最簡單的解決方案,並開始慢慢提高了幾個迭代。

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

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

  #!/ bin / sh的
如果PS斧| grep的-V的grep | grep的PHP >的/ dev / null的
然後
    迴聲“工作目前正在處理,退出”
其他
    呼應“作業未運行,從現在開始”
     CD /路徑/ / /複印工作
     svn update的
     PHP yourJobProcessingScript.php
科幻 

現在我們可以肯定的,每次運行時,我們肯定運行最新的代碼。 我們要確保我們的代碼庫更新每一個時間,我們執行的運行,減少網絡流量,只在我們的網絡傳輸文件的區別。

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

使用最新的數據

如果您的作業處理,在某些時候使用的數據源,那麼這些將要更新過。 除非你叫您的數據源上非常罕見的基礎上,你會湧入與交通網絡盡快為你的工人開始運行停頓帶來的一切。 對於我的解決辦法,我決定,我想我與我的虛擬機的數據源,周圍移動。

握住你的馬有!如果我的數據源是巨大的? 嗯,這真的是我們談論了多少數據的情況下? 它可能是更具成本有效的安裝到每一台機器的一個額外的更大的硬盤驅動器,比購買一個額外的服務器進行處理。 這是一個問題的預算和業務決定。 它也許您的數據源是如此之大,它只是不可行保持在您的工作機的數據量。 在這種情況下,你會做什麼? 那麼我們可以看看在調用本地數據服務器,但是這可能會導致網絡問題。 在這種情況下,如該網格系統可能成為不切實際的,包括在您的辦公環境。 這也可能是替代性的運行策略,例如,你可以看看,只有晚上8點到早上6點之間的工人每天晚上和/或限制的數據源請求調用。

上讓移動100GB的數據說,我們的數據源量。 是的,是一個相當位數據,在網絡上更新移動。 我們如何確保我們在這種情況下,最新的數據副本嗎? Rsync是一種可能性,但我個人認為作業處理服務器上運行您最新的數據源,並設置作為主複製(用一個漂亮的長濱日誌)這可能是要走的路:

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

這是如何設置我的演示服務器。 設置複製,我也跟著上設置複製 MySQL網站(指南),並在20分鐘內,我有我的頭文字工作者,複製作業控制服務器的數據集。 複製設置和過程,對於每一個額外的工人工作,每次當VM被複製。

總結

在本節的文章中,我們看起來簡單,無痛的,它是迄今usingÂrsync或subverion(SVN)的的,做的工作和減少在同一time.Â的網絡流量,讓您的處理代碼,我們還討論了如何允許它滴入每個工人,以保持您的數據源的信息最新。 因此,我們面積,確保我們保持在我們的辦公室電網系統的業務邏輯和信息。 顯然是有無數的替代品,來執行這些任務,但這裡是兩個簡單的例子來證明的解決方案是多麼容易來。

下一次

在這個系列中,恰當地命名為第5部分的最後一部分,我們將討論部署這一系統。 我會總結所學和我設法創造。

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

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

介紹

我在一家公司上班,我們許多批處理作業處理數據每天數以百萬計的記錄,我一直在想最近所有的機器,周圍坐的每一天做幾個小時沒有運行。 如果我們可以使用這些機器,以增強我們的系統的處理能力,豈不是好? 在這組文章中,我要去看看用人辦公室電網使用虛擬環境的潛在好處。

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

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

這些虛擬環境將Windows機器上運行,因為這是大多數辦事處運行。 辦公室機器做了處理,不應該干涉員工使用這些機器,應該不需要在機器的維修,並很容易地部署到新機,因為他們成為可用。 此外,新的虛擬機,不需要任何額外的配置,因為這大大降低了在可擴展的網格系統的可擴展性和易用性。

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

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

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

我敢肯定,這個名單可以繼續,但我認為這是足夠現在。

一個辦公室計算網格的優點

好吧,讓我們做一些數學(在真實的物理風格讓一些籠統的假設)。 試想一下,你有大的的仡處理服務器上運行100每一天的工作。 在你的辦公室有50台機器,每天16小時處於閒置狀態,這些機器是只要你仡處理SEVER強大的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機器上的系統
  • 確保您使用的是最新的代碼和數據
  • 部署和基準
  • 展望未來

我會大樓(我建的,然後寫這)一個示例應用程序來測試使用Windows XP和我GridMachine“虛擬機上的本地機的概念。 我的作業控制服務器將成為我主要的機器上運行Fedora 11中

這絕不是為了展示一個完全工作的強大的系統,它意味著更多的示範和討論顯示,這些東西可以在相當短的時間空間,在較小的代價實現。 請隨時給我任何意見,更正,或改善,我會盡我最大努力保持更新以匹配本文。

下一次

第2部分 ,我會開始在尋找工作控制系統,並考慮工作應該如何進行配置,以達到處理量最大,同時確保每個作業無故障處理。













全景主題 themocracy

4訪客在線
1位,3個機器人,0會員
最大的遊客今天:48在02:40上午UTC
本月:56在25-04-2012 08:41我
今年:69在27-02-2012 09:56我
所有時間:130 28-03-2011下午10:40 UTC