Skip to main content
NetApp data management solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

部署步驟

貢獻者 kevin-hoke

本節介紹用於資料傳輸的NetApp XCP 的部署步驟。

試驗台細節

下表提供了用於此部署和效能驗證的測試平台的詳細資訊。

解決方案組件 細節

XCP 版本 1.7

  • 一台 Linux 伺服器 - Linux(RHEL 7.9 或 RHEL 8)

  • 一台 Windows 伺服器 – Windows Server 2019 標準版

來源磁碟區的NetApp AFF儲存陣列 HA 對

  • AFF8080

  • NetApp ONTAP 9

  • NFS 協定

目標磁碟區的NetApp AFF儲存陣列 HA 對

  • AFF A800

  • ONTAP 9

  • NFS 協定

富士通PRIMERGY RX2540伺服器

每個配備:* 48 個 CPU * Intel Xeon * 256GB 實體記憶體 * 10GbE 雙端口

聯網

10GbE

部署步驟 - NAS

若要部署NetApp XCP 進行資料傳輸,請先在目標位置安裝並啟動 XCP 軟體。您可以在 "NetApp XCP 使用者指南"。為此,請完成以下步驟:

  1. 滿足本節中詳細說明的先決條件"XCP 的先決條件。"

  2. 從下載 XCP 軟體 "NetApp XCP(下載)頁面"

  3. 將下載的 XCP tar 檔案複製到 XCP 伺服器。

    # scp Documents/OneDrive\ -\ NetApp\ Inc/XCP/software/1.6.1/NETAPP_XCP_1.6.1.tgz mailto:root@10.63.150.53:/usr/src
  4. 解壓縮 tarfile。

    [root@mastr-53 src]# tar -zxvf NETAPP_XCP_1.6.1.tgz
  5. 從下載許可證 "https://xcp.netapp.com/license/xcp.xwic"並複製到XCP伺服器。

  6. 啟動許可證。

    [root@mastr-53 linux]# ./xcp activate
    [root@mastr-53 src]# cp license /opt/NetApp/xFiles/xcp/license
    [root@mastr-53 src]# cd /usr/src/xcp/linux/
    [root@mastr-53 linux]# ./xcp activate
  7. 找到來源 NFS 連接埠和目標 NFS 伺服器。預設連接埠為 2049。

    [root@mastr-53 ~]# rpcinfo -p 10.63.150.213
    [root@mastr-53 ~]# rpcinfo -p 10.63.150.63
  8. 檢查 NFS 連接。使用 telnet 到 NFS 伺服器連接埠檢查 NFS 伺服器(來源和目標)。

    [root@mastr-53 ~]# telnet 10.63.150.127 2049
    [root@mastr-53 ~]# telnet 10.63.150.63 2049
  9. 配置目錄。

    1. 建立 NFS 磁碟區並為 XCP 目錄匯出 NFS。您也可以利用作業系統 NFS 匯出 XCP 目錄。

      A800-Node1-2::> volume create -vserver Hadoop_SVM -volume xcpcatalog -aggregate aggr_Hadoop_1 -size 50GB -state online -junction-path /xcpcatalog -policy default -unix-permissions ---rwxr-xr-x -type RW -snapshot-policy default -foreground true
      A800-Node1-2::> volume mount -vserver Hadoop_SVM -volume xcpcatalog_vol -junction-path /xcpcatalog
    2. 檢查 NFS 導出。

      [root@mastr-53 ~]# showmount -e 10.63.150.63 | grep xcpca
      /xcpcatalog (everyone)
    3. 更新 xcp.ini

      [root@mastr-53 ~]# cat /opt/NetApp/xFiles/xcp/xcp.ini
      # Sample xcp config
      [xcp]
      catalog = 10.63.150.64:/xcpcatalog
      
      [root@mastr-53 ~]#
  10. 使用以下方式尋找來源 NAS 匯出 xcp show。尋找:

    == NFS Exports ==
    == Attributes of NFS Exports ==
    [root@mastr-53 linux]# ./xcp show 10.63.150.127
    == NFS Exports ==
    <check here>
    == Attributes of NFS Exports ==
    <check here>
  11. (可選)掃描來源 NAS 資料。

    [root@mastr-53 linux]# ./xcp scan -newid xcpscantest4 -stats 10.63.150.127:/xcpsrc_vol

    掃描來源 NAS 資料有助於您了解資料佈局並發現任何潛在的遷移問題。 XCP掃描操作時間與檔案數量和目錄深度成正比。如果您熟悉 NAS 數據,可以跳過此步驟。

  12. 檢查由 xcp scan。主要搜尋無法讀取的資料夾和無法讀取的檔案。

    [root@mastr-53 linux]# mount 10.63.150.64:/xcpcatalog  /xcpcatalog
    base) nkarthik-mac-0:~ karthikeyannagalingam$ scp -r root@10.63.150.53:/xcpcatalog/catalog/indexes/xcpscantest4 Documents/OneDrive\ -\ NetApp\ Inc/XCP/customers/reports/
  13. (可選)更改 inode。查看 inode 的數量,並根據目錄和目標磁碟區要遷移或複製的檔案數量修改該數量(如果需要)。

    A800-Node1-2::> volume show -volume xcpcatalog -fields files,files-used
    A800-Node1-2::> volume show -volume xcpdest -fields files,files-used
    A800-Node1-2::> volume modify -volume xcpcatalog -vserver A800-Node1_vs1 -files 2000000
    Volume modify successful on volume xcpcatalog of Vserver A800-Node1_vs1.
    
    A800-Node1-2::> volume show -volume xcpcatalog -fields files,files-used
  14. 掃描目標卷。

    [root@mastr-53 linux]# ./xcp scan -stats 10.63.150.63:/xcpdest
  15. 檢查來源和目標磁碟區空間。

    [root@mastr-53 ~]# df -h /xcpsrc_vol
    [root@mastr-53 ~]# df -h /xcpdest/
  16. 使用以下方法將資料從來源複製到目標 `xcp copy`並檢查摘要。

    [root@mastr-53 linux]# ./xcp copy -newid create_Sep091599198212 10.63.150.127:/xcpsrc_vol 10.63.150.63:/xcpdest
    <command inprogress results removed>
    Xcp command : xcp copy -newid create_Sep091599198212 -parallel 23 10.63.150.127:/xcpsrc_vol 10.63.150.63:/xcpdest
    Stats       : 9.07M scanned, 9.07M copied, 118 linked, 9.07M indexed, 173 giants
    Speed       : 1.57 TiB in (412 MiB/s), 1.50 TiB out (392 MiB/s)
    Total Time  : 1h6m.
    STATUS      : PASSED
    [root@mastr-53 linux]#
    註 預設情況下,XCP 會建立七個並行進程來複製資料。這可以調整。
    註 NetApp建議來源磁碟區為唯讀。即時地,來源磁碟區是一個活動的、活躍的檔案系統。這 `xcp copy`操作可能會失敗,因為NetApp XCP 不支援由應用程式不斷更改的即時來源。

    對於 Linux,XCP 需要索引 ID,因為 XCP Linux 執行編目。

  17. (可選)檢查目標NetApp磁碟區上的 inode。

    A800-Node1-2::> volume show -volume xcpdest -fields files,files-used
    vserver        volume  files    files-used
    -------------- ------- -------- ----------
    A800-Node1_vs1 xcpdest 21251126 15039685
    
    A800-Node1-2::>
  18. 使用以下方式執行增量更新 xcp sync

    [root@mastr-53 linux]# ./xcp sync -id create_Sep091599198212
    Xcp command : xcp sync -id create_Sep091599198212
    Stats       : 9.07M reviewed, 9.07M checked at source, no changes, 9.07M reindexed
    Speed       : 1.73 GiB in (8.40 MiB/s), 1.98 GiB out (9.59 MiB/s)
    Total Time  : 3m31s.
    STATUS      : PASSED

    對於本文檔,為了模擬即時性,將來源資料中的一百萬個文件重新命名,然後使用以下方法將更新的文件複製到目標位置: xcp sync 。對於 Windows,XCP 需要來源路徑和目標路徑。

  19. 驗證資料傳輸。您可以使用以下方法驗證來源和目標是否具有相同的數據 xcp verify

    Xcp command : xcp verify 10.63.150.127:/xcpsrc_vol 10.63.150.63:/xcpdest
    Stats       : 9.07M scanned, 9.07M indexed, 173 giants, 100% found (6.01M have data), 6.01M compared, 100% verified (data, attrs, mods)
    Speed       : 3.13 TiB in (509 MiB/s), 11.1 GiB out (1.76 MiB/s)
    Total Time  : 1h47m.
    STATUS      : PASSED

