nasimport ツールを使用すると、ローカルデータセンター、Alibaba Cloud OSS、またはサードパーティのストレージサービス内のオブジェクトを Alibaba Cloud NAS に同期させることができます。

主な機能

SLB IPv6 には次の機能が備わっています。

  • *ツールは、エフェメラルディスク、OSS、Qiniu、Baidu Object Storage、Jinshan Object Storage、UPYUN、Amazon S3、Tencent Cloud COS、および指定した NAS への HTTP リンク上のオブジェクトの同期をサポートします。
  • * NAS の自動マウントに対応しています。
  • 既存データの同期をサポートします (指定された時点の後にオブジェクトの同期を許可します)。
  • 増分データを自動的に同期します。
  • 再開可能なデータ転送をサポートします。
  • *パラレルリストとパラレルデータのダウンロード/アップロードをサポートします。

[nasimport] 同期ツールに加えて、短時間で大量のデータ (2 TBを超える) をNASに移行する場合は、技術スタッフがマルチマシンパラレル同期ソリューションも提供します。 詳細については、チケットを起票し、サポートセンターにお問い合わせください。

実行環境

この移行ツールは、ターゲット NAS ファイルシステムをマウントできる ECS 仮想マシン上で実行する必要があります。 NAS ファイルシステムのマウントとそのマウント方法の詳細については、次をご参照ください:ファイルシステムをマウントする前の留意事項

Nasimport 移行ツールは、Java JDK 1.7 以上の環境で実行する必要があります。 Oracle バージョンのJDK: Click to view を推奨します。http://www.oracle.com/technetwork/indexes/downloads/index.html?spm=5176.doc32201.2.1.Y4A7gH#java

プログラムを実行する前に、プロセスが開くことができるファイル数の設定を確認してください (ulimit -n view)。数が 10,240 より小さい場合は、それに応じて修正する必要があります。

デプロイメントと設定

まず、ローカルサーバー上に同期作業ディレクトリを作成してから、このディレクトリに [nasimport] ツールキットをダウンロードします。

例:

たとえば、作業ディレクトリとして「/ root / ms」を作成し、このディレクトリにツールキットをダウンロードします。

Export work_dir =/root/MS
Wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/45306/cn_zh/1479113980204/nasimport_linux.tgz
Tar Zac./nasimport_linux.tgz-C "$ work_dir"

作業ディレクトリ ($ work_dir) にある設定ファイル "config / sys.properties" を編集します。

Vim $ work_dir/config/sys. Properties
Workingdir =/root/MS
Slaveusername =
Slavepassword =
Privatekeyfile =
Slavetaskthreadnum = 60
Slavemaxthroughput (kb/s) = 100000000
Slaveabortwhenuncatchedexception = false
Dispatcherthreadnum = 5

デフォルト設定を使用することを推奨します。 必要に応じて設定フィールドの値を編集できます。 各フィールドの説明は次の表のとおりです。

フィールド フィールドの説明
workingDir 現在の作業ディレクトリ、つまりツールキットの抽出先ディレクトリを示します。
slaveTaskThreadNum 同期を同時に実行する作業スレッドの数を示します。
slaveMaxThroughput(KB/s) 移行トラフィックの上限
slaveAbortWhenUncatchedException 未知のエラーをスキップするか中止するかを示します。 未知のエラーはデフォルトでは中止されません。
dispatcherThreadNum ディスパッチングタスク内の並列スレッドの数を示します。 通常はデフォルト値で十分です。

移行

nasimport ツールは次のコマンドをサポートしています。
  • >* Submit a job: 'java -jar $work_dir/bin/ossimport2.jar -c $work_dir/conf/sys.properties submit $jobConfigPath'
  • java -jar $work_dir/nasimport.jar -c $work_dir/config/sys.properties retry $jobNam
  • >* View status: 'java -jar $work_dir/bin/ossimport2.jar -c $work_dir/conf/sys.properties stat detail'
  • java -jar $work_dir/nasimport.jar -c $work_dir/config/sys.properties retry $jobNam
