tencent cloud

Cloud Object Storage

COS Migrationツール

PDF
フォーカスモード
フォントサイズ
最終更新日: 2024-06-26 10:27:35

機能説明

COS Migrationは、COSのデータ移行機能を統合したオールインワンツールです。簡単な設定操作により、ユーザーはローカルデータをCOSにすばやく移行することができ、以下のような特徴があります:
中断からの再開:ツールはアップロード時の中断からの再開をサポートしています。大容量ファイルについては、途中で終了した場合やサービスの障害があった場合、ツールを再実行して、アップロードが完了していないファイルのアップロードを再開することができます。
マルチパートアップロード:COSにオブジェクトをチャンクでアップロードします。
並列アップロード:複数のオブジェクトの同時アップロードをサポートします。
注意:
COS Migrationのエンコード形式は、UTF-8形式のみをサポートします。
このツールを使って同名ファイルをアップロードすると、デフォルトでは古い方の同名ファイルが上書きされます。同名ファイルをスキップするには、追加の設定が必要です。
ローカルデータ移行以外の場合、Migration Service Platformを優先して使用してください。
COS Migrationは1回限りの移行に用いるサービスであり、継続的な同期のシナリオには適しません。例えばローカルに毎日ファイルが追加され、COSに継続的に同期する必要がある場合、COS Migrationは移行タスクの重複を避けるために移行成功の記録を保存するため、継続的同期後の記録のスキャン時間が増大し続けることになります。このようなシナリオではファイルの同期の使用をお勧めします。

使用環境

システム環境

WindowsとLinuxシステム。

ソフトウェア依存

JDK 1.8 X64以降、JDKのインストールと設定の詳細については、Javaのインストールと設定をご参照ください。
Linux環境ではIFUNCのサポートが必要です。環境のbinutilsのバージョンをチェックし、2.20以降のバージョンであることを確認します。

利用方法

1. ツールの取得

COS Migrationツールに移動してダウンロードします。

2. 解凍ツールキット

Windows

解凍して、次のようにディレクトリに保存します。
C:\\Users\\Administrator\\Downloads\\cos_migrate

Linux

解凍して、いずれかのディレクトリに保存します。
unzip cos_migrate_tool_v5-master.zip && cd cos_migrate_tool_v5-master

マイグレーションツールの構造

COS Migrationツールを正しく解凍すると、次のようなディレクトリ構造になります。
COS_Migrate_tool
|——conf #設定ファイルが配置されているディレクトリ
| |——config.ini #設定ファイルの移行
|——db #移行に成功した記録を保存
|——dep #プログラムのメインロジックコンパイルによって発行されたJARパッケージ
|——log #ツールの実行中に発行されたログ
|——opbin #コンパイル用スクリプト
|--result #マイグレーション成功記録を保存するためのディレクトリであり、記録のファイル名は 「期日.out」、形式は「絶対パス¥tファイルサイズ¥t最終変更時刻」
|——src #ツールのソースコード
|——tmp #一時ファイルストレージディレクトリ
|——.gitignore #git バージョン管理で無視されたファイルとフォルダ
|——pom.xml #プロジェクト設定ファイル
|——README #説明ドキュメント
|——start_migrate.sh #Linuxでの移行起動スクリプト
|——start_migrate.bat #Windowsでの移行起動スクリプトdbディレクトリには、主にツールの移行に成功したファイル識別子が記録されています。各移行タスクはdb内の記録に優先順位をつけ、現在のファイル識別子がすでに記録されている場合は現在のファイルをスキップし、それ以外の場合はファイルの移行を実行します。
ログディレクトリには、ツールの移行に伴うすべてのログが記録されています。移行中にエラーが発生した場合は、まずこのディレクトリ内のerror.logをご確認ください。
説明:
dbディレクトリには、主にツールの移行に成功したファイル識別子が記録されています。各移行タスクはdb内の記録に優先順位をつけ、現在のファイル識別子がすでに記録されている場合は現在のファイルをスキップし、それ以外の場合はファイルの移行を実行します。
ログディレクトリには、ツールの移行に伴うすべてのログが記録されています。移行中にエラーが発生した場合は、まずこのディレクトリ内のerror.logをご確認ください。

3. 設定ファイルconfig.iniの変更

移行起動スクリプトを実行する前に、設定ファイルconfig.iniを変更する必要があります(パス:./conf/config.ini)。config.iniの内容は、以下のセクションに分けられます。

3.1 移行タイプの設定

type はマイグレーションのタイプを示し、固定入力とします type=migrateLocal
[migrateType]
type=migrateLocal

3.2 移行タスクの設定

