:
のSolarisとは異なり、Linuxカーネルが "gethostid" コールを提供していません。代わりに、(/usr/bin/hostid
プログラムによって使用される)「gethostidは」しようとするimplemented by glibc、あるに:
- 固定ファイル(私のシステム上の
/etc/hostid
)が存在するかどうかを判断しますそうであれば、そこに4バイトの値を使用します。
- これに失敗すると、システムのIPアドレスに基づいてホストIDを作成しようとします。
- これに失敗した場合は、
0
のホストIDを使用します。
これは、すべてのシステムに一意のIPアドレスがある場合、固有のホストIDも持つことを意味します。
あなたのシステムが固有のIPアドレスを持っていない場合、あなたはまだ(はglibcのgethostid
アルゴリズム上記のステップ(1)で読み取り、ファイルへの書き込み)sethostid
glibcライブラリの呼び出しを使用してホストIDを上書きすることができます。気づかないそれらのすべてが(すべてのインスタンスが同じカーネルを共有する)Solarisゾーンとは異なり
、KVMの各インスタンスは、Linuxカーネルの独自のコピーを実行し、:KVMインスタンスのするzoneidをフェッチについて
実行中の他のインスタンスに移動します。私が知っている限り、SolarisのゾーンIDには直接的な同等物はありません。それぞれのLinuxインスタンスは他のLinuxインスタンスと共同作業する方法がありません。あなたが実行中の各KVMインスタンスの一意の識別子が必要な場合は
、いくつかのオプションがあります:上記のようにジャスト、IPアドレス/ホストIDのためにセトリング
。
インスタンスをセットアップ/起動するときは、uuidgen
を使用してシステムのUUIDを生成し、ファイルシステムの安全な場所に保存してください。このように生成されたUUIDは他のどのUUIDとも非常に高い確率で一致することはありません。
システムの各インスタンスを起動するときは、カーネルのコマンドラインで、手動で構成されたインスタンスの一意の識別子(-append
KVMコマンドライン引数を使用)を渡します。これは後で/proc/cmdline
から取得できます。
あなたは賞金を獲得します。 :-) –