半管理型 JindoFS クラスターを廃止する際は、トランジション中に発生する増分書き込みを失うことなく、そのメタデータおよびデータファイルを新しいストレージレイヤーへ移動する必要があります。そのため、jindo distjob を使用して、2 段階の移行を実行します。まず完全なデータ移行を実施し、その後、ソースクラスターが引き続きサービス中である間も OSS-HDFS を最新状態に保つため、任意で増分同期を実行します。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
半管理型 JindoFS クラスターのデータを格納するバケットで OSS-HDFS が有効化されていること
半管理型 JindoFS クラスターで監査ログが有効化されていること
JindoSDK がインストールおよび設定されています。インストール手順については、「JindoSDK download」をご参照ください。
ステップ 1:完全なデータ移行
完全なデータ移行では、半管理型 JindoFS クラスターのディレクトリメタデータを OSS-HDFS へコピーします。各実行では 1 つのソースディレクトリを 1 つの宛先ディレクトリへ移行します。宛先は、OSS-HDFS 内の最上位レベルのサブディレクトリである必要があります。
以下のコマンドを実行します。
jindo distjob -migrateImport -srcPath <srcPath> -destPath <destPath> -backendLoc <backendLoc>パラメーター
| パラメーター | 説明 | 補足 |
|---|---|---|
-srcPath | 半管理型 JindoFS クラスター内のソースディレクトリ | jfs:// スキームを使用します(例: jfs://mycluster/foo |
-destPath | OSS-HDFS 内の宛先ディレクトリ | 1 レベル目のサブディレクトリである必要があります。例として、oss:// スキームを使用し、oss://examplebucket/bar/ |
-backendLoc | 半管理型 JindoFS クラスターの生データを格納する OSS パス | これは JindoFS クラスターのデータバックエンドであり、移行先ではありません |
実行例
jfs://mycluster/foo ディレクトリを bar サブディレクトリ(examplebucket 内)へ移行します。
jindo distjob -migrateImport -srcPath jfs://mycluster/foo -destPath oss://examplebucket/bar/ステップ 2:増分データの移行(任意)
完全なデータ移行完了後にソース JindoFS クラスターが引き続き書き込みを受ける場合、増分移行を実行して、それらの変更を OSS-HDFS へ同期します。増分移行では、監査ログを変更ログへ変換した後、その変更を宛先に適用します。
2.1 監査ログを変更ログへ変換
以下のコマンドを実行して、クラスターの監査ログを jindo distjob が処理可能な変更ログへ変換します。
jindo distjob -mkchangelog -auditLogDir <auditLogDir> -changeLogDir <changeLogDir> -startTime <startTime>パラメーター
| パラメーター | 説明 | 補足 |
|---|---|---|
-auditLogDir | 半管理型 JindoFS クラスターの監査ログを格納するパス | |
-changeLogDir | 生成された変更ログを格納するパス | ソースクラスターと OSS-HDFS の両方からアクセス可能なパスを選択してください |
-startTime | 監査ログの変換開始時刻 | ISO 8601 形式:YYYY-MM-DDTHH:MM:SSZ。この時刻以降の監査ログのみが変換されます |
実行例
oss://examplebucket/sysinfo/auditlog に格納されている監査ログを、2022 年 6 月 1 日から変換し、変更ログを oss://examplebucket/sysinfo/changelog へ出力します。
jindo distjob -mkchangelog \
-auditLogDir oss://examplebucket/sysinfo/auditlog \
-changeLogDir oss://examplebucket/sysinfo/changelog \
-startTime 2022-06-01T12:00:00Z2.2 増分変更の適用
変更ログの生成後、OSS-HDFS へ増分変更を適用します。
jindo distjob -migrateImport -srcPath <srcPath> -destPath <destPath> -changeLogDir <changeLogDir> -backendLoc <backendLoc> -updateパラメーター
| パラメーター | 説明 | 補足 |
|---|---|---|
-srcPath | 半管理型 JindoFS クラスター内のソースディレクトリ | |
-destPath | OSS-HDFS 内の宛先ディレクトリ | |
-changeLogDir | 生成された変更ログを格納するパス | ステップ 2.1 で指定した -changeLogDir パスと一致させる必要があります |
-backendLoc | 半管理型 JindoFS クラスターの生データを格納する OSS パス | |
-update | 増分移行モードを有効化します | 前回実行以降に新規作成または変更されたファイルのみをコピーします。未変更のファイルはスキップされます |
実行例
jfs://mycluster/foo から oss://examplebucket/bar/ へ増分変更を適用し、変更ログは oss://logbucket/logdir/ から読み込みます。
jindo distjob -migrateImport \
-srcPath jfs://mycluster/foo \
-destPath oss://examplebucket/bar/ \
-changeLogDir oss://logbucket/logdir/ \
-backendLoc oss://examplebucket/jfsdataDir \
-update2.3 複数回の増分移行の実行(任意)
時間の経過に伴う一連の変更を同期するには、ステップ 2.1 および 2.2 を繰り返し実行し、それぞれの実行で -startTime の値を調整して、連続する時間範囲をカバーします。