XCP 文件提供了多種選項(帶有範例) scancopysync , 和 `verify`營運.有關詳細信息,請參閱 "NetApp XCP 使用者指南"

註 Windows 客戶應使用存取控制清單 (ACL) 複製資料。 NetApp建議使用指令 xcp copy -acl -fallbackuser\<username> -fallbackgroup\<username or groupname> <source> <destination>。為了獲得最佳效能,考慮到來源磁碟區具有帶有 ACL 的 SMB 資料以及可由 NFS 和 SMB 存取的數據,目標必須是 NTFS 磁碟區。使用 XCP(NFS 版本),從 Linux 伺服器複製資料並與 `-acl`和 `-nodata`Windows 伺服器選項將 ACL 從來源資料複製到目標 SMB 資料。

部署步驟 - HDFS/MapRFS 資料遷移

在本節中,我們討論新的 XCP 功能“Hadoop 檔案系統資料傳輸到 NAS”,它將資料從 HDFS/MapRFS 遷移到 NFS,反之亦然。

先決條件

對於 MapRFS/HDFS 功能,您必須在非 root 使用者環境中執行下列步驟。通常非 root 使用者是 hdfs、mapr 或有權限在 HDFS 和 MapRFS 檔案系統中進行更改的使用者。

  1. 在 CLI 或使用者的 .bashrc 檔案中設定 CLASSPATH、HADOOP_HOME、NHDFS_LIBJVM_PATH、LB_LIBRARY_PATH 和 NHDFS_LIBHDFS_PATH 變數以及 `xcp`命令。

    • NHDFS_LIBHDFS_PATH 指向 libhdfs.so 檔案。該檔案提供 HDFS API 來互動和操作 HDFS/MapRFS 檔案和檔案系統,作為 Hadoop 發行版的一部分。

    • NHDFS_LIBJVM_PATH 指向 libjvm.so 檔案。這是JAVA虛擬機器共享庫在jre中的位置。

    • CLASSPATH 使用(Hadoop classpath –glob)值指向所有 jar 檔案。

    • LD_LIBRARY_PATH 指向 Hadoop 本機程式庫資料夾位置。

      請參閱以下基於 Cloudera 叢集的範例。

    export CLASSPATH=$(hadoop classpath --glob)
    export LD_LIBRARY_PATH=/usr/java/jdk1.8.0_181-cloudera/jre/lib/amd64/server/
    export HADOOP_HOME=/opt/cloudera/parcels/CDH-6.3.4-1.cdh6.3.4.p0.6751098/
    #export HADOOP_HOME=/opt/cloudera/parcels/CDH/
    export NHDFS_LIBJVM_PATH=/usr/java/jdk1.8.0_181-cloudera/jre/lib/amd64/server/libjvm.so
    export NHDFS_LIBHDFS_PATH=$HADOOP_HOME/lib64/libhdfs.so

    +
    在此版本中,我們支援 XCP 掃描、複製和驗證操作以及從 HDFS 到 NFS 的資料遷移。您可以從資料湖叢集單一工作節點和多個工作節點傳輸資料。在1.8版本中,root用戶和非root用戶都可以執行資料遷移。

