주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
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 워크로드와 같은 성능 집약적 애플리케이션에서부터 엑사바이트 규모의 데이터 레이크에 이르기까지 고객의 요구를 충족할 수 있습니다.
-
fpsync 도구는 기본적으로 rsync를 사용하는 병렬 래퍼 스크립트입니다. 또한 Rclone(Tutorial 2: Move Data into OCI Cloud Storage Services using Rclone 참조), tar, tarify, cpio를 사용할 수 있습니다.
-
Rsync는 원격 및 로컬 파일 시스템 모두에 대해 파일을 전송하고 동기화하기 위한 다양한 유틸리티입니다.
마이그레이션해야 하는 데이터의 양과 새로운 OCI 스토리지 플랫폼으로 컷오버할 수 있는 다운타임을 결정합니다. 일괄 마이그레이션은 마이그레이션을 관리 가능한 증분으로 분류하는 데 적합합니다. 일괄 이전을 통해 여러 창에서 특정 애플리케이션에 대한 작동 중지 시간을 예약할 수 있습니다. 일부 고객은 2~4일 동안 일정이 잡힌 유지보수 기간을 통해 일회성 마이그레이션을 유연하게 수행할 수 있습니다. OCI FastConnect은 1G에서 400G까지의 포트 속도로 OCI와 사용자 환경 간에 전용 개인 연결을 생성하여 데이터 전송 프로세스를 가속화하는 데 사용할 수 있습니다. OCI FastConnect을 Megaport 및 ConsoleConnect과 같은 파트너 솔루션과 통합하여 데이터 센터 또는 클라우드 간 상호 연결에 대한 프라이빗 접속을 생성함으로써 다른 클라우드 공급업체의 데이터를 OCI 클라우드 스토리지 서비스로 보다 직접 이동할 수 있습니다. 자세한 내용은 FastConnect integration with Megaport Cloud Router을 참조하십시오.
Rsync와 Fpsync의 차이점
-
Rsync는 동일하거나 다른 지리적 위치에 있는 한 시스템에서 다른 시스템으로 데이터를 일회성 복사 또는 주기적으로 동기화하는 데 사용되는 기존의 OS(Linux Operating System) 유틸리티입니다. 대용량 데이터 세트의 경우 단일 재동기화 프로세스만으로는 원하는 시간 내에 전송을 수행하지 못할 수 있습니다. Rsync에는 여러 rsync 프로세스를 스핀업할 수 있는 옵션이 있으며, 각 프로세스는 데이터 세트의 특정 하위 세트에서 실행되어 단일 프로세스보다 더 빠르게 데이터 세트 전송을 완료할 수 있습니다. 그러나 데이터 세트 계층의 복잡성에 따라 얼마나 많은 프로세스와 어떤 하위 세트가 어려울 수 있는지 사이의 균형을 결정합니다. Fpsync는 이 프로세스를 단순화합니다. Fpsync는 전체 데이터 세트를 작은 조각으로 분할하고 사용자 세트 병렬화에 따라 여러 rsync 프로세스를 생성하는 조정기입니다. 내부적으로 Fpsync는 rsync를 사용하여 실제 전송을 수행합니다. cpio 및 tar 옵션은 fpsync에 대한 기본 도구 옵션으로 사용할 수 있지만 rsync가 기본값입니다.
-
Fpsync에는 단일 노드 대신 여러 노드 간에 전송을 분산할 수 있는 워커 노드 옵션이 있습니다. 동일한 노드에서 병렬 재동기화 프로세스를 늘리는 것 외에도(확장) 노드 수를 늘려서(확장) 증가된 rsync 프로세스 수를 실행할 수도 있습니다.
대상
DevOps 엔지니어, 개발자, OCI 클라우드 스토리지 관리자 및 사용자, IT 관리자, OCI 고급 사용자 및 애플리케이션 관리자.
목표
rsync 및 fpsync를 사용하여 데이터를 OCI 클라우드 스토리지 서비스로 복사하고 동기화하는 방법을 알아보십시오.
-
rsync 및 fpsync를 함께 사용하는 방법을 알아봅니다.
-
fpsync 사용의 성능 이점을 이해합니다.
필요 조건
-
OCI 계정입니다.
-
.oci
이라는 하위 디렉토리의 홈 디렉토리에 작업 구성 파일과 함께 설치된 OCI CLI(Oracle Cloud Infrastructure 명령행 인터페이스)입니다. 자세한 내용은 Setting up the Configuration File을 참조하십시오. -
OCI File Storage를 생성, 익스포트 및 마운트하거나 VM에 이미 마운트된 OCI File Storage 마운트 대상에 액세스할 수 있는 사용자 권한입니다. 자세한 내용은 파일 스토리지 정책 관리를 참조하십시오.
-
NAS(Network Attached Storage) 및 OCI File Storage를 생성, 관리 및 마운트하는 방법을 알고 있습니다. 자세한 내용은 OCI Configuring File System Storage 및 Overview of File Storage를 참조하십시오.
-
OCI 컴퓨트 인스턴스를 생성 및 실행하거나 3개의 시스템에 액세스하여 fpsync를 실행할 수 있습니다. 자세한 내용은 인스턴스 생성을 참조하십시오.
-
익숙한 작업:
-
SSH 작업, SSH 키 생성 및 SSH 구성 파일 사용 자세한 내용은 OCI Access용 Linux 명령행에서 SSH 키 쌍 생성을 참조하십시오.
-
두 사이트 또는 시스템 간의 연결을 확인하는 기본 네트워킹 도구 및 명령입니다.
-
Mac OS, Linux, BSD(Berkeley Software Distribution) 및 Windows PowerShell, 명령 프롬프트 또는 bash에서 터미널 또는 셸 인터페이스를 사용합니다.
-
Linux 시스템에 소프트웨어를 설치합니다.
-
-
사용할 수 있는 마이그레이션 툴을 알아보려면 자습서 1: 마이그레이션 툴을 사용하여 데이터를 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를 사용하여 데이터 이전
-
인스턴스 간 스트리밍과 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/
-
여러 rsync 프로세스를 병렬로 실행합니다.
-
find
및xargs
명령을 사용하여 여러 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입니다.
-
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
-
다음 명령을 사용하여 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 파일 스토리지 서비스로 데이터를 마이그레이션하는 높은 수준의 단계를 따르십시오.
다음 그림은 구성 요소 구조 다이어그램을 보여줍니다.
단계를 수행합니다:
-
워커 노드 3개와 대상 노드를 식별합니다.
소스 파일 시스템을 마운트하기 위해 액세스할 수 있는 3개의 로컬 시스템을 식별합니다. 또는 테스트 목적으로 3개의 OCI Compute VM 인스턴스를 생성 및 실행할 수 있습니다.
기존 OCI VM 인스턴스를 식별하거나 대상 노드로 사용할 새 인스턴스를 생성 및 실행합니다.
-
소스 NAS 공유를 3개의 노드에 마운트합니다.
nordirplus
및nconnect=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를 시도할 수 있습니다.
-
fpsync를 실행하고
/etc/hosts
파일을 업데이트할 노드를 선택합니다.세 노드 중 하나 또는 다른 노드를 선택하여
fpsync
명령을 실행할 수 있습니다.fpsync
명령이 실행되는 노드를 실행기 노드라고 합니다.fpsync가 실행될 노드에서 선호하는 텍스트 편집기를 사용하여
/etc/hosts
파일을 3개의 워커 노드로worker-src-1
,worker-src-2
및worker-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
-
대상 노드에 대상 파일 시스템을 마운트합니다.
대상 파일 시스템을 식별하고 대상 노드에 마운트합니다. 또는 OCI File Storage를 생성하여 대상 노드에 마운트합니다.
-
온프레미스에서 OCI로의 연결이 설정되었는지 확인합니다.
ping
,traceroute
,ssh
등과 같은 공통 네트워킹 툴을 사용하여 시스템, 온프레미스 및 OCI 간 접속을 확인합니다. -
모든 소스 및 대상 노드에서 암호 없는 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
-
실행기 노드에서 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/
-
-n
에 대한 값을 결정합니다.Select the -n value to be equal to number of cpu_cores of all worker nodes in the source and keep as many as destination worker nodes of same CPU and memory. In this example, it is 3 worker nodes times 16 cpu_cores = 48.
-
-f
에 대한 값을 결정합니다.In this example, two folders are large directories. Of the total 1.1 million files, the two folders contain ~700K files with an average file size of 160KB. Memory in each worker node = 64GB = 64000000KB. Processes in each worker node = 8 OCPU = 16 cpu_cores. Memory per Process = 64000000/16 = 4000000KB/process. Now, an appropriate value for -f can be calculated as 4000000KB / 160 = 25000.
다음 표는 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 클라우드 스토리지 서비스로 데이터를 이동하려면 다음을 수행합니다.
-
Rclone 사용 시 자습서 2: Rclone을 사용하여 OCI 클라우드 스토리지 서비스로 데이터 이동을 참고하세요.
-
OCI Object Storage Sync 및 S5cmd는 자습서 3: OCI Object Storage Sync 및 S5cmd를 사용하여 데이터를 OCI Cloud Storage Services로 이동을 참조하십시오.
관련 링크
확인
- 작가 - Vinoth Krishnamurthy(OCI File Storage 기술 직원 수석 멤버)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Move Data into OCI Cloud Storage Services using Fpsync and Rsync
G25650-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.