주:

Fpsync 및 Rsync를 사용하여 OCI 클라우드 스토리지 서비스로 데이터 이동

소개

이 자습서 시리즈는 OCI(Oracle Cloud Infrastructure) 클라우드 스토리지 서비스로 데이터를 마이그레이션하는 다양한 방법을 보여주는 4개 중 4개 자습서입니다. 이 시리즈는 자습서 1: 마이그레이션 툴을 사용하여 데이터를 OCI 클라우드 스토리지 서비스로 이동을 검토하여 다양한 툴을 광범위하게 이해한 다음 마이그레이션 요구사항과 관련된 관련 자습서 또는 문서를 진행할 수 있도록 설정됩니다. 이 사용지침서에서는 fpsync 및 rsync를 사용하여 파일 시스템 데이터를 OCI File Storage로 마이그레이션하는 방법을 중점적으로 다룹니다.

OCI는 고객에게 고성능 컴퓨팅 및 저렴한 클라우드 스토리지 옵션을 제공합니다. Oracle은 온디맨드 로컬, 객체, 파일, 블록 및 아카이브 스토리지를 통해 주요 스토리지 워크로드 요구 사항 및 사용 사례를 해결합니다.

OCI 클라우드 스토리지 서비스는 모든 엔터프라이즈 요구사항에 대해 빠르고 안전하며 내구성이 뛰어난 클라우드 스토리지 옵션을 제공합니다. OCI File Storage with Lustre 및 OCI Block Volumes 서비스와 같은 고성능 옵션부터 고성능 마운트 대상을 갖춘 OCI File Storage 서비스의 전담 관리 엑사바이트 규모의 파일 시스템, 내구성과 확장성이 뛰어난 OCI Object Storage까지. 오라클의 솔루션은 AI/ML 워크로드와 같은 성능 집약적 애플리케이션에서부터 엑사바이트 규모의 데이터 레이크에 이르기까지 고객의 요구를 충족할 수 있습니다.

마이그레이션해야 하는 데이터의 양과 새로운 OCI 스토리지 플랫폼으로 컷오버할 수 있는 다운타임을 결정합니다. 일괄 마이그레이션은 마이그레이션을 관리 가능한 증분으로 분류하는 데 적합합니다. 일괄 이전을 통해 여러 창에서 특정 애플리케이션에 대한 작동 중지 시간을 예약할 수 있습니다. 일부 고객은 2~4일 동안 일정이 잡힌 유지보수 기간을 통해 일회성 마이그레이션을 유연하게 수행할 수 있습니다. OCI FastConnect은 1G에서 400G까지의 포트 속도로 OCI와 사용자 환경 간에 전용 개인 연결을 생성하여 데이터 전송 프로세스를 가속화하는 데 사용할 수 있습니다. OCI FastConnect을 Megaport 및 ConsoleConnect과 같은 파트너 솔루션과 통합하여 데이터 센터 또는 클라우드 간 상호 연결에 대한 프라이빗 접속을 생성함으로써 다른 클라우드 공급업체의 데이터를 OCI 클라우드 스토리지 서비스로 보다 직접 이동할 수 있습니다. 자세한 내용은 FastConnect integration with Megaport Cloud Router을 참조하십시오.

Rsync와 Fpsync의 차이점

대상

DevOps 엔지니어, 개발자, OCI 클라우드 스토리지 관리자 및 사용자, IT 관리자, OCI 고급 사용자 및 애플리케이션 관리자.

목표

rsync 및 fpsync를 사용하여 데이터를 OCI 클라우드 스토리지 서비스로 복사하고 동기화하는 방법을 알아보십시오.

필요 조건

OCI File Storage로 데이터 마이그레이션하기

