본문 바로가기

좋아하는 것_매직IT/96.IT 핫이슈

윈도우 to 리눅스 파일 동기화 및 스트리밍 도구를 소개합니다. (ft.CDC File Transfer)

반응형

윈도우 to 리눅스 파일 동기화 및 스트리밍 도구를 소개합니다. (ft.CDC File Transfer)

해당 웹페이지에서는 아래와 같이 소개하고 있더군요..
---

CDC File Transfer
Born from the ashes of Stadia, this repository contains tools for syncing and streaming files from Windows to Linux. They are based on Content Defined Chunking (CDC), in particular FastCDC, to split up files into chunks.

History
At Stadia, game developers had access to Linux cloud instances to run games. Most developers wrote their games on Windows, though. Therefore, they needed a way to make them available on the remote Linux instance.

As developers had SSH access to those instances, they could use scp to copy the game content. However, this was impractical, especially with the shift to working from home during the pandemic with sub-par internet connections. scp always copies full files, there is no "delta mode" to copy only the things that changed, it is slow for many small files, and there is no fast compression.

To help this situation, we developed two tools, cdc_rsync and cdc_stream, which enable developers to quickly iterate on their games without repeatedly incurring the cost of transmitting dozens of GBs.

CDC RSync
cdc_rsync is a tool to sync files from a Windows machine to a Linux device, similar to the standard Linux rsync. It is basically a copy tool, but optimized for the case where there is already an old version of the files available in the target directory.

...(생략)...
---

간단하게 번역해보자면요..
---

CDC 파일 전송
Stadia의 잿더미에서 탄생한 이 리포지토리에는 Windows에서 Linux로 파일을 동기화하고 스트리밍하기 위한 도구가 포함되어 있습니다. CDC(Content Defined Chunking), 특히 FastCDC를 기반으로 파일을 청크로 분할합니다.

역사
Stadia에서 게임 개발자는 Linux 클라우드 인스턴스에 액세스하여 게임을 실행할 수 있었습니다. 그러나 대부분의 개발자는 Windows에서 게임을 작성했습니다. 따라서 원격 Linux 인스턴스에서 사용할 수 있도록 하는 방법이 필요했습니다.

개발자는 해당 인스턴스에 대한 SSH 액세스 권한이 있으므로 scp를 사용하여 게임 콘텐츠를 복사할 수 있습니다. 그러나 이것은 비실용적이었습니다. 특히 대유행 기간 동안 수준 이하의 인터넷 연결로 재택 근무로 전환하는 경우에는 더욱 그렇습니다. scp는 항상 전체 파일을 복사하고 변경된 항목만 복사하는 "델타 모드"가 없으며 많은 작은 파일에 대해 느리고 빠른 압축이 없습니다.

이러한 상황을 돕기 위해 우리는 개발자가 수십 GB를 전송하는 비용을 반복적으로 발생시키지 않고 게임을 빠르게 반복할 수 있도록 하는 cdc_rsync 및 cdc_stream이라는 두 가지 도구를 개발했습니다.

CDC R싱크
cdc_rsync는 표준 Linux rsync와 유사하게 Windows 시스템에서 Linux 장치로 파일을 동기화하는 도구입니다. 기본적으로 복사 도구이지만 대상 디렉토리에 이미 이전 버전의 파일이 있는 경우에 최적화되어 있습니다.

...(생략)...
---

저는 해당 툴을 접하고 나서요...바로 웹페이지로 달려(?)갔는데요
여러모로 공부하고 확인해보니, 정말로 괜찮은 도구 같아보여서..
이렇게 공유드려보네요...

개인적으로 진짜..표준 Linux rsync와 유사하게 Windows 시스템에서 Linux 장치로 파일을 동기화하는 도구가 필요했거든요..

너무나 감사한 웹사이트의 내용이였고요....
저도 받은 만큼 더욱 선한 영향력을 끼칠 수 있도록 노력하자고 다짐해봤습니다. 

(아무쪼록 해당 블로그가 더움이 되셨을 기원하겠습니다. )

주요내용은 아래와 같이 요약되고요..

  • FastCDC(Content Defined Chunking) 을 이용해 빠르고 효율적으로 동작
  • 구글 Stadia 에서 사용하던 도구
    • 보통 게임 개발자가 윈도우에서 개발을 하고, 리눅스 머신에서 실행해야함
    • 이때 빠른 복사를 위해서 만든 cdc_rsync, cdc_stream 오픈소스 도구
  • CDC RSync
    • 기존 rsync와 유사하지만 3배 정도 빠르게 동기화
    • CDC 기반 원격 diff 알고리듬이 최대 30배 정도까지 빠름
    • 타임스탬프/파일크기가 같다면 스킵
    • 모든 데이터 전송에 빠른 압축을 사용
    • 파일이 변경되었다면, 어떤 부분이 변경되었는지 확인하고 변경된 부분만 전송
  • CDC Stream
    • 컨셉적으로는 sshfs와 유사하지만 읽기속도를 위해 최적화. 약 2배에서 5배까지 속도 향상
    • 리눅스 기기에서 스트림된 데이터를 캐쉬
    • 윈도우에서 파일이 변경된후 리눅스에서 새로 읽게되면, 변경된 부분만 스트리밍 되고 나머지는 캐쉬에서 읽음
    • 디렉토리 메타데이터가 스트리밍 친화적인 방식으로 동작해서 Stat 오퍼레이션이 매우 빠름

혹시 나 해당 툴에 관심이 있으시거나, 더욱 공부해보고자 하시고 싶은분들께서는요..
아래 웹페이지를 방문해 보시면 좋을것 같네요..


오늘의 블로그는 여기까지고요..
항상 믿고 봐주셔서 감사합니다. 

728x90
300x250