Lindorm Tunnel Service (LTS) を使用すると、ApsaraDB for HBase クラスター間でサービス停止時間なく、完全データの移行および増分データの同期が可能です。LTS は、バージョンアップグレード、クロスリージョン移行、クロスアカウント転送、クラスタースケーリング、ワークロードのデカップリングなどの用途にご利用いただけます。
仕組み
LTS は、ソースクラスターの Hadoop 分散ファイルシステム (HDFS) から直接データを読み取ります。ソースクラスターの HBase レイヤーとは一切やり取りしません。このファイルレベルでのアプローチにより、API レイヤーでの移行と比較してデータ転送量を 50 % 以上削減し、オンラインワークロードへの影響を最小限に抑えます。
LTS の各ノードは最大 150 MB/s の速度でデータを移行します。テラバイト級またはペタバイト級のデータセットに対応するには、ノードを水平方向に追加してください。LTS はタスクの速度と進捗状況をリアルタイムで監視し、エラー発生時には自動で再試行を行い、タスク失敗時にはアラートを送信します。また、パーティションの一貫性を確保するため、スキーマを自動的に同期します。
移行タスクでは、以下の 3 つの操作がサポートされており、要件に応じて選択できます。
スキーマ移行(テーブルスキーマの移行): LTS は、ソースと同じスキーマおよびパーティションレイアウトを持つテーブルを送信先クラスターに作成します。手動でテーブルを作成する必要はありません。
完全データ移行(履歴データの移行): LTS は、HDFS レイヤーでファイルを物理的にコピーします。
リアルタイム増分同期(リアルタイムデータレプリケーション): LTS は先行書き込みログ (WAL) をフォローし、完全移行開始後に書き込まれた変更をキャプチャすることで、スイッチオーバーまで送信先を最新の状態に保ちます。
利用シーン
| シナリオ | 例 |
|---|---|
| メジャーバージョンアップグレード | ApsaraDB for HBase クラスターを V1.x から V2.x へアップグレード |
| クロスリージョン移行 | 中国 (青島) から中国 (北京) へのデータ移行 |
| クロスアカウント移行 | 異なるアカウント間でのデータ移行 |
| クラスタースペックアップグレード | 4 コア 8 GB から 8 コア 16 GB へのスケールアップ |
| ワークロードのデカップリング | クラスターの一部ワークロードを新しいクラスターにオフロード |
対応バージョン
LTS は、以下のバージョン間でサービス停止時間なく移行をサポートしています。
HBase 094
HBase 098
HBase V1.x
HBase V2.x
Lindorm
機能
テーブルスキーマの移行、リアルタイムデータ同期、完全データ移行を実施
データベース、名前空間、テーブル単位でのデータ移行をサポート
テーブルのデータ移行時にテーブル名を変更可能
データ移行時に時間範囲、行キー範囲、カラムを指定可能
API オペレーションを呼び出して移行タスクを作成可能
制限事項
| 制約 | 詳細 |
|---|---|
| Kerberos クラスター | 未対応 |
| シングルノードクラスター | 未対応 |
| クラシックネットワーククラスター | 未対応 |
| BulkLoad データ | 同期されません — 増分同期は WAL に書き込まれたデータのみをキャプチャします |
| WAL に書き込まれていないデータ | 同期されません |
前提条件
作業を開始する前に、以下の項目を確認してください。
ソースクラスター、送信先クラスター、LTS 間のネットワーク接続が確立されていること
LTS に HBase および Lindorm のデータソースが追加済みであること
送信先クラスターに移行データを収容できる十分な HDFS 容量があること
LTS Web UI にログイン済みであること
移行タスクの作成
左側のナビゲーションウィンドウで、移行 > クイック移行 を選択します。
以下のパラメーターを設定し、create をクリックします。
説明LTS は、ソースと同じパーティションレイアウトを持つテーブルを送信先に自動作成します。移行前に手動でテーブルを作成した場合、パーティションレイアウトが異なる可能性があり、特に大規模テーブルでは移行後に頻繁にスプリットやコンパクションが発生するおそれがあります。
パラメーター 説明 job name タスクの名前です。英数字のみ使用可能です。空白の場合はタスク ID が使用されます。 Source Cluster ソースとなる ApsaraDB for HBase または Lindorm クラスターです。 Target Cluster 送信先クラスターです。 migration table schema ソースと同じスキーマおよびパーティションレイアウトを持つテーブルを送信先に作成します。送信先クラスターに既にテーブルが存在する場合、そのテーブルのデータは移行されません。 real time data replication WAL を使用して、ソースからの増分変更をリアルタイムで同期します。 history data migration HDFS レイヤーで全ファイルを物理的に移行します。 table mapping 移行するテーブル名を 1 行につき 1 つずつ記述します。 advance configuration 任意設定です。デフォルト値を使用する場合は空白のままにしてください。 ソーステーブルにコプロセッサが設定されている場合、送信先テーブル作成時に送信先クラスターに該当するコプロセッサの JAR パッケージが含まれていることを確認してください。
増分同期の設定
ログ保持期間の設定
増分同期タスクを開始する前に、ソースクラスターのログ保持期間を延長してください。これにより、一時的なエラーが発生しても LTS が WAL データを失うことなく回復する時間を確保できます。
hbase-site.xml 内の hbase.master.logcleaner.ttl を 12 時間より大きい値に設定し、HBase Master を再起動してください。
デフォルトの保持ウィンドウについて
LTS がログデータを消費できない場合(例:LTS クラスターがリリースされた、同期タスクが一時停止された、タスクが異常にブロックされたなど)、未消費のログはデフォルトで 48 時間保持されます。48 時間経過後、サブスクリプションはキャンセルされ、保持されていたデータは削除されます。
タスクのモニター
タスクリストを表示するには、左側のナビゲーションウィンドウで 移行 > クイック移行 を選択します。
タスクの詳細および実行ステータスを表示するには、タスク名をクリックします。
スイッチオーバーの実施
完全移行が完了し、増分同期の遅延が数秒または数百ミリ秒程度になるまで待ちます。
LTS のデータサンプリングおよび検証を有効化します。大規模テーブルの場合は、オンライントラフィックへの影響を避けるため、適切なサンプリング比率を設定してください。
アプリケーションを送信先クラスターに対して検証します。
アプリケーショントラフィックを送信先クラスターに切り替えます。