本記事では、Verticaのディスク容量の考え方をご紹介します。

※本記事に記載しているディスク容量の考え方や必要な実効容量は必要最小限のサイズのため、
余裕を持ったディスク容量をご用意ください。

ディスク容量の考え方

Veticaが使用する領域

Verticaで使用する領域は、カタログ領域とデータ領域の2つに分かれます。

カタログ領域メタデータやログファイル等を格納する領域
データ領域実データを格納する領域

上記2つの領域を、1つのボリュームに配置してもVerticaの動作に問題はありませんが、
性能の観点でそれぞれ別ボリュームに配置することを推奨しています。

カタログ領域のサイジング

カタログ領域は、100GBを目安として考えます。
※Verticaデフォルト設定の場合の目安です。

なお、通常カタログ領域はOSと同一の領域に配置し、OS/カタログ領域とします。
※カタログ領域の情報が増え、OS領域を圧迫することを防ぐ等の目的で、カタログ領域をOSと別の領域に配置する場合もあります。

データ領域のサイジング要素と計算方法

データ領域は、サイジングに必要となる要素から計算して算出します。

【サイジング要素】
No要素内容
投入するデータ量 Verticaへ投入(ロード)する対象のデータサイズ 投入対象のCSVデータ:1TB
投入後のデータ圧縮率Verticaは高い圧縮率を誇るため、通常50%から90%近くデータが圧縮される1TBのデータをロードして300GBまで
圧縮された場合は、圧縮率30%(削減率70%)
追加プロジェクション用領域チューニングのために、プロジェクションを作成する場合に備えた領域通常、データ量の10%増として計算
データセットのレプリカ数複数ノード構成でデータを冗長化した場合のレプリカ数(データのコピー数)

・単一ノード構成の場合、レプリカ数は「0」
・3ノード以上の構成の場合、レプリカ数は「1」
・5ノード以上の構成の場合、レプリカ数は「2」

※5ノード以上でレプリカ数を「1」とすることも可能
レプリカを1つ作った場合は、データ量を2倍として計算
メンテナンス用領域Vertica内部で自動実行されるメンテナンス処理や、テーブル再作成等の作業に使用する領域通常、データ領域の2倍として計算
ノード数複数ノード構成をとった場合のノード数各ノードにデータが分散格納されるため、3ノード構成の場合は、1/3として計算
(1ノードあたりの容量)


【計算方法】
データ領域の実効容量① x ② x ③ x (④ + 1) x ⑤÷⑥
算出例①:投入するデータ量(1TB)
②:投入後のデータ圧縮率(50%)
③:追加プロジェクション用領域(10%)を加えたデータ量(110%)
④:データセットのレプリカ数(1)
⑤:メンテナンス用領域として、データ領域と同等サイズを確保(2倍)
⑥:ノード数(3)

Vertica全体のデータ領域算出例)
 1 × 50% × 110% × (1+1) × 2 = 2.2TB

1ノードあたりのデータ領域算出例)
 1 × 50% × 110% × (1+1) × 2 ÷ 3 = 0.73TB

サイジング例

投入データ量が5TBの前提で、1ノード構成、3ノード構成それぞれのサイジング例をご紹介します。

投入データ量5TB、1ノード構成の場合

領域内容サイジング結果(実行容量)
OS/カタログ領域OS:10GB
カタログ領域:100GB
その他ツール等:50GB
160GB
データ領域計算式)
5 × 50% × 110% × (0+1) × 2 ÷ 1
5.5TB
合計5.66TB

投入データ量5TB、3ノード構成の場合

領域内容サイジング結果(実行容量)
OS/カタログ領域OS:10GB
カタログ領域:100GB
その他ツール等:50GB
160GB
データ領域計算式)
5 × 50% × 110% × (1+1) × 2 ÷ 3
約3.67TB
合計1ノードあたり、約3.83TB

参考情報

・swap領域のサイジング
http://vertica-tech.ashisuto.co.jp/swap-sizing/

検証バージョンについて

この記事の内容はVertica 9.2で確認しています。

更新履歴

2019/4/8  検証バージョンを9.2に変更
2016/06/30 本記事を公開