ユーザーは、主にターゲットCOS情報への移行の設定や移行タスク関連の設定など、実際の移行要件に基づいた設定を行います。
# マイグレーションツールのパブリック設定セクションには、ターゲットCOSに移行する必要のあるアカウント情報が含まれます。
[common]
secretId=COS_SECRETID
secretKey=COS_SECRETKEY
bucketName=examplebucket-1250000000
region=ap-guangzhou
storageClass=Standard
cosPath=/
https=off
tmpFolder=./tmp
smallFileThreshold=5242880
smallFileExecutorNum=64
bigFileExecutorNum=8
entireFileMd5Attached=on
executeTimeWindow=00:00,24:00
outputFinishedFileFolder=./result
resume=false
skipSamePath=false
requestTryCount=5
名称
説明
デフォルト値
secretId
ユーザーキーのSecretIdです。COS_SECRETIDを実際のキー情報に置き換えてください。CAMコンソールのTencent Cloud APIキー画面に進むと取得できます
-
secretKey
ユーザーキーのSecretKeyです。COS_SECRETKEYを実際のキー情報に置き換えてください。CAMコンソールのTencent Cloud APIキー画面に進むと取得できます
-
bucketName
ターゲットBucketの名称で、命名形式は<BucketName-APPID>。Bucket名には必ずAPPIDを含める必要があります。例: examplebucket-1250000000
-
region
ターゲットBucketのRegion情報です。COSのリージョンの略称については、リージョンとアクセスドメイン名をご参照ください
-
storageClass
データ移行後のストレージタイプです。オプション値はStandard(標準ストレージ)、Standard_IA(低頻度ストレージ)、Archive(アーカイブストレージ)、Maz_Standard(複数のAZを備えた標準ストレージ)、Maz_Standard_IA(複数のAZを備えた低頻度ストレージ)です。詳細については、ストレージタイプの概要をご参照ください
Standard
cosPath
移行先のCOSパスです。/はBucketのルートパスへの移行、/folder/doc/はBucketの/folder/doc/への移行を表します。/folder/doc/が存在しない場合は、自動的にパスが作成されます
/
https
HTTPS通信を使用するかどうかです。onはオン、offはオフを表します。オンの場合は通信速度が遅くなり、セキュリティ要件の高いシナリオに適しています
off
tmpFolder
他のクラウドストレージからCOSへの移行中に一時ファイルを保存するために使用されたディレクトリは、移行が完了すると削除されます。形式は絶対パスである必要があります。
Linuxの場合、/a/b/cのようにシングルスラッシュで区切ります。
Windowsの場合、E:\\\\a\\\\b\\\\cのようにダブルバックスラッシュ区切ります。
デフォルトでは、ツールが配置されているパスのtmpディレクトリです
./tmp
smallFileThreshold
小さなファイルの閾値のバイトです。この閾値以上であれば、マルチパートアップロードを使用します。それ以外の場合はシンプルアップロードを使用します。デフォルトは5MB(5242880 Byte)です
5242880
smallFileExecutorNum
小さなファイル(smallFileThresholdより小さいファイル)の同時実行性で、シンプルアップロードを使用します。パブリックネットワーク経由でCOSに接続しており、帯域幅が小さい場合は、この同時実行性を低下させてください
64
bigFileExecutorNum
大きなファイル(smallFileThreshold以上のファイル)の同時実行性で、マルチパートアップロードを使用します。パブリックネットワーク経由でCOSに接続しており、帯域幅が小さい場合は、この同時実行性を低下させてください
8
entireFileMd5Attached
マイグレーションツールがフルテキストのMD5を計算し、その後の検証のためにファイルのカスタムヘッダーx-cos-meta-md5に格納することを表します。COSのマルチパートアップロードされた大きなファイルのetagは、フルテキストのMD5ではないからです
on
executeTimeWindow
実行時間ウィンドウ。時刻粒度は分単位です。このパラメータは、マイグレーションツールが毎日実行される時間帯を定義します。例えば: パラメータ 03:30,21:00は、タスクが朝 03:30 から夜 21:00 の間に実行され、それ以外の時間はスリープ状態に入ることを意味します。スリープ状態でマイグレーションを一時停止すると、マイグレーションの進行状況が維持され、次のタイムウィンドウになると、自動的に続行されます。後の時点が前の時点より大きい必要があることに注意してください。
00:00,24:00
outputFinishedFileFolder
このディレクトリには、移行に成功した結果が保存されます。結果のファイルは、例えば./result/2021-05-27.outのように日付に基づいて命名されます。ここで./resultは、作成済みのディレクトリです。ファイル内容の各行の形式は、絶対パス\\tファイルサイズ\\t最終更新時刻です。設定を空欄にすると、結果は出力されません。
./result
resume
ソースファイルのリストを、最後に実行した結果までトラバーサル処理し続けるかどうかです。デフォルトは先頭からです。
false
skipSamePath
COSにすでに同名ファイルがある場合に、そのままスキップするかどうかです。デフォルトではスキップされず、元のファイルが上書きされます。
false
requestTryCount
各ファイルのアップロードの合計試行回数。
5

3.3 データソース情報の設定

