はじめに
NetApp StorageであるAFFやFASのOSであるONTAPには様々な機能がありますが、
この記事ではSecurityに関するDiskの初期化機能であるZeroingとSanitizeについて記載します。
操作や設定はCLIを用いて行います。
何をしたい?できる?
- ZeroingとSanitizeの違いを知る
- ONTAP9.4以降のZeroingを確認する
- ONTAP9からはデータ用DiskのSanitizeはONTAP上で実施できる事の確認
ファイルシステムとは
記憶装置に保存されたデータを管理し、操作するために必要なOSが提供する機能で、ファイルやファイル名、ディレクトリ構造といった概念を具現化しています。ファイルシステムには様々な種類があり、OSによって使用ファイルシステム(NTFSやXFS等)が異なります。
ONTAPのファイルシステムは、WAFL(Write Anywhere File Layout)と呼ばれてますが、実体としてはAggregateがそれにあたります。
参考までにWAFLの特徴としては、以下のような形となります。
- データはNVRAM(Non-Volatile RAM:バッテリー付き不揮発メモリ)に保管した後、ディスクに纏めて書き込む
- 管理情報であるinodeと実際のデータを同じ領域に書き込む
- データの更新時に、既存ブロックにデータを上書きせずに新規ブロックとして追記するジャーナル型ファイルシステムを採用
Zeroingについて
Aggregate削除後に利用されたDiskはZeroingする事で再利用可能となりますが、ONTAP9.3まではDisk全体に0が書き込まれてました。
- 過去にZeroingした際の実績では、SATA DiskのZeroingには数日かかっていた
(2TBで8時間位) - Zeroing済のSpare Diskを用意しておく事で、Aggreagate作成や拡張にかかる時間を回避
なお、ONTAP9.4からはFast Zeroingが実装されていますが、高速なZeroingが行われ、ほぼ瞬時にDiskを再利用することが可能となってます。
- Fast ZeroingではAggregateの作成時に64bitの固有のFZ(Fast Zeroing) Signatureを生成
- Diskの4KBブロックごとのチェックサムを持つがにFZ Signatureを格納する領域を追加
- データをreadする際、このFZ SingatureがAggregateのものとディスクのもので一致しているかチェック
- 一致していなければ未初期化のブロックであると判断しゼロブロックとして扱う
ZeroingではAggregateのFZ Signatureを新しく生成のみで、実際にはDiskへの書き込みは実施されませんので、データを確実に消去するにはsanitizeの実施が必要となります。
なお、ONTAP9.3以前からUpgradeして使い続けていてFast Zeroingが利用できないという場合において、事前にZeroingされていないDiskがあると色々不都合が発生するのではないか?と思われるかもしれませんが、Disk故障時におけるRAID再構築を開始する為に事前にSpareDiskはZeroingする必要はありません。
SpareDiskの事前Zeroingが必要なケースは、新しいAggregateを構築する場合か既存のAggregateのサイズを拡張する場合のみとなります。
Zeroingの実行手順
Aggregate削除後に利用されていたDisk状態
> storage disk show -disk 1.1.10 -fields zeroed
disk zeroed
------ ------
1.1.10 false
Zeroingの実行
> storage disk zerospares
Zeroing後のDisk状態
> storage disk show -disk 1.1.10 -fields zeroed
disk zeroed
------ ------
1.1.10 true
Sanitizeについて
Spare Diskに対して指定したバイトパターンまたはランダムデータでDiskを上書きし、データを物理的に消去するプロセスで、元のデータのリカバリが不可能になります。
制約は以下の通りです。
- ADP環境では、ADPの解除=システムの初期化が必要となる
- 極一部SSDではサポートされていない
- HAペアのTakeover中の操作はサポートされない
- 読み取り/書き込みの問題が原因で障害が発生したDiskでは実行できない
- ATAドライブでは、フォーマットフェーズは実行されない
- ランダムパターンを使用している場合、一度に 100 本を超えるDiskに対して実行することはできない
- アレイ LUN ではサポートされない
NIST SP 800-88r1ガイドラインに従って物理メディア上のデータを削除
暗号化されたDiskを持たないONTAPでは、3サイクルの上書きパターンを連続して適用します。
これは米国国防総省(DoD)がHDDメディア(SAS/SATA/NL-SAS)に対して国家産業安全保障プログラム運用マニュアル(DoD 5220.22-M)で定めた規格に準拠しています。
暗号化Diskを活用するONTAPの場合、「暗号化DiskのSanitize」を使用してSEDを暗号的にサニタイズし、既存のデータを取り出すことを不可能にし、NIST 800-88パージ標準に準拠しています。
Sanitizeの実行手順
操作は基本的にnode shell上で行います
node shellに移動し、Sanitizeの有効化 (HA構成だと各コントローラでそれぞれ実施)
::> system node run -node <コントローラ名>
::> options licensed_feature.disk_sanitization.enable on
You will not be able to disable this feature, are you sure you
wish to continue? [no] <==yesを入力
Sanitizeの実行
> disk sanitize start 0a.01.11
WARNING: Disk sanitization will remove all data from the selected disks and cannot be recovered.
Do you want to continue (y/n)? <==yを入力
WARNING: The sanitization process might include a disk format.
If the system is power-cycled or rebooted during a disk format,
the disk might become unreadable. The process will attempt to
restart the format after 10 minutes.
The time required for the sanitization process might be significant,
depending on the size of the disk and the number of patterns and
cycles specified.
Do you want to continue (y/n)? <==yを入力
The disk sanitization process has been initiated. When it is complete, the system's event log will be updated.
Sanitizeの進捗確認
(4TBのSATA Diskに実施して30分位待った値)
> disk sanitize status
Sanitization for 0a.01.11 is 3% complete.