部署步驟 - 非 root 使用者將 HDFS/MaprFS 資料移轉到NetApp NFS

  1. 請依照部署部分步驟 1-9 中提到的相同步驟進行操作。

  2. 在以下範例中,使用者將資料從 HDFS 遷移到 NFS。

    1. 建立資料夾和檔案(使用 hadoop fs -copyFromLocal) 在 HDFS 中。

      [root@n138 ~]# su - tester -c 'hadoop fs -mkdir /tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src'
      [root@n138 ~]# su - tester -c 'hadoop fs -ls -d  /tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src'
      drwxr-xr-x   - tester supergroup          0 2021-11-16 16:52 /tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src
      [root@n138 ~]# su - tester -c "echo 'testfile hdfs' > /tmp/a_hdfs.txt"
      [root@n138 ~]# su - tester -c "echo 'testfile hdfs 2' > /tmp/b_hdfs.txt"
      [root@n138 ~]# ls -ltrah /tmp/*_hdfs.txt
      -rw-rw-r-- 1 tester tester 14 Nov 16 17:00 /tmp/a_hdfs.txt
      -rw-rw-r-- 1 tester tester 16 Nov 16 17:00 /tmp/b_hdfs.txt
      [root@n138 ~]# su - tester -c 'hadoop fs -copyFromLocal /tmp/*_hdfs.txt hdfs:///tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src'
      [root@n138 ~]#
    2. 檢查 HDFS 資料夾中的權限。

      [root@n138 ~]# su - tester -c 'hadoop fs -ls hdfs:///tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src'
      Found 2 items
      -rw-r--r--   3 tester supergroup         14 2021-11-16 17:01 hdfs:///tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src/a_hdfs.txt
      -rw-r--r--   3 tester supergroup         16 2021-11-16 17:01 hdfs:///tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src/b_hdfs.txt
    3. 在 NFS 中建立一個資料夾並檢查權限。

      [root@n138 ~]# su - tester -c 'mkdir /xcpsrc_vol/mohankarthiknfs_dest'
      [root@n138 ~]# su - tester -c 'ls -l /xcpsrc_vol/mohankarthiknfs_dest'
      total 0
      [root@n138 ~]# su - tester -c 'ls -d /xcpsrc_vol/mohankarthiknfs_dest'
      /xcpsrc_vol/mohankarthiknfs_dest
      [root@n138 ~]# su - tester -c 'ls -ld /xcpsrc_vol/mohankarthiknfs_dest'
      drwxrwxr-x 2 tester tester 4096 Nov 16 14:32 /xcpsrc_vol/mohankarthiknfs_dest
      [root@n138 ~]#
    4. 使用 XCP 將檔案從 HDFS 複製到 NFS,並檢查權限。

      [root@n138 ~]# su - tester -c '/usr/src/hdfs_nightly/xcp/linux/xcp copy -chown hdfs:///tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src/ 10.63.150.126:/xcpsrc_vol/mohankarthiknfs_dest'
      XCP Nightly_dev; (c) 2021 NetApp, Inc.; Licensed to Karthikeyan Nagalingam [NetApp Inc] until Wed Feb  9 13:38:12 2022
      
      xcp: WARNING: No index name has been specified, creating one with name: autoname_copy_2021-11-16_17.04.03.652673
      
      Xcp command : xcp copy -chown hdfs:///tmp/testerfolder_src/util-linux-2.23.2/mohankarthikhdfs_src/ 10.63.150.126:/xcpsrc_vol/mohankarthiknfs_dest
      Stats       : 3 scanned, 2 copied, 3 indexed
      Speed       : 3.44 KiB in (650/s), 80.2 KiB out (14.8 KiB/s)
      Total Time  : 5s.
      STATUS      : PASSED
      [root@n138 ~]# su - tester -c 'ls -l /xcpsrc_vol/mohankarthiknfs_dest'
      total 0
      -rw-r--r-- 1 tester supergroup 14 Nov 16 17:01 a_hdfs.txt
      -rw-r--r-- 1 tester supergroup 16 Nov 16 17:01 b_hdfs.txt
      [root@n138 ~]# su - tester -c 'ls -ld /xcpsrc_vol/mohankarthiknfs_dest'
      drwxr-xr-x 2 tester supergroup 4096 Nov 16 17:01 /xcpsrc_vol/mohankarthiknfs_dest
      [root@n138 ~]#