以下、本発明の実施の形態について、図面を参照して説明する。
図1は、本実施の形態にかかるKVM(K:キーボード、V:ビデオ、M:マウス)スイッチを備えるKVMシステムの構成図である。
図1のKVMシステムは、第1〜第3グループを有し、各グループは、複数のサーバ1(情報処理装置)、複数のサーバユニット2(通信ユニット)、複数のKVMスイッチ3、複数のコンソールアダプタ4(通信アダプタ)、及び複数のコンソール5を備えている。各コンソール5は、モニタ、キーボード及びマウスを備えている。また、各グループに含まれるサーバ1及びコンソール5の個数は、例えば、16であるが、これに限定されるものではない。また、第1のグループに含まれる各KVMスイッチ3は、16台のコンソールを切り替えて、16台のサーバに接続する。
各サーバユニット2は、同じグループに含まれる1台のサーバ1に接続されると共に同じグループに含まれる3台のKVMスイッチ3に接続される。各コンソールアダプタ4は、同じグループに含まれる1台のコンソール5に接続されると共に3台のKVMスイッチに接続される。各コンソールアダプタ4に接続される3台のKVMスイッチは、互いに別のグループに属する。これにより、各コンソール5は、第1〜第3グループに含まれる48台のサーバのいずれかに接続可能である。
図2(A)は、サーバユニット2の構成図であり、図2(B)は、コンソールアダプタ4の構成図である。
サーバユニット2は、サーバユニット2全体を制御するマイコン201、プログラムやデータを格納するEEPROM(Electrically Erasable and Programmable Read Only Memory)202、モニタの接続名や設定値などのEDID(Extended Display Identification Data)を保存するEDID保存部203、EDIDを出力するか又は出力しないかを選択するセレクタ204、及びサーバユニット2のファームウエアを書き替える書き替え部205を備えている。さらに、サーバユニット2は、複数のKVMスイッチ3と接続する通信ポート206〜208、USB(Universal Serial Bus)データをサーバ1に出力するUSBポート209、キーコードやマウスデータをサーバ1に出力するPS/2ポート210、シリアルデータをサーバ1に出力するシリアルポート211、サーバ1の画面データを入力するビデオポート212、及びビデオポート212から入力された画面データをビデオ信号としてKVMスイッチ3へ送信するビデオ信号送信部213〜215を備えている。
マイコン201は、EEPROM202、EDID保存部203、セレクタ204、書き替え部205、通信ポート206〜208、USBポート209、PS/2ポート210、及びシリアルポート211に接続されている。ビデオ送信部213〜215は、ビデオポート212及び通信ポート206〜208に接続されている。図2(A)では、通信ポートの数は3つであるが、これに限定されるわけではなく、複数の通信ポートがあればよい。また、ビデオ信号送信部の数も3つであるが、これに限定されるわけではなく、複数のビデオ信号送信部があればよい。
コンソールアダプタ4は、コンソールアダプタ4全体を制御するマイコン401、プログラムやデータを格納するEEPROM402、コンソールアダプタ4のファームウエアを書き替える書き替え部403、キーボード5Aと接続するPS/2ポート404、マウス5Bと接続するPS/2ポート405、モニタ5Cと接続するビデオポート406、複数のKVMスイッチ3と接続する通信ポート407〜409、及び複数のビデオ信号を受信し、モニタ5Cに表示するビデオ信号を切り替えるビデオ信号受信&切り替え部410を備えている。マイコン401は、EEPROM402、書き替え部403、PS/2ポート404、PS/2ポート405、及び通信ポート407〜409に接続されている。ビデオ信号受信&切り替え部410は通信ポート407〜409とビデオポート406との間に接続されている。キーボード5A、マウス5B及びモニタ5Cは、コンソール5を構成している。図2(B)では、通信ポートの数は3つであるが、これに限定されるわけではなく、複数の通信ポートがあればよい。
図2(A),(B)に示すように、サーバユニット2は、自身を中心として複数のKVMスイッチ3を接続し(スター型接続)、コンソールアダプタ4は、自身を中心として複数のKVMスイッチ3を接続する(スター型接続)。
図3は、KVMスイッチ3の構成図である。
KVMスイッチ3は、KVMスイッチ3全体を制御するマイコン301、プログラムやデータを格納するEEPROM302、複数のサーバユニット2からのビデオ信号を入力するビデオ信号入力部303a〜303n、ビデオ信号の歪みを調整するビデオ信号調整部304a〜304n、入力したビデオ信号の出力先を切り替えるマトリックススイッチ部305、マトリックススイッチ部305から出力されるビデオ信号と基準信号発生部309から出力される基準信号とのいずれか一方を出力するスイッチ部306a〜306n、EEPROM302に保存されているオンスクリーンディスプレイ(OSD)機能の設定画面のデータをマトリックススイッチ部305から出力されるビデオ信号に重畳するOSDコントローラ307a〜307n、スイッチ部306a〜306nから出力されたビデオ信号又は基準信号をコンソールアダプタ4に出力するビデオ信号出力部308a〜308n、ビデオ信号の歪み調整に使用される基準信号を発生する基準信号発生部309、入力したキーコードやマウスデータの出力先を切り替えるマトリックススイッチ部310、複数のコンソールアダプタ4を接続する通信ポート311a〜311n、及び複数のサーバユニット2を接続する通信ポート312a〜312nを備えている。
ビデオ信号入力部303a〜303nは、通信ポート312a〜312n及びビデオ信号調整部304a〜304nに接続されている。マイコン301は、EEPROM302、ビデオ信号調整部304a〜304n、マトリックススイッチ部305,310、及びスイッチ部306a〜306nに接続されている。マトリックススイッチ部305は、ビデオ信号調整部304a〜304n、スイッチ部306a〜306n、及びOSDコントローラ307a〜307nに接続されている。スイッチ部306a〜306nは、基準信号発生部309、OSDコントローラ307a〜307n、及びビデオ信号出力部308a〜308nに接続されている。ビデオ信号出力部308a〜308nは通信ポート311a〜311nに接続されている。マトリックススイッチ部310は、通信ポート311a〜311n、及び通信ポート312a〜312nに接続されている。
KVMスイッチ3は、複数のビデオ信号調整部、複数のスイッチ部、複数のOSDコントローラ、複数のスイッチ部、複数のビデオ信号出力部、複数の通信ポートを備えていればよく、これらの個数は限定されない。
図4は、サーバユニット2からKVMスイッチ3に送信されるデータの構成を示す図である。
図4の最上段の0〜7は、サーバユニット2からKVMスイッチ3に送信されるデータのバイト番号を示す。また、電源、画質調整等の列はサーバユニット2からKVMスイッチ3に送信されるデータの種類を示す。
図4の0バイト目の列データ(即ち、00h、01h、02h等)は、データの種類を識別するコードである。図4の「サーバ電源情報」は、サーバ1の電源のオン/オフを示すデータであり、「コンセントボックス情報」は、サーバ1に電源を供給する不図示のコンセントボックスのオン/オフを示すデータである。図4中の「0」は空データを示す。
画質調整の欄の「種別」は、色ずれなどの画質を調整するモードを特定するデータである。また、「バージョン」は、サーバユニット2のファームウエアのバージョンを示すデータである。SYNCの欄の「INDEX種別」は、KVMスイッチ3に設定可能なデータの種類(例えば、サーバ名、ユーザID、ユーザ名、ログアウト時間など)を示すデータである。SYNCの欄の「マスタindex」は、マスターサーバの識別データである。具体的には、32台のサーバが稼働中である場合には、「マスタindex」としての0から31のいずれかの番号によりマスターサーバが特定される。SYNCの欄の「スレーブindex」は、スレーブサーバの識別データである。SYNCの欄の「データ1」は、KVMスイッチ3に送信される1バイトの実データを示す。
SYNCの欄の「データ(7バイト)」は、KVMスイッチ3に設定される7バイトの実データを示す。SyncACKの欄の「ACK=FF」は、KVMスイッチ3に実データが正常に設定されたときに、データ「FF」をサーバユニット2に返信することを示す。
Statusの欄の「操作権1」、「操作権2」、及び「操作権3」は、各々、操作権の状態、KVMスイッチの識別番号、ユーザが使用するポート番号、及びユーザIDを示すデータである。Statusの欄の「通信状態」は、サーバユニットの各通信ポートがKVMスイッチ3とポーリング通信中であるか否かを示す。Statusの欄の「操作権1」、「操作権2」、「操作権3」及び「通信状態」の詳細なデータ構成を図5に示す。
図6は、KVMスイッチ3からサーバユニット2に送信されるデータの構成を示す図である。
図6の最上段の0〜7は、KVMスイッチ3からサーバユニット2に送信されるデータのバイト番号を示す。また、電源ボックス制御、ポーリング間隔等の列はKVMスイッチ3からサーバユニット2に送信されるデータの種類を示す。
図6の0バイト目の列データ(即ち、00h、01h、02h等)は、データの種類を識別するコードである。電源ボックス制御の欄の「制御方法」は、マニュアル制御又はオート制御を示すデータであり、「OFF時間」は、不図示の電源ボックスをオフにする時間を指定するデータである。ポーリング間隔の欄の「間隔」は、サーバユニット2とポーリング通信を行う時間間隔を示すデータである。
SYNCの欄の「INDEX種別」、「マスタindex」、「スレーブindex」、「データ1」及び「データ(7バイト)」は、図4のそれらと同一である。SyncACKの欄の「ACK」は、サーバユニット2に実データが正常に送信されたときに、ACKデータをKVMスイッチ3に返信することを示す。また、OpCの欄の「操作権」は、操作権の状態、KVMスイッチの識別番号、ユーザが使用するポート番号、及びユーザIDを示すデータである。OpCの欄の「操作権」の詳細なデータ構成を図7に示す。
1つのKVMスイッチ3の設定をサーバユニット2を介して他のKVMスイッチ3の設定と同一にするために、SYNCの欄のデータ、SyncACKの欄のデータ及びOpCの欄のデータは、当該1つのKVMスイッチ3からサーバユニット2に送信される。
図8は、KVMスイッチ3のマイコン301が実行する処理を示すフローチャートである。本処理では、1つのKVMスイッチ3の内部設定データ(サーバ名、ユーザID、ユーザ名、又はログアウト時間など)が変更された場合に、同一グループに属する残りの2つのKVMスイッチ3の内部設定データの対応する部分がその変更されたデータと同期する。従って、同一グループに属する3つのKVMスイッチ3の内部設定データは、同一になる。これにより、3つのKVMスイッチ3は、あたかも1つのKVMスイッチのように動作する。尚、各グループに属する複数のKVMスイッチやマイコン等は符号A〜Cを付加することにより区別される。
KVMスイッチ3Aのマイコン301Aは、サーバユニット2にファームウエアのバーション(02h)を要求する(ステップS1)。マイコン301Aは、サーバユニット2から受信したバーションのデータが、「7xx」であるか否かを判別する(ステップS2)。ここでは、KVMスイッチ3Aに接続されているサーバユニットが、図2(A)に示すサーバユニット2であるか、又は従来のサーバユニットであるかを判別している。バーションのデータが、「7xx」である場合には(ステップS2のYES)、KVMスイッチ3Aに接続されているサーバユニットは、図2(A)に示すサーバユニット2である。
ステップS2でNOの場合には、本処理を終了する。ステップS2でYESの場合には、マイコン301Aは、SYNC(03h)の後に送信されるデータの種類(即ち、INDEX種別)を指定する(ステップS3)。例えば、KVMスイッチ3Aの変更された内部設定データがサーバ名である場合には、マイコン301Aは、SYNC(03h)の後に送信されるデータの種類としてサーバ名を指定する。
次に、マイコン301Aは、SYNC(03h)及びこれに続くデータ(即ち、INDEX種別、マスタindex、スレーブindex、及びデータ1)並びにSYNC(04h)及びこれに続くデータ(即ちデータ(7バイト))をサーバユニット2を介してKVMスイッチ3B,3Cに送信する(ステップS4)。マイコン301Aは、送信すべきデータのバイト数をデータの種類によって判断する。尚、送信すべきデータが1バイトである場合には、図6のSYNCの欄の「データ1」の領域(1バイト)が使用できるので、マイコン301Aは、SYNC(03h)に続くデータをKVMスイッチ3B,3Cに送信し、SYNC(04h)及びこれに続くデータをKVMスイッチ3B,3Cに送信しない。送信すべきデータが9バイト以上ある場合には、マイコン301Aは、SYNC(03h)及びこれに続くデータ、SYNC(04h)及びこれに続くデータ、さらにSYNC(04h)及びこれに続くデータをKVMスイッチ3B,3Cに送信する。つまり、送信すべきデータが8バイトを超える場合は、マイコン301Aは複数のSYNC(04h)を用いてデータをKVMスイッチ3B,3Cに送信する。
KVMスイッチ3B,3Cのマイコン301B,301Cが、SYNC(03h)及びこれに続くデータ、並びにSYNC(04h)及びこれに続くデータを受信すると(ステップS5)、SyncACK(05h)の「ACK」をサーバユニット2に送信する(ステップS6)。
マイコン301Aはサーバユニット2を介してSyncACK(05h)の「ACK」を受信したか否かを判別する(ステップS7)。YESの場合には、ステップS3に戻り、次のデータを送信する。一方、NOの場合には、マイコン301Aは、76msでタイムアウトし(処理の中止)(ステップS8)、ステップS4に戻り、データの再送信を実行する。
ステップS3〜S7のループ処理により、KVMスイッチ3Aのマイコン301Aは、全ての内部設定データをサーバユニット2を介して同一グループに属するKVMスイッチ3B,3Cに送信し、KVMスイッチ3B,3Cの内部設定データをKVMスイッチ3Aの内部設定データに同期させることができる。
上記処理は、KVMスイッチ3の内部設定データが変更された場合だけでなく、所定の操作が実行された場合にも適用される。例えば、ログイン画面上で「ctrl」キー及び「S」キーが入力された場合に、KVMスイッチ3Aのマイコン301Aは、全ての内部設定データ(サーバ名、ユーザID、ユーザ名、及びログアウト時間など)をサーバユニット2を介して、KVMスイッチ3B,3Cに送信し、KVMスイッチ3B,3Cの内部設定データをKVMスイッチ3Aの内部設定データに同期させる。
図9は、サーバユニット2のマイコン201が実行する処理を示すフローチャートである。各グループに属する複数のKVMスイッチやマイコン等は符号A〜Cを付加することにより区別される。また、サーバユニット2のバージョンは、「7xx」であるとする。
マイコン201は、KVMスイッチ3Aから通信ポート206を介してSYNC(03h)及びこれに続くデータ、並びにSYNC(04h)及びこれに続くデータを受信し、他のKVMスイッチと通信が確立している通信ポートにこれらのデータを送信する(ステップS11)。この場合、通信ポート207,208がそれぞれKVMスイッチ3B,3Cと通信を確立していれば、マイコン201は、SYNC(03h)及びこれに続くデータ、並びにSYNC(04h)及びこれに続くデータを通信ポート207,208を介してKVMスイッチ3B,3Cに送信する。
次に、マイコン201は、通信ポート207及び通信ポート208からSyncACK(05h)及びこれに続くデータを受信したか否かを判別する(ステップS12)。ステップS12でYESの場合には、マイコン201は、SyncACK(05h)及びこれに続くデータを通信ポート206を介してKVMスイッチ3Aに送信する(ステップS13)。
ステップS12でNOの場合には、マイコン201は、通信ポート207からSyncACK(05h)及びこれに続くデータを受信し、且つ通信ポート208がKVMスイッチ3Cと通信を確立してしていないか否かを判別する(ステップS14)。ステップS14でYESの場合には、マイコン201は、SyncACK(05h)及びこれに続くデータを通信ポート206を介してKVMスイッチ3Aに送信する(ステップS15)。
ステップS14でNOの場合には、マイコン201は、通信ポート207からSyncACK(05h)及びこれに続くデータを受信し、且つ通信ポート208がKVMスイッチ3Cと通信を確立してしているが通信ポート208からSyncACK(05h)及びこれに続くデータを受信していないか否かを判別する(ステップS16)。
ステップS16でYESの場合には、マイコン201は、30msでタイムアウトし(処理の中止)、データの受信待機状態に戻る(ステップS17)。ステップS16でNOの場合には、本処理を終了する。
本処理では、マイコン201は、KVMスイッチ3AからKVMスイッチ3B,3Cへデータを送信し、応答応答データ(SyncACK(05h)及びこれに続くデータ)をKVMスイッチ3B,3CからKVMスイッチ3Aへ送信しているが、本処理はこれに限定されるわけではない。例えば、マイコン201は、KVMスイッチ3BからKVMスイッチ3A,3Cへデータを送信し、応答応答データ(SyncACK(05h)及びこれに続くデータ)をKVMスイッチ3A,3CからKVMスイッチ3Bへ送信する。また、マイコン201は、KVMスイッチ3CからKVMスイッチ3A,3Bへデータを送信し、応答応答データ(SyncACK(05h)及びこれに続くデータ)をKVMスイッチ3A,3BからKVMスイッチ3Cへ送信する。これらの場合、ステップS12〜S16の工程で使用される通信ポートは適切に変更される。
次に、サーバの操作権について説明する。
図10は、ユーザ登録画面の一例を示す図であり、図11は、サーバ選択画面の一例を示す図であり、図12は上級設定画面の一例を示す図である。
ユーザがコンソール5を使用して所定のホットキー(例えば、Ctrlキーの押下2回)を入力すると、モニタ5Cに図10のユーザ登録画面が表示される。また、ユーザがコンソール5を使用してKVMスイッチ3にログインすると、モニタ5Cに図11のサーバ選択画面が表示される。さらに、ユーザがコンソール5を使用して別のホットキー(例えば、F1キーの押下2回)を入力すると、モニタ5Cに図12の上級設定画面が表示される。
図10のユーザ登録画面は、ユーザID登録部11、パスワード登録部12、ユーザ/パワーユーザ登録部13、及びキー操作表示部14を含む。新規のユーザは、ユーザ登録画面上でユーザID及びパスワードを登録する。尚、ユーザ/パワーユーザ登録部13の初期値は「USER」であるが、ユーザ登録画面上で「POWER USER」に変更することができる。
ユーザに付与される権限は、「ADMIN」、「POWER USER」又は「USER」である。「ADMIN」は、システム管理者に設定される、又は最初にKVMスイッチ3にアクセスしたユーザに設定される。「POWER USER」は、サーバ1へのマルチユーザアクセス時に(即ち、複数のユーザが1台のサーバ1へ同時にアクセスするとき)、「ADMIN」と「USER」との中間の権限を有する。例えば、「POWER USER」が、「ADMIN」が予めアクセスしているサーバ1へアクセスしても、「POWER USER」はサーバ1の画面をモニタ5Cに表示することはできるが、サーバ1を操作することはできない。一方、「POWER USER」が、「USER」が予めアクセスしているサーバ1へアクセスする場合でも、「USER」に代わって、「POWER USER」は優先的にサーバ1を操作することができる。
「ADMIN」は、KVMスイッチ3の各種の設定を変更することができるが、「POWER USER」及び「USER」は、KVMスイッチ3の各種の設定を変更することはできない。
図11のサーバ選択画面は、同一グループに属する3台のKVMスイッチを識別するための識別番号表示部21、サーバ選択部22、ユーザ表示部23、及びキー操作表示部24を含む。ユーザが、サーバ選択部22に表示された複数のサーバからアクセスするサーバを選択すると、ユーザ表示部23にユーザIDが表示される。
このサーバ選択画面の表示中に、キーボード5Aの「Z」キーが押下されると、KVMスイッチ3のマイコン301は、前回選択されたサーバに切り替えることができる。即ち、KVMスイッチ3は、現在のサーバを前回選択されたサーバに切り替えるアンドゥ機能を有する。
図12の上級設定画面は、ホットキー選択部31、識別番号表示部32、マルチアクセスモード選択部33、及びキー操作表示部34を含む。ユーザは、ホットキー選択部31でホットキーを選択し、KVMスイッチ3にホットキーを設定することができる。識別番号表示部32は、同一グループに属する3台のKVMスイッチを識別する識別番号を表示する。マルチアクセスモード選択部33では、操作権の取得や放棄に関する設定モードが選択される。
マルチアクセスモード選択部33で「AUTO」モードが選択されると、マイコン301は、サーバの選択時に図13(A)に示すテーブルデータに従ってサーバの操作権を移転する。尚、図13(A)〜(D)に示すテーブルデータは、EEPROM302に保存されている。
図13(A)の「取られる側」は、現在のユーザの権限を示し、「取得側」は、同一サーバに後からアクセスしてきたユーザの権限を示す。図13(A)の「OP」は、現在のユーザがサーバを操作中であること(即ち、サーバの操作権を有すること)を示す。また、図13(A)の「◎」は、キーボード5A又はマウス5Bの操作でサーバの操作権が移転することを示し、「×」は、サーバの操作権を取得できないことを示す。
図13(A)では、サーバの操作権の移転が認められている場合には、5秒間キーボード5A又はマウス5Bが操作されないと、サーバの操作権は放棄される。例えば、現在「POWER USER」がサーバの操作権を有し、「ADMIN」が同一サーバにアクセスした場合、「POWER USER」が5秒間キーボード5A又はマウス5Bを操作しないと、サーバの操作権は放棄される。サーバの操作権の移転が認められており、且つサーバの操作権の放棄されている場合に、キーボード5A又はマウス5Bが操作されると、操作中のユーザにサーバの操作権は自動的に移転する。例えば、「POWER USER」がサーバの操作権を放棄しており、「ADMIN」が同一サーバにアクセスしキーボード5A又はマウス5Bを操作すると、サーバの操作権は「ADMIN」に移転する。
尚、マイコン301は、サーバの操作権を放棄するための基準時間(上記5秒間)を設定する設定モードを備えており、「ADMIN」権限のユーザは、この設定モードを使って、サーバの操作権を放棄するための基準時間を変更することができる。
マルチアクセスモード選択部33で「MANUAL」モードが選択されると、マイコン301は、サーバの選択時に図13(B)に示すテーブルデータに従ってサーバの操作権を移転する。尚、図13(B)の「○」は、操作権を取得するための所定の操作でサーバの操作権が移転することを示す。所定の操作とは、例えば、「ALT」キー及び「HOME」キーを押下することなどである。
図13(B)において、サーバの操作権の移転が認められている場合には、各権限のユーザはサーバの操作権を放棄する操作を行うことで、サーバの操作権を放棄する。また、各権限のユーザはサーバの操作権を取得する操作を行うことで、サーバの操作権を取得する。
マルチアクセスモード選択部33で「CUSTOM1」モードが選択されると、マイコン301は、サーバの選択時に図13(C)に示すテーブルデータに従ってサーバの操作権を調整する。このテーブルデータでは、「ADMIN」は、KVMスイッチ3の各種の設定ができるだけであり、サーバの操作権を「POWER USER」又は「USER」から取得することができない。同様に「POWER USER」は、サーバの操作権を「USER」から取得することができない。
マルチアクセスモード選択部33で「CUSTOM2」モードが選択されると、マイコン301は、図13(D)に示すテーブルデータに従ってサーバの操作権を調整する。このテーブルデータでは、同一権限以上のユーザ同士の間で、サーバの操作権の移転が許可されている。
図13(D)では、「ADMIN」が5秒間キーボード5A又はマウス5Bを操作しないと、サーバの操作権は放棄される。「POWER USER」及び「USER」はサーバの操作権を放棄する操作を行うことで、サーバの操作権は放棄される。各権限のユーザは、サーバの操作権を取得する操作を行うことで、サーバの操作権を取得する。
尚、「ADMIN」権限を有するユーザは、EEPROM302に保存されている図13(C),(D)に示すテーブルデータをモニタ5Cに読み出して、編集することができる。この場合、KVMスイッチ3のマイコン301は、コンソール5からの変更指示に応じて、図13(C),(D)に示すテーブルデータを変更する。
図14は、サーバの操作権を通知する処理を示すフローチャートである。この処理は、サーバの操作権が変更されたときに、実行される。ここでは、KVMスイッチ3Aに登録されているサーバの操作権が変更されたものとする。
まず、KVMスイッチ3Aに登録されているサーバの操作権が変更されたときに、KVMスイッチ3Aのマイコン301Aが図6のOpC(06h)及びサーバの操作権に関する情報(即ち、図7の操作権状態、KVMスイッチ識別番号、ユーザポート番号、及びユーザID)をサーバユニット2を介して同一グループに属するKVMスイッチ3B,3Cに送信する(ステップS21)。尚、サーバの操作権に関する情報は、EEPROM302に保存されている。
サーバユニット2のマイコン201は、KVMスイッチ3Aのマイコン301からOpC(06h)及びサーバの操作権に関する情報を受信し、EEPROM202に保存する(ステップS22)。マイコン201は、EEPROM202に保存されたサーバの操作権に関する情報を図4のstatus(06h)と共に定期的にKVMスイッチ3B,3Cに送信する(ステップS23)。図4のstatusの欄(即ち操作権1〜3)に示すように、マイコン201は、サーバの操作権に関する情報を3つのKVMスイッチ3A〜3Cに送信することができる。マイコン201が、サーバの操作権に関する情報をKVMスイッチ3B,3Cに送信する場合には、図5に示すように、マイコン201が、1バイト目の操作権状態を示すビットを11に設定し、サーバの操作権に関する情報を無効データとする。これにより、サーバの操作権に関する情報は、実質的にKVMスイッチ3Aに送信されなくなる。
KVMスイッチ3B,3Cのマイコン301B,301Cは、status(06h)及びサーバの操作権に関する情報をサーバユニット2から受信し(ステップS24)、受信されたサーバの操作権に関する情報をKVMスイッチ3B,3C自身のサーバの操作権に関する情報と一緒に管理する(ステップS25)。
本処理では、KVMスイッチ3Aに登録されているサーバの操作権が変更されたが、KVMスイッチ3Bに登録されているサーバの操作権が変更された場合には、KVMスイッチ3B内のサーバの操作権に関する情報がKVMスイッチ3A,3Cに送信される。同様に、KVMスイッチ3Cに登録されているサーバの操作権が変更された場合には、KVMスイッチ3C内のサーバの操作権に関する情報がKVMスイッチ3A,3Bに送信される。
本処理によれば、マイコン201は、1つのKVMスイッチ3Aに登録されているサーバ1の操作権に関する情報が変更された場合に、当該変更されたサーバの操作権に関する情報を他のKVMスイッチ3B,3Cに送信する。よって、マイコン201は、複数のKVMスイッチがサーバの操作権に関する情報を共有することを補助することができる。
図15は、サーバの選択後にモニタ5Cに表示される状態情報の一例を示す図である。
この状態情報は、KVMスイッチ3のOSDコントーラ307a〜307nにより、サーバ1からの画面データに合成されて表示される。また、KVMスイッチ3において、状態情報の常時表示モードがオンに設定されている場合には、状態情報はモニタ5Cに常時表示される。状態情報の常時表示モードがオフに設定されている場合には、サーバの選択時、ユーザがサーバの操作権を取得又は放棄した時、他のユーザが同一サーバにログイン又はログアウトした時、他のユーザがサーバの操作権を取得又は放棄した時、などに状態情報はモニタ5Cに表示される。この場合、状態情報は3秒後に消える。
図15の状態情報は、1段目が選択されたサーバ名を示し、2段目が自分の状態を示し、3段目が他者(他のユーザ)の状態を示す。2段目の1列目の「OP」は、サーバの操作権があることを示す。サーバの操作権がなくなると、2段目の1列目にはサーバの操作権がないことを示す「PV」が表示される。2段目の2列目の「ICHIRO」は、自分のユーザ名を示す。2段目の3列目の「01」は、KVMスイッチの識別番号を示す。2段目の4列目の「01」は、コンソールアダプタの識別番号(具体的には、コンソールアダプタの通信ポート番号)を示す。
3段目の1列目の「IN」は、他のユーザが同一サーバにログインしたことを示す。他のユーザが同一サーバからログアウトした場合には、3段目の1列目には「OUT」と表示される。3段目の2列目の「MUNENORI」は、他のユーザのユーザ名を示す。3段目の3列目の「02」は、他のユーザが使用しているKVMスイッチの識別番号を示す。3段目の4列目の「03」は、他のユーザが使用しているコンソールアダプタの識別番号(具体的には、コンソールアダプタの通信ポート番号)を示す。
3段目の他者(他のユーザ)の状態を示す情報は、他のユーザが同一サーバにログインした場合に、1秒間表示される。同様に、他のユーザが同一サーバにログインした場合に、その情報は1秒間表示される。また、例えば、2人の他のユーザが同一サーバにログインした場合には、3段目の他者(他のユーザ)の状態を示す情報は、最初の他のユーザについて1秒間表示され、次の他のユーザについて1秒間表示される。ログアウトの場合も同様に、3段目の他者(他のユーザ)の状態を示す情報は、最初の他のユーザについて1秒間表示され、次の他のユーザについて1秒間表示される。
図15に示すように、状態情報はモニタ5Cに表示されるので、ユーザは、選択したサーバにアクセスする他のユーザの状態を確認することができる。
尚、マイコン301は、状態情報(3段目の他ユーザの状態を示す情報を含む)の表示時間や状態情報の表示色を設定する設定モードを備えている。「ADMIN」権限のユーザは、この設定モードを使って、状態情報(3段目の他ユーザの状態を示す情報を含む)の表示時間や状態情報の表示色を変更することができる。例えば、状態情報の1段目の情報が赤色で表示され、2段目の情報が黒色で表示され、3段目の情報が青色で表示される場合に、マイコン301は、設定モードで変更された内容に従って、状態情報の1段目の情報を黒色の表示に変更したり、2段目の2列目の自分のユーザ名を黄色の表示に変更したり、又は背景色を変更することができる。
また、図10のユーザ登録画面、図11のサーバ選択画面、図12の上級設定画面及び図15の状態情報は、「Alt」キー+「Ctrl」キー+矢印キーを押下することによって、矢印キーの方向に移動する。これらの画面又は情報の表示位置は、記憶されず、再度表示された場合には、元の位置で表示される。また、これらの画面又は情報の表示位置がモニタ5Cの表示可能領域を超えた場合には、これらの画面又は情報は消える。
図16は、KVMスイッチ3のマイコン301が実行する処理を示すフローチャートである。本処理は、互いに異なるグループに属する複数のKVMスイッチ間の通信がコンソールアダプタ4を介して実行される点で、図8の処理と異なる。
本処理では、1つのKVMスイッチ3の内部設定データ(サーバ名、ユーザID、ユーザ名、又はログアウト時間など)が変更された場合に、他のグループに属する1つのKVMスイッチ3の内部設定データの対応する部分がその変更されたデータと同期する。従って、1つのKVMスイッチ3の内部設定データは、他のグループに属する1つのKVMスイッチ3の内部設定データと同一になる。これにより、別々のグループに属する合計3つのKVMスイッチ3は、あたかも1つのKVMスイッチのように動作する。
ここでは、第1グループに属するKVMスイッチやマイコン等に符号Aを付加し、第2グループに属するKVMスイッチやマイコン等に符号Xを付加し、第3グループに属するKVMスイッチやマイコン等に符号Yを付加する。尚、コンソールアダプタ4からKVMスイッチ3に送信されるデータの構造は、図4,5のデータ構造と同一であり、KVMスイッチ3からコンソールアダプタ4に送信されるデータの構造は、図6,7のデータ構造と同一である。
KVMスイッチ3Aのマイコン301Aは、コンソールアダプタ4にファームウエアのバーション(02h)を要求する(ステップS31)。マイコン301Aは、コンソールアダプタ4から受信したバーションのデータが、「7xx」であるか否かを判別する(ステップS32)。ここでは、KVMスイッチ3Aに接続されているコンソールアダプタが、図2(B)に示すコンソールアダプタ4であるか、又は従来のコンソールアダプタ4であるかを判別している。バーションのデータが、「7xx」である場合には(ステップS32のYES)、KVMスイッチ3Aに接続されているコンソールアダプタは、図2(B)に示すコンソールアダプタ4である。
ステップS32でNOの場合には、本処理を終了する。ステップS32でYESの場合には、マイコン301Aは、SYNC(03h)の後に送信されるデータの種類(即ち、INDEX種別)を指定する(ステップS33)。例えば、KVMスイッチ3Aの変更された内部設定データがサーバ名である場合には、マイコン301Aは、SYNC(03h)の後に送信されるデータの種類としてサーバ名を指定する。
次に、マイコン301Aは、SYNC(03h)及びこれに続くデータ(即ち、INDEX種別、マスタindex、スレーブindex、及びデータ1)並びにSYNC(04h)及びこれに続くデータ(即ちデータ(7バイト))をコンソールアダプタ4を介してKVMスイッチ3X,3Yに送信する(ステップS34)。マイコン301Aは、送信すべきデータのバイト数をデータの種類によって判断する。尚、送信すべきデータが1バイトである場合には、図6のSYNCの欄の「データ1」の領域(1バイト)が使用できるので、マイコン301Aは、SYNC(03h)に続くデータをKVMスイッチ3X,3Yに送信し、SYNC(04h)及びこれに続くデータをKVMスイッチ3X,3Yに送信しない。送信すべきデータが9バイト以上ある場合には、マイコン301Aは、SYNC(03h)及びこれに続くデータ、SYNC(04h)及びこれに続くデータ、さらにSYNC(04h)及びこれに続くデータをKVMスイッチ3X,3Yに送信する。つまり、送信すべきデータが8バイトを超える場合は、マイコン301Aは複数のSYNC(04h)を用いてデータをKVMスイッチ3X,3Yに送信する。
KVMスイッチ3X,3Yのマイコン301X,301Yが、SYNC(03h)及びこれに続くデータ、並びにSYNC(04h)及びこれに続くデータを受信すると(ステップS35)、SyncACK(05h)の「ACK」をコンソールアダプタ4に送信する(ステップS36)。
マイコン301Aはコンソールアダプタ4を介してSyncACK(05h)の「ACK」を受信したか否かを判別する(ステップS37)。YESの場合には、ステップS33に戻り、次のデータを送信する。一方、NOの場合には、マイコン301Aは、76msでタイムアウトし(処理の中止)(ステップS38)、ステップS34に戻り、データの再送信を実行する。
ステップS33〜S37のループ処理により、KVMスイッチ3Aのマイコン301Aは、全ての内部設定データをコンソールアダプタ4を介して他のグループに属するKVMスイッチ3X,3Yに送信し、KVMスイッチ3X,3Yの内部設定データをKVMスイッチ3Aの内部設定データに同期させることができる。
上記処理は、KVMスイッチ3の内部設定データが変更された場合だけでなく、所定の操作が実行された場合にも適用される。例えば、ログイン画面上で「ctrl」キー及び「S」キーが入力された場合に、KVMスイッチ3Aのマイコン301Aは、全ての内部設定データ(サーバ名、ユーザID、ユーザ名、及びログアウト時間など)をコンソールアダプタ4を介して、KVMスイッチ3X,3Yに送信し、KVMスイッチ3X,3Yの内部設定データをKVMスイッチ3Aの内部設定データに同期させる。
図17は、コンソールアダプタ4のマイコン401が実行する処理を示すフローチャートである。第1グループに属するKVMスイッチやマイコン等に符号Aを付加し、第2グループに属するKVMスイッチやマイコン等に符号Xを付加し、第3グループに属するKVMスイッチやマイコン等に符号Yを付加する。また、コンソールアダプタ4ののバージョンは、「7xx」であるとする。
マイコン401は、KVMスイッチ3Aから通信ポート407を介してSYNC(03h)及びこれに続くデータ、並びにSYNC(04h)及びこれに続くデータを受信し、他のKVMスイッチと通信が確立している通信ポートにこれらのデータを送信する(ステップS41)。この場合、通信ポート408,409がそれぞれKVMスイッチ3X,3Yと通信を確立していれば、マイコン401は、SYNC(03h)及びこれに続くデータ、並びにSYNC(04h)及びこれに続くデータを通信ポート408,409を介してKVMスイッチ3X,3Yに送信する。
次に、マイコン401は、通信ポート408及び通信ポート409からSyncACK(05h)及びこれに続くデータを受信したか否かを判別する(ステップS42)。ステップS42でYESの場合には、マイコン401は、SyncACK(05h)及びこれに続くデータを通信ポート407を介してKVMスイッチ3Aに送信する(ステップS43)。
ステップS42でNOの場合には、マイコン401は、通信ポート408からSyncACK(05h)及びこれに続くデータを受信し、且つ通信ポート409がKVMスイッチ3Yと通信を確立してしていないか否かを判別する(ステップS44)。ステップS44でYESの場合には、マイコン401は、SyncACK(05h)及びこれに続くデータを通信ポート407を介してKVMスイッチ3Aに送信する(ステップS45)。
ステップS44でNOの場合には、マイコン401は、通信ポート408からSyncACK(05h)及びこれに続くデータを受信し、且つ通信ポート409がKVMスイッチ3Yと通信を確立してしているが通信ポート409からSyncACK(05h)及びこれに続くデータを受信していないか否かを判別する(ステップS46)。ステップS46でYESの場合には、マイコン401は、30msでタイムアウトし(処理の中止)、データの受信待機状態に戻る(ステップS47)。ステップS46でNOの場合には、本処理を終了する。
本処理では、マイコン401は、KVMスイッチ3AからKVMスイッチ3X,3Yへデータを送信し、応答応答データ(SyncACK(05h)及びこれに続くデータ)をKVMスイッチ3X,3YからKVMスイッチ3Aへ送信しているが、本処理はこれに限定されるわけではない。例えば、マイコン401は、KVMスイッチ3XからKVMスイッチ3A,3Yへデータを送信し、応答応答データ(SyncACK(05h)及びこれに続くデータ)をKVMスイッチ3A,3YからKVMスイッチ3Xへ送信する。また、マイコン401は、KVMスイッチ3YからKVMスイッチ3A,3Xへデータを送信し、応答応答データ(SyncACK(05h)及びこれに続くデータ)をKVMスイッチ3A,3XからKVMスイッチ3Yへ送信する。これらの場合、ステップS42〜S46の工程で使用される通信ポートは適切に変更される。
図18は、サーバの操作権を通知する処理を示すフローチャートである。この処理は、サーバの操作権が変更されたときに、実行される。ここでは、KVMスイッチ3Aに登録されているサーバの操作権が変更されたものとする。第1グループに属するKVMスイッチやマイコン等に符号Aを付加し、第2グループに属するKVMスイッチやマイコン等に符号Xを付加し、第3グループに属するKVMスイッチやマイコン等に符号Yを付加する。
まず、KVMスイッチ3Aに登録されているサーバの操作権が変更されたときに、KVMスイッチ3Aのマイコン301Aが図6のOpC(06h)及びサーバの操作権に関する情報(即ち、図7の操作権状態、KVMスイッチ識別番号、ユーザポート番号、及びユーザID)をコンソールアダプタ4を介してKVMスイッチ3X,3Yに送信する(ステップS51)。
コンソールアダプタ4のマイコン401は、KVMスイッチ3Aのマイコン301AからOpC(06h)及びサーバの操作権に関する情報を受信し、EEPROM402に保存する(ステップS52)。マイコン401は、EEPROM402に保存されたサーバの操作権に関する情報を図4のstatus(06h)と共に定期的にKVMスイッチ3X,3Yに送信する(ステップS53)。図4のstatusの欄(即ち操作権1〜3)に示すように、マイコン401は、サーバの操作権に関する情報を3つのKVMスイッチ3A,3X,3Yに送信することができる。マイコン401が、サーバの操作権に関する情報をKVMスイッチ3X,3Yに送信する場合には、図5に示すように、マイコン401が、1バイト目の操作権状態を示すビットを11に設定し、サーバの操作権に関する情報を無効データとする。これにより、サーバの操作権に関する情報は、実質的にKVMスイッチ3Aに送信されなくなる。
KVMスイッチ3X,3Yのマイコン301X,301Yは、status(06h)及びサーバの操作権に関する情報をコンソールアダプタ4から受信し(ステップS54)、受信されたサーバの操作権に関する情報をKVMスイッチ3X,3Y自身のサーバの操作権に関する情報と一緒に管理する(ステップS55)。
本処理では、KVMスイッチ3Aに登録されているサーバの操作権が変更されたが、KVMスイッチ3Xに登録されているサーバの操作権が変更された場合には、KVMスイッチ3X内のサーバの操作権に関する情報がKVMスイッチ3A,3Yに送信される。同様に、KVMスイッチ3Yに登録されているサーバの操作権が変更された場合には、KVMスイッチ3Y内のサーバの操作権に関する情報がKVMスイッチ3A,3Xに送信される。
本処理によれば、マイコン401は、一つのKVMスイッチ3Aに登録されているサーバの操作権に関する情報が変更された場合に、当該変更されたサーバ1の操作権に関する情報を他のKVMスイッチ3X,3Yに送信する。よって、マイコン401は、複数のKVMスイッチがサーバの操作権に関する情報を共有することを補助することができる。
以上説明したように、本実施の形態によれば、KVMスイッチ3は、各々サーバ1に接続される複数のサーバユニット2と通信可能な複数の通信ポート312a〜312nと、各々コンソール5に接続される複数のコンソールアダプタ4と通信可能な複数の通信ポート311a〜311nと、通信ポート312a〜312nの少なくとも1つを介して内部設定データを他のKVMスイッチに含まれる内部設定データに同期させるマイコン301とを備え、複数のサーバユニット2の各々は、複数のKVMスイッチと通信可能である。
よって、複数のKVMスイッチが1つのKVMスイッチのように動作することができ、複数のKVMスイッチを介してサーバにアクセスするコンソールの数及びコンソールがアクセス可能なサーバの数を増やすことができる。
また、マイコン301は、通信ポート311a〜311nの少なくとも1つを介して内部設定データを他のKVMスイッチに含まれる内部設定データに同期させることができ、複数のコンソールアダプタの各々は、上記他のKVMスイッチと通信可能である。
よって、複数のKVMスイッチが1つのKVMスイッチのように動作することができ、複数のKVMスイッチを介してサーバにアクセスするコンソールの数及びコンソールがアクセス可能なサーバの数を増やすことができる。
また、図14に示すように、マイコン301は、サーバ1の操作権に関する情報(第1情報)、及び他のKVMスイッチに登録されているサーバ1の操作権に関する情報(第2情報)をユーザ毎に管理する。そして、マイコン301は、第1情報が変更された場合に、当該変更された第1情報を通信ポート312a〜312nの少なくとも1つを介して他のKVMスイッチに送信し、第2情報が変更された場合に、当該変更された第2情報を通信ポート312a〜312nの少なくとも1つを介して受信する。
よって、自KVMスイッチと他のKVMスイッチとの間で、各KVMスイッチに登録されているサーバの操作権に関する情報を共有することができる。
マイコン301は、第1情報が変更された場合に、当該変更された第1情報を通信ポート311a〜311nの少なくとも1つを介して他のKVMスイッチに送信し、第2情報が変更された場合に、当該変更された第2情報を通信ポート312a〜312nの少なくとも1つを介して受信してもよい。
また、サーバユニット2は、コンソールアダプタ4を介して各々コンソール5と接続する複数のKVMスイッチと通信可能な複数の通信ポート206〜208と、複数のKVMスイッチの一方から通信ポート206〜208の1つを介して内部設定データを受信し、複数のKVMスイッチの他方へ送信すると共に、当該他方のKVMスイッチから当該内部設定データに対する応答データを受信し、上記一方のKVMスイッチへ当該応答データを送信するマイコン201と備え、サーバ1と複数のKVMスイッチ3との間に接続される。
よって、サーバユニット2は、複数のKVMスイッチ3の同期を補助することができ、複数のKVMスイッチ3を介してサーバ1にアクセスするコンソール5の数及びコンソール5がアクセス可能なサーバ1の数を増やすことができる。
また、コンソールアダプタ4は、サーバユニット2を介して各々サーバ1と接続する複数のKVMスイッチ3と通信可能な複数の通信ポート407〜409と、複数のKVMスイッチ3の一方から通信ポート407〜409の1つを介して内部設定データを受信し、複数のKVMスイッチ3の他方へ送信すると共に、他方のKVMスイッチから当該内部設定データに対する応答データを受信し、上記一方のKVMスイッチへ当該応答データを送信するマイコン401とを備え、コンソール5と複数のKVMスイッチ3との間に接続される。
よって、コンソールアダプタ4は、複数のKVMスイッチ3の同期を補助することができ、複数のKVMスイッチ3を介してサーバ1にアクセスするコンソール5の数及びコンソール5がアクセス可能なサーバ1の数を増やすことができる。
請求項1の第1通信手段は、例えば、通信ポート312a〜312nである。請求項1の第2通信手段は、例えば、通信ポート311a〜311nである。また、請求項1の同期手段、請求項3の管理手段、請求項5の変更手段、及び請求項7の設定手段は、例えば、マイコン301である。請求項6の制御手段は、例えば、マイコン301及びOSDコントローラ307a〜307nである。請求項8の通信ポートは、例えば通信ポート206〜208であり、通信手段は、マイコン201である。請求項10の通信ポートは、例えば通信ポート407〜409であり、通信手段は、マイコン401である。
なお、本発明は、上述した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。