はじめ
私たちは毎日のデータの何百万ものレコードを処理する多くのバッチジョブを実行すると私はそれぞれの周りに座って、毎日数時間何もしないですべてのマシンについて、最近考えてきた会社で働く。 我々はシステムの処理能力を強化するためにこれらのマシンを使用することができればそれが良いのではないでしょうか? 記事のこのセットでは、私はオフィスの採用の潜在的な利点を見に行くよグリッド仮想化環境を使用する。
で第2部私たちは、サーバーが実行するジョブを見て、そしてどのようにジョブは、各ジョブが失敗することなく処理されることを保証しながら、処理の最大量を達成するために設定する必要があります。
やLIMPサーバ - あなたの労働者を設定する
プロセスの次のステップは、仮想の労働者を設定することです。 このために私はVirtualBoxを使用してCentOSのインストールを使用するつもりだ。 私はインストールするつもりのmySQLとPHPを (私はその名前が作られていることがあります )また、LIMP(リチウム木の実、M ySQL、P HP)として知られている、サーバー上のServerAを。
- WindowsマシンにVirtualBoxをインストールする(リンクをたどる)
- 作成された仮想マシン内でCentOSの(現在バージョン5.3)をダウンロードしてインストール
ない点はそこに偉大なチュートリアルの1,000のはおそらくあると私はこれに行くがない(:OK、ここで一つだVirtualBoxの下で作成およびManaging CentOSの仮想マシン )。 私が思う注意すべき重要な点は、私は私の仮想マシンがGridMachineということです。
限り仮想化のクライアントおよびオペレーティングシステムの私の選択肢には各選択肢のための大きな説得力のある理由は何もありません。 VirtualBoxのは、私は私の自宅のマシンで使用するものであり、3つの主要なオペレーティングシステムでサポートされています。 私はその良い安定したOSとしてCentOSを選んだと私は自分のWebサーバ上にそれを使用。 ): オペレーティングシステムXは、より迅速かつ効率的にその代わりに使用するコードを実行されるようなら 、私は、仕事に適したツール(私はここの精神"あなたのための最も迅速かつ簡単な使用"を適用していますが)の大きな信者午前
重要なことは我々は、ワーカーマシンに対して個別のネットワーク設定を構成する必要はありません我々はwant.By DHCPを使用していない何かである別々に構成する必要があるだろうにVMがそれぞれの新しい仮想マシンにそうでなければ、DHCPを使用していることを確認して、DHCPがお渡ししますあなたのためのIPアドレスから。 したがって、(これは、スケーラビリティを改善し、労働者の管理を軽減する)、それぞれを設定する心配をせずにオフィスについての仮想マシンをコピーすることができます。
あなたが達成することを目指すはずのプロセスは、新しい物理的なマシンを入手VirtualBoxをインストールしてから、ほとんど他の多くせずに仮想イメージを展開することです。 それはあなたが少なくとも実行されているどのように多くのマシンが見えるように、別のサブネット上のすべての労働者を設定するのが賢明かもしれません。 また、長期リースまたは無制限のリースDHCPであなたのマシンをセットアップする必要があります。
労働者にジョブを実行する方法
これは興味深い分野であり、労働者のジョブを処理するためのいくつかの有効な方法があります。 ここで私はちょうど2つの最も明白なことを説明します。
- 絶え間なく実行中のスクリプト:スクリプトは、シェルスクリプトとして、またはPHPスクリプトは、労働者に一度だけ実行され、無限ループの一部として実行されます。 私は、スクリプトの一つクラッシュとしてこの方法を軽視した、潜在的にあなたの労働者は、介入のいくつかの並べ替えなしで実行しなくなります。
- cronベースのスクリプトの実行:X分ごとにcronデーモンは、物事が軌道に乗るために、スクリプトへの呼び出しをキックオフ。 いくつかのチェックがなければこれはあなたのワーカースクリプトの実行の多くの多くのコピーにつながる可能性があります。
私の決断は、私のシェルスクリプトは、次のタスクを実行するごとに10 minutes.Âのシェルスクリプトをキックオフcronで行っていた。
- プロセスのリストを取得し、'PHP'のためにこれをgrepする。 見つからない場合はこのまま続けます。
- あなたの仕事のコードを呼び出す、私のケースでは、これはベースに何かPHPのようになります
- 労働者のスクリプトは、その実行を完了
- 次の適切な呼び出しに再び移動する準備
私のbashスクリプトには、次のようになります。
#!/ bin / shを
場合はps ax | grepの- Vはgrep | grepはPHP> / dev / nullに
その後、
エコー"ジョブは現在、出口を処理している"
他
エコー"ジョブが実行されていない、今始める"
PHP yourJobProcessingScript.php
FI 注:エコーのはほぼ完全に無意味ですが、それらを試してみて、編集するためにやってきて次の人を助けるかもしれない。
それは、労働者の仮想マシンから、素早くシンプルな、と受け取られているハードウェアのそれぞれの新しい部分にコピーする簡単な設定は終わりです。 グリッドシステムの"賢さ"は実際に可視化OS、ジョブを処理するために作成したコードでは何をするそのすべて、ジョブの設定で、とするとき、すなわち(適切なホストがアイドル状態のときにジョブが実行されることを確認することではない)。
労働者を初期化するために、Windowsのセットアップ
最初のタスクは、Windowsのコマンドラインから仮想マシンを実行するために必要なコマンドを動作するようになります。 あなたがデフォルトの場所にVirtualBoxをインストールした、あなたの労働者GridMachineを名前をつけている場合、あなたの労働者をロードするために必要なコマンドは次のとおりです。
"C:\プログラムファイル\日\ VirtualBoxの\ VBoxManage.exe"startvm GridMachine
しかし我々が使用する必要がある"ヘッドレス"状態でスクリプトを実行する:
"C:\プログラムファイル\日\ VirtualBoxの\ VBoxHeadless.exe"- startvm GridMachine - VRDP =オフ
これは、GUIなしで仮想マシンを起動し、正常な状態を保存できるようになります。 番目の引数は、Windows RDPと競合しないようにRDPをオフにし、またはあなたのポート3389でリスニングについてのメッセージを与える。 仮想マシン名は、大文字と小文字が区別されます!
次に、我々はマシンがアイドル状態になっている後に私たちの労働者のVMを開始するためにウィンドウを設定する必要があります。 >すべてのプログラム] - - >アクセサリ - >システムツール - このを(Windows XP上で)そのためには、スタートに行く必要があります以下のように>スケジュールされたタスクを:
次のカスタムプログラムを追加するために参照が続く"がスケジュールされたタスクの追加"をクリックしてください。 あなたのVBoxManageスクリプトに移動し、[OK]をクリックします。 オプションのいずれかのタスクをスケジュールする(我々が1分間にこれを変更します)して続行します。 次の画面をスキップした後、Windowsがこのタスクを実行したい人を聞かれます、私は"管理者"または新しい特権ユーザを作成するのどちらかをお勧めしたい。 我々は任意の時点でマシン上の標準的なスタッフのアカウントに干渉したくない覚えている。 [次へ]をクリックし、このタスクの詳細オプションを表示する]をオンにします。
実行textboxの末尾に私たちの"startvm GridMachine'文字列を追加し、ログインしたときにのみ実行がunticked残っていることを確認してください。 次のスケジュールタスクを訪問し、あなたがマシンが次のタブに移動する前にアイドル状態を維持したい時間を選択します"アイドル時"スケジュールがオプションにドロップダウンを変更。
最終的にそれは時間のX量を実行されている場合の状態は、タスクを停止するオプションがチェックを外すが、マシンがアイドル状態になっていた場合は、タスクを停止するオプションにチェックを入れてください。
それは、Windowsホストのセットアップのために、それだ!
まとめ
このパートでは労働者だけでなく、我々は(自分のためのPHPスクリプト)を呼び出すと、私たちの仕事の処理のスクリプトを実行する方法として機能するように仮想マシンを設定している。 ここから我々は、コンピュータがアイドル状態になったときに、ヘッドレスモードで仮想マシンを起動するウィンドウの私たちのコピーをセットアップする方法を見て、そして、ユーザーはマシンの使用を再開したときにその状態を保存します。 うまくいけば、この時点では、そのようなシステムをセットアップするのがいかに簡単な見ているといくつかの実験を自分で軌道に乗るためにむずむずされています!
次の時間
に第4部私たちは、あなたが得た結果は常に最新のビジネス情報とロジックとのup - to - dateであるように、コードとデータソースの最新バージョンを実行していることを確認するためのツールを使って見ることになります。