ossimport は、オブジェクトストレージサービス (OSS) にデータを移行するためのツールです。ossimport をローカルサーバーまたは Elastic Compute Service (ECS) インスタンスにデプロイして、ローカルストレージまたはサードパーティのクラウドストレージから OSS にデータを移行できます。Alibaba Cloud は、GUI でクラウドにデータを移行したり、OSS バケット間でデータをレプリケートしたりするためのデータオンライン移行とクロスリージョンレプリケーション機能も提供しています。
ossimport は、移行後にデータの検証を行わないため、データの整合性と完全性は保証されません。移行タスクが完了したら、移行元と移行先のデータの整合性を必ず確認してください。
移行元と移行先のデータの整合性を確認せずに移行元データを削除した場合、発生する損失と結果については、お客様の責任となります。
サードパーティのデータソースからデータを移行するには、データオンライン移行を使用することをお勧めします。
OSS バケット間でほぼリアルタイムにオブジェクトをレプリケートするには、OSS のクロスリージョンレプリケーション機能を使用することをお勧めします。
機能
ossimport は、オンプレミスのファイルシステム、Qiniu Cloud Object Storage (KODO)、Baidu Object Storage (BOS)、Amazon Simple Storage Service (Amazon S3)、Azure Blob Storage、UPYUN Storage Service (USS)、Tencent Cloud Object Service (COS)、Kingsoft Standard Storage Service (KS3)、HTTP および HTTPS URL リスト、Alibaba Cloud OSS など、幅広いデータソースをサポートしています。
ossimport は、スタンドアロンデプロイメントモードと分散デプロイメントモードをサポートしています。スタンドアロンモードは、デプロイと使用が簡単です。分散モードは、大規模なデータ移行に適しています。
説明スタンドアロンモードでは、一度に移行できるバケットは 1 つだけです。
ossimport は、レジューム可能なアップロードをサポートしています。
ossimport は、トラフィック調整をサポートしています。
ossimport は、特定の時点以降に変更されたオブジェクトと、名前に特定のプレフィックスが含まれるオブジェクトの移行をサポートしています。
ossimport は、データの同時ダウンロードとアップロードをサポートしています。
課金
ossimport は無料で利用できます。ただし、ossimport を使用してインターネット経由でデータを移行する場合、データソース側でアウトバウンドトラフィック料金とリクエスト料金、OSS 側でリクエスト料金が発生する場合があります。移行中に転送アクセラレーションが使用された場合は、転送アクセラレーション料金が追加で発生します。
使用上の注意
移行速度
ossimport の移行速度は、データソースの読み取り帯域幅、ローカルネットワーク帯域幅、移行するファイルのサイズなど、いくつかの要因によって異なります。200 KB 未満のファイルの移行は、多数の小さなファイルを処理するために必要な IOPS が多いため、低速です。
アーカイブファイルの移行
アーカイブファイルを移行する場合は、アーカイブファイルを復元してから移行する必要があります。
データステージング
ossimport を使用してデータを移行する場合、データストリームは最初にローカルメモリに転送され、次に宛先にアップロードされます。
ソースデータの保持
データ移行タスク中、ossimport はソースデータに対して読み取り操作のみを実行します。書き込み操作は実行しません。これにより、ソースデータが変更または削除されないことが保証されます。
ossutil を使用した移行
30 TB 未満のデータを移行するには、ossutil を使用することをお勧めします。ossutil は、軽量で使いやすいツールです。-u、--update、および --snapshot-path オプションを使用して、ファイルを段階的に移行できます。詳細については、概要 を参照してください。
実行環境
ossimport は、次の要件を満たす Linux または Windows にデプロイできます。
Windows 7 以降
CentOS 6 または CentOS 7
Java 7 または Java 8
ossimport は、分散モードでは Windows にデプロイできません。
デプロイメントモード
ossimport は、スタンドアロンデプロイメントモードと分散デプロイメントモードをサポートしています。
スタンドアロンデプロイメントは、30 TB 未満のデータの移行に適しています。ossimport をスタンドアロンモードでデプロイするには、スタンドアロンデプロイメント用の ossimport パッケージをダウンロードします。移行するデータと、データを移行する OSS バケットにアクセスできるデバイスに ossimport をデプロイできます。
分散デプロイメントは、30 TB を超えるデータの移行に適しています。ossimport を分散モードでデプロイするには、分散デプロイメント用の ossimport パッケージをダウンロードします。移行するデータと、データを移行する OSS バケットにアクセスできる複数のデバイスに ossimport をデプロイできます。
説明大量のデータの移行に必要な時間を短縮するには、OSS バケットと同じリージョンにある複数の ECS インスタンスに ossimport をデプロイし、Express Connect を使用してソースサーバーを仮想プライベートクラウド (VPC) に接続します。このようにして、ECS インスタンスを使用して、VPC 経由でより高速な移行速度でデータを移行できます。
ossimport を使用して、インターネット経由でデータを送信することもできます。この場合、転送速度は、オンプレミスマシンの帯域幅の影響を受けます。
スタンドアロンモード
Master、Worker、Tracker、および Console モジュールは、ossimport2.jar
に圧縮され、同じデバイス上で実行されます。システムにはワーカーが 1 つだけあります。
次のコードは、スタンドアロンモードでのファイル構造を示しています。
ossimport
├── bin
│ └── ossimport2.jar // Master、Worker、Tracker、および Console モジュールを含む JAR パッケージ。
├── conf
│ ├── local_job.cfg // スタンドアロンデプロイメントでのジョブ構成ファイル。
│ └── sys.properties // システムパラメータを含む構成ファイル。
├── console.bat // コマンドをステップバイステップで実行するために使用される Windows コマンドラインツール。
├── console.sh // コマンドをステップバイステップで実行するために使用される Linux コマンドラインツール。
├── import.bat // conf/local_job.cfg 構成ファイルに基づいて、数回クリックするだけで Windows 上で移行タスクを実行するスクリプト。このスクリプトは、移行タスクの開始、データの移行、データの検証、移行タスクの再試行など、移行タスクのすべてのステップをカプセル化します。
├── import.sh // conf/local_job.cfg 構成ファイルに基づいて、数回クリックするだけで Linux 上で移行タスクを実行するスクリプト。このスクリプトは、移行タスクの開始、データの移行、データの検証、移行タスクの再試行など、移行タスクのすべてのステップをカプセル化します。
├── logs // ログを含むディレクトリ。
└ ── README.md // ossimport の使用方法に関する説明を提供するファイル。ossimport を使用する前に、このファイルを読むことをお勧めします。
import.bat と import.sh は、数回クリックするだけで移行タスクを実行するために使用されるスクリプトです。
local_job.cfg
構成ファイルを変更した後、これらのスクリプトを実行できます。console.bat と console.sh は、コマンドをステップバイステップで実行するために使用されるコマンドラインツールです。
ossimport
ディレクトリでスクリプトまたはコマンドを実行します。これは、*.bat
ファイルと ファイルを含むディレクトリです。
分散モード
分散モードのossimportアーキテクチャは、マスターと複数のワーカーで構成されています。次のコードは、構造を示しています。
Master --------- Job --------- Console
|
|
TaskTracker
|_____________________
|Task | Task | Task
| | |
Worker Worker Worker
パラメーター | 説明 |
マスター | マスターは、データサイズとファイル数によって移行タスクを複数のサブタスクに分割します。データサイズとファイル数は、sys.propertiesファイルで指定できます。マスターは、以下の手順を実行して移行タスクを複数のサブタスクに分割します。
|
ワーカー |
|
TaskTracker | TaskTrackerは、サブタスクを配布し、サブタスクの状態を追跡します。TaskTrackerは、トラッカーと略されます。 |
コンソール | コンソールは、ユーザーと対話し、コマンド入力を受け取り、コマンド出力を表示します。コンソールは、deploy、start、stopなどのシステム管理コマンドと、submit、retry、cleanなどのジョブ管理コマンドをサポートしています。 |
ジョブ | ユーザーが送信したデータ移行タスク。1つのタスクは、1つの |
タスク | ファイルの一部を移行するサブタスク。移行タスクは、データサイズとファイル数によって複数のサブタスクに分割できます。移行タスクをサブタスクに分割するための最小単位はファイルです。1つのファイルは、複数のサブタスクに割り当てられません。 |
分散デプロイでは、複数のデバイスを起動し、各デバイスで1つのワーカーのみを実行してデータを移行できます。サブタスクはワーカーに均等に割り当てられ、ワーカーは複数のサブタスクを実行します。
次のコードは、分散モードでのファイル構造を示しています。
ossimport
├── bin
│ ├── console.jar # コンソールモジュールのJARパッケージ。
│ ├── master.jar # マスターモジュールのJARパッケージ。
│ ├── tracker.jar # トラッカーモジュールのJARパッケージ。
│ └── worker.jar # ワーカーモジュールのJARパッケージ。
├── conf
│ ├── job.cfg # ジョブ構成ファイルテンプレート。
│ ├── sys.properties # システムパラメーターを含む構成ファイル。
│ └── workers # ワーカーのリスト。
├── console.sh # コマンドラインツール。Linuxのみがサポートされています。
├── logs # ログを含むディレクトリ。
└ ── README.md # ossimportの使用方法を説明したファイル。ossimportを使用する前に、このファイルを読むことをお勧めします。
構成ファイル
スタンドアロンモードでは、sys.properties および local_job.cfg 構成ファイルを使用できます。分散モードでは、sys.properties、job.cfg、および workers 構成ファイルを使用できます。local_job.cfg および job.cfg 構成ファイルには、同じパラメーターがあります。workers 構成ファイルは、分散モード専用です。
sys.properties: システムパラメータ。
パラメータ
説明
備考
workingDir
作業ディレクトリ。
パッケージの解凍先ディレクトリ。スタンドアロンモードでは、このパラメータを変更しないでください。分散モードでは、各デバイスで作業ディレクトリが同じである必要があります。
workerUser
ワーカーが存在するデバイスにログオンするために使用するSSHユーザー名。
privateKeyFileパラメータが指定されている場合は、privateKeyFileパラメータの値が使用されます。
privateKeyFileパラメータが指定されていない場合は、workerUserパラメータとworkerPasswordパラメータの値が使用されます。
スタンドアロンモードでは、このパラメータを変更しないでください。
workerPassword
ワーカーが存在するデバイスにログオンするために使用するSSHパスワード。
スタンドアロンモードでは、このパラメータを変更しないでください。
privateKeyFile
秘密鍵ファイルのパス。
SSH接続がすでに確立されている場合は、このパラメータを指定できます。それ以外の場合は、このパラメータを空のままにしてください。
privateKeyFileパラメータが指定されている場合は、privateKeyFileの値が使用されます。
privateKeyFileパラメータが指定されていない場合は、workerUserパラメータとworkerPasswordパラメータの値が使用されます。
スタンドアロンモードでは、このパラメータを変更しないでください。
sshPort
SSHポート。
デフォルト値は 22 です。ほとんどの場合、デフォルト値を保持することをお勧めします。スタンドアロンモードでは、このパラメータを変更しないでください。
workerTaskThreadNum
ワーカーがサブタスクを実行するための最大スレッド数。
このパラメータは、デバイスのメモリとネットワークの状態に関連しています。このパラメータを60に設定することをお勧めします。
物理マシンの場合は、値を増やすことができます。たとえば、このパラメータを150に設定できます。ネットワーク帯域幅がすでにフルになっている場合は、値をさらに増やさないでください。
ネットワークの状態が悪い場合は、値を減らしてください。たとえば、このパラメータを30に設定できます。これにより、ネットワークリソースの競合によるタイムアウトエラーを防ぐことができます。
workerMaxThroughput(KB/s)
ワーカーのデータ移行の最大スループット。
このパラメータは、スロットリングに使用できます。デフォルト値は0で、スロットリングが課されないことを指定します。
dispatcherThreadNum
トラッカーによるサブタスクの配布と状態チェックのスレッド数。
特別な要件がない場合は、デフォルト値を保持してください。
workerAbortWhenUncatchedException
不明なエラーが発生した場合に、エラーをスキップするか、サブタスクを終了するかを指定します。
デフォルトでは、不明なエラーが発生した場合、エラーはスキップされます。
workerRecordMd5
x-oss-meta-md5メタデータ項目を使用して、移行するファイルのMD5ハッシュを記録するかどうかを指定します。デフォルトでは、MD5ハッシュは記録されません。
このパラメータの値は、データの整合性を検証するために使用されます。
job.cfg: データ移行タスクの構成。
local_job.cfg
とjob.cfg
構成ファイルは名前が異なりますが、同じパラメータが含まれています。パラメータ
説明
備考
jobName
移行タスクの名前。値はSTRING型です。
タスク名は、タスクを一意に識別します。タスク名には、文字、数字、アンダースコア(_)、ハイフン(-)を含めることができ、長さは4~128文字である必要があります。異なる名前の複数のタスクを送信できます。
既存のタスクと同じ名前のタスクを送信すると、タスクがすでに存在するというメッセージが表示されます。既存のタスクをクリーンアップする前に、同じ名前のタスクを送信することはできません。
jobType
移行タスクのタイプ。値はSTRING型です。
デフォルト値:
import
。
isIncremental
増分移行モードを有効にするかどうかを指定します。値はBOOLEAN型です。
デフォルト値:false。
このパラメータをtrueに設定すると、ossimportはincrementalModeIntervalで指定された秒間隔でデータスキャンを実行して増分データを検出し、検出された増分データをOSSに移行します。
incrementalModeInterval
増分移行モードでの移行間隔(秒単位)。値はINTEGER型です。
このパラメータは、isIncrementalパラメータがtrueに設定されている場合に有効です。最小間隔は900秒です。リクエストの急増と追加のオーバーヘッドを防ぐために、パラメータを3600以上に設定することをお勧めします。
importSince
データ移行タスクの時間条件。最終更新時刻がこのパラメータの値より後のデータが移行されます。値はINTEGER型です。単位:秒。
タイムスタンプはUNIX形式である必要があります。UNIXタイムスタンプは、1970年1月1日木曜日00:00:00以降に経過した秒数です。 date +%sコマンドを実行して、UNIXタイムスタンプをクエリできます。
デフォルト値は0で、すべてのデータが移行されることを指定します。
srcType
移行元のタイプ。値はSTRING型で大文字と小文字が区別されます。
有効な値:
local
:ローカルストレージからOSSにデータを移行します。この値を指定する場合は、srcPrefixパラメータを指定し、srcAccessKey、srcSecretKey、srcDomain、srcBucketパラメータを空のままにします。oss
:OSSバケットから別のOSSバケットにデータを移行します。qiniu
:KODOからOSSにデータを移行します。bos
:BOSからOSSにデータを移行します。ks3
:KS3からOSSにデータを移行します。s3
:Amazon S3からOSSにデータを移行します。youpai
:USSからOSSにデータを移行します。http
:HTTPまたはHTTPS URLリストからOSSにデータを移行します。cos
:COSからOSSにデータを移行します。azure
:Azure Blob StorageからOSSにデータを移行します。
srcAccessKey
ソースにアクセスするために使用するAccessKey ID。値はSTRING型です。
srcTypeパラメータが
oss
、qiniu
、baidu
、ks3
、またはs3
に設定されている場合は、ソースにアクセスするために使用するAccessKey IDを指定します。srcTypeパラメータが
local
またはhttp
に設定されている場合は、このパラメータを無視します。srcTypeパラメータが
youpai
またはazure
に設定されている場合は、ソースにアクセスするために使用するアカウント名を指定します。
srcSecretKey
ソースにアクセスするために使用するAccessKeyシークレット。値はSTRING型です。
srcTypeパラメータが
oss
、qiniu
、baidu
、ks3
、またはs3
に設定されている場合は、ソースにアクセスするために使用するAccessKeyシークレットを指定します。srcTypeパラメータが
local
またはhttp
に設定されている場合は、このパラメータを無視します。srcTypeパラメータが
youpai
に設定されている場合は、ソースにアクセスするために使用するオペレーターパスワードを指定します。srcTypeパラメータが
azure
に設定されている場合は、ソースにアクセスするために使用するアカウントキーを指定します。
srcDomain
ソースエンドポイント。
srcTypeパラメータが
local
またはhttp
に設定されている場合は、このパラメータを無視します。srcTypeパラメータが
oss
に設定されている場合は、バケット名を含まないエンドポイントを指定します。エンドポイントはOSSコンソールから取得できます。srcTypeパラメータが
qiniu
に設定されている場合は、バケットのドメイン名を指定します。ドメイン名はKODOコンソールから取得できます。srcTypeパラメータがbosに設定されている場合は、BOSドメイン名(
http://bj.bcebos.com
またはhttp://gz.bcebos.com
など)を指定します。srcTypeパラメータがks3に設定されている場合は、KS3ドメイン名(
http://kss.ksyun.com
、http://ks3-cn-beijing.ksyun.com
、またはhttp://ks3-us-west-1.ksyun.coms
など)を指定します。srcTypeパラメータが
S3
に設定されている場合は、対応するAmazon S3リージョンのエンドポイントを指定します。srcTypeパラメータが
youpai
に設定されている場合は、USSドメイン名(http://v0.api.upyun.com
(最適な回線を自動的に識別)、http://v1.api.upyun.com
(China Telecom回線)、http://v2.api.upyun.com
(China Unicom回線)、またはhttp://v3.api.upyun.com
(China Mobile回線)など)を指定します。srcTypeパラメータが
cos
に設定されている場合は、COSバケットが存在するリージョンを指定します。例:ap-guangzhou。srcTypeパラメータが
cos
に設定されている場合は、Azure Blob Storage接続文字列のエンドポイントサフィックスを指定します。例:core.chinacloudapi.cn。
srcBucket
ソースバケットまたはコンテナの名前。
srcTypeパラメータが
local
またはhttp
に設定されている場合は、このパラメータを無視します。srcTypeパラメータが
azure
に設定されている場合は、ソースコンテナの名前を指定します。srcTypeパラメータがlocalとazure以外に設定されている場合は、バケットの名前を指定します。
srcPrefix
ソースプレフィックス。値はSTRING型です。このパラメータはデフォルトで空です。
srcTypeパラメータがlocalに設定されている場合は、スラッシュ(/)で終わるフルパスを指定します。パスに2つ以上のディレクトリレベルが含まれている場合は、スラッシュ(/)で区切ります。例:
c:/example/
および/data/example/
。重要c:/example//、/data//example/、/data/example//などのパスは無効です。
srcTypeパラメータが
oss
、qiniu
、bos
、ks3
、youpai
、またはs3
に設定されている場合は、移行するオブジェクトのプレフィックスをバケット名を除いて指定します(data/to/oss/
など)。すべてのオブジェクトを移行するには、srcPrefixパラメータを空のままにします。
destAccessKey
宛先OSSバケットにアクセスするために使用するAccessKey ID。値はSTRING型です。
宛先OSSバケットにアクセスするために使用するAccessKey IDは、OSSコンソールから取得できます。
destSecretKey
宛先OSSバケットにアクセスするために使用するAccessKeyシークレット。値はSTRING型です。
宛先OSSバケットにアクセスするために使用するAccessKeyシークレットは、OSSコンソールから取得できます。
destDomain
宛先エンドポイント。値はSTRING型です。
バケット名を含まない宛先エンドポイントは、OSSコンソールから取得できます。詳細については、「リージョンとエンドポイント」を参照してください。
destBucket
宛先バケット。値はSTRING型です。
宛先OSSバケットの名前。名前はスラッシュ(/)で終わることはできません。
destPrefix
宛先OSSバケットに移行されたオブジェクトの名前のプレフィックス。
このパラメータはデフォルトで空です。デフォルト値を保持すると、移行されたオブジェクトは宛先バケットのルートディレクトリに保存されます。
OSSの特定のディレクトリにデータを移行するには
、プレフィックスをスラッシュ(/)で終了します。例:
data/in/oss/
。OSSオブジェクト名はスラッシュ(/)で始めることはできません。 destPrefixパラメータをスラッシュ(/)で始まる値に設定しないでください。
パスがsrcPrefix+relativePath形式のローカルファイルは、destDomain/destBucket/destPrefix+relativePath形式のOSSパスに移行されます。
クラウド内のsrcDomain/srcBucket/srcPrefix+relativePath形式のパスを持つオブジェクトは、destDomain/destBucket/destPrefix+relativePath形式のOSSパスに移行されます。
taskObjectCountLimit
各サブタスクのファイルの最大数。値はINTEGER型です。デフォルト値は10000です。
このパラメータは、実行するサブタスクの並列処理レベルに影響します。ほとんどの場合、このパラメータは、次の式に基づいて計算された値に設定します。ファイルの総数/ワーカーの総数/移行スレッドの数(workerTaskThreadNum)。最大値は50000です。ファイルの総数が不明な場合は、デフォルト値を保持します。
taskObjectSizeLimit
各サブタスクの最大データサイズ(バイト単位)。値はINTEGER型です。デフォルトの最大データサイズは1 GBです。
このパラメータは、実行するサブタスクの並列処理レベルに影響します。ほとんどの場合、このパラメータは、次の式に基づいて計算された値に設定します。データの総サイズ/ワーカーの総数/移行スレッドの数(workerTaskThreadNum)。データの総サイズが不明な場合は、デフォルト値を保持します。
isSkipExistFile
データ移行中にすでに存在するオブジェクトをスキップするかどうかを指定します。値はBOOLEAN型です。
trueの値は、オブジェクトのサイズと最終更新時刻に基づいてオブジェクトがスキップされることを指定します。 falseの値は、すでに存在するオブジェクトが上書きされることを指定します。デフォルト値はfalseです。
scanThreadCount
ファイルを並列にスキャンするスレッドの数。値はINTEGER型です。
デフォルト値:1。
有効な値:1~32。
このパラメータは、ファイルスキャンの効率に影響します。特別な要件がない場合は、デフォルト値を保持します。
maxMultiThreadScanDepth
並列スキャンのディレクトリの最大深度。値はINTEGER型です。
デフォルト値:1。
有効な値:1~16。
値1は、トップレベルディレクトリでの並列スキャンを指定します。
特別な要件がない場合は、デフォルト値を保持します。値が大きいと、タスクが失敗する可能性があります。
appId
COSのアプリケーションID。値はINTEGER型です。
このパラメータは、srcTypeパラメータがcosに設定されている場合に有効です。
httpListFilePath
HTTP URLリストファイルの絶対パス。値はSTRING型です。
このパラメータは、srcTypeパラメータがhttpに設定されている場合に有効です。ソースがHTTP URLリストの場合は、このパラメータを指定する必要があります。例:c:/example/http.list。
ファイル内のHTTP URLは、1つ以上のスペースで区切られた2つの部分に分割する必要があります。最初の部分はプレフィックス、2番目の部分は、URLでホストされているオブジェクトが移行された後のOSS内のオブジェクトの相対パスです。たとえば、c:/example/http.listパスのHTTP URLリストファイルには、次のURLが含まれています。
http://xxx.xxx.com/aa/ bb.jpg http://xxx.xxx.com/cc/ dd.jpg
destPrefixパラメータをee/に設定すると、OSSに移行されたオブジェクトの名前は次のようになります。
ee/bb.jpg ee/dd.jpg
workers: 分散モードでのみ使用可能です。1行に1つのIPアドレスを指定します。例:
192.168.1.6 192.168.1.7 192.168.1.8
上記の例では、最初の行の
192.168.1.6
がマスターです。つまり、192.168.1.6
は、マスター、ワーカー、およびトラッカーが起動されるデバイスのIPアドレスです。コンソールもこのデバイスで実行されます。すべてのワーカーで同じユーザー名、ログオン方法、および作業ディレクトリが使用されていることを確認してください。
構成ファイルの例
次の表に、分散モードでのデータ移行タスクの構成ファイルの例へのリンクを示します。スタンドアロンモードの構成ファイルの名前はlocal_job.cfg
で、分散モードの構成ファイルと同じ構成項目が含まれています。
移行シナリオ | 構成ファイル | 説明 |
ローカルストレージからOSSに移行する | srcPrefix パラメーターを、スラッシュ (/) で終わる絶対パスに設定します。例: | |
KODOからOSSに移行する | srcPrefix パラメーターと destPrefix パラメーターは空のままにすることができます。パラメーターを指定する場合は、値をスラッシュ (/) で終了します。例: | |
BOSからOSSに移行する | srcPrefix パラメーターと destPrefix パラメーターは空のままにすることができます。パラメーターを指定する場合は、値をスラッシュ (/) で終了します。例: | |
Amazon S3からOSSに移行する | 詳細については、AWS サービスエンドポイントを参照してください。 | |
USSからOSSに移行する | srcAccessKey パラメーターをオペレーターアカウントに、srcSecretKey パラメーターを対応するパスワードに設定します。 | |
COSからOSSに移行する | COS V4 の要件に基づいて srcDomain パラメーターを指定します。例: | |
Azure Blob Storage から OSS に移行する | srcAccessKey パラメーターをストレージアカウントに、srcSecretKey パラメーターをアクセスキーに設定します。srcDomain パラメーターを Azure Blob Storage 接続文字列のエンドポイントサフィックスに設定します。例: | |
OSSバケット間でデータを移行する | この方法は、異なるリージョンにあるバケット間、または異なるストレージクラスのバケット間で、名前に異なるプレフィックスが付いたオブジェクトを移行する場合に適しています。トラフィックコストを最小限に抑えるために、ECSインスタンスにossimportをデプロイし、内部エンドポイントを使用することをお勧めします。 |
詳細設定
トラフィックのスロットリング
sys.properties 設定ファイルでは、workerMaxThroughput(KB/s) パラメーターは、ワーカーのデータ移行の最大スループットを指定します。ソース側スロットリングやネットワークスロットリングなどのスロットリングシナリオでは、ビジネスニーズに基づいて、このパラメーターをデバイスの最大利用可能帯域幅よりも小さい値に設定します。変更が完了したら、サービスを再起動して変更を有効にします。
分散モードでは、各ワーカーの $OSS_IMPORT_WORK_DIR/conf ディレクトリにある sys.properties 設定ファイルを修正し、サービスを再起動します。
トラフィックをスロットリングするには、crontab を使用してスケジュールに従って sys.properties 設定ファイルを修正し、サービスを再起動して変更を有効にします。
同時サブタスク数の変更
sys.properties 設定ファイルでは、workerTaskThreadNum パラメーターは、ワーカーが実行できる同時サブタスクの数を指定します。ネットワークの状態が悪く、ワーカーが多数のサブタスクを処理する必要がある場合、タイムアウトエラーが発生します。この問題を解決するには、同時サブタスクの数を減らして設定を変更し、サービスを再起動します。
sys.properties 設定ファイルでは、workerMaxThroughput(KB/s) パラメーターは、ワーカーのデータ移行の最大スループットを指定します。ソース側スロットリングやネットワークスロットリングなどのスロットリングシナリオでは、ビジネスニーズに基づいて、このパラメーターをデバイスの最大利用可能帯域幅よりも小さい値に設定します。
job.cfg 設定ファイルでは、taskObjectCountLimit パラメーターは、各サブタスクのファイルの最大数を指定します。デフォルト値は 10000 です。このパラメーター設定は、サブタスクの数に影響します。サブタスクの数が少ない場合、同時サブタスクの実装効率が低下します。
job.cfg 設定ファイルでは、taskObjectSizeLimit パラメーターは、各サブタスクの最大データサイズを指定します。各サブタスクのデフォルトの最大データサイズは 1 GB です。このパラメーター設定は、サブタスクの数に影響します。サブタスクの数が少ない場合、同時サブタスクの実装効率が低下します。
重要データ移行を開始する前に、設定ファイルのパラメーターを設定します。
sys.properties 設定ファイルのパラメーターを変更した後、変更を有効にするには、ossimport がデプロイされているローカルサーバーまたは ECS インスタンスを再起動します。
job.cfg ファイルで設定された移行タスクが送信された後、job.cfg ファイルのパラメーターは変更できません。
データを移行せずに検証する
ossimport では、移行操作を実行せずにデータのみを検証できます。データ移行をスキップしてデータのみを検証するには、job.cfg または local_job.cfg ファイルの jobType パラメーターを import ではなく audit に設定し、データ移行の場合と同じ方法で他のパラメーターを設定します。
増分データ移行モードを指定する
増分データ移行モードでは、ossimport は移行タスクの開始後に既存の全データを移行し、増分データを一定間隔で移行します。全データ移行は、タスクを送信した後に開始されます。その後、増分データは一定間隔で移行されます。増分データ移行モードは、データのバックアップと同期に適しています。
増分データ移行モードでは、次の設定項目を使用できます。
job.cfg 設定ファイルでは、isIncremental パラメーターは、増分データ移行モードを有効にするかどうかを指定します。有効な値: true および false。デフォルト値: false。
job.cfg 設定ファイルでは、incrementalModeInterval パラメーターは、増分データ移行が実装される間隔を秒単位で指定します。この設定項目は、
isIncremental
パラメーターが true に設定されている場合にのみ有効になります。最小値は900
です。このパラメーターを 3600 より小さい値に設定しないことをお勧めします。そうしないと、多数のリクエストが無駄になります。これにより、追加のオーバーヘッドが発生します。
移行するデータをフィルタリングする
特定の条件を満たすオブジェクトを移行するために、フィルタリング条件を設定できます。ossimport では、プレフィックスと最終更新時刻を使用して、移行するオブジェクトを指定できます。
job.cfg 設定ファイルでは、srcPrefix パラメーターは、移行するソースデータのプレフィックスを指定します。このパラメーターはデフォルトでは空です。
srcType
パラメーターを local に設定する場合は、このパラメーターをローカルディレクトリのパスに設定します。スラッシュ (/) で終わるフルパスを指定する必要があります。パスに 2 つ以上のディレクトリレベルが含まれている場合は、スラッシュ (/) で区切ります。例:c:/example/
または/data/example/
。srcType
パラメーターをoss
、qiniu
、bos
、ks3
、youpai
、またはs3
に設定する場合は、このパラメーターをバケット名のないソースオブジェクトの名前プレフィックスに設定します。例:data/to/oss/
。ソース内のすべてのデータを移行するには、srcPrefix
パラメーターを空のままにします。
job.cfg 設定ファイルでは、importSince パラメーターは、ソースデータの最終更新時刻を秒単位で指定します。importSince パラメーターは、UNIX 形式のタイムスタンプを指定します。これは、1970 年 1 月 1 日木曜日 00:00:00 から経過した秒数です。date +%s コマンドを実行して、UNIX タイムスタンプを照会できます。デフォルト値は 0 で、すべてのデータが移行されることを指定します。増分データ移行モードでは、このパラメーターは全データ移行に対してのみ有効です。増分データ移行以外の移行モードでは、このパラメーターは移行タスク全体で有効です。
オブジェクトの最終更新時刻が
importSince
パラメーターの値よりも前の場合、オブジェクトは移行されません。オブジェクトの最終更新時刻が
importSince
パラメーターの値よりも後の場合、オブジェクトは移行されます。