技術情報
とよぢぃのねっとあっぷ四方山話 第9回

DISのとよぢぃと申します。
『ねっとあっぷ四方山話・ネットアップの技術紹介(2)』をお届けします。
前回のコラム・ネットアップ史の後半の中でADP(Advanced Drive Partitioning)については別途ご紹介とさせていただいていたので今回は技術紹介の2回目としてADPについてご紹介しておきます。
ADPは上にも書いた通りAdvanced Drive Partitioningの略です。HDDやSSDをうまいこと分割(Partitioning)して効率的に利用できるようにしましょう、という仕組みで、ONTAP 8.3で最初に実装された機能です。ADPと言う仕組みが実装されたのには主に2つのことが背景としてあったと考えられます。
-
クラスタ化したONTAP(ONTAP 8.3で7-Modeは廃止)ではOSを格納するための専用のボリューム(Rootボリュームと言います)とそのボリュームを格納するための専用のアグリゲート(Rootアグリゲート)が必要
-
アグリゲートという物理的な器を構成するためのHDDやSSDの1台当たりの容量がどんどん大きくなってきた
実はこのふたつのポイントには関連性があって、そこに大きな問題が生じたためにADPという仕組みが生まれたと言えます。
ADPの話しに入る前にアグリゲートとかボリュームについて少し説明しておきましょう。
まず、RAIDグループからです。RAIDグループはドライブの集まりで、AFF/FASではRAID-4、RAID-DP、RAID-TECという3つのRAIDタイプをサポートしています。いずれもパリティと言う仕組みでデータを保護するもので、そのパリティ用のドライブの台数がRAIDグループあたりRAID-4では1台、RAID-DPでは2台、RAID-TECでは3台と言う風になっています。パリティドライブの台数が多い方がより高いデータ保護レベルの提供が可能になります。ちなみに、通常構成のデフォルトはRAID-DP、10TB以上のNL-SAS構成ではRAID-TECが必須。RAID-4はほぼほぼ使われない、と言うのが現状です。なお、RAIDやパリティについては2025/7/4の四方山話「RAIDについて」を見てみてください。少し詳しく説明してますので。
次に、アグリゲートです。アグリゲートは1つ以上のRAIDグループの集まりです。ネットアップのRAIDは他社のストレージ製品のパリティ保護RAIDと比べると非常に柔軟性が高いのですが、さすがにRAIDグループサイズ(データドライブとパリティドライブの合計台数)の上限はドライブのタイプ(SSDとかNL-SASとか)とRAIDタイプで決まっています。1つのRAIDグループで1つのアグルゲートと言う構成が一番多いパターンだとは思いますが、大規模なシステムだと5つとか6つとかのRAIDグループで1つの大きなアグリゲートを構成するようなケースもあります。アグリゲートまでがドライブサイズに縛られている物理的な世界と言えます。図にするとこんな感じです。


そして、ボリューム。ボリュームはユーザデータ(ファイル)を格納するための論理的な器で、アグリゲート上(と言うか、アグリゲート内)に作られるものです。
論理的というのは物理的なドライブサイズに縛られないという意味で、実際のドライブサイズよりも小さなボリューム(最小20MB)を作ることもできますし、俗にいうシンプロビジョニング(Thin-Provisioning)にも対応しているのでアグリゲートのサイズよりも大きなボリュームを作ることもできたりします。一つのアグリゲートに対して複数のボリュームを作ることもできます。
ということで、ADPの話しに戻りましょう。
まず、これはHWU(Hardware Universe)で確認できますが、現在のAFF/FASはすべてのモデルでRootボリュームは150GiBが最小で、それを格納するためのRootアグリゲートは191,488MiB(=187GiB)が最小となっています。もちろんRootボリュームやRootアグリゲートがこれよりも大きい分には特に問題はないのですが、どちらもOS専用の領域であり、Rootアグリゲート内にはユーザデータを格納するためのボリュームは作れませんし、Rootボリューム内にはユーザデータを格納することができないんですね。なので、大きすぎる部分は単にムダに容量を消費しているということになります、さて、これでなんとなくADPの必要性に気付かれた方もいらっしゃるのではないでしょうか。昔のように1台当たりの容量が数百GB程度のHDDやSSDがあった時代ならまだしも、現在ネットアップで使用できる一番小さいHDDは1200GBのSASドライブです。SSDは960GB(このSSDは一瞬販売終了になりかけましたが、販売終了時期が1年ほど延期されました)とか1920GBです。大きいものではNL-SASがディスク1台で24TBとか、AFF Cシリーズで使うCapacity Flash
(QLC SSD)ではSSD 1台で61.4TBもあります。200GBにも満たないアグリゲートを構成するのにこんなに大きなサイズのドライブを3台も4台も使うわけにはいかないんですね。あまりにもムダが大きすぎます。それにサイズの大きいHDDやSSDは当然お値段も高いわけで、コスト的にも大きなムダ使いになるわけです。
以上で何が問題かはわかっていただけたかと思います。ただ言葉だけではわかりにくいでしょうから、具体的な例に図を交えてADPについてご紹介したいと思います。
ここからは、FAS2750に1.8TB SASディスクを24台搭載したシステムを例に説明していこうと思います。FAS2750のフロントベゼルをはずすとこんな風に24台のディスクが搭載されている(搭載できる)ことがわかります。

