Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

30.4.2. VDO 書き込みモードの選択

VDO は、3 つの書き込みモード、syncasync、および auto に対応します
  • VDO が sync モードの場合、その上の層は、書き込みコマンドがデータを永続ストレージに書き込むことを想定します。したがって、ファイルシステムやアプリケーションには必要ありません。たとえば、FLUSH リクエストまたは Force Unit Access(FUA)要求を発行して、重要な段階でデータが持続させることができます。
    VDO は、書き込みコマンドが完了したときに、基となるストレージが、データが永続ストレージに書き込まれることを保証する場合に限り、sync モードに設定する必要があります。つまり、ストレージには揮発性の書き込みキャッシュがないか、またはライトスルーキャッシュが存在する必要があります。
  • VDO が async モードの場合、書き込みコマンドの確認時に、データは永続ストレージに書き込まれる保証されません。ファイルシステムまたはアプリケーションは、各トランザクションの重要な点でデータの永続性を保証するために、FLUSH リクエストまたは FUA リクエストを発行する必要があります。
    書き込みコマンドが完了したときに、基となるストレージが永続ストレージに対するデータの書き込みを保証しない場合は、VDO を async モードに設定する必要があります。これは、ストレージに揮発性のあるライトバックキャッシュがある場合です。
    デバイスが揮発性キャッシュを使用するかどうかを確認する方法は、「揮発性キャッシュの確認」 を参照してください。
    警告
    VDO が async モードで稼働している場合は、Atomicity、Consistency、Isolation、Durability (ACID) に準拠しません。VDO ボリュームに関する ACID コンプライアンスを想定するアプリケーションまたはファイルシステムがある場合は、async モードにより予想外のデータ損失が生じる可能性があります。
  • auto モードは、各デバイスの性質に基づいて、sync または async を自動的に選択します。以下はデフォルトのオプションになります。
書き込みポリシーの動作に関する詳細な説明は、「VDO 書き込みポリシーの概要」 を参照してください。
書き込みポリシーを設定するには 、--writePolicy オプションを使用します。「VDO ボリュームの作成」 にあるように VDO ボリュームを作成する場合、または changeWritePolicy サブコマンドで既存の VDO ボリュームを変更する場合は、このオプションを指定することができます。
# vdo changeWritePolicy --writePolicy=sync|async|auto --name=vdo_name
重要
誤った書き込みポリシーを使用すると、電源の損失時にデータが失われることがあります。

揮発性キャッシュの確認

デバイスにライトバックキャッシュがあるかどうかを確認するには、/sys/block/block_device /device/scsi_disk/identifier/cache_type sysfs ファイルを読み取ります。以下に例を示します。
  • デバイス sda は、ライトバック キャッシュがある ことを示します。
    $ cat '/sys/block/sda/device/scsi_disk/7:0:0:0/cache_type'
    
    write back
    
  • デバイス sdb は、ライトバック キャッシュがないことを示します。
    $ cat '/sys/block/sdb/device/scsi_disk/1:2:0:0/cache_type'
    
    None
    
さらに、カーネルのブートログでは、上記のデバイスに書き込みキャッシュがあるかどうかを確認することができます。
sd 7:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:2:0:0: [sdb] Write cache: disabled, read cache: disabled, supports DPO and FUA
システムログの読み取りに関する詳細は、『『システム管理者のガイド』』の「Viewing and Managing Log Files」の章を参照してください。
この例では、VDO に以下の書き込みポリシーを使用します。
  • sda デバイスの async モード
  • sdb デバイスの 同期モード
注記
cache_type の値が none または write through である場合は、sync 書き込みポリシーを使用するように VDO を設定する必要があります。