IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特許7168833メモリ故障処理の方法、装置、電子機器及び記憶媒体
<>
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図1
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図2
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図3
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図4
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図5
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図6
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図7
  • 特許-メモリ故障処理の方法、装置、電子機器及び記憶媒体 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-01
(45)【発行日】2022-11-10
(54)【発明の名称】メモリ故障処理の方法、装置、電子機器及び記憶媒体
(51)【国際特許分類】
   G06F 11/07 20060101AFI20221102BHJP
   G06F 11/20 20060101ALI20221102BHJP
【FI】
G06F11/07 196
G06F11/07 140N
G06F11/20 630
【請求項の数】 17
(21)【出願番号】P 2021064522
(22)【出願日】2021-04-06
(65)【公開番号】P2021108174
(43)【公開日】2021-07-29
【審査請求日】2021-04-06
(31)【優先権主張番号】202010477094.7
(32)【優先日】2020-05-29
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【弁理士】
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【弁理士】
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100147924
【弁理士】
【氏名又は名称】美恵 英樹
(72)【発明者】
【氏名】フ シャオウェイ
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2012-118841(JP,A)
【文献】米国特許出願公開第2007/0074067(US,A1)
【文献】国際公開第2014/024279(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07-11/20
G06F 11/30-11/34
(57)【特許請求の範囲】
【請求項1】
メモリ故障処理装置により実行される メモリ故障処理方法であって、
ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得するステップと、
前記故障パラメータに基づいて前記ホストコンピュータのクラッシュ確率を決定するステップと、
前記クラッシュ確率が予め設定された第1の閾値以上である場合、前記ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートするステップであって、前記ターゲットホストコンピュータの前記クラッシュ確率が、予め設定された第2の閾値より小さく、前記第2の閾値が前記第1の閾値より小さいステップと、を含む、
メモリ故障処理方法。
【請求項2】
前記故障メモリの前記故障パラメータを取得するステップの前に、
前記故障メモリで仮想マシンのプロセスが実行されている場合、前記仮想マシンのプロセスを終了するステップをさらに含む、
ことを特徴とする請求項1に記載のメモリ故障処理方法。
【請求項3】
カーネルシステムによって送信された第1の制御命令を取得するステップと、
前記第1の制御命令に基づいて、前記ホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むステップと、
書き込まれた情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第1のコードを生成するステップと
前記カーネルシステムによって送信された第2の制御命令を取得するステップと、
前記第2の制御命令に基づいて、前記ターゲットメモリページの前記ターゲット位置から情報を読み取るステップと、
読み取った情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第2のコードを生成するステップと、
前記第1のコードと前記第2のコードとが異なる場合、前記ターゲットメモリページに故障が発生したことを検出するステップと、をさらに含む、
ことを特徴とする請求項1に記載のメモリ故障処理方法。
【請求項4】
前記故障メモリの前記故障パラメータを取得するステップは、
予め設定されたアルゴリズムに基づいて前記第1のコードと前記第2のコードとを解析し、解析された前記第1のコードと前記第2のコードとの差分コードを取得するステップと、
前記差分コードに基づいて、前記ターゲットメモリページの前記ターゲット位置に対応するエラービットを決定するステップと、
前記エラービットに基づいてエラーの総数及び前記エラービット同士の間の位置特徴を取得するステップと、を含む、
ことを特徴とする請求項3に記載のメモリ故障処理方法。
【請求項5】
前記故障パラメータに基づいて前記ホストコンピュータの前記クラッシュ確率を決定するステップは、
予め訓練された確率分析モデルを取得するステップと、
前記故障パラメータを前記確率分析モデルに入力して処理し、前記ホストコンピュータの前記クラッシュ確率を取得するステップと、を含む、
ことを特徴とする請求項1に記載のメモリ故障処理方法。
【請求項6】
前記故障パラメータに基づいて前記ホストコンピュータの前記クラッシュ確率を決定するステップの後、
前記クラッシュ確率が前記第1の閾値より小さく、かつ、前記第2の閾値以上である場合、前記故障メモリをマーキングして、前記クラッシュ確率及び前記ホストコンピュータ上の前記すべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定し、前記ターゲット仮想マシンをマイグレートするステップであって、前記ターゲット仮想マシンの数が前記すべての仮想マシン数より少ないステップをさらに含む、
ことを特徴とする請求項1に記載のメモリ故障処理方法。
【請求項7】
前記故障パラメータに基づいて前記ホストコンピュータの前記クラッシュ確率を決定するステップの後、
前記クラッシュ確率が前記第2の閾値より小さい場合、前記故障メモリをマーキングするステップをさらに含む、
ことを特徴とする請求項1に記載のメモリ故障処理方法。
【請求項8】
メモリ故障処理装置であって、
ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得するための第1の取得モジュールと、
前記故障パラメータに基づいて前記ホストコンピュータのクラッシュ確率を決定するための決定モジュールと、
前記クラッシュ確率が予め設定された第1の閾値以上である場合、前記ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートするための処理モジュールであって、前記ターゲットホストコンピュータの前記クラッシュ確率が、予め設定された第2の閾値より小さく、前記第2の閾値が前記第1の閾値より小さい処理モジュールと、を含む、
メモリ故障処理装置。
【請求項9】
前記故障メモリで仮想マシンのプロセスが実行されている場合、前記仮想マシンのプロセスを終了するための終了モジュールをさらに含む、
ことを特徴とする請求項8に記載のメモリ故障処理装置。
【請求項10】
カーネルシステムによって送信された第1の制御命令を取得するための第2の取得モジュールと、
前記第1の制御命令に基づいて、前記ホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むための書き込みモジュールと、
書き込まれた情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第1のコードを生成するための第1の生成モジュールと、
前記カーネルシステムによって送信された第2の制御命令を取得するための第3の取得モジュールと、
前記第2の制御命令に基づいて、前記ターゲットメモリページの前記ターゲット位置から情報を読み取るための読み取りモジュールと、
読み取った情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第2のコードを生成するための第2の生成モジュールと、
前記第1のコードと前記第2のコードとが異なる場合、前記ターゲットメモリページに故障が発生したことを検出するための比較決定モジュールと、をさらに含む、
ことを特徴とする請求項8に記載のメモリ故障処理装置。
【請求項11】
前記第1の取得モジュールは、具体的には、
予め設定されたアルゴリズムに基づいて前記第1のコードと前記第2のコードとを解析し、解析された前記第1のコードと前記第2のコードとの差分コードを取得し、
前記差分コードに基づいて、前記ターゲットメモリページの前記ターゲット位置に対応するエラービットを決定し、
前記エラービットに基づいてエラーの総数及び前記エラービット同士の間の位置特徴を取得するために用いられる、
ことを特徴とする請求項10に記載のメモリ故障処理装置。
【請求項12】
前記決定モジュールは、具体的には、
予め訓練された確率分析モデルを取得し、
前記故障パラメータを前記確率分析モデルに入力して処理し、前記ホストコンピュータの前記クラッシュ確率を取得するために用いられる、
ことを特徴とする請求項8に記載のメモリ故障処理装置。
【請求項13】
第1のマーキングモジュールとマイグレート決定モジュールをさらに含み、
前記クラッシュ確率が前記第1の閾値より小さく、かつ、前記第2の閾値以上である場合、前記第1のマーキングモジュールによって前記故障メモリをマーキングして、前記マイグレート決定モジュールによって、前記クラッシュ確率及び前記ホストコンピュータ上の前記すべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定し、前記ターゲット仮想マシンをマイグレート、前記ターゲット仮想マシンの数が前記すべての仮想マシン数より少ない、
ことを特徴とする請求項8に記載のメモリ故障処理装置。
【請求項14】
前記クラッシュ確率が前記第2の閾値より小さい場合、前記故障メモリをマーキングするための第2のマーキングモジュールをさらに含む、
ことを特徴とする請求項8に記載のメモリ故障処理装置。
【請求項15】
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサが請求項1~7のいずれか1項に記載のメモリ故障処理方法を実行できる、
ことを特徴とする電子機器。
【請求項16】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ命令は、前記コンピュータに請求項1~7のいずれか1項に記載のメモリ故障処理方法を実行させるために用いられる、
ことを特徴とする非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項17】
コンピュータ上で動作しているときに、請求項1~7のいずれか1項に記載のメモリ故障処理方法を前記コンピュータに実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、コンピュータ技術分野のクラウドコンピューティングの分野に関し、特に、メモリ故障処理の方法、装置、電子機器及び記憶媒体に関する。
【背景技術】
【0002】
現在、インターネットを基盤とする関連サービスが発展し続けており、ホストコンピュータに仮想マシンを配置する規模は拡大し続けている。
【0003】
関連技術において、ホストコンピュータのメモリに故障が発生すると、ホストコンピュータ上のすべての仮想マシンを直接制御してサービスを停止する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、メモリ故障処理に用いられる方法、装置、デバイス及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
本開示の一態様によれば、メモリ故障処理方法を提供し、当該方法は、
ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得するステップと、
前記故障パラメータに基づいて前記ホストコンピュータのクラッシュ確率を決定するステップと、
前記クラッシュ確率が予め設定された第1の閾値以上である場合、前記ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートするステップであって、前記ターゲットホストコンピュータのクラッシュ確率が、予め設定された第2の閾値より小さく、前記第2の閾値が前記第1の閾値より小さいステップと、を含む。
【0006】
本開示の別の態様によれば、メモリ故障処理方法の装置を提供し、当該装置は、
ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得するための第1の取得モジュールと、
前記故障パラメータに基づいて前記ホストコンピュータのクラッシュ確率を決定するための決定モジュールと、
前記クラッシュ確率が予め設定された第1の閾値以上である場合、前記ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートするための処理モジュールであって、前記ターゲットホストコンピュータのクラッシュ確率が、予め設定された第2の閾値より小さく、第2の閾値が第1の閾値より小さい処理モジュールと、を含む。
【0007】
本出願の第3の態様の実施例は、電子機器を提供し、当該電子機器は
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、ここで、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサが第1の態様の実施例に記載のメモリ故障処理方法を実行できるように、が前記少なくとも1つのプロセッサによって実行される。
【0008】
本出願の第4の態様の実施例は、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提案し、前記コンピュータ命令は、前記コンピュータに第1の態様の実施例に記載のメモリ故障処理方法を実行させるために用いられる。
【0009】
本出願の第5の態様の実施例は、コンピュータプログラムを提案し、前記コンピュータプログラムは、前記コンピュータに第1の態様の実施例に記載のメモリ故障処理方法を実行させるために用いられる。
【発明の効果】
【0010】
上記出願の一実施例は、以下の利点又は有益な効果を有する。
【0011】
ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得し、故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定し、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さい。これにより、ホストコンピュータのメモリに故障が発生すると、ホストコンピュータ上のすべての仮想マシンがサービスを全部停止するという問題を回避し、ホストコンピュータのクラッシュ確率が予め設定された閾値以上である場合、ホストコンピュータ上の仮想マシンを、クラッシュ確率がホストコンピュータより小さいターゲットホストコンピュータにマイグレートし、それにより、仮想マシンがクラッシュ故障の影響を受けることを防ぎ、ユーザの使用体験及びサービス品質を向上させる。
【0012】
本明細書に記載の内容は、本開示の実施例の肝心な特徴又は重要な特徴を特定することを意図したものではなく、本開示の範囲を限定することを意図したものでもないことを理解されたい。本開示のその他の特徴は、以下の明細書によって容易に理解される。
【0013】
図面は、本技術案をよりよく理解するために使用され、本出願を限定するものではない。
【図面の簡単な説明】
【0014】
図1】本出願の第1の実施例により提供されるメモリ故障処理方法の概略フローチャートである。
図2】本出願の第2の実施例により提供されるメモリ故障処理方法の概略フローチャートである。
図3】本出願の第3の実施例により提供されるメモリ故障処理方法の概略フローチャートである。
図4】本出願の第4の実施例により提供されるメモリ故障処理装置の概略構造図である。
図5】本出願の第5の実施例により提供されるメモリ故障処理装置の概略構造図である。
図6】本出願の第6の実施例により提供されるメモリ故障処理装置の概略構造図である。
図7】本出願の第7の実施例により提供されるメモリ故障処理装置の概略構造図である。
図8】本出願の実施例のメモリ故障処理方法を実施するための電子機器のブロック図である。
【発明を実施するための形態】
【0015】
以下、図面と組み合わせて本出願の例示的な実施例を説明し、理解を容易にするためにその中には本出願の実施例の様々な詳細事項が含まれており、それらは単なる例示的なものと見なされるべきである。したがって、当業者は、本出願の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができる。同様に、わかりやすくかつ簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
【0016】
以下、図面を参照しながら、本出願の実施例のメモリ故障処理の方法、装置、電子機器及び記憶媒体について説明する。
【0017】
図1は、本出願の第1の実施例により提供されるメモリ故障処理方法の概略フローチャートである。
【0018】
実際の応用において、クラウドサービスの継続的な発展に伴い、ホストコンピュータに仮想マシンを配置する規模が拡大し続けるため、ホストコンピュータにメモリの故障が発生する回数がますます多くなり、それによりホストコンピュータがクラッシュし、関連技術において、ホストコンピュータがクラッシュすると、すべての仮想マシンを直接制御してサービスを停止し、それにより、ユーザが使用しているサービスが影響を受け、クラウドサービスの品質が低下する。
【0019】
上記問題について、本出願は、メモリ故障処理方法を提供し、ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得し、故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定し、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さい。つまり、故障パラメータに基づいてクラッシュ確率を決定し、クラッシュ確率が非常に高い場合、ホストコンピュータ上の仮想マシンを、クラッシュ確率がホストコンピュータより小さいターゲットホストコンピュータに適時にマイグレートし、それにより、仮想マシンがクラッシュ故障の影響を受けることを防ぎ、ユーザの使用体験及びサービス品質を向上させる。
【0020】
図1に示すように、当該メモリ故障処理方法は、ステップ101~ステップ103を含む。
【0021】
ステップ101、ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得する。
【0022】
本出願の実施例において、ホストコンピュータは仮想マシンの物理的な基盤であり、仮想マシンは、ホストコンピュータ内に存在し、ホストコンピュータとハードウェアメモリを共有的に使用し、つまり、1つのホストコンピュータに1つ又は複数の仮想マシンが存在する。
【0023】
本出願の実施例は、主に、ホストコンピュータのメモリに故障が発生した場合についてのものであり、つまり、仮想マシンが、使用中にホストコンピュータのメモリに故障が発生することにより直接クラッシュすることがなく、したがって、故障パラメータに基づいてクラッシュ確率を決定する必要があり、それによりクラッシュ確率に基づいて仮想マシンのマイグレートを行うか否かを決定し、ユーザサービス品質を保証し、ユーザの使用体験を向上させる。
【0024】
本出願の実施例において、ホストコンピュータのメモリに故障が発生したことを検出する方式は様々であるが、具体的な応用シーンに応じて選択して設定することができ、次のように例を挙げて説明する。
【0025】
第1の例示において、ホストコンピュータのターゲットメモリページのターゲット位置に書き込まれた情報に基づいて生成された、ターゲットメモリページのターゲット位置に対応する第1のコードと、読み取った情報に基づいて生成された、前記ターゲットメモリページのターゲット位置に対応する第2のコードと、を比較し、第1のコードと第2のコードとが異なる場合、ホストコンピュータのメモリに故障が発生したと決定する。
【0026】
第2の例示において、仮想マシンのプロセスエラー又は仮想マシンにて提供されるサービスのフィードバックエラーに基づいて、ホストコンピュータのメモリに故障が発生したと決定する。
【0027】
さらに、ホストコンピュータのメモリ故障を検出した場合、故障メモリの故障パラメータ、例えばエラービットの数、エラービットの位置特徴、エラービットの時間特徴、及びエラービットのタイプ特徴などのうちの1つ又は複数を取得する。
【0028】
故障メモリの故障パラメータを取得する方式は様々であり、応用の必要に応じて選択して設定することができることが理解でき、次のように例を挙げて説明する。
【0029】
第1の例示において、予め設定されたアルゴリズムに基づいて、書き込まれた情報に対応するコード及び読み取った情報に対応するコードを解析し、解析された第1のコード及び第2のコードの差分コードを取得し、差分コードに基づいてターゲットメモリページのターゲット位置に対応するエラービットを決定し、エラービットに基づいてエラーの総数及びエラービット同士の間の位置特徴を取得する。
【0030】
第2の例示において、書き込まれた情報と読み取った情報とを1つずつ直接比較して、一致しないエラービットを取得し、エラービットの位置特徴及び時間特徴を取得する。
【0031】
ステップ102、故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定する。
【0032】
本出願の実施例において、メモリに故障が発生したが、ホストコンピュータがまだクラッシュしていない場合、本出願は、故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定することができる。
【0033】
故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定する方式はさまざまであり、必要に応じて選択して設定することができることが理解でき、次のように例を挙げて説明する。
【0034】
第1の例示において、予め訓練された確率分析モデルを取得し、故障パラメータを確率分析モデルに入力して処理し、ホストコンピュータのクラッシュ確率を取得する。
【0035】
第2の例示において、複数の履歴故障パラメータと複数の履歴確率との間の関係にしたがって予め設定された式を作成し、予め設定された式で故障パラメータを計算してホストコンピュータのクラッシュ確率を取得する。
【0036】
第3の例示において、予め設定されたマッピングテーブルを照会することにより、故障パラメータに対応するホストコンピュータのクラッシュ確率を取得する。
【0037】
ステップ103、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さい。
【0038】
本出願の実施例において、クラッシュ確率を取得した後、ホストコンピュータのメモリの現在の故障状況に基づいて、ホストコンピュータがクラッシュする確率がどれぐらいかを知ることができ、第1の閾値を設定することにより、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータがクラッシュする可能性が大きいことを表し、ホストコンピュータ上のすべての仮想マシンを、クラッシュ確率がホストコンピュータより小さいターゲットホストコンピュータにマイグレートする必要があり、それにより、通常のユーザサービスが保証され、サービス品質及びユーザ体験が向上し、かつ、マイグレートが完了すると、ホストコンピュータをシャットダウンしてから再起動することができる。
【0039】
ここで、第1の閾値及び第2の閾値は、複数のホストコンピュータの過去のクラッシュタイミングに基づいてまとめてもよいし、応用要件に応じて設定してもよく、例えば、クラウド環境でのホストコンピュータのクラッシュ原因をまとめることにより、メモリ故障を決定すると、故障パラメータに基づいてクラッシュ確率は40%だと決定し、一定期間後にクラッシュしたため、第1の閾値を40%として設定することができ、マイグレートされた後の仮想サービスが正常に動作することを保証するため、第2の閾値は第1の閾値より小さく、第2の閾値が小さいほど、ターゲットホストコンピュータクラッシュ確率が小さいことを表し、それにより、マイグレートされた仮想サービスを正常に使用することを保証する。
【0040】
なお、クラッシュ確率が予め設定された第1の閾値より小さい場合、クラッシュする可能性が小さいことを表し、引き続き仮想マシンサービスとして使用されてもよいし、仮想マシンの一部をマイグレートしてもよく、実際の応用シーンの必要に応じて設定することができる。
【0041】
本出願の実施例のメモリ故障処理方法は、ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得し、故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定し、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さい。これにより、ホストコンピュータのメモリに故障が発生すると、ホストコンピュータ上のすべての仮想マシンがサービスを全部停止するという問題を回避し、ホストコンピュータのクラッシュ確率が予め設定された閾値以上である場合、ホストコンピュータ上の仮想マシンを、クラッシュ確率がホストコンピュータより小さいターゲットホストコンピュータにマイグレートし、それにより、仮想マシンがクラッシュ故障の影響を受けることを防ぎ、ユーザの使用体験及びサービス品質を向上させる。
【0042】
なお、本出願のメモリ故障処理方法は、各々のホストコンピュータの故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定し、クラッシュ確率と閾値との比較に基づいてマイグレートするか否かを決定するものであってもよいし、各ホストコンピュータが故障パラメータを関連のサーバに送信して分析し、サーバが分析結果にしたがって送信した制御命令を受信して操作するものであってもよく、具体的には、応用シーンに応じて選択して設定し、本出願はこれに対して限定しない。
【0043】
上記実施例の記述に基づいて理解できるように、ホストコンピュータのメモリに故障が発生したことを検出するとともに、その故障がどの仮想マシンのプロセスの実行によるものかを決定でき又はほぼ決定でき、対応する仮想マシンのプロセスを終了して、当該仮想マシンへのサービス提供を停止するとともに、当該故障メモリをマーキングして隔離することができ、したがって、クラッシュ故障の発生を回避する。具体的には、図2を参照しながら詳細に説明する。
【0044】
図2は、本出願の第2の実施例により提供されるメモリ故障処理方法の概略フローチャートである。
【0045】
図2に示すように、当該メモリ故障処理方法は、ステップ201~ステップ205を含む。
【0046】
ステップ201、故障メモリで仮想マシンのプロセスが実行されている場合、仮想マシンのプロセスを終了する。
【0047】
具体的には、ホストコンピュータのメモリに故障が発生したこと、例えば、ホストコンピュータのターゲットメモリページの下2ページの故障が検出され、かつ、仮想マシンAがさきほどホストコンピュータのターゲットメモリページの1~20ページに情報を書き込んだことを検出した場合、これにより、当該メモリの故障は仮想マシンAのサービス提供によるものであると決定することができ、仮想マシンAのプロセスを終了すればよい。それにより、クラッシュリスクを低減させ、他のサービスがクラッシュ故障によって影響されることを回避し、サービス品質を向上させる。
【0048】
ここで、ホストコンピュータのメモリ故障を検出する方式は、上記実施例の具体的な記述を参照することができるため、ここでは詳細な説明を省略する。
【0049】
ステップ202、故障メモリの故障パラメータを取得し、かつ、予め訓練された確率分析モデルを取得する。
【0050】
ステップ203、故障パラメータを確率分析モデルに入力して処理し、ホストコンピュータのクラッシュ確率を取得する。
【0051】
本出願の実施例において理解できるように、故障パラメータサンプル及び確率サンプルを予め取得して、故障パラメータサンプル及び確率サンプルで確率分析モデルのモデル係数を訓練することができる。
【0052】
したがって、故障パラメータを確率分析モデルに入力し、予め訓練されたモデル係数で故障パラメータを処理することにより、ホストコンピュータのクラッシュ確率を取得することができ、ホストコンピュータのクラッシュ確率の取得効率をさらに向上させる。
【0053】
ステップ204、クラッシュ確率が第1の閾値より小さく、かつ、第2の閾値以上である場合、故障メモリをマーキングする。
【0054】
ステップ205、クラッシュ確率及びホストコンピュータ上のすべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定し、ターゲット仮想マシンをマイグレートし、ここで、ターゲット仮想マシンの数はすべての仮想マシンの数より少ない。
【0055】
本出願の実施例において、故障メモリ処理の柔軟性をさらに高めるために、上記実施例で設定した第1の閾値以外に、さらに、第2の閾値を設定することもでき、第1の閾値は第2の閾値より大きい。
【0056】
つまり、クラッシュ確率が第1の閾値より小さいことは、ホストコンピュータがクラッシュする確率が低いことを表すが、クラッシュする可能性がないとは言えず、したがって、第1の閾値より小さい第2の閾値を設定することによりさらなる判断を行って、対応する処理を行い、例えば、第1の閾値が60%である場合、第2の閾値を40%に設定することができる。
【0057】
本出願の実施例において、クラッシュ確率が第1の閾値より小さい場合、クラッシュ確率が予め設定された第2の閾値以上であると判断し、故障メモリをマーキングし、ホストコンピュータの他の正常なメモリを引き続いて使用し、つまり、クラッシュするリスクがあり、かつ、クラッシュするリスクが故障メモリにより引き起こされる確率が大きく、この場合、故障メモリをマーキングして、隔離処理を行い、ホストコンピュータの他の正常なメモリを引き続いて使用することにより、他のサービスが引き続いて行われ、サービスの効率と品質が向上する。
【0058】
上記分析に基づいて、このとき、クラッシュ確率が予め設定された第2の閾値以上であるため、クラッシュするリスクが存在する可能性がまだあり、仮想サービスがクラッシュの影響を受けることをさらに回避するために、クラッシュ確率及びホストコンピュータ上のすべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定して、ターゲット仮想マシンをマイグレートすることができ、ここで、ターゲット仮想マシンの数はすべての仮想マシンの数より少ない。
【0059】
ここで、仮想マシン上のサービス情報(例えば、リアルタイムサービス、サービス対象など)に基づいて各仮想マシンをソートし、かつ、クラッシュ確率に基づいて3~5個のマイグレートできるものを決定し、それにより、ソート後の後ろから3つの仮想マシンを選択してマイグレートし、応用要件に応じてターゲット仮想マシン及びマイグレートする数を選択することができ、サービスの品質及びユーザの使用体験をより一層保証する。
【0060】
なお、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをマイグレートし、マイグレートが完了すると、ホストコンピュータをシャットダウンし、かつ、クラッシュ確率が第2の閾値より小さい場合、処理する必要は一切なく、故障メモリをマーキングするだけで、ホストコンピュータの他の正常なメモリを引き続いて使用することができる。
【0061】
本出願の実施例のメモリ故障処理方法は、故障メモリで仮想マシンのプロセスが実行されている場合、仮想マシンのプロセスを終了し、故障メモリの故障パラメータを取得し、かつ、予め訓練された確率分析モデルを取得し、故障パラメータを確率分析モデルに入力し、予め訓練されたモデル係数で故障パラメータを処理することにより、ホストコンピュータのクラッシュ確率を取得し、クラッシュ確率が第1の閾値より小さく、かつ、予め設定された第2の閾値以上である場合、故障メモリをマーキングし、クラッシュ確率及びホストコンピュータ上のすべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定し、ターゲット仮想マシンをマイグレートし、ここで、ターゲット仮想マシンの数はすべての仮想マシンの数より少ない。これにより、ホストコンピュータのメモリに故障が発生すると、故障メモリで作動している仮想マシンのプロセスを終了し、かつ、故障メモリをマーキングして隔離し、仮想マシンの一部を他のホストコンピュータにマイグレートし、それにより、仮想マシンがクラッシュ故障の影響を受けることを防ぎ、ユーザの使用体験及びサービス品質を向上させる。
【0062】
図3は、本出願の第3の実施例により提供されるメモリ故障処理方法の概略フローチャートである。
【0063】
図3に示すように、当該メモリ故障処理方法は、ステップ301~ステップ308を含む。
【0064】
ステップ301、カーネルシステムによって送信された第1の制御命令を取得し、第1の制御命令に基づいてホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込み、書き込まれた情報に基づいてターゲットメモリページのターゲット位置に対応する第1のコードを生成する。
【0065】
本出願の実施例において、異なる応用シーンに対して異なるメモリ故障処理モードを設定することができ、故障の検出を行う前に、さらに、ホストコンピュータのカーネルパラメータに基づいてどのメモリ故障処理モードを起動するかを判断することができ、例えば、カーネルパラメータ1は、本出願の実施例におけるメモリ故障処理モードの実行を表し、また、カーネルパラメータ2は、メモリの故障を検出して、ホストコンピュータを直接シャットダウンする処理モードの実行を表し、具体的には、実際の応用シーンに応じて設定することができる。
【0066】
本出願の実施例において、カーネルシステムによって送信された命令にしたがってホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むか、又はそれから情報を読み取ることにより、カーネルシステムによって送信された第1の制御命令を取得した後、第1の制御命令は、1つの書き込み命令であり、具体的な書き込みビット及び書き込み位置識別子などの情報をさらに含み、そのため、第1の制御命令に基づいてホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むことができる。
【0067】
さらに、符号化アルゴリズムなどの方式により、書き込まれた情報に基づいてターゲットメモリページのターゲット位置に対応する第1のコードを生成し、例えば、書き込まれた情報「ABC」は、符号化されて「11001」になる。
【0068】
ステップ302、カーネルシステムによって送信された第2の制御命令を取得し、第2の制御命令に基づいてターゲットメモリページのターゲット位置から情報を読み取り、読み取った情報に基づいてターゲットメモリページのターゲット位置に対応する第2のコードを生成する。
【0069】
ステップ303、第1のコードと第2のコードとが異なる場合、ターゲットメモリページに故障が発生したと決定する。
【0070】
本出願の実施例において、カーネルシステムによって送信された命令にしたがってホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むか、それから情報を読み取ることにより、カーネルシステムによって送信された第2の制御命令を取得した後、第2の制御命令は、1つの読み取り命令であり、具体的な読み取りビット及び読み取り位置識別子などの情報をさらに含み、そのため、第2の制御命令に基づいてホストコンピュータのターゲットメモリページのターゲット位置から情報を読み取ることができる。
【0071】
さらに、符号化アルゴリズムなどの方式により、読み取った情報に基づいてターゲットメモリページのターゲット位置に対応する第2のコードを生成し、例えば、読み取った情報「ABC」は、符号化されて「11001」になる。
【0072】
メモリに故障が発生していない場合、第1のコードと第2のコードとは一致するため、第1のコードと第2のコードとが一致しない場合、ターゲットメモリページに故障が発生したと決定し、例えば、いずれも「11001」である場合、メモリ故障がなく、第1のコードが「11001」で、第2のコードが「00001」である場合、ターゲットメモリページに故障が発生したと決定することが理解できる。
【0073】
ステップ304、予め設定されたアルゴリズムに基づいて第1のコードと第2のコードとを解析して、解析された第1のコードと第2のコードとの差分コードを取得し、差分コードに基づいてターゲットメモリページのターゲット位置に対応するエラービットを決定し、エラービットに基づいてエラーの総数及びエラービット同士の間の位置特徴を取得する。
【0074】
具体的には、予め設定されたアルゴリズムに基づいて第1のコードと第2のコードとを解析し、両者間の差分コードを取得し、例えば、自動比較アルゴリズムにより「11001」である第1のコードと「00001」である第2のコードとの差分コード「11」及び「00」を取得し、差分コードに基づいてターゲットメモリページのターゲット位置に対応するエラービットを決定し、例えば、上記差分コードにより、第1の位置及び第2の位置に対応するターゲットメモリページのターゲット位置にエラービットがあると決定し、最後に、エラービットに基づいてエラーの総数及びエラービット同士の間の位置特徴を取得する。
【0075】
つまり、差分コードに基づいて、例えば第3ページの第1、3及び5の位置にビットエラーが発生したなど、どのターゲットメモリページのどのターゲット位置のどのビットにエラーが発生したかを決定するとともに、エラービットを取得し、エラーの総数及びエラービット同士の間の位置特徴を取得することができる。
【0076】
ステップ305、予め訓練された確率分析モデルを取得し、故障パラメータを確率分析モデルに入力して処理し、ホストコンピュータのクラッシュ確率を取得する。
【0077】
本出願の実施例において理解できるように、故障パラメータサンプル及び確率サンプルを予め取得して、故障パラメータサンプル及び確率サンプルで確率分析モデルのモデル係数を訓練することができる。
【0078】
したがって、故障パラメータを確率分析モデルに入力し、予め訓練されたモデル係数で故障パラメータを処理することにより、ホストコンピュータのクラッシュ確率を取得することができ、ホストコンピュータのクラッシュ確率の取得効率さらに向上させる。
【0079】
ステップ306、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さい。
【0080】
ステップ307、クラッシュ確率が第1の閾値より小さく、かつ、予め設定された第2の閾値以上である場合、故障メモリをマーキングする。
【0081】
ステップ308、クラッシュ確率が第2の閾値より小さい場合、故障メモリをマーキングする。
【0082】
本出願の実施例において、クラッシュ確率を取得した後、ホストコンピュータのメモリの現在の故障状況に基づいて、ホストコンピュータがクラッシュする確率がどれぐらいかを知ることができ、第1の閾値を設定することにより、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータがクラッシュする可能性が大きいことを表し、ホストコンピュータ上のすべての仮想マシンをマイグレートする必要があり、それにより、通常のユーザサービスが保証され、サービス品質及びユーザ体験が向上し、かつ、マイグレートが完了すると、ホストコンピュータをシャットダウンしてから再起動する。
【0083】
本出願の実施例において、故障メモリ処理の柔軟性をさらに高めるために、上記実施例で設定した第1の閾値以外に、さらに、第2の閾値を設定することもでき、第1の閾値は第2の閾値より大きい。
【0084】
つまり、クラッシュ確率が第1の閾値より小さいことは、ホストコンピュータがクラッシュする確率が低いことを表すが、クラッシュする可能性がないとは言えず、したがって、第1の閾値より小さい第2の閾値を設定することによりさらなる判断を行って、対応する処理を行い、例えば、第1の閾値が60%である場合、第2の閾値を40%に設定することができる。
【0085】
本出願の実施例において、クラッシュ確率が第1の閾値より小さい場合、クラッシュ確率は予め設定された第2の閾値以上であると判断し、故障メモリをマーキングし、ホストコンピュータの他の正常なメモリを引き続いて使用し、つまり、クラッシュするリスクがあり、かつ、クラッシュするリスクが故障メモリにより引き起こされる確率が大きく、この場合、故障メモリをマーキングして、隔離処理を行い、ホストコンピュータの他の正常なメモリを引き続いて使用することにより、他のサービスが引き続いて行われ、サービスの効率と品質が向上する。
【0086】
上記分析に基づいて、このとき、クラッシュ確率が予め設定された第2の閾値以上であるため、クラッシュするリスクが存在する可能性がまだあり、仮想サービスがクラッシュの影響を受けることをさらに回避するために、クラッシュ確率及びホストコンピュータ上のすべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定して、ターゲット仮想マシンをマイグレートすることができ、ここで、ターゲット仮想マシンの数はすべての仮想マシンの数より少ない。
【0087】
ここで、仮想マシン上のサービス情報(例えば、リアルタイムサービス、サービス対象など)に基づいて各仮想マシンをソートし、かつ、クラッシュ確率に基づいて3~5個のマイグレートできるものを決定し、それにより、ソート後の後ろから3つの仮想マシンを選択してマイグレートし、応用要件に応じてターゲット仮想マシン及びマイグレートする数を選択することができ、サービスの品質及びユーザの使用体験をより一層保証する。
【0088】
本出願の実施例において、クラッシュ確率が第2の閾値より小さい場合、故障メモリをマーキングするだけでよく、ホストコンピュータの他の正常なメモリを引き続いて使用することができる。
【0089】
本出願の実施例のメモリ故障処理方法は、カーネルシステムによって送信された第1の制御命令を取得し、第1の制御命令に基づいてホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込み、書き込まれた情報に基づいてターゲットメモリページのターゲット位置に対応する第1のコードを生成し、カーネルシステムによって送信された第2の制御命令を取得し、第2の制御命令に基づいてターゲットメモリページのターゲット位置から情報を読み取り、読み取った情報に基づいてターゲットメモリページのターゲット位置に対応する第2のコードを生成し、第1のコードと第2のコードとが異なる場合、ターゲットメモリページに故障が発生したと決定し、予め設定されたアルゴリズムに基づいて第1のコードと第2のコードとを解析して、解析された第1のコードと第2のコードとの差分コードを取得し、差分コードに基づいてターゲットメモリページのターゲット位置に対応するエラービットを決定し、エラービットに基づいてエラーの総数及びエラービット同士の間の位置特徴を取得し、予め訓練された確率分析モデルを取得し、故障パラメータを確率分析モデルに入力して処理し、ホストコンピュータのクラッシュ確率を取得し、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さく、クラッシュ確率が前記第1の閾値より小さく、かつ、予め設定された第2の閾値以上である場合、故障メモリをマーキングし、クラッシュ確率が第2の閾値より小さい場合、故障メモリをマーキングして、ホストコンピュータの他の正常なメモリを引き続いて使用する。これにより、仮想マシンがクラッシュ故障の影響を受けることを回避し、ユーザの使用体験及びサービス品質を向上させる。
【0090】
上記実施例を実現するために、本出願は、メモリ故障処理装置を提供する。
【0091】
図4は、本出願の第4の実施例により提供されるメモリ故障処理装置の概略構造図である。
【0092】
図4に示すように、当該メモリ故障処理装置400は、第1の取得モジュール401、決定モジュール402及び処理モジュール403を含んでもよい。
【0093】
ここで、第1の取得モジュール401は、ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得するために用いられる。
【0094】
決定モジュール402は、前記故障パラメータに基づいて前記ホストコンピュータのクラッシュ確率を決定するために用いられる。
【0095】
処理モジュール403は、前記クラッシュ確率が予め設定された第1の閾値以上である場合、前記ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートするために用いられ、ここで、前記ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、前記第2の閾値は前記第1の閾値より小さい。
【0096】
図5は、本出願の第5の実施例により提供されるメモリ故障処理装置の概略構造図である。
【0097】
図5に示すように、図4に加え、終了モジュール404をさらに含む。
【0098】
ここで、終了モジュール404は、前記故障メモリで仮想マシンのプロセスが実行されている場合、前記仮想マシンのプロセスを終了するために用いられる。
【0099】
これにより、ホストコンピュータのメモリに故障が発生すると、故障メモリで作動している仮想マシンのプロセスを終了し、それにより、仮想マシンがクラッシュ故障の影響を受けることを防ぎ、ユーザの使用体験及びサービス品質を向上させる。
【0100】
本出願の実現可能な一形態において、図6に示すように、図4に加え、第2の取得モジュール405、書き込みモジュール406、第1の生成モジュール407、第3の取得モジュール408、読み取りモジュール409、第2の生成モジュール410及び比較決定モジュール411をさらに含む。
【0101】
ここで、第2の取得モジュール405は、カーネルシステムによって送信された第1の制御命令を取得するために用いられる。
【0102】
書き込みモジュール406は、前記第1の制御命令に基づいて、前記ホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むために用いられる。
【0103】
第1の生成モジュール407は、書き込まれた情報に基づいて、前記ターゲットメモリページのターゲット位置に対応する第1のコードを生成するために用いられる。
【0104】
第3の取得モジュール408は、前記カーネルシステムによって送信された第2の制御命令を取得するために用いられる。
【0105】
読み取りモジュール409は、前記第2の制御命令に基づいて、前記ターゲットメモリページの前記ターゲット位置から情報を読み取るために用いられる。
【0106】
第2の生成モジュール410は、読み取った情報に基づいて、前記ターゲットメモリページのターゲット位置に対応する第2のコードを生成するために用いられる。
【0107】
比較決定モジュール411は、前記第1のコードと前記第2のコードとを比較し、両者が一致しない場合、前記ターゲットメモリページに故障が発生したと決定するために用いられる。
【0108】
本出願の実現可能な一形態において、第1の取得モジュール401は、具体的には、予め設定されたアルゴリズムに基づいて前記第1のコードと前記第2のコードとを解析し、解析された第1のコードと第2のコードとの差分コードを取得し、前記差分コードに基づいて、前記ターゲットメモリページのターゲット位置に対応するエラービットを決定し、前記エラービットに基づいてエラーの総数及びエラービット同士の間の位置特徴を取得するために用いられる。
【0109】
本出願の実現可能な一形態において、決定モジュール402は、具体的には、予め訓練された確率分析モデルを取得し、前記故障パラメータを前記確率分析モデルに入力して処理し、前記ホストコンピュータのクラッシュ確率を取得するために用いられる。
【0110】
本出願の実現可能な一形態において、図7に示すように、図4に加え、さらに、第1のマーキングモジュール412、マイグレート決定モジュール413及び第2のマーキングモジュール414を含む。
【0111】
ここで、第1のマーキングモジュール412は、前記クラッシュ確率が前記第1の閾値より小さく、かつ、予め設定された第2の閾値以上である場合、ここで、前記第1の閾値は前記第2の閾値より大きく、前記故障メモリをマーキングして、前記ホストコンピュータの他の正常なメモリを引き続いて使用するために用いられる。
【0112】
マイグレート決定モジュール413は、前記クラッシュ確率及び前記ホストコンピュータ上のすべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定し、前記ターゲット仮想マシンをマイグレートするために用いられ、ここで、前記ターゲット仮想マシンの数は前記すべての仮想マシン数より少ない。
【0113】
第2のマーキングモジュール414は、前記クラッシュ確率が前記第2の閾値より小さい場合、ここで、前記第1の閾値は前記第2の閾値より大きく、前記故障メモリをマーキングして、前記ホストコンピュータの他の正常なメモリを引き続いて使用するために用いられる。
【0114】
本出願の実施例のメモリ故障処理装置は、ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得し、故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定し、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さい。これにより、ホストコンピュータのメモリに故障が発生すると、ホストコンピュータ上のすべての仮想マシンがサービスを全部停止するという問題を回避し、ホストコンピュータのクラッシュ確率が予め設定された閾値以上である場合、ホストコンピュータ上の仮想マシンを、クラッシュ確率がホストコンピュータより小さいターゲットホストコンピュータにマイグレートし、それにより、仮想マシンがクラッシュ故障の影響を受けることを防ぎ、ユーザの使用体験及びサービス品質を向上させる。
【0115】
本出願の実施例によれば、本出願は、電子機器及び読み取り可能な記憶媒体をさらに提供する。
【0116】
図8に示すように、本出願の実施例によるメモリ故障処理方法のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、他の類似するコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本出願の実現を制限することを意図したものではない。
【0117】
図8に示すように、当該電子機器は、1つ又は複数のプロセッサ801と、メモリ802と、高速インターフェース及び低速インターフェースを含む、各コンポーネントを接続するためのインターフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられるか、又は必要に応じて他の方式で取り付けることができる。プロセッサは、電子機器内で実行される命令を処理することができ、当該命令は、外部入力/出力装置(例えば、インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリ内又はメモリに記憶されている命令を含む。他の実施形態では、必要に応じて、複数のプロセッサ及び/又は複数のバスを、複数のメモリと一緒に使用することができる。同様に、複数の電子機器を接続することができ、各電子機器は、一部の必要な操作(例えば、サーバアレイ、1グループのブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。図8では、1つのプロセッサ801を例とする。
【0118】
メモリ802は、本出願により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。ここで、前記メモリには、前記少なくとも1つのプロセッサが本出願により提供されるメモリ故障処理方法を実行するように、少なくとも1つのプロセッサによって実行可能な命令が記憶される。本出願の非一時的なコンピュータ読み取り可能な記憶媒体には、コンピュータに本出願により提供されるメモリ故障処理方法を実行させるためのコンピュータ命令が記憶されている。
【0119】
メモリ802は、非一時的なコンピュータ読み取り可能な記憶媒体として、本出願の実施例におけるメモリ故障処理方法に対応するプログラム命令/モジュール(例えば、図4に示す第1の取得モジュール401、決定モジュール402及び処理モジュール403)のような、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶する。プロセッサ801は、メモリ802に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記方法の実施例におけるメモリ故障処理方法を実現する。
【0120】
メモリ802は、プログラムストレージエリアとデータストレージエリアとを含むことができ、ここで、プログラムストレージエリアは、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、データストレージエリアは、メモリ故障処理による電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリ802は、高速ランダムアクセスメモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリ802は、プロセッサ801に対して遠隔に設定されたメモリを選択的に含むことができ、これらの遠隔メモリは、ネットワークを介してメモリ故障処理による電子機器に接続されることができる。上記ネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定されない。
【0121】
メモリ故障処理方法の電子機器は、入力装置803と出力装置804とをさらに含んでもよい。プロセッサ801、メモリ802、入力装置803、及び出力装置804は、バス又は他の方式を介して接続することができ、図8では、バスを介して接続することを例とする。
【0122】
入力装置803は、入力された数字又は文字情報を受信し、メモリ故障処理の電子機器のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置804は、ディスプレイデバイス、補助照明装置(例えば、LED)、及び触覚フィードバックデバイス(例えば、振動モータ)などを含むことができる。当該ディスプレイデバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定されない。いくつかの実施形態で、ディスプレイデバイスは、タッチスクリーンであってもよい。
【0123】
本明細書で説明されるシステムと技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施され、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、専用又は汎用のプログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
【0124】
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含むことができ、高レベルのプロセス及び/又は対象指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することができる。本明細書で使用されるような、「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
【0125】
ユーザとのインタラクションを提供するために、ここで説明されているシステム及び技術をコンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形態のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形態(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
【0126】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータであり、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットとを含む。
【0127】
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般的に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、かつ互いにクライアント-サーバの関係を有するコンピュータプログラムによって、クライアントとサーバとの関係が生成される。
【0128】
本出願の実施例の技術案によれば、ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得し、故障パラメータに基づいてホストコンピュータのクラッシュ確率を決定し、クラッシュ確率が予め設定された第1の閾値以上である場合、ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートし、ここで、ターゲットホストコンピュータのクラッシュ確率は、予め設定された第2の閾値より小さく、第2の閾値は第1の閾値より小さい。これにより、ホストコンピュータのメモリに故障が発生すると、ホストコンピュータ上のすべての仮想マシンがサービスを全部停止するという問題を回避し、ホストコンピュータのクラッシュ確率が予め設定された閾値以上である場合、ホストコンピュータ上の仮想マシンを、クラッシュ確率がホストコンピュータより小さいターゲットホストコンピュータにマイグレートし、それにより、仮想マシンがクラッシュ故障の影響を受けることを防ぎ、ユーザの使用体験及びサービス品質を向上させる。
【0129】
上記に示される様々な形態のフローを使用して、ステップを並べ替え、追加、又は削除することができる。例えば、本出願に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本出願で開示されている技術案の所望の結果を実現することができれば、本明細書では限定されない。
【0130】
上記具体的な実施形態は、本出願の保護範囲を制限するものではない。当業者は、設計要件と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができる。本出願の精神と原則内で行われる任意の修正、同等の置換、及び改善などは、いずれも本出願の保護範囲内に含まれるべきである。
【0131】
(付記)
(付記1)
メモリ故障処理方法であって、
ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得するステップと、
前記故障パラメータに基づいて前記ホストコンピュータのクラッシュ確率を決定するステップと、
前記クラッシュ確率が予め設定された第1の閾値以上である場合、前記ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートするステップであって、前記ターゲットホストコンピュータの前記クラッシュ確率が、予め設定された第2の閾値より小さく、前記第2の閾値が前記第1の閾値より小さいステップと、を含む、
メモリ故障処理方法。
【0132】
(付記2)
前記故障メモリの前記故障パラメータを取得するステップの前に、
前記故障メモリで仮想マシンのプロセスが実行されている場合、前記仮想マシンのプロセスを終了するステップをさらに含む、
ことを特徴とする付記1に記載のメモリ故障処理方法。
【0133】
(付記3)
カーネルシステムによって送信された第1の制御命令を取得するステップと、
前記第1の制御命令に基づいて、前記ホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むステップと、
書き込まれた情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第1のコードを生成するステップと
前記カーネルシステムによって送信された第2の制御命令を取得するステップと、
前記第2の制御命令に基づいて、前記ターゲットメモリページの前記ターゲット位置から情報を読み取るステップと、
読み取った情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第2のコードを生成するステップと、
前記第1のコードと前記第2のコードとが異なる場合、前記ターゲットメモリページに故障が発生したと決定するステップと、をさらに含む、
ことを特徴とする付記1に記載のメモリ故障処理方法。
【0134】
(付記4)
前記故障メモリの前記故障パラメータを取得するステップは、
予め設定されたアルゴリズムに基づいて前記第1のコードと前記第2のコードとを解析し、解析された前記第1のコードと前記第2のコードとの差分コードを取得するステップと、
前記差分コードに基づいて、前記ターゲットメモリページの前記ターゲット位置に対応するエラービットを決定するステップと、
前記エラービットに基づいてエラーの総数及び前記エラービット同士の間の位置特徴を取得するステップと、を含む、
ことを特徴とする付記3に記載のメモリ故障処理方法。
【0135】
(付記5)
前記故障パラメータに基づいて前記ホストコンピュータの前記クラッシュ確率を決定するステップは、
予め訓練された確率分析モデルを取得するステップと、
前記故障パラメータを前記確率分析モデルに入力して処理し、前記ホストコンピュータの前記クラッシュ確率を取得するステップと、を含む、
ことを特徴とする付記1に記載のメモリ故障処理方法。
【0136】
(付記6)
前記故障パラメータに基づいて前記ホストコンピュータの前記クラッシュ確率を決定するステップの後、
前記クラッシュ確率が前記第1の閾値より小さく、かつ、前記第2の閾値以上である場合、前記故障メモリをマーキングするステップと、
前記クラッシュ確率及び前記ホストコンピュータ上の前記すべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定し、前記ターゲット仮想マシンをマイグレートするステップであって、前記ターゲット仮想マシンの数が前記すべての仮想マシン数より少ないステップと、をさらに含む、
ことを特徴とする付記1に記載のメモリ故障処理方法。
【0137】
(付記7)
前記故障パラメータに基づいて前記ホストコンピュータの前記クラッシュ確率を決定するステップの後、
前記クラッシュ確率が前記第2の閾値より小さい場合、前記故障メモリをマーキングするステップをさらに含む、
ことを特徴とする付記1に記載のメモリ故障処理方法。
【0138】
(付記8)
メモリ故障処理装置であって、
ホストコンピュータのメモリに故障が発生したことを検出すると、故障メモリの故障パラメータを取得するための第1の取得モジュールと、
前記故障パラメータに基づいて前記ホストコンピュータのクラッシュ確率を決定するための決定モジュールと、
前記クラッシュ確率が予め設定された第1の閾値以上である場合、前記ホストコンピュータ上のすべての仮想マシンをターゲットホストコンピュータにマイグレートするための処理モジュールであって、前記ターゲットホストコンピュータの前記クラッシュ確率が、予め設定された第2の閾値より小さく、前記第2の閾値が前記第1の閾値より小さい処理モジュールと、を含む、
メモリ故障処理装置。
【0139】
(付記9)
前記故障メモリで仮想マシンのプロセスが実行されている場合、前記仮想マシンのプロセスを終了するための終了モジュールをさらに含む、
ことを特徴とする付記8に記載のメモリ故障処理装置。
【0140】
(付記10)
カーネルシステムによって送信された第1の制御命令を取得するための第2の取得モジュールと、
前記第1の制御命令に基づいて、前記ホストコンピュータのターゲットメモリページのターゲット位置に情報を書き込むための書き込みモジュールと、
書き込まれた情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第1のコードを生成するための第1の生成モジュールと、
前記カーネルシステムによって送信された第2の制御命令を取得するための第3の取得モジュールと、
前記第2の制御命令に基づいて、前記ターゲットメモリページの前記ターゲット位置から情報を読み取るための読み取りモジュールと、
読み取った情報に基づいて、前記ターゲットメモリページの前記ターゲット位置に対応する第2のコードを生成するための第2の生成モジュールと、
前記第1のコードと前記第2のコードとが異なる場合、前記ターゲットメモリページに故障が発生したと決定するための比較決定モジュールと、をさらに含む、
ことを特徴とする付記8に記載のメモリ故障処理装置。
【0141】
(付記11)
前記第1の取得モジュールは、具体的には、
予め設定されたアルゴリズムに基づいて前記第1のコードと前記第2のコードとを解析し、解析された前記第1のコードと前記第2のコードとの差分コードを取得し、
前記差分コードに基づいて、前記ターゲットメモリページの前記ターゲット位置に対応するエラービットを決定し、
前記エラービットに基づいてエラーの総数及び前記エラービット同士の間の位置特徴を取得するために用いられる、
ことを特徴とする付記10に記載のメモリ故障処理装置。
【0142】
(付記12)
前記決定モジュールは、具体的には、
予め訓練された確率分析モデルを取得し、
前記故障パラメータを前記確率分析モデルに入力して処理し、前記ホストコンピュータの前記クラッシュ確率を取得するために用いられる、
ことを特徴とする付記8に記載のメモリ故障処理装置。
【0143】
(付記13)
前記クラッシュ確率が前記第1の閾値より小さく、かつ、前記第2の閾値以上である場合、前記故障メモリをマーキングするための第1のマーキングモジュールと、
前記クラッシュ確率及び前記ホストコンピュータ上の前記すべての仮想マシンの数に基づいて、ターゲット仮想マシンを決定し、前記ターゲット仮想マシンをマイグレートするためのマイグレート決定モジュールであって、前記ターゲット仮想マシンの数が前記すべての仮想マシン数より少ないマイグレート決定モジュールと、をさらに含む、
ことを特徴とする付記8に記載のメモリ故障処理装置。
【0144】
(付記14)
前記クラッシュ確率が前記第2の閾値より小さい場合、前記故障メモリをマーキングするための第2のマーキングモジュールをさらに含む、
ことを特徴とする付記8に記載のメモリ故障処理装置。
【0145】
(付記15)
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサが付記1~7のいずれか一つに記載のメモリ故障処理方法を実行できる、
ことを特徴とする電子機器。
【0146】
(付記16)
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ命令は、前記コンピュータに付記1~7のいずれか一つに記載のメモリ故障処理方法を実行させるために用いられる、
ことを特徴とする非一時的なコンピュータ読み取り可能な記憶媒体。
【0147】
(付記17)
コンピュータ上で動作しているときに、付記1~7のいずれか一つに記載のメモリ故障処理方法を前記コンピュータに実行させる、
ことを特徴とするコンピュータプログラム。
図1
図2
図3
図4
図5
図6
図7
図8