全部產品
Search
文件中心

Data Transport:複製本機資料

更新時間:Dec 23, 2025

本文主要介紹Lightning CubeII型如何建立和執行資料移轉任務,以及如何查看任務日誌,以實現從資料來源端讀取資料並將其儲存至Lightning Cube中。

注意事項

使用Lightning Cube遷移資料時需要注意以下事項:

  • 填寫源路徑待遷移目錄請使用絕對路徑,必須以正斜線(/)開頭和結尾,不支援環境變數和特殊字元,並且需確保待遷移目錄存在且正確有效。

  • Lightning Cube遷移時會佔用源路徑的資源,可能會影響業務正常運行。若您的業務比較重要,請提前做好評估後對源端設定限速,或在空閑時間啟動遷移任務。

  • 若您源路徑和目的OSS中有相同檔案名稱的檔案,遷移時預設會採用全部覆蓋的方式,源路徑中的檔案會覆蓋目的OSS中的檔案,若兩個檔案內容不同,請您務必變更檔名或做好備份。

  • Lightning Cube預設會保留源檔案的最後修改時間屬性,請您注意,如果目的Bucket設定了生命週期規則,且遷移後檔案處於該生命週期規則生效的時間範圍內,則該檔案可能會在規則生效時被刪除或轉為指定的歸檔類型。

    • 如無需要保留最後修改時間,可聯絡阿里雲工作人員進行設定,並請您確認已充分瞭解不保留最後修改時間所對應的風險。

遷移限制說明

  • 若您源路徑中有字元裝置檔案或塊裝置檔案、Socket檔案和管道檔案,此類資料均不會被遷移。

  • 若您遷移的源路徑中有軟連結,資料移轉時,僅transfer_symlink設定為true時,會隨即轉移軟連結,否則將不遷移。關於軟連結的詳細資料,請參見軟連結

  • 若您源路徑存在永久連結關係,遷移後會變成普通檔案。

  • 不支援檔案父目錄屬性的遷移。

  • SUID、SGID、SBID等檔案許可權不支援遷移。

  • 遷移目錄+檔案名稱總長度不得超過1024個位元組,每層目錄名稱長度不得超過200個位元組,且目錄下的檔案名稱長度不得超過255個位元組,超過該長度則不遷移。

  • 支援遷移的屬性:Permissions -> X-Oss-Meta-Perms(OSS)、Uid:Gid -> X-Oss-Meta-Owner(OSS)、mtime -> X-Oss-Meta-Mtime(OSS)、atime -> X-Oss-Meta-Atime(OSS)、ctime -> X-Oss-Meta-Ctime(OSS)。

    說明
    • Permissions:包含讀、寫、執行等9個許可權。

    • Uid:Gid:使用者ID:使用者所屬分組ID,中間以半形冒號(:)做分隔字元。

  • 不支援遷移的屬性(包括但不限於):AccessTime、Attr、Acl等。

    說明

    不支援遷移的屬性包括但不限於以上列舉的內容,其他未列舉的屬性行為暫無法確定,以實際遷移完成的內容為準。

準備工作

一、解密並掛載儲存池

開機後,儲存池處於鎖定狀態。您可通過初始秘鑰進行解密,或添加新秘鑰以實現解密。如需擷取初始秘鑰,請聯絡阿里雲工作人員。

  1. 使用初始秘鑰對儲存池進行解密如下:

    • 輸入crypt open <password>

  2. 添加新秘鑰並解密儲存池如下:

    • 輸入crypt addsecret <old_password> <new_password>

    • 如需刪除初始秘鑰,請執行crypt deletesecret <old_password>

    • 使用新秘鑰開啟儲存池,輸入crypt open <new_password>

說明

建議設定新秘鑰時,包含大小寫字母、數字和特殊符號,並確保長度不少於8位,例如:Hello@12345!。

二、初始化mgwserver

重要

當前Lightning Cube中僅支援單個Bucket,如需建立多個Bucket,請聯絡阿里雲工作人員。

建立用於本次遷移的Bucket、AK和SK。

  1. 確認mgwserver服務狀態是否正常,輸入mgwserver status ,如狀態異常時,請聯絡阿里雲工作人員。

  2. 建立Bucket,並設定AK和SK,輸入mgwserver create-bucket <Bucket> <AK> <SK>

    說明
    • Bucket:Bucket名稱,建議與雲上OSS Bucket名稱保持一致,例如 xxx-xxx-data。

    • AK:使用者名稱 ,格式為英文小寫字母、數字和特殊字元短劃線(-)和底線(_),例如 aliyuncs@2024-xx-xx。

    • SK:密碼,格式為英文小寫字母、數字和特殊字元短劃線(-)和底線(_),例如 xxxxxxxxx。

建立遷移任務

重要

任務需明確指定到目錄層級。如果需要遷移源端的所有資料,則只需建立一個遷移任務。如果僅遷移源端N個目錄下的資料,須建立N個任務。請確認所需建立的任務數量,並根據任務數量決定需要複製的job.cfg檔案數量,每個任務對應一個job.cfg檔案。

