ossimportを使用すると、ローカルストレージ、サードパーティストレージ、または任意のリージョンのOSSバケットから任意のリージョンのOSSバケットにデータを移行できます。 このトピックでは、ossimportを使用してサードパーティストレージからOSSにデータを移行する方法について説明します。
背景情報
ユーザーは、Tencent Cloud Object Storage (COS) の広州リージョンに500テラバイトのデータを保存しています。 ossimportを使用して、1週間以内に中国 (杭州) リージョンのOSSバケットにデータを移行したいと考えています。 移行プロセス中にビジネスが適切に実行される必要があります。
ossimportは、スタンドアロンモードまたは分散モードで展開できます。
スタンドアロンモードは、サイズが30テラバイト未満のデータの移行に適しています。
分散モードは、サイズが30テラバイトを超えるデータの移行に適しています。
500テラバイトのデータを移行するには、ossimportを分散モードでデプロイします。
データオンライン移行を使用して、データを簡単に移行することもできます。 詳細については、「バックグラウンド情報」をご参照ください。
始める前に
OSSを有効にし、中国 (杭州) リージョンでバケットを作成します。
RAMユーザーを作成し、RAMユーザーにOSSへのアクセス権限を付与します。
RAMコンソールでRAMユーザーを作成し、RAMユーザーにOSSへのアクセス権限を付与し、AccessKey IDとAccessKey Secretを保存します。 詳細については、「開始前」をご参照ください。
ECSインスタンスを購入します。 このステップは省略可能です。
OSSバケットと同じリージョンでElastic Compute Service (ECS) インスタンスを購入します。 ECSインスタンスタイプの詳細については、「汎用インスタンスファミリー」をご参照ください。 データ移行後にECSインスタンスをリリースする場合は、ビジネス要件に基づいてECSインスタンスを購入することを推奨します。
説明ossimportを少数のマシンにデプロイする場合は、ローカルにデプロイできます。 ossimportを多数のマシンにデプロイする場合は、ECSインスタンスにデプロイすることを推奨します。 この例では、ECSインスタンスを使用して、データ移行タスクを実行する方法を示します。
必要なECSインスタンスの数は、次の式に基づいて計算されます。必要なECSインスタンスの数=X/Y/(Z/100) 。 数式では、Xは移行するデータの量を示します。 Yは、移行に必要な時間を日数で示します。 Zはデータ移行速度をMbit/sで示します (1日あたり約Z/100テラバイト) 。 ECSインスタンスの移行速度が200 Mbit/s (1日あたり約2テラバイトのデータ移行) に達した場合、上記の例では36のECSインスタンス (500/7/2) を購入する必要があります。
ossimportの設定
この例の大規模な移行要件を満たすには、ECSインスタンスに分散モードでossimportをデプロイする必要があります。
conf/job.cfg
、conf/sys.properties
、同時実行制御など、分散モードでossimportを展開するために必要なパラメーターを構成する方法の詳細については、「概要」をご参照ください。 ossimportのダウンロードや構成時の一般的なエラーのトラブルシューティングなど、分散デプロイメントでの操作の詳細については、「分散デプロイメント」をご参照ください。
移行ソリューション
次の図は、分散モードでサードパーティストレージからOSSにデータを移行するプロセスを示しています。
ECSインスタンスに分散モードでossimportをデプロイした後、ossimportはCOSの広州リージョンから中国 (杭州) リージョンにあるECSインスタンスにデータをダウンロードします。 インターネット経由でデータをダウンロードするには、ossimportを使用することを推奨します。 ossimportを使用してECSインスタンスから中国 (杭州) リージョンのOSSバケットにデータをアップロードするには、内部ネットワークを使用することを推奨します。
移行プロセスでは、移行元と移行先バケットへのアクセス料金、移行元のアウトバウンドトラフィック料金、ECSインスタンス料金、データストレージ料金が発生します。 1テラバイトを超えるデータを移行する場合、ストレージコストは移行に必要な時間に比例します。 アウトバウンドトラフィック料金とストレージ料金と比較して、ECSインスタンスを使用すると発生する料金が少なくなります。 データ移行のためにより多くのECSインスタンスを使用すると、移行に必要な時間が短縮されます。
データの移行
T1より前に最後に変更されたすべてのデータを移行する
詳細については、「実行中」をご参照ください。
重要T1は、UNIXの時刻形式に続くタイムスタンプです。 1970年1月1日木曜日00:00:00から経過した秒数です。 date + % sを実行してT1を取得する
ミラーリングベースのback-to-originルールを設定します。
オリジンは、移行中に新しいデータを生成し続けます。 ビジネスの継続性とシームレスな切り替えを確保するには、ミラーリングベースのback-To-originルールを設定する必要があります。 ルールを設定した後、ユーザーによって要求されたオブジェクトがOSSに存在しない場合、OSSはこれらのオブジェクトをオリジンから取得し、ユーザーに返します。 詳細については、「概要」をご参照ください。
job.cfg設定ファイルを開き、importSince=T1を指定して移行タスクを再起動し、T1からT2に生成された増分データを移行します。
ビジネスシステムの読み取りおよび書き込み操作をOSSに切り替えます。 このとき、業務システムは時刻T2を記録する。
説明ステップ4が完了すると、ビジネスシステム上のすべての読み取りおよび書き込み操作がOSSに切り替えられます。 サードパーティのストレージに保存されているデータは、履歴データのコピーのみであり、ビジネス要件に基づいて保持または削除できます。
ossimportはデータのみを移行および検証し、データを削除しません。
参考資料
ossimportの詳細については、以下のトピックを参照してください。