专利汇可以提供Configuration interface translator independent of storage device manager, and its method专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To provide a generic interface which can be expanded to a computer mass-storage management system. SOLUTION: A nontransparent list of usable storage devices is requested from a metadisk driver 36 and a subset of a list meeting previously selected standards is determined. Then the nontransparent list is converted into a list in transparent format through a command line interface 22 or graphical user interface 24. Further, a mechanism is provided which provides information regarding storage devices changed during use.,下面是Configuration interface translator independent of storage device manager, and its method专利的具体信息内容。
【0001】
【発明の属する技術分野】本発明は、本発明と同じ日付に米国で出願された「複数の独立デバイス・デバイスを組み入れたコンピュータ・システムのためのメタデバイス・ドライバのリネーム/エクスチェンジ技術」と題する米国特許出願第08/632006号及び「複数の記憶装置を有するコンピュータ・システムにおけるイベント告知」と題する米国特許出願第08/632546号との内容に関連する。 これらの出願は、本出願の出願人であるサン・マイクロシステムズ社に譲渡されている。
これらの出願の内容は、本出願において援用することにする。
【0002】本発明は、広くは、コンピュータと、メタデバイス又はメタディスク・ドライバを介してコンピュータ・オペレーティング・システムに結合された複数のコンピュータ大容量記憶装置(マスストレージ・デバイス)ドライバを動作的(オペラティブ)に制御するコンピュータ・オペレーティング・システムと、に関する。
更に詳しくは、本発明は、記憶装置マネジャと独立であり、利用可能な記憶装置のオパーク(非透過的、すなわち、パブリックではない)なリストをメタディスク・ドライバから要求し、予め選択したサーチの基準を充足するリストの部分集合を決定するコンフィギュレーション・インターフェース・トランスレータを含むシステム、
方法、及びコンピュータ・プログラム製品に関する。 結果として得られるオパークなリストは、次に、希望するフォーマットでコンピュータ・システムのユーザに提供するために、非オパークなフォーマットのリストに変換される。
【0003】
【従来の技術及び発明が解決しようとする課題】コンピュータ・システムのための現時点で利用可能な記憶装置マネジャ・プログラムは、一般的に、リリースに依存する。 すなわち、そのようなプログラムは、関連するコンピュータ・オペレーティング・システムの特定のリリースと共に使用するように設計されている。 更に、既存の記憶装置マネジャ・プログラムは、特定の開発者のオペレーティング・システムに結び付いており、その記憶装置のユーザが、記憶装置のより大きなグループの一部として、そのマネジャ・プログラムを使用できるような、
拡張可能でジェネリックな記憶管理製品としては、機能することはできない。 更に、既存のプログラムは、下位にある記憶装置の状態の任意の変化をキューする満足できる告知メカニズムを与えてくれない。
【0004】
【課題を解決するための手段】本発明は、その効果として、コンピュータ大容量記憶管理システムへの拡張可能でジェネリックなインターフェースを提供する。 このインターフェースは、安価なディスクの冗長アレー(RA
ID)、ミラーリングされたセット、又はそれ以外のデバイス・グループであるかににかかわらず、そのコンフィギュレーションに対して使用可能な記憶装置のカタログすなわちリストを提供する。 更に、このインターフェースは、事象(イベント)告知メカニズムを提供して、
下位の記憶デバイスの他のホストによるアイデンティティ、コンフィギュレーション、ステータス、又は利用の変化に関する情報を与える。 好適実施例では、本発明は、Solstice(米国登録商標) DiskSu
ite(米国登録商標)プログラムの一部として実現され、Veritas(米国登録商標)ボリューム・マネジャやIBM論理ボリューム・マネジャなどの他の利用可能な記憶マネジャと共に用いることもできる。
【0005】ここで開示されている記憶装置(ストレージ)マネジャと独立のコンフィギュレーション・インターフェース・トランスレータは、アクセス機能によってキューされ得る一群の非透過的な記憶装置記述子(ストレージ・ディスクリプタ)を用いて、例えば、エラー条件、デバイス設定関係などを判断する。 記憶装置記述子は、それぞれが、関連する記憶装置記述子識別子(SD
ID)を有し、これは、リンクされており、関連するコマンド・ライン・インターフェース(CLI)又はグラフィカル・ユーザ・インターフェース(GUI)によって、公共的にアクセス可能な(すなわち、非透過的ではない)キーとして機能する。
【0006】ここで開示される特定の実施例は、メタディスク・ドライバと、このメタディスク・ドライバに結合されたメタドライバによって動作的(オペラティブ)
に制御されるデバイスに対応する情報を含む関連するデータベースとを組み入れたコンピュータ・システムにおけるコンピュータ大容量記憶装置を管理するための方法である。 この方法は、デバイスの非透過的なリストをメタディスク・ドライバから要求するステップと、予め選択されたサーチ基準を充足するデバイスの非透過的なリストの部分集合を決定するステップと、を含む。 非透過的なリストの部分集合は、非透過的ではないフォーマットのリストに変換され、コンピュータ・システムのユーザに与えられる。
【0007】
【発明の実施の態様】本発明の以上で述べた及びそれ以外の特徴と目的とは、以下で行う好適実施例の詳細な説明を添付の図面を参照して読むことによって、明らかになる。
【0008】本発明が用いられる環境は、一般的な分散型計算システムに亘り、そこでは、汎用コンピュータ、
ワークステーション、又はパーソナル・コンピュータが種々のタイプの通信リンクを介して、クライアント・サーバ構成に接続されており、多くはオブジェクトの形式であるプログラム及びデータが、このシステムの種々の構成メンバによって、このシステムの他の構成メンバによる実行及びアクセスに対して、利用可能になっている。 汎用ワークステーション・コンピュータの構成要素のいくつかが図1に示されている。 この図では、プロセッサ1は、入力/出力(I/O)部2と、中央処理装置(CPU)3と、メモリ部4とを有するように図解されている。 I/O部2は、キーボード5、ディスプレイ・
ユニット6、ディスク記憶ユニット9、CD−ROMドライブ又はユニット7、又は、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、又はインターネットなどのそれ以外のネットワーク接続などのコンピュータ・ネットワーク11に接続される。 CD−ROMユニット7は、典型的にはプログラム10及びデータを含むCD−ROM又はCD−
ROM媒体8を読み出すことができる。 本発明の装置及び方法を実行するメカニズムを含むコンピュータ・プログラム製品は、このシステムのメモリ部4、ディスク記憶ユニット9、CD−ROM8、又はネットワーク11
に存在する。
【0009】図2を参照すると、例示的なコンピュータ・プログラム・オペレーティング・システム20の簡略化された概念的な表現が示されている。 コンピュータ・
オペレーティング・システム20は、記憶装置マネジャと独立のライブラリ・コンフィギュレーション(libcon
fig)ブロック26を組み入れており、このブロックは、入力を受け取り、出力を、コマンド・ライン・インターフェース(CLI)とグラフィック・ユーザ・インターフェース(GUI)24とに与える。 libconfigブロック26は、記憶装置マネジャと独立であり、ソフトウェア・リリースに独立であるように指定される。
【0010】libconfigブロック26は、特定のソフトウェア・リリースの要求に依存して変化し特定の記憶装置マネジャのために設計されているのが一般的であるli
bmetaブロック28とインターフェースする。 図においては、libmetaブロック28は、類似のインターフェース30を有するメタディスク・ドライバ36との通信のための一意的なインターフェース30を含む。 libmeta
ブロック28と、メタディスク・ドライバ36とは、ユーザ32とオペレーティング・システム20のカーネル34層とを介して、通信する。 示されているように、li
bconfigブロック26は、記憶装置マネジャと独立であることにより、メタディスク・ドライバ36の代わりに、別の記憶装置マネジャ38と直接に通信することもできる。
【0011】メタディスク・ドライバ36(これは、上述の同時継続中の出願においてより詳しく説明されているが)は、記憶デバイスのスライス(又は、パーティション)と、本願の出願人であるサン・マイクロシステムズ社から市販されているSolarisオペレーティング・システムなどのUNIX(米国登録商標)ベースのオペレーティング・システム20におけるDDI/DK
Iインターフェースを介して、インターフェースすることができる。
【0012】メタディスク・ドライバ36は、示されているように、種々のコンピュータ大容量記憶デバイス及びコンフィギュレーションに対応する多数のメタドライバの上位にある。 この点に関して、ストライプ・メタドライバ42、ミラー・メタドライバ44、RAIDメタドライバ46、及びトランス・メタドライバ48が用いられる。 しかし、これらの種々のメタドライバ42−4
8は、単に例示的なものであり、用いることのできる可能性のあるメタドライバ、階層化されたドライバ、又はそれ以外のコンピュータ大容量記憶装置ドライバのタイプを限定するものではない。 メタディスク・ドライバ3
6は、また、関連する告知ブロック50を有する。 告知ブロック50は、下位の記憶デバイスの他のホストによるアイデンティティ、コンフィギュレーション、ステータス、又は利用の何らかの変化に関する情報などの記憶デバイスに関連する事象に関するキューされたメッセージのための合致(ランデブ)点として機能する。
【0013】図3を参照すると、多数の非透過的(すなわち、公共的でない)な記憶装置記述子60の簡略化された概念的な表現が示されており、概念的な「アンカ」
52を介して、CLI22及びGUI24に結合されている。 記憶装置記述子60は、それぞれに、公共的にアクセスが可能な(すなわち、非透過的ではない)記憶装置記述子識別子(SDID)62が付随しており、これらは、示されているように、キーとして機能して、CL
I22及びGUI24がアンカ52のメカニズムを介してその内容を見ることができるようになっている。
【0014】以下では、機能が更に詳細に説明され、ここで開示される記憶装置マネジャと独立のコンフィギュレーション・インターフェース・トランスレータ及び方法の機能性が、本願の出願人であるサン・マイクロシステムズ社によって開発されライセンスされているSol
stice DiskSuite4.0のコンピュータ・プログラムにおいて用いられる特定の実現例に即して、より完全に説明される。 最初のリストは、セット・
ネーム・リストを獲得するのに用いられる関数に関する。
【0015】NAME(名称)としては、cfg_get_setname_
list, cfg_destroy_setname_listがあり、ローカル・ホストのためのセット・ネームのベクトルを取得又は破壊する。
【0016】SYNOPSIS(シノプシス): #include <config.h> int cfg_get_setname_list(char ***et_name_list_P) void cfg_destroy_setname_list(char **set_name list)
【0017】DESCRIPTION(説明):これらの機能は、
ローカル・ホスト上のDiskSuiteサブシステムにとって既知であるセット・ネームのベクトルを配分又は破壊する。
【0018】ARGUMENTS(引数)としては、set_name_li
st_pがあり、これは、cfg_get_ setname _list()によって配分されるキャラクタ・ストリングのベクトルであり、このホスト上で定義されるセットのネームに等しく設定される。 また、set_name_listがあり、これは、cfg
_get_setname_list()によって配分されたキャラクタ・
ストリングのベクトルである。
【0019】RETURN VALUES:成功時に、0の値が戻される。 それ以外の場合には、リターン値は、intro(2)のように、errnoである 次の関数は、非透過的なオブジェクト・リストの構成に関係する。
【0020】NAME(名称)としては、cfg_getsd_by_id,
cfg_getsd_by_setname, cfg_getsd_ next, cfg_getsd_
rewind, cfg_getsd_toplevel, cfg_destroy_sd があり、記憶装置記述子を読み出し、操作する。
【0021】SYNOPSIS(シノプシス): #include <config.h> int cfg_getsd_by_id(sdid_t sdid, void **storage_descriptor_pp) int cfg_getsd_by_setname(char *setname, void **storage_descriptor_pp) int cfg_getsd_next(void **storage_descriptor_pp) int cfg_gotsd_rewind(void **storage_descriptor_pp) int cfg_getsd_toplevel(sdid_t sdid, void **storage_descriptor_pp) int cfg_destroy_sd(void *storage_descriptor_p)
【0022】DESCRIPTION(説明):これらの関数は、
記憶装置記述子、記憶装置記述子識別子、及びテキストの記憶装置記述子を操作する。 記憶装置記述子は、Di
skSuiteインターフェース又はデータ構造を露出することなく、記憶装置を含むオブジェクトを記述する。
【0023】cfg_getsd_by_setname()は、引数であるst
orage_descriptor_ppを、記憶装置記述子ポインタの配分されたリストを参照するように設定する。 このリストは、cfg_getsd_next()を用いてウォークすることができ、又は、cfg_getsd_rewindsを用いてリスト・ヘッドに再び配置することができる。 cfg_destroy_sd()は、cf
g_getsd_by_setname()によって配分されたリストの配分を解消(deallocate)する。 cfg_getsd_by_id()は、記憶装置記述子リストをsdidによって識別されたエントリに再び配置するのに用いられる。
【0024】cfg_getsd_toplevel()は、オブジェクトを含む最上位を取得するのに用いられる。 親を持たない(孤児である)オブジェクトもあるので、適切なセットが、それ以外では付属していないオブジェクトすべてを含む。 通常の記憶デバイスに対しては、ミラーが、例えば、そのサブミラーを構成するストライプを含み得る。
【0025】cfg_getsd_next()は、storage_descriptor
_ppを、リストにおける次の要素に設定するのに用いられる。 リストの最後ではそれは、NULLに設定される。
【0026】cfg_getsd_rewind()は、storage_descript
or_ppをリストの最初に再び設定する。 これは、cfg_des
troy_sd()をコールする直前に、最も有用である。
【0027】ARGUMENTS(引数):setnameは、記憶装置記述子がそのために取得されるセットを識別するNULLで終わる(ターミネートされる)キャラクタ・ストリングである。
【0028】storage_descriptor_ppは、cfg_getsd_by_
setnameによって配分され、それに続くcfg_getsd_by_i
d, cfg_getsd_next, cfg_getsd_rewind ,cfg_getsd_top
levelによって操作され、 又は、cfg_destroy_sdによって、配分が解除される。
【0029】storage_descriptor_pは、cfg_getsd_by_s
etnameから取得されるstorage_descriptorリストの現在の位置である。
【0030】sdidは、記憶装置記述子の内容への公共的なインターフェースである。 cfg_get_sdidにおいて完全に記述されているので、イベント取り扱いルーチンから通常は取得される。
【0031】RETURN VALUES:成功時に、これらのルーチンは、0に戻る。 エラーの際には、intro(2)からの適切なエラー数が戻される。
【0032】次の関数は、非透過性のオブジェクトの属性と、それらが興味の対象であるかどうかを判断する。
【0033】NAME(名称)としては、cfg_validate_sd,
cfg_sd_is_err, cfg_sd_is_owned,cfg_sd_is_toplevel
があり、記憶装置記述子の有効性と属性とをチェックする。
【0034】SYNOPSIS(シノプシス): #include <config.h> int cfg_sd_is_err(void *storage_descriptor_p) int cfg_sd_is_owned(void *storage_descriptor_p) int cfg_sd_is_toplevel(void *storage descriptor_p) int cfg_validate_sd(void *storage_descriptor_p)
【0035】DESCRIPTION(説明):これらの関数は、
与えられた記憶装置記述子の有効性又は属性をチェックする。
【0036】ARGUMENT(引数): storage_descriptor_
pは、cfg_getsd_by_id()、又はcfg_getsd_by_setname()
の一方から取得される記憶装置記述子リストの現在値である。
【0037】cfg_sd_is_err()は、関連するデバイス・
ステートにエラーが存在する場合には、TRUE (非ゼロ)
を戻す。
【0038】cfg_sd_is_owned()は、記憶装置記述子が与えられたホストによって所有される又は所有されないオブジェクトを参照する場合には、TRUE (非ゼロ)を戻す。 これは、NDSD_HOST 及びKDSD_SETのタイプのオブジェクトを含む。
【0039】cfg_sd_is_toplevel()は、記憶装置記述子がどの他の記憶装置記述子にも含まれないオブジェクトを参照する場合には、TRUE (非ゼロ)を戻す。 top_leve
lのデバイスは、セット・エントリと、サブミラーを含むミラーとを含む。
【0040】cfg_validate_sd()は、与えられたstorage
_descriptorの内容を確認するのに用いられ得る。 これは、ワイルド・ポインタがその内容を上書きしていないことを確認し、配分が解除されていないことを確認するのに有用である。 storage_descriptor_p が有効である場合には、TRUE(非ゼロ)を戻す。 これらのすべてのルーチンは、任意のエラー条件に対して、FALSEを戻す。
【0041】次の関数は、公共的な識別子(SDID)
を比較し、検索する。
【0042】NAME(名称)には、cfg_cmp_sdid, cfg_de
stroy_sdid, cfg_get_sdid, は、記憶装置記述子識別子を比較し、配分し、配分を解除する。
【0043】SYNOPSIS(シノプシス): #include <config.h> sdid_cmp_t cfg_cmp_sdid(sd_id_t sl, sdid_t s2) int cfg_get_sdid(vaid *storage_ descriptor_p, sdid_t *sdidp) int cfg_destroy_sdid(sdid_t *sdidp)
【0044】DESCRIPTION(説明):これらの関数は、
記憶装置記述子への公共的キーである記憶装置記述子識別子を操作する。
【0045】cfg_get_sdid ()は、storage_descriptor_
pの内部のデータを翻訳して、値を、sdidpの中に充填する。 storage_descriptor_pは、cfg_getsd_*関数の1つから取得できる。
【0046】cfg_destroy_sdid()は、sdidpの内部にcfg
_get_sdid()によって配分される。 配分の解除は行わない。
【0047】cfg_cmp_sdid ()によって、複数のsdid_t
が比較されることが可能になる。 以下の列挙されたタイプの中の1つを、以下のタイプの定義に従って戻す。
【0048】typedef enum sdid_compare{ SDIDCM_UNK, SDIDCMP_NO, SDIDCMP_EXACT, SDIDCMP_STALE, SDIDCMP_TYPE } sdid_cmp_t;
【0049】SDIDCM_UNK:s1とs2との比較を試みている間にエラーが生じる。 比較は行われない。
【0050】SDIDCMP_NO:2つの記憶装置記述子識別子であるs1とs2とが一致しない。
【0051】SDIDCMP_EXACT:2つの記憶装置記述子識別子であるs1とs2とが同一である。
【0052】SDIDCMP_STALE:2つの記憶装置記述子識別子は同じオブジェクトを記述しているが、このオブジェクトは、s1とs2との一方又は両方がドライバのステートに対して最後にチェックされた時間の間に変化している可能性がある。
【0053】SDIDCMP_TYPE:2つの記憶装置記述子識別子は、オブジェクトのタイプにおいてだけ一致するが、
それ以外は異なっている。 記憶装置記述子識別子(sdid
_t)は、記憶装置記述子の内部のデータへの公共的なインターフェースである。 これらは、通常は、事象取り扱いルーチンから得られる。 (記憶装置記述子識別子は、
列挙されたタイプと、それぞれのオブジェクト(confi
ghを参照のこと)に対する一意的なキーとから、以下のように構成される。 )記憶装置記述子を一意的に識別するフィールドは、sdi_type, sdi_key, sdi_ctimeである。
【0054】
【0055】記憶装置記述子のタイプは、以下の列挙されている値の中の1つによって記述される。
【0056】 typedef enum md_storage_descriptor_type { MDSD_UNX = SDTYP_UNXI /*明示的な不法の値*/ MDSD_USER, /*ユーザの特定した記憶装置のタイプ*/ MDSD_UNSPEC, /*特定されていない記憶装置のタイプ*/ MDSD_STRIPE, /*ブロック・インターリーブ/アペンド*/ MDSD_MIRROR, /*ブロック複製*/ MDSD_RAIDS, /*ストライプ化されたパリティ*/ MDSD_TRANS, /*トランザクションしているデバイス*/ MDSD_REPLICA, /*データベース・レプリカ*/ MDSD_HSP, /*ホット・スペア・プール*/ MDSD_HS, /*ホット・スペア・メンバ*/ MDSD_RESERVED, /*使用不可能*/ MDSD_SET, /*管理的な収集*/ MDSD_HOST, /* セットを所有可能なホスト*/ MDSD_MEDIATOR /* アービトレータ*/ } mdsdtyp_t;
【0057】記述されたオブジェクトは、すべてが、記憶装置のクラスを与える構成された疑似デバイス(すなわち、ミラーリングされたもの)又は管理的に関連した実体である(administratively-related entities)。
【0058】RETURN VALUES : cfg_cmp_sdidを除いて、上述のように、これらの関数はは、成功時に0を戻す。 エラーの際には、errnoが戻され、intro (2) におけるように、epがエラー情報に充填される。
【0059】次の関数は、非透過性のオブジェクトを、
読み出し可能なフォーマットに変換する。
【0060】NAME(名称)には、cfg_get_text_sd, cfg
_destroy_text_sdがあり、テキスト形式の(textual)
記憶装置記述子テキストを配分及び配分解除する。
【0061】SYNOPSIS(シノプシス): #include <config.h> int cfg_get_text_sd (void *storage_descriptor_p, sdtext_t **sdtpp) int cfg_destroy_text_sd (sdtext_t *sdtp)
【0062】DESCRIPTION(説明):これらのルーチンは、テキスト形式の記憶装置記述子を、それぞれ、配分する。 テキスト形式の記憶装置記述子は、cfg_getsd_by
_idにそれ自体が記述される記憶装置記述子の内部のパケット化された情報の印刷可能なバージョンである。
【0063】ARGUMENTS(引数):storage_descriptor_
pは、cfg_ getsd_by_id ()又は、cfg_getsd_by_setname
()によって戻されたものとしての、記憶装置記述子へのポインタである。
【0064】sdtppは、テキスト形式の記憶装置記述子へのポインタのアドレスである。
【0065】typedef struct storage_descriptor_text_t { char *storage_allocator_name; char *name; char *type; char **attr; char **components;
【0066】storage_allocator_nameは、記憶装置マネジャのアイデンティティに設定される。 サン・マイクロシステムズ社から入手可能な本発明の記憶装置マネジャと独立のコンフィギュレーション・インターフェース・
トランスレータ及び方法のDiskSuiteとしての実現により、このストリングは、DiskSuiteに設定される。
【0067】nameは、ファイル・システム・ツリーにおけるこのデバイスのパスネーム(pathname)である。
【0068】type は、mirror やRAID5などのデバイスを識別するストリングである。
【0069】attr は、ストリングerror, owned, tople
velに設定された属性のベクトル(ヌルでもあり得る)
である。
【0070】componentsは、成分(コンポーネント)の名称のベクトルである。 これらは、通常は、そうである必要はないが、c0t1d0s1などのサブデバイスである。
【0071】RETURN VALUES:成功時には、これらのルーチンは、0を戻す。 それ以外の場合には、エラーが戻される。
【0072】次の関数は、イベントに関係する。
【0073】NAME(名称)には、cfg_ev_create, cfg_e
v_get, cfg_ev_put, cfg_ev_off があり、イベント告知を取得するために登録し、イベントを収集し、イベントを送り、イベント収集を取り止める(turn off)。
【0074】SYNOPSIS(シノプシス): #include <config.h> int cfg_ev_create (char *qname, int flags) int cfg_ev_off (char *qname) int cfg_ev_get ( char *qname, void *sdp, int wait, sdid_t *sdidp ) int cfg_ev_put (sdid_t *sdidp)
【0075】DESCRIPTION(説明):これらの関数は、
コンフィギュレーション・イベントを収集し、送り、受け取るために、登録(レジスタ)する。
【0076】cfg_ev_createは、名称付きのイベント告知キューであるqnameにおいてイベントを収集するために登録するのに用いられる。 その振る舞いは、修正される。
【0077】CPG_EV_PERMは、フラグであり、名称付きのキューがプロセスの出口において自動的に破壊されないことを示している。
【0078】CFG_EV_EXISTERRは、フラグであり、ユーザが既に存在するイベント告知キューを作成しようとすることはエラーではないことを示す。 このフラグが設定されていなければ、名称付きのキューは、存在せず、er
rno EEXISTが戻される。
【0079】cfg_ev_off ()は、イベント収集を登録せず、名称付きのキューを消去させる。
【0080】cfg_ev_get ()は、名称付きのキューの中にあるすべてのイベントに対して、sdid_tのアドレスの内部に適切なsdidを戻す。 イベントが存在しない場合には、このルーチンは、引数waitがTRUE(非ゼロ)であるかFALSE(ゼロ)であるかに従って、sdidpを設定することなく、ブロック又は戻る。
【0081】cfg_ev_put ()は、ユーザが特定したイベントを送るのに用いることができる。 ユーザ・データは、sdid_tのsdi_userフィールドにおいて送ることができる。
【0082】RETURN VALUES:成功時に、収集された又は送られたイベントは、cfg_ev_get() 又はcfg_ev_pu
t()によって戻される。 cfg_ev_create () 及びcfg_ev _
off()は、成功時には0を戻し、失敗を示すためには、e
rrnoを戻す。 エラーは、負の値によって示される。 この絶対値が、intro (2)におけるように、errnoである。
【0083】示してきたように、本発明による記憶装置マネジャと独立のコンフィギュレーション・インターフェース・トランスレータ及び方法は、最初に、記憶デバイスのどの組又はグループが使用可能であるかを判断し、次に、どの記憶装置記述子がこれらの特定のセットの中で使用されているかを決定する。 記憶装置記述子は、非透過的であるから、アクセス関数を用いてその内部に入る。 非透過的な構造は、次に、CLI及びGUI
ツールによって利用できる非透過的ではないフォーマットのテキストに変換される。 本発明は、また、使用の間に変更したデバイスに関する情報を与える告知メカニズムも有している。
【0084】以上で本発明の原理を特定のオペレーティング・システムとドライバとに関して説明したが、以上の説明は単に例示目的のものであって、明らかに、発明の技術的範囲を制限するものではない。 特に、以上の説明から得られる発明に対して、当業者であれば、修正を行うことができよう。 そのような修正は、それ自体が既に既知でありここで開示した特徴に加えて用いることができる他の特徴を含み得る。 特許請求の範囲は、この出願においては、特徴の特定の組合せとして記載されているが、本発明の範囲は、本出願において明示的に又は暗示的に開示された個々の特徴の組合せである任意の新たな特徴を含む可能性があり、その一般化又は修正は、当業者には明らかである。 これは、そのような一般化又は修正がいずれかの請求項に関係するか、または、本発明が直面する技術的な課題から導かれるかに限らない。 従って、出願人は、出願手続きにおいて、そのような特徴に関する新たな請求項を追加する、又は、分割出願を行う権利を留保しているものとする。
【図1】本発明の動作環境の一部を形成する汎用コンピュータの簡略化された図解である。
【図2】記憶装置マネジャと独立のライブラリ・コンフィギュレーション(libconfig)ブロックを組み入れ、
メタディスク・ドライバを介して複数のメタドライバに動作的に結合する例示的なコンピュータ・オペレーティング・システムの簡略化された概念図である。
【図3】それぞれが付随する記憶装置記述子識別子(S
DID)を有し概念的にコマンド・ライン・インターフェース(CLI)又はグラフィカル・ユーザ・インターフェース(GUI)にアンカされている、多数の記憶装置記述子の簡略化された概念図である。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America (72)発明者 スティーブン・ティー・セネター アメリカ合衆国コロラド州80920,コロラ ド・スプリングス,ウエストミンスター・ ドライヴ 8625 (72)発明者 デール・アール・パスモア アメリカ合衆国コロラド州80919,コロラ ド・スプリングス,ストニー・ポイント・ コート 1625 (72)発明者 ロバート・エス・ギッティンズ アメリカ合衆国コロラド州80866,ウッド ランド・パーク,キングズ・クラウン・ロ ード 1020
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
密码找回方法、装置、网络设备及计算机可读存储介质 | 2020-05-11 | 171 |
用于在一个或多个云系统上便携部署应用的方法和系统 | 2020-05-14 | 544 |
一种基于命令行动态替换用于多设备共镜像的方法 | 2020-05-16 | 259 |
一种用于计算热化学非平衡绕流的处理系统及方法 | 2020-05-13 | 197 |
基于树莓派的人脸识别系统 | 2020-05-14 | 844 |
升级的Cloud Foundry平台系统 | 2020-05-14 | 536 |
基于Kubernetes平台的联盟区块链系统 | 2020-05-17 | 366 |
深度学习作业处理方法、装置、设备及存储介质 | 2020-05-20 | 576 |
一种基于OpenCL的Bitslicing-KLEIN的快速实现方法 | 2020-05-15 | 328 |
ONU透传模式的配置方法及系统 | 2020-05-18 | 871 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。