配置任務檔案

  1. 執行命令 cdmgwclient && cd conf 切換至指定目錄下。

  2. 請確認需要建立的任務數量,並根據該數量決定複製多少份demo-job.properties檔案。每個任務對應一份demo-job.properties檔案

    說明
    • 注意請將demo-job.properties檔案做好區分,例如:job1.propertiesjob2.properties

    • 如果涉及整個目錄的資料移轉,則只需建立一個任務。

    • 如果僅遷移部分目錄的資料,則每個目錄應單獨建立一個任務。以下操作將以檔案job1.properties為例進行說明。

  3. 請開啟其中一個properties檔案,例如 job1.properties,並配置以下資訊:

    參數名

    是否必選

    舉例值

    job_name

    任務名,例如:example_job。

    src_path

    填寫源路徑,注意格式要求必須以正斜線(/)開頭和以正斜線(/)結尾。

    例如:源路徑為/mnt/nas/example_dir/,此路徑下有檔案example.jpg,設定目的路徑為mgw:example_bucket/dest/,則遷移後檔案example.jpg的完整路徑為mgw:example_bucket/dest/example.jpg

    dest_path

    目的Lightning Cube的儲存路徑,格式為mgw:BucketName/prefix/,例如mgw:example_bucket/dest/

    • BucketName:為初始化mgwserver的Bucket名稱。

    • prefix:指定Bucket下的首碼,格式要求必須以正斜線(/)結尾。

      • 指定首碼:例如源路徑為/mnt/nas/example_dir/,此路徑下有檔案example.jpg,設定目的Bucket首碼為example/dest/,則遷移後檔案example.jpg的完整路徑為mgw:example_bucket/example/dest/example.jpg

      • 不指定首碼:例如源路徑為/mnt/nas/example_dir/,此路徑下有檔案example.jpg,不設定目的Bucket的首碼,則遷移後檔案的完整路徑為mgw:example_bucket/example.jpg

    transfer_dir

    是否遷移目錄。設定為true表示啟用遷移,設定為false表示禁用。

    • 啟用時,源路徑中掃描到的所有目錄自身也會被加入待遷移隊列,同時會被統計到遷移任務的記錄檔中。會在目的OSS中建立對應的'/'結尾的Null 物件,並將來源目錄(支援遷移)的屬性設定到目的對象的UserMeta中。

    • 禁用時,源路徑中掃描到的所有目錄自身將會被忽略,不會被統計到遷移任務記錄檔中。不會在目的OSS建立對應的'/'結尾的Null 物件。

    transfer_symlink

    是否遷移軟串連,設定為true表示啟用遷移,設定為false表示禁用。

    • 啟用時,源路徑中所有軟連結類型的檔案自身也會被加入待遷移隊列,同時會被統計到遷移任務的【檔案數】、【儲存量】欄位。會在目的OSS中建立對應的Symlink對象,並將源軟連結檔案(支援遷移)的屬性設定到Symlink對象的UserMeta中。關於Symlink對象的Target屬性值,先(以此軟連結所在目錄為基準)將Target屬性解析成最短絕對路徑(字元長度最短的等效路徑,AbsTarget),然後執行字串替換操作,將AbsTarget中的src_path(若匹配)替換成dest_path中的prefix,並將替換後的結果值設定到目的OSS Symlink對象的Target屬性上。

      說明

      樣本:假設遷移任務配置的src_path="/mnt/nas/example_dir/",

      dest_path中的prefix="example/dest/",/mnt/nas/example_dir/links/a.lnk是源路徑下的一個軟連結類型檔案,假設其Target屬性:

      • 為"../data/./a.txt"。則解析後的最短絕對路徑為"/mnt/nas/example_dir/data/a.txt"。則替換後的最終Target結果值為"example/dest/data/a.txt"。

      • 為"/mnt/nas/example_dir/verbose/../data/./a.txt"。則解析後的最短絕對路徑為"/mnt/nas/example_dir/data/a.txt",替換後的最終Target結果值為"example/dest/data/a.txt"。

    • 禁用時,源路徑中所有軟連結類型的檔案將會被忽略,不會被統計到遷移任務的【檔案數】、【儲存量】欄位。

      重要

      任何情況下,都不會額外遷移源地址中軟連結檔案所指向的目標檔案或目錄(除非該目標檔案或目錄也在本次遷移範圍內)

    transfers

    每個任務的並發數,預設為16,若為大檔案遷移,推薦保持預設值,如為小檔案遷移推薦設定為256,最大值256。

    log_level

    日誌等級,預設為INFO層級,如需更詳細的日誌可設定為DEBUG層級。

啟動任務

重要

請注意,請執行cdmgwclient進入該目錄進行以下操作。

執行bash console.sh start conf/properties檔案名稱啟動任務,例如:bash console.sh start conf/job1.properties

查看任務狀態

重要

請注意使用bash console.sh相關的命令,均在執行cdmgwclient進入該目錄後完成。

