6. NetApp XCP를 이용한 데이터 이동성
Karthikeyan Nagalingam, NetApp
NetApp XCP는 ONTAP NAS 준비 데이터 계층과 활성 학습 계층 간의 제어된 전송 경로를 제공합니다. Airflow는 XCP 호스트를 통해 사전 검사를 수행하고 복사 작업을 호출하며, xcp_copy_destination 각 실행마다 ONTAP S3 또는 LustreFS를 선택합니다. 모델 학습, 미세 조정 및 추론에서 동일하게 선택된 대상을 사용하여 데이터와 아티팩트를 일관된 계층에 유지합니다.
[[6-1-why-netapp-xcp]]
== 6.1 NetApp XCP를 선택하는 이유
XCP는 이 아키텍처에서 사용되는 NFS 소스, ONTAP S3 및 LustreFS 대상을 지원하는 병렬 멀티스레드 복사 엔진입니다. XCP의 -newid <run_stamp> 옵션은 각 전송을 파이프라인 실행과 연결하여 준비된 데이터, 학습 입력 및 모델 아티팩트 위치 전반에 걸쳐 추적성을 지원합니다.
[[6-2-xcp-preflight-validation-flow]]
== 6.2 XCP 사전 검증 흐름
사전 점검 작업은 XCP 복사 전에 실행됩니다. 이 작업은 Airflow가 SSH를 통해 XCP 호스트에 연결할 수 있는지, 그리고 구성된 ONTAP NAS NFS 소스 경로가 XCP에서 보이는지 확인합니다. 연결 상태 또는 소스 가시성이 올바르지 않으면 명시적인 종료 조건에 따라 복사가 시작되기 전에 파이프라인이 중지됩니다.
[[6-3-xcp-copy-to-s3-command-template]]
== 6.3 XCP Copy to S3 — 명령 템플릿
이 경로는 `xcp_copy_destination=s3`일 때 사용합니다. XCP는 ONTAP NAS NFS 내보내기에서 준비되고 실행 스탬프가 찍힌 데이터를 읽어 구성된 ONTAP S3 버킷 및 접두사에 기록합니다. 명명된 XCP S3 프로필은 XCP 호스트에 대상 자격 증명을 제공하며, 모델 단계는 `xcp_s3_training_prefix`를 통해 데이터와 아티팩트를 모두 검색합니다.
xcp copy -newid <run_stamp> \
-s3.profile <xcp_s3_profile> \
-s3.endpoint <xcp_s3_endpoint> \
<xcp_nfs_source_ip>:<xcp_nfs_source_path> \
s3://<xcp_s3_bucket>/<xcp_s3_dest_prefix>
예시: 준비된 ONTAP NAS 데이터셋을 ONTAP S3 학습 버킷에 복사합니다.
/usr/src/xcp/linux/xcp copy -newid 20260901_120000 \
-s3.profile ontaps3 \
-s3.endpoint http://10.63.150.161 \
10.63.150.159:/prepnasbucket/example_ai_pipeline \
s3://trainingbucket/example_ai_pipeline
이 예제에서는 20260901_120000`을 XCP 작업 식별자로 사용합니다. 학습 작업은 구성된 `xcp_s3_training_prefix 아래에서 복사된 파일을 검색합니다(예: example_ai_pipeline/formatted/20260901_120000/data/ 등).
[[6-4-xcp-copy-to-lustrefs-command-template]]
== 6.4 XCP Copy to LustreFS — 명령 템플릿
`xcp++_++copy++_++destination=lustrefs`일 때 이 경로를 사용합니다. XCP는 마운트된 ONTAP NAS 소스에서 마운트된 LustreFS 대상으로 준비된 데이터를 복사합니다. 두 마운트 모두 XCP 호스트에서 사용 가능해야 하며, LustreFS는 모델 학습, 미세 조정 및 추론을 수행하는 Airflow 워커에도 마운트되어 있어야 합니다.
findmnt -T <xcp_lustrefs_source_path> -o FSTYPE,TARGET -n | grep -E '^nfs[0-9]* ' # source mount type
findmnt -T <xcp_lustrefs_dest_path> -o FSTYPE,TARGET -n | grep -E '^lustre ' # destination mount type
xcp copy -newid <run_stamp> \
file://<xcp_lustrefs_source_path> \
file://<xcp_lustrefs_dest_path>
예시: 준비된 ONTAP NAS 데이터셋을 LustreFS 학습 마운트에 복사합니다.
findmnt -T /prepnasbucket/example_ai_pipeline -o FSTYPE,TARGET -n | grep -E '^nfs[0-9]* '
findmnt -T /mnt/lustre/client -o FSTYPE,TARGET -n | grep -E '^lustre '
/usr/src/xcp/linux/xcp copy -newid 20260901_120000 \
file:///prepnasbucket/example_ai_pipeline \
file:///mnt/lustre/client
두 findmnt 명령은 복사가 시작되기 전에 XCP 호스트에서 소스 경로가 NFS를 통해 마운트되고 대상 경로가 LustreFS를 통해 마운트되었는지 확인합니다. xcp_lustrefs_training_subpath=example_ai_pipeline`를 사용하면 학습은 `/mnt/lustre/client/example_ai_pipeline/formatted/20260901_120000/data/ 아래의 실행 스탬프가 찍힌 데이터를 읽습니다.
[[6-5-xcp-destination-decision-flow]]
== 6.5 XCP 목적지 결정 흐름
이 결정 다이어그램은 런타임 매개변수 하나가 복사 대상과 학습 읽기 경로를 결정하는 방식을 보여줍니다. ONTAP S3 오브젝트 대상의 경우 `s3`를 선택하거나, 병렬 파일 시스템 대상의 경우 `lustrefs`를 선택하십시오. 하위 단계에서는 일치하는 소스를 자동으로 사용하므로 스토리지 위치가 변경되더라도 모델 코드를 수정할 필요가 없습니다.
[[6-6-xcp-failure-handling-and-guardrails]]
== 6.6 XCP 오류 처리 및 안전장치
이러한 안전장치를 통해 구성 및 인프라 오류를 가능한 한 가장 빠른 시점에 관찰할 수 있습니다. 사전 검사 오류는 잘못된 전송을 방지하고, 파일 시스템 유형 검사는 ONTAP NAS 및 LustreFS 마운트를 검증하며, S3 자격 증명 유효성 검사는 ONTAP S3가 선택된 XCP 대상인 경우에만 적용됩니다.
| 상태 | Guard 동작 |
|---|---|
지원되지 않는 |
파이프라인은 데이터 이동 전에 값을 거부합니다 |
LustreFS 마운트가 없습니다 |
파일 시스템 유형 유효성 검사에 실패했습니다. 데이터 이동 전에 복사가 중단되었습니다. |
SSH에 연결할 수 없습니다 |
사전 검사는 복사 작업 전에 코드 1로 종료됩니다. |
NFS 경로가 보이지 않습니다 |
사전 검사는 복사 작업 전에 코드 2로 종료됩니다. |
XCP S3 자격 증명이 누락되었습니다(S3 모드에만 해당) |
|