JP2008217077A - ディスクアレイ装置、ディスクアレイコントローラ及びプログラム - Google Patents
ディスクアレイ装置、ディスクアレイコントローラ及びプログラム Download PDFInfo
- Publication number
- JP2008217077A JP2008217077A JP2007049528A JP2007049528A JP2008217077A JP 2008217077 A JP2008217077 A JP 2008217077A JP 2007049528 A JP2007049528 A JP 2007049528A JP 2007049528 A JP2007049528 A JP 2007049528A JP 2008217077 A JP2008217077 A JP 2008217077A
- Authority
- JP
- Japan
- Prior art keywords
- hard disk
- physical address
- data
- read
- disk array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】ハードディスクドライブの縮退を防ぎ、高信頼性のディスクアレイ装置を実現すること。
【解決手段】ディスクアレイコントローラ10に複数台のハードディスクドライブ21〜26がRAID構成で接続されたディスクアレイ装置1であって、ディスクアレイコントローラ10は、各ハードディスクドライブ21〜26における磁気ディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御する。
【選択図】図1
【解決手段】ディスクアレイコントローラ10に複数台のハードディスクドライブ21〜26がRAID構成で接続されたディスクアレイ装置1であって、ディスクアレイコントローラ10は、各ハードディスクドライブ21〜26における磁気ディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御する。
【選択図】図1
Description
本発明は、1台のディスクアレイコントローラに複数台のハードディスクドライブがRAID構成で接続されたディスクアレイ装置、ディスクアレイコントローラ及びプログラムに関する。
近年、OA機器で処理する情報の高度化、大容量化に伴い、高速、小型、大容量のハードディスクドライブの需要が急増している。従来のハードディスクドライブにおいては、構造上、時間とともに故障する確率が上がるほか、様々な要因で突発的に故障することがあり、貴重なデータを失うリスクが常にある。これらの問題を回避する手段として、1つのディスクアレイコントローラに複数のハードディスクドライブがRAID(redundant array of inexpensive disks)構成で接続されたディスクアレイ装置がある。
ところで、ハードディスクドライブの記録媒体である磁気ディスクは、ディスク面が同心円状のトラックに分割されており、各トラックには円周方向に等分した複数のセクタが設定されている。ハードディスクドライブは、ディスクアレイコントローラからコマンドを受け取ると、指定されたアドレスのセクタを含むトラックに磁気ヘッドを位置づける。データを書き込む際は、磁気ヘッド内のライト素子部で磁束を制御することにより、指定されたアドレスのセクタを含むトラックの磁性体の磁化状態を電気的に変化させることで、データの書き込みを行う。
ハードディスクドライブの大容量化に伴い、トラック幅が狭くなり、磁気ヘッドのライト素子部の幅との差が無くなってきており、ライト素子部からの漏洩磁束により、書き込みが行われた書込トラックと隣接した隣接トラックのデータを破壊してしまうというおそれがある。このようなハードディスクドライブを有するディスクアレイ装置では、あるハードディスクドライブにおける磁気ディスクのある物理アドレスへのデータの書き込みを行ったときに、隣り合った物理アドレスのデータの読み出しを行っていなかった。ある物理アドレスへのデータの書き込みの際に隣り合った物理アドレスのデータが漏洩磁束により破壊された場合、隣り合った物理アドレスへのデータの読み出し時にエラーとなったときに、隣り合った物理アドレスのデータが破壊されていることが判明していた。隣り合った物理アドレスへのデータの読み出しがエラーとなると、ディスクアレイコントローラは、隣り合った物理アドレスのデータの再読み出しを実施したり、再書き込みのリトライ動作を実施して、隣り合った物理アドレスのデータの復旧を行っていた。データが復旧せずにエラーが多発すると、ディスクアレイコントローラは、該当するハードディスクドライブを切り離し、残りのハードディスクドライブのみを使用する縮退状態にしていた。そのため、従来のディスクアレイ装置において、漏洩磁束によるデータ破壊が頻繁に起こると、使用できるハードディスクドライブの縮退が早まるおそれがある。
なお、隣り合った物理アドレスのデータ破壊を防止する技術として、複数の隣接するデータ・トラックに対して1本おきに使用を禁止するデータ・トラックを設定してオルタネート・ゾーンを形成し、更新頻度の高いデータと更新頻度の低いデータをオルタネート・ゾーンに記録し、更新頻度の高いデータを記録するデータ・トラックと更新頻度の低いデータを記録するデータ・トラックは、1本のシリンダ分だけ間隔をあけた磁気ディスク装置(ハードディスクドライブ)が開示されているが(特許文献1参照)、オルタネート・ゾーン以外の一般ゾーンのデータが漏洩磁束により破壊されてしまうと、データを補償することができなくなってしまう。そのため、このような磁気ディスク装置をディスクアレイ装置に採用すると、ハードディスクドライブの縮退を防止することができないおそれがある。
本発明の主な課題は、ハードディスクドライブの縮退を防ぎ、高信頼性のディスクアレイ装置を実現することである。
本発明の第1の視点においては、ディスクアレイコントローラに複数台のハードディスクドライブがRAID構成で接続されたディスクアレイ装置であって、前記ディスクアレイコントローラは、各前記ハードディスクドライブにおけるディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御することを特徴とする。
本発明の前記ディスクアレイ装置において、前記ディスクアレイコントローラは、各前記ハードディスクドライブの組み込みの際、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを読み出し、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを変換可能に構成した変換テーブルを生成し、その後、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定し、前記ディスクアレイコントローラは、データの書き込み及び読み込みの際、前記変換テーブル及び前記設定に基づいて、データの書き込み及び読み込みを制御することが好ましい。
本発明の第2の視点においては、複数台のハードディスクドライブがRAID構成で接続可能なディスクアレイコントローラであって、各前記ハードディスクドライブにおけるディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御することを特徴とする。
本発明の前記ディスクアレイコントローラにおいて、各前記ハードディスクドライブの組み込みの際、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを読み出し、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを変換可能に構成した変換テーブルを生成し、その後、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定し、データの書き込み及び読み込みの際、前記変換テーブル及び前記設定に基づいて、データの書き込み及び読み込みを制御することが好ましい。
本発明の第3の視点においては、複数台のハードディスクドライブがRAID構成で接続可能なディスクアレイコントローラにおいて用いられるプログラムであって、各前記ハードディスクドライブにおけるディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御するステップを実行させることを特徴とする。
本発明の前記プログラムにおいて、各前記ハードディスクドライブの組み込みの際、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを読み出し、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを変換可能に構成した変換テーブルを生成し、その後、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定するステップと、データの書き込み及び読み込みの際、前記変換テーブル及び前記設定に基づいて、データの書き込み及び読み込みを制御するステップと、を実行させることが好ましい。
本発明によれば、物理アドレスの一つ置きにデータの書き込み及び読み込みが行われるので、ハードディスクドライブにおけるディスクの論理アドレスへのデータの書き込み後に、書き込んだ物理アドレスの隣り合った物理アドレスが漏洩磁束の影響を受けても何ら問題がなく、データが補償される。言いかえると、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスを使用しない管理をすることにより、隣り合った物理アドレスにアクセスしなくなるため、エラーが発生することがなく、ハードディスクドライブの縮退を防ぎ、高信頼性のディスクアレイを実現する。
(実施形態1)
本発明の実施形態1に係るディスクアレイ装置について図面を用いて説明する。図1は、本発明の実施形態1に係るディスクアレイ装置の構成を模式的に示したブロック図である。図2は、本発明の実施形態1に係るディスクアレイ装置におけるハードディスクドライブの論理アドレスと物理アドレスの変換テーブル及び書き込み及び読み込み設定を示した模式図である。
本発明の実施形態1に係るディスクアレイ装置について図面を用いて説明する。図1は、本発明の実施形態1に係るディスクアレイ装置の構成を模式的に示したブロック図である。図2は、本発明の実施形態1に係るディスクアレイ装置におけるハードディスクドライブの論理アドレスと物理アドレスの変換テーブル及び書き込み及び読み込み設定を示した模式図である。
ディスクアレイ装置1は、1台のディスクアレイコントローラ10に複数台のハードディスクドライブ21〜26がRAID構成で接続された記憶装置である。ディスクアレイ装置1は、外部(例えば、ホストコンピュータ)からの読み出し要求に応じて、ディスクアレイコントローラ10の制御により、対応するデータをハードディスクドライブ21〜26から読み出し、読み出したデータを外部に送信する。ディスクアレイ装置1は、外部からの書き込み要求に応じて、ディスクアレイコントローラ10の制御により、書き込み要求に含まれるデータをハードディスクドライブ21〜26に書き込む。
ディスクアレイコントローラ10は、ハードディスクドライブ21〜26に対するデータの読み書きを制御する制御装置である。ディスクアレイコントローラ10は、コンピュータ機能を有し、所定のプログラムに基づいて、所定の情報処理を行う。ディスクアレイコントローラ10は、外部(例えば、ホストコンピュータ)から与えられるデータの入出力要求に応答して、対応するハードディスクドライブ21〜26を制御することにより、入出力要求が読み出し要求である場合に指定されたデータを読み出して外部に送信し、入出力要求が書込み要求である場合に当該書込み要求と共に与えられるデータをハードディスクドライブ21〜26内のハードディスクに書き込む。
ディスクアレイコントローラ10は、ハードディスクドライブ21〜26の組み込みの際、ハードディスクドライブ21〜26における全ての磁気ディスクの論理アドレスと物理アドレスを読み出し、ハードディスクドライブ21〜26における全てのディスクの論理アドレスと物理アドレスを変換可能に構成した変換テーブル11を生成し、記憶する。ディスクアレイコントローラ10は、ハードディスクドライブ21〜26の書き込み時の漏洩磁束により破壊されうるアドレスのデータの書き込み及び読み出し動作を行わないように、変換テーブル11に基づいて、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定する。
変換テーブル11は、各ハードディスクドライブ21〜26における磁気ディスクの円周方向に配列した論理アドレス401〜412と、磁気ディスクの径方向に配列した物理アドレス501〜504と、の相関関係を各ハードディスクドライブ21〜26ごとに示したテーブルである。
ハードディスクドライブ21〜26は、磁性体を塗布した磁気ディスクに磁気ヘッドを用いてデータを書き込み、また読み出す記憶装置である。磁気ディスクは、ディスク面が同心円状の物理位置(トラック)に分割されており、各物理位置には円周方向に等分した複数の論理位置(セクタ)が設定されている。ハードディスクドライブ21〜26は、ディスクアレイコントローラ10からコマンドを受け取ると、指定されたアドレスの論理位置を含む物理位置に磁気ヘッドを位置づける。データを書き込む際は、磁気ヘッド内のライト素子部で磁束を制御することにより、指定されたアドレスの論理位置を含む物理位置の磁性体の磁化状態を電気的に変化させることで、データの書き込みを行う。
次に、本発明のディスクアレイ装置の動作について説明する。
まず、ディスクアレイコントローラ10は、RAID構成を構築する前に、ハードディスクドライブ21〜26にRECEIVE DIAGNOSTIC コマンド(SEND DIAGNOSTICコマンドの結果の要求)を送信することで、ハードディスクドライブ21〜26の全ての論理アドレスと物理アドレスをハードディスクドライブ21〜26から読み出し、全てのハードディスクドライブ21〜26の論理アドレスと物理アドレスを変換可能に構成した変換テーブル11へ生成し、記憶する。
次に、ディスクアレイコントローラ10は、ハードディスクドライブ21〜26の書き込み時の漏洩磁束により破壊されうるアドレスのデータの書き込み及び読み出し動作を行わないように、変換テーブル11に基づいて、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み又は読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定する。例えば、変換テーブル11において、図2のように論理アドレス401〜412が物理位置501〜504の位置関係になった場合、物理アドレス501と503にある論理アドレス401〜403と407〜409にデータの書き込み及び読み込みを可能に設定し、物理アドレス502と504にある論理アドレス404〜406と410〜412にデータの書き込み及び読み込みを禁止するように設定する。
その後、ディスクアレイコントローラ10は、変換テーブル11、書き込み及び読み込み設定に基づいて、書き込み及び読み込み動作を行うことになる。
実施形態1によれば、物理アドレスの一つ置きにデータの書き込み及び読み込みが行われるので、ハードディスクドライブ21〜26における磁気ディスクの論理アドレスへのデータの書き込み後に、書き込んだ物理アドレスの隣り合った物理アドレスが漏洩磁束の影響を受けても何ら問題がなく、データが補償される。言いかえると、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスを使用しない管理をすることにより、隣り合った物理アドレスにアクセスしなくなるため、エラーが発生することがなく、ハードディスクドライブの縮退を防ぎ、高信頼性のディスクアレイを実現する。
1 ディスクアレイ装置
10 ディスクアレイコントローラ
11 変換テーブル
21〜26 ハードディスクドライブ
401〜412 論理アドレス
501〜504 物理アドレス
10 ディスクアレイコントローラ
11 変換テーブル
21〜26 ハードディスクドライブ
401〜412 論理アドレス
501〜504 物理アドレス
Claims (6)
- ディスクアレイコントローラに複数台のハードディスクドライブがRAID構成で接続されたディスクアレイ装置であって、
前記ディスクアレイコントローラは、各前記ハードディスクドライブにおけるディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御することを特徴とするディスクアレイ装置。 - 前記ディスクアレイコントローラは、各前記ハードディスクドライブの組み込みの際、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを読み出し、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを変換可能に構成した変換テーブルを生成し、その後、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定し、
前記ディスクアレイコントローラは、データの書き込み及び読み込みの際、前記変換テーブル及び前記設定に基づいて、データの書き込み及び読み込みを制御することを特徴とする請求項1記載のディスクアレイ装置。 - 複数台のハードディスクドライブがRAID構成で接続可能なディスクアレイコントローラであって、
各前記ハードディスクドライブにおけるディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御することを特徴とするディスクアレイコントローラ。 - 各前記ハードディスクドライブの組み込みの際、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを読み出し、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを変換可能に構成した変換テーブルを生成し、その後、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定し、
データの書き込み及び読み込みの際、前記変換テーブル及び前記設定に基づいて、データの書き込み及び読み込みを制御することを特徴とする請求項3記載のディスクアレイコントローラ。 - 複数台のハードディスクドライブがRAID構成で接続可能なディスクアレイコントローラにおいて用いられるプログラムであって、
各前記ハードディスクドライブにおけるディスクの物理アドレスの一つ置きにデータの書き込み及び読み込みを行い、書き込み及び読み込みが行われる前記物理アドレスに隣り合った物理アドレスを使用しないように制御するステップを実行させることを特徴とするプログラム。 - 各前記ハードディスクドライブの組み込みの際、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを読み出し、前記ハードディスクドライブにおける全てのディスクの論理アドレスと物理アドレスを変換可能に構成した変換テーブルを生成し、その後、物理アドレスの一つ置きにデータの書き込み及び読み込みを可能に設定し、書き込み及び読み込みが行われる物理アドレスに隣り合った物理アドレスの使用を禁止するように設定するステップと、
データの書き込み及び読み込みの際、前記変換テーブル及び前記設定に基づいて、データの書き込み及び読み込みを制御するステップと、
を実行させることを特徴とする請求項5記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007049528A JP2008217077A (ja) | 2007-02-28 | 2007-02-28 | ディスクアレイ装置、ディスクアレイコントローラ及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007049528A JP2008217077A (ja) | 2007-02-28 | 2007-02-28 | ディスクアレイ装置、ディスクアレイコントローラ及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008217077A true JP2008217077A (ja) | 2008-09-18 |
Family
ID=39837090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007049528A Pending JP2008217077A (ja) | 2007-02-28 | 2007-02-28 | ディスクアレイ装置、ディスクアレイコントローラ及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008217077A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0935457A (ja) * | 1995-07-18 | 1997-02-07 | Sony Corp | ディスク状記録媒体の記録方法及びその装置、ディスク状記録媒体の再生方法及びその装置並びにディスク状記録媒体 |
JP2003256247A (ja) * | 2002-02-28 | 2003-09-10 | Hitachi Ltd | 記憶システム |
JP2004086721A (ja) * | 2002-08-28 | 2004-03-18 | Nec Corp | データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム |
JP2004273060A (ja) * | 2003-03-11 | 2004-09-30 | Hitachi Ltd | 磁気ディスク装置 |
JP2006179102A (ja) * | 2004-12-22 | 2006-07-06 | Hitachi Global Storage Technologies Netherlands Bv | 磁気ディスク装置及データの記録方法 |
-
2007
- 2007-02-28 JP JP2007049528A patent/JP2008217077A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0935457A (ja) * | 1995-07-18 | 1997-02-07 | Sony Corp | ディスク状記録媒体の記録方法及びその装置、ディスク状記録媒体の再生方法及びその装置並びにディスク状記録媒体 |
JP2003256247A (ja) * | 2002-02-28 | 2003-09-10 | Hitachi Ltd | 記憶システム |
JP2004086721A (ja) * | 2002-08-28 | 2004-03-18 | Nec Corp | データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム |
JP2004273060A (ja) * | 2003-03-11 | 2004-09-30 | Hitachi Ltd | 磁気ディスク装置 |
JP2006179102A (ja) * | 2004-12-22 | 2006-07-06 | Hitachi Global Storage Technologies Netherlands Bv | 磁気ディスク装置及データの記録方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7423828B2 (en) | Off-track write error recovery | |
JP3219988B2 (ja) | セキュリティ機能を有するディスク装置及び同装置におけるパスワード管理方法 | |
KR100336812B1 (ko) | 디스크 드라이브 장치, 디스크 드라이브 장치의 에러 회복 처리 방법 및 디스크 드라이브 제어 장치 | |
JP2008010113A (ja) | 磁気ディスク制御装置、磁気ディスク装置および読取り障害修復方法 | |
JP4158717B2 (ja) | データ記録再生装置、データ記録再生方法、プログラム、記録媒体 | |
JP2005235218A (ja) | ハードディスクドライブ,ハードディスクドライブの分割方法,記憶媒体,セクションの設定方法,セクションの選択方法,およびファイルのアクセス方法 | |
JP2004103223A (ja) | ハードディスクドライブにデータを記録する方法及びその制御装置 | |
JP2006350898A (ja) | 記憶装置 | |
US7805659B2 (en) | Method and data storage devices for a RAID system | |
JP4959630B2 (ja) | データ記憶装置 | |
US20100149681A1 (en) | Recording method and storage device | |
JP2007280595A (ja) | リトライモードでの磁気ヘッドの飛行高さの制御装置、制御方法、記録媒体及びディスクドライブ | |
JP2007242157A (ja) | 情報記憶装置、および書込制御回路 | |
US10079038B2 (en) | Optical disc device and optical disc reading method | |
JP5621801B2 (ja) | 磁気ディスク制御装置、磁気ディスク装置および磁気ディスク制御方法 | |
JP2008217077A (ja) | ディスクアレイ装置、ディスクアレイコントローラ及びプログラム | |
JP4296211B2 (ja) | ハードディスク装置、ディスク装置用制御ユニット、及びディスク装置の制御方法 | |
US20240087598A1 (en) | Fast partial erasure for drive sanitization | |
JP2008217076A (ja) | ディスクアレイ装置、ディスクアレイコントローラ及びプログラム | |
JP2009217890A (ja) | ディスクアレイ装置およびディスクアレイ装置の記録制御方法 | |
JP4082308B2 (ja) | データ記録再生装置、データ記録再生方法、プログラム、記録媒体 | |
US9053746B2 (en) | Disk device and data recording method | |
JP2010176752A (ja) | 記憶装置の寿命検出方法 | |
JP2020038740A (ja) | 磁気ディスク装置および制御方法 | |
JP4598417B2 (ja) | データ記録再生装置、データ記録再生方法、プログラム、記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101108 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110104 |