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

從MapR-FS移轉ONTAP 到Sfnfs

貢獻者

本節提供ONTAP 使用NetApp XCP將MapR-FS資料移至支援NFS所需的詳細步驟。

  1. 為每個MapR節點配置三個LUN、並賦予所有MapR節點的LUN擁有權。

  2. 在安裝期間、為MapR叢集磁碟選擇新增的LUN、以用於MapR-FS。

  3. 根據 MapR 6.1 文件安裝 MapR 叢集。

  4. 使用MapReduce命令(例如「Hadoop Jar xxx」)檢查基本Hadoop作業。

  5. 將客戶資料保留在MapR-FS中。例如、我們使用Teragen在MapR-FS中產生約1 TB的樣本資料。

  6. 將MapR-FS設定為NFS匯出。

    1. 停用所有MapR節點上的nLockmanager服務。

      root@workr-138: ~$ rpcinfo -p
         program vers proto   port  service
          100000    4   tcp    111  portmapper
          100000    3   tcp    111  portmapper
          100000    2   tcp    111  portmapper
          100000    4   udp    111  portmapper
          100000    3   udp    111  portmapper
          100000    2   udp    111  portmapper
          100003    4   tcp   2049  nfs
          100227    3   tcp   2049  nfs_acl
          100003    4   udp   2049  nfs
          100227    3   udp   2049  nfs_acl
          100021    3   udp  55270  nlockmgr
          100021    4   udp  55270  nlockmgr
          100021    3   tcp  35025  nlockmgr
          100021    4   tcp  35025  nlockmgr
          100003    3   tcp   2049  nfs
          100005    3   tcp   2049  mountd
          100005    1   tcp   2049  mountd
          100005    3   udp   2049  mountd
          100005    1   udp   2049  mountd
      root@workr-138: ~$
       
      root@workr-138: ~$ rpcinfo -d 100021 3
      root@workr-138: ~$ rpcinfo -d 100021 4
    2. 在所有MapR節點的「/opt/MapR/conf/exports」檔案中、從MapR-FS匯出特定資料夾。匯出子資料夾時、請勿以不同權限匯出父資料夾。

      [mapr@workr-138 ~]$ cat /opt/mapr/conf/exports
      # Sample Exports file
      # for /mapr exports
      # <Path> <exports_control>
      #access_control -> order is specific to default
      # list the hosts before specifying a default for all
      #  a.b.c.d,1.2.3.4(ro) d.e.f.g(ro) (rw)
      #  enforces ro for a.b.c.d & 1.2.3.4 and everybody else is rw
      # special path to export clusters in mapr-clusters.conf. To disable exporting,
      # comment it out. to restrict access use the exports_control
      #
      #/mapr (rw)
      #karthik
      /mapr/my.cluster.com/tmp/testnfs /maprnfs3 (rw)
      #to export only certain clusters, comment out the /mapr & uncomment.
      #/mapr/clustername (rw)
      #to export /mapr only to certain hosts (using exports_control)
      #/mapr a.b.c.d(rw),e.f.g.h(ro)
      # export /mapr/cluster1 rw to a.b.c.d & ro to e.f.g.h (denied for others)
      #/mapr/cluster1 a.b.c.d(rw),e.f.g.h(ro)
      # export /mapr/cluster2 only to e.f.g.h (denied for others)
      #/mapr/cluster2 e.f.g.h(rw)
      # export /mapr/cluster3 rw to e.f.g.h & ro to others
      #/mapr/cluster2 e.f.g.h(rw) (ro)
      #to export a certain cluster, volume or a subdirectory as an alias,
      #comment out  /mapr & uncomment
      #/mapr/clustername         /alias1 (rw)
      #/mapr/clustername/vol     /alias2 (rw)
      #/mapr/clustername/vol/dir /alias3 (rw)
      #only the alias will be visible/exposed to the nfs client not the mapr path, host options as before
      [mapr@workr-138 ~]$
  7. 重新整理MapR-FS NFS服務。

    root@workr-138: tmp$ maprcli nfsmgmt refreshexports
    ERROR (22) -  You do not have a ticket to communicate with 127.0.0.1:9998. Retry after obtaining a new ticket using maprlogin
    root@workr-138: tmp$ su - mapr
    [mapr@workr-138 ~]$ maprlogin password -cluster my.cluster.com
    [Password for user 'mapr' at cluster 'my.cluster.com': ]
    MapR credentials of user 'mapr' for cluster 'my.cluster.com' are written to '/tmp/maprticket_5000'
    [mapr@workr-138 ~]$ maprcli nfsmgmt refreshexports
  8. 將虛擬IP範圍指派給MapR叢集中的特定伺服器或一組伺服器。然後、MapR叢集會指派IP給特定伺服器、以供NFS資料存取。這些IP可實現高可用度、也就是說、如果某個伺服器或網路發生特定IP故障、IP範圍的下一個IP可用於NFS存取。

    註 如果您想要從所有的MapR節點提供NFS存取、則可以將一組虛擬IP指派給每個伺服器、並使用每個MapR節點的資源進行NFS資料存取。

    此圖顯示輸入 / 輸出對話方塊或表示寫入內容

    此圖顯示輸入 / 輸出對話方塊或表示寫入內容

    此圖顯示輸入 / 輸出對話方塊或表示寫入內容

  9. 檢查每個MapR節點上指派的虛擬IP、並將其用於NFS資料存取。

    root@workr-138: ~$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens3f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
        link/ether 90:1b:0e:d1:5d:f9 brd ff:ff:ff:ff:ff:ff
        inet 10.63.150.138/24 brd 10.63.150.255 scope global noprefixroute ens3f0
           valid_lft forever preferred_lft forever
        inet 10.63.150.96/24 scope global secondary ens3f0:~m0
           valid_lft forever preferred_lft forever
        inet 10.63.150.97/24 scope global secondary ens3f0:~m1
           valid_lft forever preferred_lft forever
        inet6 fe80::921b:eff:fed1:5df9/64 scope link
           valid_lft forever preferred_lft forever
    3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 90:1b:0e:d1:af:b4 brd ff:ff:ff:ff:ff:ff
    4: ens3f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 90:1b:0e:d1:5d:fa brd ff:ff:ff:ff:ff:ff
    5: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 90:1b:0e:d1:af:b5 brd ff:ff:ff:ff:ff:ff
    [root@workr-138: ~$
    [root@workr-140 ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens3f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
        link/ether 90:1b:0e:d1:5e:03 brd ff:ff:ff:ff:ff:ff
        inet 10.63.150.140/24 brd 10.63.150.255 scope global noprefixroute ens3f0
           valid_lft forever preferred_lft forever
        inet 10.63.150.92/24 scope global secondary ens3f0:~m0
           valid_lft forever preferred_lft forever
        inet6 fe80::921b:eff:fed1:5e03/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 90:1b:0e:d1:af:9a brd ff:ff:ff:ff:ff:ff
    4: ens3f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 90:1b:0e:d1:5e:04 brd ff:ff:ff:ff:ff:ff
    5: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
        link/ether 90:1b:0e:d1:af:9b brd ff:ff:ff:ff:ff:ff
    [root@workr-140 ~]#
  10. 使用指派的虛擬IP來掛載NFS匯出的MapR-FS、以檢查NFS作業。不過、使用NetApp XCP進行資料傳輸時、不需要執行此步驟。

    root@workr-138: tmp$ mount -v -t nfs 10.63.150.92:/maprnfs3 /tmp/testmount/
    mount.nfs: timeout set for Thu Dec  5 15:31:32 2019
    mount.nfs: trying text-based options 'vers=4.1,addr=10.63.150.92,clientaddr=10.63.150.138'
    mount.nfs: mount(2): Protocol not supported
    mount.nfs: trying text-based options 'vers=4.0,addr=10.63.150.92,clientaddr=10.63.150.138'
    mount.nfs: mount(2): Protocol not supported
    mount.nfs: trying text-based options 'addr=10.63.150.92'
    mount.nfs: prog 100003, trying vers=3, prot=6
    mount.nfs: trying 10.63.150.92 prog 100003 vers 3 prot TCP port 2049
    mount.nfs: prog 100005, trying vers=3, prot=17
    mount.nfs: trying 10.63.150.92 prog 100005 vers 3 prot UDP port 2049
    mount.nfs: portmap query retrying: RPC: Timed out
    mount.nfs: prog 100005, trying vers=3, prot=6
    mount.nfs: trying 10.63.150.92 prog 100005 vers 3 prot TCP port 2049
    root@workr-138: tmp$ df -h
    Filesystem              Size  Used Avail Use% Mounted on
    /dev/sda7                84G   48G   37G  57% /
    devtmpfs                126G     0  126G   0% /dev
    tmpfs                   126G     0  126G   0% /dev/shm
    tmpfs                   126G   19M  126G   1% /run
    tmpfs                   126G     0  126G   0% /sys/fs/cgroup
    /dev/sdd1               3.7T  201G  3.5T   6% /mnt/sdd1
    /dev/sda6               946M  220M  726M  24% /boot
    tmpfs                    26G     0   26G   0% /run/user/5000
    gpfs1                   7.3T  9.1G  7.3T   1% /gpfs1
    tmpfs                    26G     0   26G   0% /run/user/0
    localhost:/mapr         100G     0  100G   0% /mapr
    10.63.150.92:/maprnfs3   53T  8.4G   53T   1% /tmp/testmount
    root@workr-138: tmp$
  11. 設定NetApp XCP、將資料從MapR-FS NFS閘道傳輸到ONTAP 靜態NFS。

    1. 設定XCP的目錄位置。

      [root@hdp2 linux]# cat /opt/NetApp/xFiles/xcp/xcp.ini
      # Sample xcp config
      [xcp]
      #catalog =  10.63.150.51:/gpfs1
      catalog =  10.63.150.213:/nc_volume1
    2. 將授權檔案複製到「/opt /NetApp/xFiles/XCP /」。

      root@workr-138: src$ cd /opt/NetApp/xFiles/xcp/
      root@workr-138: xcp$ ls -ltrha
      total 252K
      drwxr-xr-x 3 root   root     16 Apr  4  2019 ..
      -rw-r--r-- 1 root   root    105 Dec  5 19:04 xcp.ini
      drwxr-xr-x 2 root   root     59 Dec  5 19:04 .
      -rw-r--r-- 1 faiz89 faiz89  336 Dec  6 21:12 license
      -rw-r--r-- 1 root   root    192 Dec  6 21:13 host
      -rw-r--r-- 1 root   root   236K Dec 17 14:12 xcp.log
      root@workr-138: xcp$
    3. 使用「XCP activate」命令啟動XCP。

    4. 檢查NFS匯出的來源。

      [root@hdp2 linux]# ./xcp show 10.63.150.92
      XCP 1.4-17914d6; (c) 2019 NetApp, Inc.; Licensed to Karthikeyan Nagalingam [NetApp Inc] until Wed Feb  5 11:07:27 2020
      getting pmap dump from 10.63.150.92 port 111...
      getting export list from 10.63.150.92...
      sending 1 mount and 4 nfs requests to 10.63.150.92...
      == RPC Services ==
      '10.63.150.92': TCP rpc services: MNT v1/3, NFS v3/4, NFSACL v3, NLM v1/3/4, PMAP v2/3/4, STATUS v1
      '10.63.150.92': UDP rpc services: MNT v1/3, NFS v4, NFSACL v3, NLM v1/3/4, PMAP v2/3/4, STATUS v1
      == NFS Exports ==
       Mounts  Errors  Server
            1       0  10.63.150.92
           Space    Files      Space    Files
            Free     Free       Used     Used Export
        52.3 TiB    53.7B   8.36 GiB    53.7B 10.63.150.92:/maprnfs3
      == Attributes of NFS Exports ==
      drwxr-xr-x --- root root 2 2 10m51s 10.63.150.92:/maprnfs3
      1.77 KiB in (8.68 KiB/s), 3.16 KiB out (15.5 KiB/s), 0s.
      [root@hdp2 linux]#
    5. 使用XCP從多個來源IP和多個目的地IP ONTAP (亦即多個IP)的多個MapR節點傳輸資料。

      root@workr-138: linux$ ./xcp_yatin copy --parallel 20 10.63.150.96,10.63.150.97:/maprnfs3/tg4 10.63.150.85,10.63.150.86:/datapipeline_dataset/tg4_dest
      XCP 1.6-dev; (c) 2019 NetApp, Inc.; Licensed to Karthikeyan Nagalingam [NetApp Inc] until Wed Feb  5 11:07:27 2020
      xcp: WARNING: No index name has been specified, creating one with name: autoname_copy_2019-12-06_21.14.38.652652
      xcp: mount '10.63.150.96,10.63.150.97:/maprnfs3/tg4': WARNING: This NFS server only supports 1-second timestamp granularity. This may cause sync to fail because changes will often be undetectable.
       130 scanned, 128 giants, 3.59 GiB in (723 MiB/s), 3.60 GiB out (724 MiB/s), 5s
       130 scanned, 128 giants, 8.01 GiB in (889 MiB/s), 8.02 GiB out (890 MiB/s), 11s
       130 scanned, 128 giants, 12.6 GiB in (933 MiB/s), 12.6 GiB out (934 MiB/s), 16s
       130 scanned, 128 giants, 16.7 GiB in (830 MiB/s), 16.7 GiB out (831 MiB/s), 21s
       130 scanned, 128 giants, 21.1 GiB in (907 MiB/s), 21.1 GiB out (908 MiB/s), 26s
       130 scanned, 128 giants, 25.5 GiB in (893 MiB/s), 25.5 GiB out (894 MiB/s), 31s
       130 scanned, 128 giants, 29.6 GiB in (842 MiB/s), 29.6 GiB out (843 MiB/s), 36s
      ….
      [root@workr-140 linux]# ./xcp_yatin copy  --parallel 20 10.63.150.92:/maprnfs3/tg4_2 10.63.150.85,10.63.150.86:/datapipeline_dataset/tg4_2_dest
      XCP 1.6-dev; (c) 2019 NetApp, Inc.; Licensed to Karthikeyan Nagalingam [NetApp Inc] until Wed Feb  5 11:07:27 2020
      xcp: WARNING: No index name has been specified, creating one with name: autoname_copy_2019-12-06_21.14.24.637773
      xcp: mount '10.63.150.92:/maprnfs3/tg4_2': WARNING: This NFS server only supports 1-second timestamp granularity. This may cause sync to fail because changes will often be undetectable.
       130 scanned, 128 giants, 4.39 GiB in (896 MiB/s), 4.39 GiB out (897 MiB/s), 5s
       130 scanned, 128 giants, 9.94 GiB in (1.10 GiB/s), 9.96 GiB out (1.10 GiB/s), 10s
       130 scanned, 128 giants, 15.4 GiB in (1.09 GiB/s), 15.4 GiB out (1.09 GiB/s), 15s
       130 scanned, 128 giants, 20.1 GiB in (953 MiB/s), 20.1 GiB out (954 MiB/s), 20s
       130 scanned, 128 giants, 24.6 GiB in (928 MiB/s), 24.7 GiB out (929 MiB/s), 25s
       130 scanned, 128 giants, 29.0 GiB in (877 MiB/s), 29.0 GiB out (878 MiB/s), 31s
       130 scanned, 128 giants, 33.2 GiB in (852 MiB/s), 33.2 GiB out (853 MiB/s), 36s
       130 scanned, 128 giants, 37.8 GiB in (941 MiB/s), 37.8 GiB out (942 MiB/s), 41s
       130 scanned, 128 giants, 42.0 GiB in (860 MiB/s), 42.0 GiB out (861 MiB/s), 46s
       130 scanned, 128 giants, 46.1 GiB in (852 MiB/s), 46.2 GiB out (853 MiB/s), 51s
       130 scanned, 128 giants, 50.1 GiB in (816 MiB/s), 50.2 GiB out (817 MiB/s), 56s
       130 scanned, 128 giants, 54.1 GiB in (819 MiB/s), 54.2 GiB out (820 MiB/s), 1m1s
       130 scanned, 128 giants, 58.5 GiB in (897 MiB/s), 58.6 GiB out (898 MiB/s), 1m6s
       130 scanned, 128 giants, 62.9 GiB in (900 MiB/s), 63.0 GiB out (901 MiB/s), 1m11s
       130 scanned, 128 giants, 67.2 GiB in (876 MiB/s), 67.2 GiB out (877 MiB/s), 1m16s
    6. 檢查儲存控制器上的負載分配。

      Hadoop-AFF8080::*> statistics show-periodic -interval 2 -iterations 0 -summary true -object nic_common -counter rx_bytes|tx_bytes -node Hadoop-AFF8080-01 -instance e3b
      Hadoop-AFF8080: nic_common.e3b: 12/6/2019 15:55:04
       rx_bytes tx_bytes
       -------- --------
          879MB   4.67MB
          856MB   4.46MB
          973MB   5.66MB
          986MB   5.88MB
          945MB   5.30MB
          920MB   4.92MB
          894MB   4.76MB
          902MB   4.79MB
          886MB   4.68MB
          892MB   4.78MB
          908MB   4.96MB
          905MB   4.85MB
          899MB   4.83MB
      Hadoop-AFF8080::*> statistics show-periodic -interval 2 -iterations 0 -summary true -object nic_common -counter rx_bytes|tx_bytes -node Hadoop-AFF8080-01 -instance e9b
      Hadoop-AFF8080: nic_common.e9b: 12/6/2019 15:55:07
       rx_bytes tx_bytes
       -------- --------
          950MB   4.93MB
          991MB   5.84MB
          959MB   5.63MB
          914MB   5.06MB
          903MB   4.81MB
          899MB   4.73MB
          892MB   4.71MB
          890MB   4.72MB
          905MB   4.86MB
          902MB   4.90MB