피드로 돌아가기
Migrating the Hub from Git LFS to Xet
Hugging Face BlogHugging Face Blog
Backend

Hugging Face가 Git LFS에서 Xet으로 마이그레이션하여 6개월 내 500,000개 리포지토리 20PB를 전환하고 100만 명 이상의 사용자 지원

Migrating the Hub from Git LFS to Xet

2025년 7월 15일10advanced

Context

Hub이 증가하는 AI 워크로드에 맞춰 확장할 수 있는 스토리지 시스템이 필요했으며, Git LFS의 한계를 초과하는 상황에 직면했다.

Technical Solution

  • Git LFS Bridge 도입: Xet 미지원 클라이언트에서 presigned URL로 LFS 프로토콜을 모방하여 backward compatibility 제공
  • 콘텐츠 기반 청킹: Xet 인식 클라이언트에서 파일을 청크로 분할하여 CAS에 저장하고 S3에서 관리
  • 백그라운드 마이그레이션 인프라: 웹훅 트리거로 시작하는 분산 큐 기반 오케스트레이터와 마이그레이션 워커 팟 구축
  • 하드 컷오버 제거: Xet 저장소가 Xet과 LFS 파일을 동시에 포함할 수 있도록 설계
  • 마이그레이션 배칭: 파일 크기 또는 파일 수 기준(1000개 파일 또는 500MB)으로 작업 배치 처리

Impact

  • 6개월 내 500,000개 리포지토리 20PB 마이그레이션 완료
  • 100만 명 이상의 Hub 사용자가 Xet 사용
  • GitHub 이슈, 포럼 스레드, Discord 메시지 수십 개 미만으로 대규모 마이그레이션 수행

Key Takeaway

대규모 스토리지 마이그레이션을 성공시키려면 점진적 전환과 후방 호환성을 보장하는 브리지 인프라가 필수이며, 백그라운드에서 실행되는 자동화된 마이그레이션 파이프라인은 사용자 워크플로우 중단 없이 PB 규모의 데이터 전환을 가능하게 한다.


대규모 데이터 저장소 마이그레이션이 필요한 환경에서 Git LFS Bridge와 같은 호환성 계층을 도입하면 레거시 클라이언트 지원을 유지하면서 새로운 스토리지 백엔드로 전환할 수 있으며, 분산 큐 기반 백그라운드 마이그레이션 워커를 구성하면 동적 배칭(1000파일 또는 500MB 단위)으로 PB 규모의 콘텐츠를 며칠 내 이관 가능하다.

원문 읽기