1

I'm creating a server management interface for a few of my servers (which host virtual servers) and I wanted to know the best way to implement a master-slave configuration for said interface.

The master server should connect to all the slave servers in order to retrieve information (provide a high level overview) and send them commands (keeps management centralized). However, the master server itself may also have virtual servers on it, which is why I was planning to deploy the same application across all the physical nodes and figure out whether the node is a master or a slave.

//Side Note: almost seems like recursion in a way haha

A few ideas I had in mind:

  • Separate database schemas for a master and a slave, the app checks the schema to determine the server type.
  • A field in the server listing table that designates a server in the table as a master or slave
4

2 に答える 2

3

独自のソリューションを展開することもできますが、最善の策は、PuppetやChefなどのサーバー自動化フレームワーク/アプリのようなものです。個人的にはシェフが好きですが、どちらもたくさんのサポートがあります。少なくとも、あなたはおそらく彼らからこれを自分で達成する方法についての洞察を得ることができるでしょう:)

彼らが何をしているのかについての大きな説明に入るのではなく、それぞれのサイトをチェックすることをお勧めします:

ただし、ここに各サイトの紹介文があります...


Chefは、インフラストラクチャ全体に構成管理のメリットをもたらすために構築されたシステム統合フレームワークです。Chefを使用すると、次のことができます。

  • コマンドを実行するのではなく、コードを記述してサーバーを管理します。(クックブック経由)
  • アプリケーション、データベース、LDAPディレクトリなどと緊密に統合します。(ライブラリ経由)
  • インフラストラクチャ全体に関する知識を必要とするアプリケーションを簡単に構成します(「アプリケーションを実行しているシステムは何ですか?」「現在のマスターデータベースサーバーは何ですか?」)

Puppetは、システム構成を表現するための宣言型言語、それを配布するためのクライアントとサーバー、および構成を実現するためのライブラリです。

Puppetは、現在の手法を自動化してサーバー管理に取り組むのではなく、サーバー、サーバーが提供するサービス、およびそれらのサービスを構成するプリミティブオブジェクト間の関係を表現する言語を提供することにより、問題を再構成します。Puppetユーザーは、特定の構成を実現する方法や特定のサービスを提供する方法の詳細を処理するのではなく、サービスやノードなど、処理に慣れている抽象化を使用して目的の構成を簡単に表現できます。Puppetは、構成を実現する責任があります。または、発生した問題を修正するのに十分な情報をユーザーに提供します。

于 2009-07-27T18:19:46.117 に答える
0

私は自分の問題に対する簡単な解決策を思いつきました。スレーブのインストールに SLAVE ファイルを追加したところ、プログラムはそのファイルが存在するかどうかを確認します。もしそうなら、それはそのサーバーをスレーブとして指定します...これは完全に考え過ぎです...

于 2009-07-28T18:28:51.593 に答える