web-dev-qa-db-ja.com

Linuxクラスターの管理

多くのLinuxマシンを管理するために使用されるツールとテクニックについて学ぶことに興味があります。 (つまり、更新の展開と保守です。)

これを行うために私が考えた1つの方法は、サーバーに別のスクリプトをアップロードし、各サーバーのスクリプトを順番に実行するBashスクリプトを作成することです。例えば:

foreach server
{
     connect to server and scp update_script.sh to ~/scripts
     ssh user@server -e "sh ~/scripts/update_script.h"
}

また、update_scriptは、apt-get/aptitudeまたはyum、あるいはサーバー上のパッケージを更新するために何でも使用します。

このようなことをするためのより良い方法はありますか?

6
razor

人形を試してみてください

もう1つの優れた(本当に優れた)ツールはWebminです。webminを実行している複数のサーバーを(webminインターフェイスで)一緒に追加すると、更新をプッシュして、クラスターページでパッケージ構成を表示できます。

画像のロールアウトに適した代替手段は、SystemImagerです。

11
gbjbaanb

ClusterSSH はあなたが探しているものです。これは、クラスター内のすべてのノードにコマンドをブロードキャストする方法を提供します。 BashReduce sansReduceのように考えてください。

3
jldugger

他の誰かがすでにパペットについて言及しました。

同じように、Cfengineをお勧めします。学習曲線は少し急になる可能性がありますが、一度コツをつかめば、それは素晴らしいことです。私はそれを使って約50台のサーバーを管理していますが、それなしではうまくいかなかったとは信じられません。

2
Bill B

Capistrano を試してください。上記のbashforeachループと同じように機能しますが、Rubyに基づいています。Capistranoは運用タスクに使用されます(サーバーをメンテナンスモードにし、メンテナンスモードを終了します)

パペットの場合は+1。これは、システムを既知の状態のままにするべき等演算に適しています。

2
KevinRae

Linuxシステムのクラスター上でコマンドを並行して実行できるようにしたい場合は、次のいずれかが重要になる可能性があります。

システムの大規模なネットワークを構成する一般的な方法として、cfengineやpuppetなどのすでに説明したツールを使用することをお勧めします。

1
stephen mulcahy

あなたの考えが私にとって悪くないように思われるとしても、私はスクリプトの展開についてあまり知りません。ただし、Linuxマシンを管理するプロセスでそれらを監視する場合は、このタスクにNagiosを強くお勧めします。

Nagios通常のデフォルトタスクよりも多くのタスクを処理したい場合は、構成するのが少し面倒です(他のLinuxソフトウェアと同様、気を付けてください)が、広範なドキュメント彼らのウェブサイト:nagios.sourceforge.net/docs/3_0/toc.html

もちろん、それは無料です;)

0
Elvian

グループの「多く」はどのくらいの大きさですか?すでに述べたように、Webminは、必要な処理を実行できる場合に適しています。httpsを使用して、任意のコマンドを実行し、いくつかの一般的な管理タスク(ローカルユーザーの同期など)を実行できます。したがって、sshメソッドよりもオーバーヘッドが少なくなります。 Webminのクラスターツールは「数十」のマシンに適しています。私はそれをより大きなグループで試したことがありません。言及されたcfengineもあります。これは、必要に応じて階層管理(1つのマスター、次にいくつかのサブマスターなど)を実行できるため、小規模から非常に大規模なマシンのグループ(数千など)に使用できます。私は現在、これを使用して、さまざまなフレーバーの約3500台のUnixマシンであるネットワークを管理しています。他のポスターが言ったように、最初に学ぶのは苦痛ですが、非常にうまく機能します。

システムが同種であるか、少なくともかなり同種のグループであり、全体が少ない場合(数百未満など)、優れたクラスター管理ツールセットがいくつかあります。 Oscarプロジェクトには、クラスターの管理に使用するためにすでにアセンブルされたいくつかの管理ツールがあります:http://svn.oscar.openclustergroup.org/trac/oscar、および名前が私を免れる他の同様のプロジェクトがあります(おそらくすぐに覚えています私が投稿するように)。

簡単に言うと、Linux Journal(http://www.linux.com/archive/feature/151340)で説明されている並列sshツールがいくつかあります。ただし、他のsshベースのクラスターツールと同様に、同時に多くのssh接続を開こうとすると、問題が発生し始めます。ハードウェアにもよりますが、私の経験では、並列処理を20〜30の同時sshリンク未満に保ちたいと思うでしょう。

基本的に、これには既成のソリューションがたくさんあり、自家製のソリューションも同じくらいたくさんあります。 freshmeat.netとgoogleを見回すと、いくつか見つかります。またはあなた自身を転がしてください。 10〜20台のマシンを使用している場合、許容範囲内で解決することは特に難しい課題ではありません... :)

0
dannysauer

私はcfengineを使用して最大150台のLinuxマシンを管理しています。特定のマシンに1週間に1回未満ログインする必要があり、残りはcfengineが行います。ユーザーの追加、削除、パッケージのインストールなど。

0
Bill Weiss