대륙의 2TB(테라바이트) 클라우드 바이두(Baidu,百度云)의 충격의 업로드 속도를 분석하다

 얼마전 대륙의 클라우드 서비스라며 국내에서는 상상하기도 어려운 2TB, 10TB 심지어는 36TB까지 무료로 서비스하는 클라우드가 중국에서 런칭했습니다.

 그중에서도 기능적으로도, 속도면에서도 가장 메리트가 있다는 바이두 클라우드 서비스를 직접 가입해보았습니다.

 중국 사이트들은 신뢰도가 낮아서 서비스가 허접할거 같았으나 생각보다 속도고 괜찮고 기능도 나쁘지 않았습니다.

 저도 여유공간이 없어 허덕대는 컴퓨터 하드를 조금 여유있게 만들어보고자 소장용(?) 동영상들을 업로드 하기 시작했습니다. 대략 업로드 해야하는 용량만 해도 100기가는 족히 넘을꺼 같아서 어느세월에 업로드 하나 걱정이 많았습니다. 제가 쓰고있는 인터넷의 업로드 속도는 잘나올때는 5MB/S 정도 나오니까. 100기가를 업로드 하려면 최대 속도에서 약 2만초, 다시 계산하면 300분정도.. 다시 계산하면 5시간정도 나오는군요. 조금 쓸때없는 계산이었습니다.

 하지만 한국서버에서도 겨우 이렇게 나오는데 중국이라고 더 빠르겠습니까… 제가 업로드 속도를 테스트 해보니 잘나오면 1MB/s 이하로 나오더군요. 흑흑 잘해봐야 25시간이나 걸리겠다는 생각이 들었네요.

 그런데 업로드를 시작하고서는 어처구니 없는 상황이 발생합니다. 1기가가 넘는 파일이 수초만에 업로드가 완료되었다는 표시가 되는것입니다. 거짓말인가 싶었는데 스트리밍도 정상적이고 다운로드를 받아봐도 정상파일입니다.

 허걱 -________________________-;;;;;;;;;;;;;;;;;;;;;;

 제가 보유한 상당수의 파일이 저렇게 초고속으로 업로드 되는것이었습니다. 무슨일인가 궁금한것은 못참는 성격이라 곰곰히 생각하다가 웹에서 답을 찾았네요.

 우선 바이두 클라우드에 파일을 넣는 방법은 크게 3가지가 있죠. 첫번째는 당연히 사용자가 직접 업로드 하는것이고 두번째는 http링크나 ftp링크를 입력해서 원격으로 다운받는방법 그리고, 세번째는 사람들이 가장 좋아하는 방식인데 토렌트 시드파일(.torrent)을 업로드 해서 원격으로 다운받게 하는 시드박스 기능으로 파일을 다운받는것입니다.

 재미있게도 이 3가지 방법에 공통적으로 적용되는것인데 순식간에 다운로드가 완료되는 현상입니다.

 그 초고속 업로드에는 상당히 신선한 아이디어가 숨어있었습니다. 역시 대륙정도 되어야 이정도 아이디어가 나오나 봅니다.

 우선 모든 파일에는 중복 불가능한 해쉬코드라는것이 있습니다. 대표적으로 CRC32가 있습니다. 잠깐 위키피디아 설명을 옮겨와 보도록 하죠.

해시 함수(hash function) 또는 해시 알고리즘(hash algorithm)은 임의의 데이터로부터 일종의 짧은 “전자 지문“을 만들어 내는 방법이다. 해시 함수는 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 결과를 만들어 내며, 이 결과를 흔히 해시 값(hash value)이라 한다. 해시 함수는 결정론적으로 작동해야 하며, 따라서 두 해시 값이 다르다면 그 해시값에 대한 원래 데이터도 달라야 한다. (역은 성립하지 않는다) 해시 함수의 질은 기대되는 입력 영역에서 얼마나 적은 해시 충돌(서로 다른 두 데이터의 해시 값이 같은 경우)을 일으키느냐로 결정되는데, 충돌이 많이 날수록 서로 다른 데이터를 구별하기 어려워지고 데이터를 검색하는 비용을 늘리기 때문이다. – 출처 : http://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98

 이렇게 세가지중 한가지 방법으로 업로드를 시도하는 파일의 해시값을 먼저 찾아내어 기존 유저들중에 동일한 파일을 업로드 한적은 없는지 비교를 합니다. 그래서 동일한 파일이 어딘가에 업로드 되어있다면 업로드를 완료시키고 기존 서버에 있는 파일을 복사(?)해오는 방식이죠.

 기존에 업로드 하다라는 의미는 내 컴퓨터의 데이터가 서버의 컴퓨터에 한비트비트 꼼꼼히 전송되는것이 통용되는 의미인데 바이두 클라우드에서 업로드는 내가 업로드 하고싶은 파일이 서버에 있는지 없는지 먼저 확인하고 있으면 별도로 전송하지 않고 서버에 들어있는 파일을 쓰고 없으면 내가 직접 전송한다로 바꾸어 의미적용을 해야 할것 같습니다.

 그래서 그런지 동시다발적 업로드를 하게되면 하드디스크가 죽어나가는 증상이 발생합니다. 동시에 여러개의 해시계산을 해서 그런증상이 발생합니다. 하나씩 하나씩 할때는 빠르게 되는데 동시에 시키면 하드가 너무 너무 힘들어하죠.

 표시된 부분처럼 해시값을 계산하는 중일때는 ‘파일을 읽는중‘으로 표시됩니다. 만일에 해시값 비교후 서버에 업로드된적이 없는 파일이면 시간이 표시되면서 업로드가 시작됩니다.

 이 바이두 클라우드의 초고속 업로드를 제대로 활용하려면 동시 업로드 갯수를 제한하는것이 좋습니다.

 참고로 저는 한글화된 바이두 클라우드 프로그램을 설치해두었고, 이 프로그램 정보는 다음 블로그를 방문하시면 되겠습니다. http://w3tech.tistory.com/187

 

 오른쪽 상단에 아래쪽으로향하는 삼각형을 눌러 메뉴를 부른뒤에 설정으로 들어갑니다.

 이후 나오는 첫번째 화면에서 하단에 동시전송 숫자를 조절하도록 합시다. 이게 기본값이 자동인데 업로드 숫자는 자동으로 하기 보다는 적절한 (1~3) 숫자를 선택하는게 좋겠습니다.

 저만의 팁을 알려드리자면 업로드 하고싶은파일중에 서버에 있는 파일들을 먼저 완료시키는 방법인데요, 동시 전송숫자는 1이나 2로 설정해놓고 우선 모조리 업로드 대기창에 밀어넣어 버립니다. 그런뒤에 해시값을 계산해서 실제 업로드가 시작되는 파일은 기존에 서버에 없는 파일이니 일시정지 버튼으로 업로드 순서를 다음으로 넘깁니다. 그러면 다음 파일의 해시값을 계산해서 곧장 업로드 완료가 되면 서버에 이미 있다는 이야기니까 빠르게 확인이 됩니다. 이렇게 해주면 빠른시간에 서버에 파일이 존재하는지 여부를 확인해서 서버에 있는 파일들을 빠르게 가려낼 수 있습니다.

 쓰다보니 의도치 않게 엄청 긴 포스팅이 되었네요. 아무쪼록 대륙의 클라우드 활용(?)에 도움이 되었길 바랍니다.