さて、ここでもしADPがない(ADPを適用しない)とすると、それぞれのドライブを以下のように割り当ることになります。もちろん、割り当て方はこれ一通りと言うわけではありません。ネットアップはRAID構成の柔軟性が非常に高いのでいろいろなパターンが可能ですが、ここではシンプルに片方のコントローラ(#1)だけにユーザデータを置くことを前提とすることにします。

とりあえずどちらのコントローラともRootアグリゲートは3台のディスク(データディスク1台とパリティディスク2台)でRAID-DP構成、ホットスペア用のディスクはそれぞれ1台とします(これを「1D+2P+1S」みたいに書いたりします)。これで2つのコントローラ合わせて8台のディスクが使用されることになります。残りの16台のディスクをすべてコントローラ#1に割り当ててユーザデータを格納するためのアグリゲートをRAID-DPで構成することにします。RAID-DPだとパリティ用のディスクが2台必要ですから残りの14台が実際にユーザデータ用の領域として使用可能と言うことになります。1.8TBのSASディスク14台ですから物理容量で25.2TB、いろいろなオーバーヘッドを差し引いた実効容量だと18.5TiBくらいになります。
さて、ADPを適用するとどうなるでしょうか。ADPはAdvanced Drive Partitioningの略です。1台のHDDやSSDをうまいこと分割
(Partitioning)して効率的に利用できるようにしようという仕組みです。で、こんな感じになります。

1台の1.8TB SASドライブを2つのパーティションに分割します。1つはRootアグリゲート用の小さなパーティション(Rootパーティション)で、この場合(ディスク24台の場合)23.38GiBになります。もう一つのパーティションはユーザデータ用(データパーティション)で1,649.95GiBになります。
各コントローラのRootアグリゲート用に12個のRootパーティションが割り当てられています。12個のうち2つはスペアとして使用します。さらに2つはRAID-DPのパリティとして使用することになります。
なので、残りの8個のRootパーティションがRootアグリゲートのデータ部分になるわけです。23.38GiB×8=187.04GiB。この説明の冒頭でRootアグリゲートの最小サイズは187GiBと書きましたが、ピッタリでまったくムダがありません。
では、ユーザデータ用の領域はどうなるでしょうか。1,649.95GiBというサイズの24個のデータパーティションでユーザデータ用のアグリゲートを構成します。2つをスペア、2つはRAID-DPのパリティになりますから、残りの20個のデータパーティションをユーザデータ用に使えることになります。1,649.95GiB×20=32,999GiB。ここからファイルシステムの予約領域やデフォルトのSnapshotリザーブ5%などを差し引くと約26TiBがユーザデータ領域の実効容量になります。ADP無しだと18.5TiBくらいでしたから、ADPを適用しただけで約7.5TiBも使える領域が増えたことになります。しかもスペアの数もADP無しでは1台だったのに、ADPを適用した場合ではRoot用もユーザデータ用も2台(2パーティション)になっていますから耐障害性も向上しています。さらに各アグリゲートを構成しているディスクの数が増えているので性能面でもかなり有利になっています。
ADPのパーティショニングですが、HDD(SASやNL-SAS)ではRootパーティションとデータパーティションの2つのパーティションに分割しますが、SSDではデータパーティションをさらに2等分して3つのパーティションに分割します。こうすることで、少しですが、さらに利用効率を上げることができます。SSDはなんだかんだ言ってまだまだ容量単価が高いので少しでも利用効率を上げてムダを減らしたいということですね。ちなみにHDDに対するパーティショニングを「Root-Dataパーティショニング」とか「R-Dパーティショニング」と呼びます。SSDの方は「Root-Data-Dataパーティショニング」とか「R-D-Dパーティショニング」とか「RD2パーティショニング」と呼びます。
今回ご紹介したADPはRootアグリゲートのムダを排除するための仕組みでしたが、実はもう一つFlashPool用のADPという機能もあります。FlashPool用に搭載している何台かのSSDをそれぞれ4等分してコントローラに縛られることなく複数のアグリゲートをFlashPool化できるという優れものです。これも高価なSSDの利用効率を上げる仕組みとして非常に有効なんですが、最近はAll Flash構成のストレージが多く使われるようになってきたこともあり、FlashPoolにお目にかかる機会は減ってきたように感じる今日この頃…
さて、次はどんなテーマにしましょうかねぇ… 実効容量の算出方法とかかなぁ…