移行タスクを設定するには、次の手順を実行します。
  1. 次のコマンドを実行してコネクションを開始します。
    CD $ work_dir
    Nohup java-Dskip_exist_file = false-jar $ work_dir/nasimport. jar-C $ work_dir/config/sys. properties Start> $ work_dir/nasimport. log 2> & 1 &
    
    関連ログファイルは、nasimport が起動されたディレクトリに自動的に生成されます。 作業ディレクトリ ($ work_dir) から nasimport を起動することを推奨します。 ジョブの開始時に "skip_exist_file" 値が true の場合、NAS ファイルシステムに存在し、ソースと同じ長さのファイルはアップロードでスキップされます。
  2. 2. サンプルのジョブ記述ファイル "local_job.cfg" を編集します。 ファイル内のフィールドは、以下のテーブルについての説明です。
    フィールド名 説明
    jobName タスクはカスタムタスク名で特定されます。 異なる名前で複数のタスクを送信できます。
    jobType これは、インポート (データ同期操作を実行) またはモニター (同期されたソースデータとコピー先データのグローバル整合性のみを検証する) に設定できます。
    isIncremental=false このフィールドは、自動増分モードを有効にするかどうかを指定します。 true に設定されている場合、増分データはincrementalModeInterval (単位:秒) で指定された間隔で再スキャンされ、OSS と同期されます。|
    incrementalModeInterval=86400 増分モードでの同期間隔
    importSince この時間より後のデータの同期のための時間を指定します。 この時間は、UNIX タイムスタンプ (秒数) として指定され、デフォルト値は 0 です。
    srcType 同步源类型,目前支持 oss,qiniu,baidu,ks3,youpai,local
    srcAccessKey 如果 srcType设 置为 oss,qiniu,baidu,ks3youpai,则需要填写数据源的 access key
    srcSecretKey 如果 srcType 设置为 oss,qiniu,baidu,ks3youpai,则需要填写数据源的 secret key
    srcDomain ソースエンドポイント
    srcBucket ソースバケット名
    srcPrefix このフィールドはソースプレフィックスを指定し、デフォルトでは空白です。 srcType が local に設定されている場合は、同期するローカルディレクトリを入力します。 ディレクトリは完全でなければならないことに注意してください (/ で終わります)。 如果 srcType 设置为 oss,qiniu,baidu,ks3youpai,则需要填写待同步的 Object 前缀,同步所有文件前缀可以设置为空。
    destType 同期オブジェクトタイプ (デフォルトは nas)
    destMountDir NAS ローカルマウントディレクトリ
    destMountTarget NAS マウントポイントドメイン名
    destNeedMount=true このフィールドは、ツールが自動マウントを実行するかどうかを指定し、デフォルトでは true に設定されています。 false に設定して手動で destMountDir ディレクトリにNAS マウントポイントをマウントすることもできます。
    destPrefix このフィールドには同期先ファイルのプレフィックスを入力します。デフォルトでは空白です。
    taskObjectCountLimit 各タスクの最大ファイル数 このフィールドはタスクの並列実行に影響し、通常はファイルの総数または設定したダウンロードスレッドの数に設定されます。 ファイルの総数がわからない場合は、デフォルト値をそのまま使用できます。
    taskObjectSizeLimit 各タスクでダウンロードされたデータの最大量 (バイト)
    scanThreadCount ファイルを並列にスキャンするスレッド数 このフィールドはファイルスキャン効率に影響します。
    maxMultiThreadScanDepth 並列スキャンにおけるディレクトリの最大許容深度 デフォルト値を維持することができます。
    • 自動増分モードを設定している場合、ジョブは定期的かつ恒久的に実行されて最新のデータがスキャンされます。
    • 对于 srcType youpai 的情况,由于又拍云本身 API 限制,list 文件的操作无法实现 checkpoint,在 list 完成之前杀掉进程会导致重新 list 所有文件的操作。
  3. 次のコマンドを実行して CLI をインストールします。
    Java-jar $ work_dir/nasimport. jar-C $ work_dir/config/sys. properties submit $ work_dir/FIG
    
    • 送信したジョブが進行中のジョブと同じ名前の場合、そのジョブを送信することはできません。
    • * 同期ジョブを一時停止する必要がある場合は、nasimport プロセスを中止できます。 nasimort プロセスを再開して同期を再開することができます。この時点で、同期ジョブは一時停止された場所から続行されます。
    • * すべてのオブジェクトを再同期する必要がある場合は、nassimport プロセスを停止してから、次のコマンドを呼び出して現在のジョブを消去します。 例: 現在のタスクが nas_job という名前の場合 (この名前はファイル "nas_job.cfg" に指定されています)。 次のコマンドを実行します。
      PS axu | grep "nasimport. jar. * Start "| grep-V grep | awk' {print" Kill-9 "$2} '| bash
      java -jar $work_dir/nasimport.jar  -c $work_dir/config/sys.properties retry $jobNam
      
  4. 4.ジョブの実行状況を確認します。
    java -jar $work_dir/nasimport.jar  -c $work_dir/config/sys.properties retry $jobNam
    Job stats begin ---------------
    Job, stat, begin ------------------
    Jobname: nas_job
    Jobstate: Running
    Pendingtasks: 0
    Runningtasks: 1
    Succeedtasks: 0
    Failedtasks: 0
    Scanfinished: True
    Runningtasks progress:
    Fig: 26378979/26378979 1/1
    ---------------- Job stat end ------------------
    Job stats end ---------------
    

ジョブ失敗の一般的な原因

  • *アクセスキー/ IDエラーや権限不足など、ジョブ設定エラー この場合、通常すべてのタスクが失敗します。 原因を特定するには、"$ work_dir / nasimport.log" ファイルを確認します。
  • *ソースオブジェクト名のエンコードは、システムのデフォルトのオブジェクト名エンコードと矛盾しています。 例えば、Windows では、デフォルトのオブジェクト名エンコードは GBK です。 Linux では、デフォルトのオブジェクト名エンコードは UTF-8 です。 データソースが NFS の場合、問題が発生する可能性が高くなります。
  • * アップロード処理中にソースディレクトリのオブジェクトに変更が加えられます。 この原因は、"audit.log" のSIZE_NOT_MATCH エラーによって示されます。 この場合、古いオブジェクトは正常にアップロードされていますが、変更は NAS に同期されていません。
  • アップロード処理中にソースファイルが削除され、ファイルのダウンロードが失敗します。
  • データソースでエラーが発生し、ソースデータのダウンロードが失敗します。
  • * 最初にプロセスを終了させずに "clean" を実行すると、プログラムの実行で例外が発生する可能性があります。
  • * プログラムは突然終了し、ジョブのステータスは Abort となります。 これが発生した場合は、チケットを起票し、サボートセンターへお問い合わせください。

提案

移行サービスを設定するときに、移行元が OSS の場合は、「srcDomain」を internal のイントラネットドメイン名に設定すると、OSS 移行元からのダウンロードトラフィックのコストを節約でき、移行速度が速くなります。 OSS へのアクセス料金は、アクセス数によって発生します。 OSS コンソールで OSS イントラネットドメイン名を取得できます。

NAS が独自のネットワークにあり、ソースが oss の場合は、「srcDomain」 を job から提供された VPC 環境ドメイン名に設定します。 各リージョンに対応する VPC 環境ドメイン名は次のとおりです。クリックして表示します。リージョンとエンドポイント