3.3.1 ローカルのデータソースmigrateLocalの設定
ローカルからCOSに移行する場合は、この部分の設定を行います。具体的な設定項目および説明は以下のとおりです。
# ローカルからCOSへの移行の設定セクション
[migrateLocal]
localPath=E:\\\\code\\\\java\\\\workspace\\\\cos_migrate_tool\\\\test_data
excludes=
ignoreModifiedTimeLessThanSeconds=
設定項目
説明
localPath
ローカルディレクトリ。形式は絶対パスである必要があります。
Linuxの場合、/a/b/cのようにシングルスラッシュで区切ります。
Windowsの場合、E:\\\\a\\\\b\\\\cのようにダブルバックスラッシュで区切ります
注意:このパラメータはディレクトリのパスのみを入力でき、具体的なファイルのパスは入力できません。具体的なファイルのパスを入力した場合は目的のオブジェクト名の解析エラーとなり、cosPath=/の場合、バケット作成リクエストであると誤って解析されます
excludes
除外するディレクトリまたはファイルの絶対パスで、localPathより下のディレクトリまたはファイルは移行されないことを表します。複数の絶対パスはセミコロンで区切ります。空欄の場合、localPathより下のすべてが移行されることを表します
ignoreModifiedTimeLessThanSeconds
更新時間が現在時刻から一定時間に満たないファイルを除外します。単位は秒で、デフォルトでは設定されていません。これは、lastmodified時刻に基づくフィルタリングを行わないことを表します。ファイルの更新と同時にマイグレーションツールを実行し、更新中のファイルがCOSに移行、アップロードされないようにしたいお客様向けです。例えば300に設定すると、更新から5分以上経過したファイルのみをアップロードします

4. マイグレーションツールの実行

Windows

start_migrate.batをダブルクリックして実行します。

Linux

1.設定ファイルconfig.iniから設定を読み込み、次のコマンドを実行します。
sh start_migrate.sh
2.一部のパラメータは、コマンドラインから設定を読み込み、次のコマンドを実行します。
sh start_migrate.sh -Dcommon.cosPath=/savepoint0403_10/
説明:
ツールは、コマンドラインからの読み取りと設定ファイルからの読み取りという2種類の設定項目の読み取りをサポートしています。
コマンドラインは設定ファイルより優先されます。同じ設定オプションであれば、コマンドラインのパラメータが優先されるということです。
コマンドラインで設定項目を読み取る形式により、Bucket名、COSパス、移行するソースパスなど、2つのタスクの主要な設定項目が完全に同一でない場合、ユーザーは異なる移行タスクを同時に実行しやすくなります。さまざまな移行タスクを異なるdbディレクトリに書き込むことで、同時移行が確保されるからです。上記のツール構造のdb情報をご参照ください。
設定項目の形式は、**-D{sectionName}.{sectionKey}={sectionValue}です。ここで、sectionNameは設定ファイルのセクション名、sectionKeyはセクション内の設定項目名、sectionValueはセクション内の設定項目値を表します。移行先のCOSのパスを設定した場合、-Dcommon.cosPath=/bbb/ddd**で表されます。

移行のメカニズムとプロセス

移行メカニズムの原理

COS マイグレーションツールには状態があり、マイグレーションに成功したものは db ディレクトリに記録され、KV の形として leveldb ファイルに保存されます。毎回マイグレーションする前に、マイグレーションするパスが db に存在するかどうかをチェックします。もし存在し、且つ mtime が db に存在するものと一致している場合にはマイグレーションをスキップし、そうしない場合にはマイグレーションします。そのため、COS を探すのではなく、db の中にマイグレーション成功の記録があるかどうかを確認するわけです。マイグレーションツールの代わりに、他の方法(COSCMD やコンソールなど)を通じてファイルを削除・変更した場合、マイグレーションツールを実行しても、その変更を察知しないため、再度マイグレーションを行わないことになります。

移行プロセスの手順

1. 設定ファイルが読み取られ、セクションがマイグレーションtypeに従って読み取られ、パラメータがチェックされます。
2. db においてマイグレーションするファイルのマークをスキャンして比較し、アップロードが許可されているかどうかを判断します。
3. マイグレーション実行中、実行結果がプリントアウトされます。そのうち、inprogress はマイグレーション中、skip はスキップ、fail は失敗、ok は成功、condition_not_match はマイグレーション条件を満たさないためにスキップされたファイル(lastmodifed や excludes など)を示します。失敗の詳細情報は log の error ログで確認することができます。
4. 移行全体の終了時に、累積した移行の成功数、失敗数、スキップ数、所要時間などの統計情報が出力されます。マイグレーションツールは成功したものをスキップして失敗したものを再移行するので、失敗した場合はerrorログを確認するか、再実行してください。実行完了結果の略図は以下のとおりです。



よくあるご質問

COS Migrationツールの使用中に移行失敗や実行エラーといった異常が発生した場合は、COS Migrationツールに関するよくあるご質問をご参照ください。

結論

もちろん、COS は上記のアプリケーションとサービスを提供するだけでなく、多くの人気のあるオープンソースアプリケーションをも提供し、Tencent Cloud COS プラグインを統合しております。 こちら をクリックしてワンクリックで起動し、すぐにお使いになることを歓迎します!

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック