スナップショットについて

Cassandraでのデータのバックアップ方法の簡単な説明。

Cassandraは、データ・ディレクトリーにあるすべてのディスク上のデータ・ファイル(SSTableファイル)のスナップショットを取得することにより、データをバックアップします。システムがオンラインの間、すべてのキースペース、1つのキースペース、または1つのテーブルのスナップショットを取得できます。

パラレルsshツール(psshなど)を使用して、クラスター全体のスナップショットを取得できます。これにより、結果的に整合性のあるバックアップが得られます。スナップショットが作成される時点では、ノードがそのレプリカのノードと整合していることは保証されませんが、復元されたスナップショットは、Cassandraの組み込み整合性メカニズムを使用して、整合を再開します。

システム全体のスナップショットを実行したら、各ノードでインクリメンタル・バックアップを有効にして、最後のスナップショット以降に変更されたデータのバックアップを取ることができます。SSTableがフラッシュされるたびに、ハード・リンクは、データ・ディレクトリーの/backupsサブディレクトリーにコピーされます(JNAが有効の場合)。

注: JNAが有効の場合、スナップショットはハード・リンクによって実行されます。有効でない場合は、ファイルが1つの場所から別の場所にコピーされるにつれ、I/Oアクティビティは増加します。これにより、効率は大幅に低下します。