查看任務狀態的方法,具體如下:

  1. 執行bash console.sh status <job_name>查看任務狀態。(請替換為實際任務名)。

    1. 如JobStatus為running狀態,表示任務還在遷移中,尚未遷移結束,並可查看當前遷移進度,如下圖所示:image

    2. 如JobStatus為failed狀態,代表有檔案遷移失敗,您可自行根據日誌排查失敗原因或聯絡Lightning Cube工作人員協助排查image

    3. 如JobStatus為succeed狀態:代表全部檔案遷移完成,且無遷移失敗檔案,可查看已遷移完成的總資料量和總檔案數,如下圖所示:image

說明

返回參數說明如下:

  • 第一個Transferred: 已掃描到資料量/已遷移成功資料量,按資料量遷移百分比,平均遷移速度。

  • 第二個Transferred:已掃描到檔案數/已遷移成功檔案數,按檔案數遷移百分比。

  • Checks:跳過檔案數,僅存在跳過檔案時展示,無跳過檔案則不展示,如首次遷移後有部分失敗檔案需重新遷移,首次任務遷移成功檔案會計入跳過檔案數中。

  • Errors:失敗檔案數,僅存在遷移失敗檔案時展示,無失敗檔案則不展示。

  • Elapsed time:總遷移時間長度。

  • ScanComplete:是否掃描完成(true 表示掃描完成,false 表示未掃描完成)。

重要

如果來源資料為大平鋪目錄,則掃描所需時間將較長,進度顯示也會相對緩慢。

刪除任務

如您發現啟動了錯誤的任務,您可以通過以下命令刪除指定任務及其對應的日誌目錄:

  • 執行bash console.sh delete <job_name>刪除指定任務。(請替換為實際任務名稱,已完成遷移的檔案將不會被刪除)。

遷移後續操作

重要

請注意,以下操作均在/home/aliyuncs/log/mgwclient/job_name目錄下完成。

  1. 當遷移任務結束後,如任務的狀態為failed,您可自行根據日誌排查失敗原因或聯絡Lightning Cube工作人員協助排查。

  2. 如果遷移任務狀態為succeed,您可根據CRC64列表比對源端檔案做校正,請您務必做好資料校正。

查看日誌

重要

以下路徑或檔案名稱中包含的job_name請替換為實際任務名。

/home/aliyuncs/log/mgwclient/job_name 目錄下,會存放一些日誌用於記錄檔案的上傳狀態以及任務的狀態。

日誌名稱

記錄檔說明

job_name-status.log

任務遷移進度檔案。

job_name-folder.log

遷移的目錄列表。

job_name-transfers-error.log

遷移失敗檔案清單。

job_name-crc64-succeed.log

遷移成功檔案CRC64列表。

job_name-crc64-error.log

遷移中校正檔案CRC64失敗列表。

job_name-crc64-skipped.log

遷移中跳過檔案清單。

重要

遷移失敗分兩種情況,一種為遷移中失敗,一種為CRC64校正失敗,兩種合并後為總失敗檔案數。

任務進度日誌

  • job_name-status.log該檔案用於簡單記錄任務遷移進度資訊。

    • 第一個Transferred: 已掃描到資料量/已遷移成功資料量,按資料量遷移百分比,平均遷移速度。

    • 第二個Transferred:已掃描到檔案數/已遷移成功檔案數,按檔案數遷移百分比。

    • Checks:跳過檔案數,僅存在跳過檔案時展示,無跳過檔案則不展示,如首次遷移後有部分失敗檔案需重新遷移,首次任務遷移成功檔案會計入跳過檔案數中。

    • Errors:失敗檔案數,僅存在遷移失敗檔案時展示,無失敗檔案則不展示。

    • Elapsed time:總遷移時間長度。

    • ScanComplete:是否掃描完成(true 表示掃描完成,false 表示未掃描完成)。

遷移目錄日誌

  • job_name-folder.log 記錄上傳目錄的日誌,僅在任務設定檔設定transfer_dir為true有效,每個目錄上傳成功都會列印一條日誌。檔案記錄如下資訊:

    • 第1列:目錄路徑名稱。

遷移失敗日誌

  • job_name-transfers-error.log 記錄任務遷移失敗的檔案,日誌為即時更新,直到所有任務都結束為止。檔案記錄如下資訊:

    • 第1列:檔案路徑名稱。

    • 第2列:遷移失敗資訊。

遷移成功CRC64列表日誌

  • job_name-crc64-succeed.log 記錄任務遷移成功CRC64列表檔案,日誌為即時更新,直到所有任務都結束為止。檔案記錄如下資訊:

    • 第1列:檔案CRC64值。

    • 第2列:檔案路徑名稱。

遷移失敗CRC64列表日誌

  • job_name-crc64-error.log 記錄任務遷移失敗CRC64列表檔案,日誌為即時更新,直到所有任務都結束為止。檔案記錄如下資訊:

    • 第1列:檔案CRC64值。

    • 第2列:檔案路徑名稱。

遷移跳過日誌

  • job_name-crc64-skipped.log 記錄任務中跳過檔案日誌,日誌為即時更新,直到所有任務都結束為止。檔案記錄如下資訊:

    • 第1列:檔案路徑名稱。