Fpsync 및 rsync를 사용하여 파일 시스템 데이터(OCI File Storage 서비스, OCI Block Volumes 서비스, OCI File Storage with Lustre, 온프레미스 파일 시스템 및 온프레미스 NFS(Network File System)를 다른 파일 시스템 스토리지 유형(OCI File Storage 포함)으로 마이그레이션할 수 있습니다.

Rsync를 사용하여 데이터 이전

  1. 인스턴스 간 스트리밍과 rsync를 사용합니다.

    최대 수만 GB의 소규모 데이터 세트와 수만 개의 파일에 대해 rsync instance-to-instance 스트리밍을 사용할 수 있습니다. 네트워크 내에서 SSH 사용 로컬 NFS 및 소스 네트워크와 대상 네트워크 간에 SSH를 사용하여 인스턴스 간 스트리밍을 수행하므로 두 네트워크 간의 NFS 대기 시간을 줄일 수 있습니다. 다음 명령을 사용하십시오.

    rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh /src/path/ root@<destination_instance>:/destination/path/
    
  2. 여러 rsync 프로세스를 병렬로 실행합니다.

    • findxargs 명령을 사용하여 여러 rsync 프로세스를 실행할 수 있습니다.

      find /src/path/ -maxdepth 1 | xargs -P 24 -I {} rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --log-file=<logfile_path> -quiet -e ssh {} root@<destination_instance>:/destination/path/
      
    • GNU 병렬도 사용할 수 있습니다.

      find /src/path/ -maxdepth 1 | parallel -P24 rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --exclude=.snapshot --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh {} root@<destination_instance>:/destination/path/
      

    주: 두 예제에서 한 번에 24개의 프로세스가 실행되며 이 파라미터는 사용된 Instance의 CPU 용량을 기준으로 선택되었습니다.

Fpsync를 사용하여 데이터 이전

fpsync 도구는 rsync의 병렬 래퍼입니다. 또한 tar, tarify 및 cpio를 사용할 수 있지만 기본값은 rsync입니다.

  1. Linux 시스템에 fpsync를 설치합니다.

    • Linux 8에 대해 다음 명령을 실행합니다.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo yum install fpart -y
    
    • Linux 9에 대해 다음 명령을 실행합니다.
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo yum install fpart -y
    
  2. 다음 명령을 사용하여 fpsync를 실행합니다.

    예:

    fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
    

주: fpsync 옵션 및 매개변수에 대한 자세한 내용은 man fpsync를 참조하십시오.

3개의 작업자 노드를 사용하여 Fpsync를 실행하여 온프레미스 파일 공유에서 OCI 파일 스토리지 서비스로 데이터 이전

3개의 워커 노드를 사용하여 fpsync를 실행하여 온프레미스 파일 공유(로컬 디스크, SAN 또는 NAS)에서 OCI 파일 스토리지 서비스로 데이터를 마이그레이션하는 높은 수준의 단계를 따르십시오.

다음 그림은 구성 요소 구조 다이어그램을 보여줍니다.

구성요소 구조 다이어그램

단계를 수행합니다:

  1. 워커 노드 3개와 대상 노드를 식별합니다.

    소스 파일 시스템을 마운트하기 위해 액세스할 수 있는 3개의 로컬 시스템을 식별합니다. 또는 테스트 목적으로 3개의 OCI Compute VM 인스턴스를 생성 및 실행할 수 있습니다.

    기존 OCI VM 인스턴스를 식별하거나 대상 노드로 사용할 새 인스턴스를 생성 및 실행합니다.

  2. 소스 NAS 공유를 3개의 노드에 마운트합니다.

    nordirplusnconnect=16 마운트 옵션을 사용하고, 다른 nfs 마운트 옵션은 지정하지 마십시오.

    예를 들어, Linux 시스템에서 다음 mount 명령을 실행합니다.

    sudo mount -t nfs -o nordirplus,nconnect=16 10.x.x.x:/<EXPORT_PATH_NAME> /mnt/nfs-data
    

    예를 들어, 다음 명령을 실행하여 마운트를 확인합니다.

    mount | grep /mnt/nfs-data
    

    주: 테스트 목적으로 OCI File Storage를 사용하여 파일 시스템을 생성, 익스포트 및 마운트할 수 있습니다. 테스트 데이터는 마운트 시 생성되어 fpsync를 시도할 수 있습니다.

  3. fpsync를 실행하고 /etc/hosts 파일을 업데이트할 노드를 선택합니다.

    세 노드 중 하나 또는 다른 노드를 선택하여 fpsync 명령을 실행할 수 있습니다. fpsync 명령이 실행되는 노드를 실행기 노드라고 합니다.

    fpsync가 실행될 노드에서 선호하는 텍스트 편집기를 사용하여 /etc/hosts 파일을 3개의 워커 노드로 worker-src-1, worker-src-2worker-src-3로 업데이트합니다.

    예:

    vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.4 worker-src-1.subnet.vcn.oraclevcn.com worker-src-1
    10.0.0.5 worker-src-2
    10.0.0.6 worker-src-3
    
  4. 대상 노드에 대상 파일 시스템을 마운트합니다.

    대상 파일 시스템을 식별하고 대상 노드에 마운트합니다. 또는 OCI File Storage를 생성하여 대상 노드에 마운트합니다.

  5. 온프레미스에서 OCI로의 연결이 설정되었는지 확인합니다.

    ping, traceroute, ssh 등과 같은 공통 네트워킹 툴을 사용하여 시스템, 온프레미스 및 OCI 간 접속을 확인합니다.

  6. 모든 소스 및 대상 노드에서 암호 없는 SSH를 상호 활성화하고 소스 및 대상 노드 쌍 간의 SSH 연결을 확인합니다.

    실행기 노드에서 fpsync 명령을 실행할 사용자에 대한 퍼블릭 SSH 키를 식별합니다. 이 키는 일반적으로 사용자의 홈 디렉토리에서 .ssh 디렉토리에 있으며 일반적으로 이름은 id_rsa.pub입니다. cat 명령을 사용하여 해당 콘텐츠를 표시하고, 키를 복사하고, 워커 노드의 $HOME/.ssh/authorized_keys 파일에 붙여넣는 방식으로 이 키를 모든 워커 노드에 전달합니다. 또는 암호 기반 SSH가 사용으로 설정된 경우 ssh-copy-id 명령을 사용하여 각 워커 노드 및 대상 노드에 키를 배포할 수 있습니다. 예:

    [worker-src-1 ~]$ ssh-copy-id username@worker-src-2
    
  7. 실행기 노드에서 fpsync 명령을 실행합니다.

    주: fpsync는 작업자 노드를 통해 SSH를 통해 대상 노드에 rsync 명령을 실행하는 실행기 노드에만 설치해야 합니다.

    예:

    fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
    -w username@worker-src-1 -w username@worker-src-2 -w username@worker-src-3 \
    -d /nfs-data/fpsync_wrkr /nfs-data/fpsync_src/ opc@worker-dest:/fpsync-fs/
    

    주: X 및 Y를 fpsync 옵션 -n-f의 값으로 바꿉니다.

    • -n인 동시 동기화 작업에 대한 값을 확인합니다.

      • 소스에 있는 모든 워커 노드의 cpu_cores 수와 같도록 -n 값을 선택하고 동일한 CPU 및 메모리의 대상 워커 노드 수만큼 유지합니다.
      • 각각 CPU 코어가 16개인 작업자 노드가 3개 있는 경우 작업자 노드 3개에 16 cpu_cores = 48을 곱합니다.
    • 동기화 작업당 전송할 파일 양(-f)에 대한 값을 결정합니다.

      • 예를 들어, 큰 디렉토리와 총 110만 개의 파일이 있는 두 개의 폴더가 있는 경우 두 폴더에는 평균 파일 크기가 160KB인 ~700K 파일이 포함됩니다.
      • 각 워커 노드는 64GB = 6400000KB 메모리, 8 OCPU= 16 cpu_cores로 구성되며 cpu_core당 메모리는 64000000/16 = 400000KB/cpu_core입니다. 각 작업자 노드의 메모리 = 64GB = 64000000KB
      • -f, 4000000KB/160 = 25000의 값을 계산합니다.

(선택 사항) 테스트 환경

온프레미스에서 OCI로의 마이그레이션을 시뮬레이션하기 위해 다음 데이터세트를 사용하는 OCI File Storage 파일 시스템(Ashburn)이 온프레미스 NAS 공유로 사용되며 OCI File Storage 파일 시스템(Phoenix)이 대상으로 사용됩니다.

두 리전 모두 동적 라우팅 게이트웨이를 사용하여 원격 피어링됩니다.

데이터 세트 디렉토리 크기 파일 수 각 파일의 크기
디렉토리 1 107.658 GiB 110,242 1 MiB
디렉토리 2 1.687 GiB 110,569 15 MiB
디렉토리 3 222 GiB 111 2 GiB
디렉토리 4 1.265 TiB 1,295 1 GiB
디렉토리 5 26.359 GiB 1,687 16 MiB
디렉토리 6 105.281 MiB 26,952 4 KiB
디렉토리 7 29.697 MiB 30,410 1 KiB
디렉토리 8 83.124 GiB 340,488 256 KiB
디렉토리 9 21.662 GiB 354,909 64 KiB
디렉토리 10 142.629 GiB 36,514 4 MiB
디렉토리 11 452.328 MiB 57,898 8 MiB
디렉토리 12 144 GiB 72 2GiB
디렉토리 13 208.500 GiB 834 256 MiB
디렉토리 14 54.688 GiB 875 64 MiB

VM 인스턴스: 애슈번 및 피닉스 지역 모두에서 세 개의 16 cpu_core, 64GB 메모리, 8Gbps 대역폭 Linux9 VM을 워커 노드로, 8개의 cpu_core VM을 실행기 노드로 사용합니다.

다음은 모든 인스턴스에 있는 TCP 설정입니다.

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_window_scaling = 1

두 지역 인스턴스 모두 Run Fpsync using Three Worker Nodes to Migrate Data from On-Premises File Shares to OCI File Storage Service 섹션에 설명된 대로 각각의 OCI File Storage 파일 시스템이 마운트되어 있습니다.

다음 fpsync 명령을 실행합니다. X 및 Y는 fpsync 옵션입니다.

fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
 -w opc@worker-src-1 -w opc@worker-src-2 -w opc@worker-src-3 \
 -d /fpsync-fs/fpsync_wrkr /fpsync-fs/x_region_fpsync_src/ opc@worker-dest:/fpsync-fs/

다음 표는 fpsync가 서로 다른 X 및 Y 및 rsync SSH 및 압축 조합에 대해 2.25TB 및 1백만 개의 데이터 전송 파일을 완료하는 데 걸린 시간을 보여줍니다.

fpsync 옵션 소스 및 대상 워커 노드의 NFS 마운트 옵션 파일 스토리지 마운트 대상 성능 유형 소요된 시간
-n 30 -f 2000 -e ssh nconnect=16,nordirplus 표준 마운트 대상 3개, 작업자 노드에 1:1 매핑 237m28s
-n 48 -f 5000 -e ssh -C nconnect=16,nordirplus 소스 및 대상, 각각 1 HPMT 40 163m38.887s
-n 60 -f 20000 nconnect=16,nordirplus 표준 마운트 대상 3개, 작업자 노드에 1:1 매핑 124m25.435s
-n 48 -f 400000 -e ssh -C nconnect=16,nordirplus 표준 마운트 대상 3개, 작업자 노드에 1:1 매핑 122m55.458s
-n 100 -f 200000 -e ssh nconnect=16,nordirplus 표준 마운트 대상 3개, 작업자 노드에 1:1 매핑 120m44s
-n 60 -f 200000 -e ssh nordirplus만, nconnect 없음 표준 마운트 대상 3개, 작업자 노드에 1:1 매핑 118m41.393s
-n 60 -f 200000 -e ssh nconnect=16,nordirplus 표준 마운트 대상 3개, 작업자 노드에 1:1 매핑 118m3.845s
-n 48 -f 20000 -e ssh nconnect=16,nordirplus 소스 및 대상, 각각 1 HPMT 40 113m34.011s
-n 48 -f 200000 nconnect=16,nordirplus 소스 및 대상, 각각 1 HPMT 40 110m15.555s
-n 48 -f 200000 nconnect=16,nordirplus 소스 및 대상, 각각 1 HPMT 40 109m3.472s

20000년 상반기 48 및 -f 이상의 -n 조합이 지역 간 약 2시간 동안 비슷한 성능을 제공한다는 것을 알 수 있습니다. 고성능 마운트 대상 40 GBps에서도 걸리는 시간이 크게 줄어들지 않습니다.

결과적으로 전송할 실제 데이터 세트의 크기에 따라 파일 시스템에 대해 여러 표준 또는 고성능 마운트 대상을 선택할 수 있습니다. 소스 데이터 세트가 대용량 파일(파일 크기 >= 1M)로 구성되고 전체 데이터 세트 크기가 20TB 이상인 경우 고성능 마운트 대상이 적합합니다. 그렇지 않으면 스케일 아웃 구성을 사용하는 표준 마운트 대상이 원하는 성능과 비용 효율성을 제공할 수 있습니다.

다음 단계

마이그레이션 요구 사항과 관련된 자습서로 이동합니다. OCI 클라우드 스토리지 서비스로 데이터를 이동하려면 다음을 수행합니다.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.