現在位置: ホーム / Oracle Ch. / 世界標準のデータ保護規約(T10 DIF)と、それに関してのOracle Linuxとしての取り組み

世界標準のデータ保護規約(T10 DIF)と、それに関してのOracle Linuxとしての取り組み

今回は、世界標準のデータ保護規約(T10 DIF)と、それに関してのOracle Linuxとしての取り組みを紹介します。

T10DIFとは

情報技術規格国際委員会(International Committee for Information Technology Standards: INCITS)では、情報技術に関する様々な標準化を行っています。

  • 技術委員会 T10 -- SCSI
  • 技術委員会 T11 (X3T9.3) -- Fibre Channel
  • 技術委員会 T13 -- ATA

 

このT10(SCSI)の中でデータ保護技術に関しての保護情報基準(T10-PI基準: 現在はT10-DIFと呼ばれている)が策定されています。

このT10-DIFはホストベースアダプタ(HBA)からストレージデバイスまでのデータの一貫性保証を実現します。このT10-DIFをOSレベルまで拡張したものがDIXになります。

T10DIFの概要

T10DIFでは、HBAがデータに対して512バイトごとに8バイトの保護情報(Data IntegrityField: DIF)を付加します。

HBAから先のSAN Switch, Disk Array, Disk Driveは、それぞれこの保護情報を確認します。

  1. I/O Controllerは520byte sector(512byte+8byte DIF(PI))のデータをSANに送ります。
  2. SAN Switchは必要に応じて8byteのDIF(PI)を確認します。
  3. Disk Arrayは8byteのDIF(PI)を確認します。
  4. Disk Driveは書き込み前に8byteのDIF(PI)を確認します。

 

それぞれの箇所でDIF(PI)の検証で問題があった場合にはエラー情報が生成され、SCSIエラーとなってOS側に通知されます。

T10DIX

T10DIFをOS部分まで拡張したT10DIXでは、アプリケーションから出力されたデータがディスクに書き込まれる際に(必要に応じて)8byteのDIF(PI)を生成します。この情報がアプリケーション側で生成されていない場合には、OS(Kernel)の方で自動的にDIF(PI)を生成し、書き込みデータ(512byte)とセットでHBAに渡します。以降は、T10DIFの時と動きは同じになります。

このように、アプリケーションレベルからのT10DIXとT10DIFを組み合わせることにより、アプリケーションからディスクまでのデータの一貫性を保つことができます。

Oracleの対応

Oracleのような巨大なファイルを複数書き込み・更新しなくてはならないアプリケーションでは、ディスクへの書き込み時にデータが変質してしまうとDBの運用に深刻な障害が発生してしまうため、このようなアプリケーションからディスクまでのデータの一貫性・整合性を保つ仕組みは非常に重要になります。

 そのため、OracleではEmulex社など様々なHBAベンダやEMC,富士通などのストレージベンダと協力し、T10DIF/DIXを使用できるような仕組みを作ることに力を入れてきました。

T10DIF/DIXの使用方法

Oracle LinuxではUEKを使用することにより、T10DIX機能をサポートすることができます。

また、各ハード(HBA・SANスイッチ・ディスクアレイ)でT10DIF対応の機器を選択することにより、アプリケーションのレイヤからT10DIF/DIXの仕組みを使うことができます。詳しくは、各ハードウェアベンダにお問い合わせください。

また国内では、富士通からは
http://storage-system.fujitsu.com/jp/partners/oracle/download/dx_s3_Oracle_Linux_T10_PI_Q.pdf

のような、T10DIF/DIX対応のホワイトペーパーが出ています。