대륙의 2TB(테라바이트) 클라우드 바이두(Baidu,百度云)의 충격의 업로드 속도를 분석하다”의 10개의 댓글

  1. 옹냥 댓글달기

    감사합니다
    안그래도 속도가 너무 빨라서 이거 내가 잘못한거 아닌가?
    고민하고 있었는뎈ㅋㅋㅋㅋㅋ
    대륙은 역시 대단하네욬ㅋㅋㅋㅋㅋㅋ

  2. 까고있네 ㅡㅡ 댓글달기

    이거 잘아셔야댈게
    중요한파일 소장용파일올리지마세요

    업로드빠른대신 다운로드 속도 병1신입니다

    말그대로 엑기스.휘기파일올리면 클라우드안에 저당잡히는거예요

    다운로드속도 torrent 있을시광속 다운받는속도 10~100kb

    좋은파일 묶어놓고 지들이 처볼라고 만든거 명불허전 짱깨

    • skstar 댓글달기

      어떤 다운로드 속도를 말씀하시는건지요? .torrent 파일을 업로드해서 시드박스 기능의 속도를 이야기하는건지, 아니면 바이두 서버의 파일 다운로드 속도를 이야기 하는건지요.

      시드박스 기능은 사실상 훼이크라고 생각하면됩니다. 시드파일 올려봐야 시드파일의 해시 정보로 본인들이 소유한 파일이면 바로 보여주고 아니면 사실상 새로운 파일은 토렌트방식으로 다운받지 않더라구요.

      혹, 업로드된 파일을 다운받는거 말한다면 시간에 따라 차이가 좀 있지만, 1MB/S ~ 3MB/S 정도 나옵니다. 물론 업로드는 속도가 덜 나오구요. 참고하시기 바랍니다.

  3. 우왕 댓글달기

    빠른전송 검색하다가 들어왔어요 ㅋㅋ
    보고도 믿기 힘들 정도의 속도라서 이게 뭔가 싶어 검색했는데 ㅋㅋ
    잘보고 갑니다. ㅋ
    좋은 정보 감사해요 ㅋㅋ

  4. 히히 댓글달기

    와 오늘 첨 바이두 입문해서
    정말 광속으로 업로드 되길래

    이건 뭐지… 순간 멘탈이 붕괴되면서 괜히 깔았다고 막 후회하던참에
    이글을 보게되었네요 ㅋㅋ

    대륙… 정말 대단하단 말밖에 안나옵니다 ㄷㄷ

  5. 질문있어요 댓글달기

    제가 만약에 a라는 파일을 업로드하는데, 다른사람이 이미 같은 a 파일을 업로드해놓은 상태면 직접 업로드를 하는게 아니라 그 다른사람의 a파일을 복사해오잖아요?
    그러면 그 다른사람이 a파일을 삭제해버리면, 제가 클라우드에 올려놨던 a파일을 다운로드 할 수 없게될텐데.
    제가 개인소장용으로 아주 중요한 파일을 업로드해야되는데, 다른사람이 이미 올려놓은 상태라면. 그걸 무시하고 그냥 제가 따로 직접 업로드하고싶으면 어떻게 해야되나요? 그 다른사람이 파일 삭제해서 나중에 제가 다운로드를 못하게될까봐 걱정이네요.

    • skstar 댓글달기

      기존에 올린사람이 삭제한다고 해서 서버에서 지워지진 않습니다. 누군가의 폴더에 존재한다면 계속 다운되게 되어있죠.

      내부적으로 그렇게 용량절약을 위해서 처리한다는것이지, 사죵자 입장에서 쓰던 파일이 갑자기 삭제되는일은 없을겁니다.

      그런데 진짜 중요한 파일이라면 중국 서비스 보다는 미국서비스나 한국서비스에 업로드 하는게 좋지 않을까 싶네요.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.