집에서 Dropbox / Ubuntu One 서버를 만드는 방법은 무엇입니까?


70

누구든지 집에서 "Dropbox, Ubuntu One"서버를 만드는 방법을 보여줄 수있는 리소스를 알고 있습니까?

나는이 서비스에 대한 아이디어가 정말 마음에 들지만 클라우드에 내 '물건'을 넣고 싶지 않습니다. 이상적으로는 Linux 및 Windows에서 실행되는 클라이언트가 있어야합니다.

우분투 10.04에서 iFolder를 설정하려고했지만 지금까지 아무런 성공도하지 못했습니다.


문제를 이해하지 못했습니다. 보관 용 계정에 어떤 문제가 있습니까?
Oli

저장 공간이 제한되어 있으며 많은 프로젝트에서 많은 공동 작업자와 함께 50GiB를 지불 한 사람들은 상당히 빨리 손실됩니다.
Henrik

4
Dropbox와 같은 회사가 개인 데이터를 저장하도록 허용하면 예기치 않은 결과가 발생할 수 있습니다. 고맙게도 플러그 스타일의 ARM 기반 컴퓨터에서 개인 클라우드를 실행할 수있는 OS를 만드는 프로젝트가 진행 중입니다.
daithib8

2
아이러니하기는 간단하지 않다 sudo apt-get install ubuntu-one-server.
Prateek

답변:


41

현재 사용할 수있는 훌륭한 오픈 소스 대안은 없습니다. 주목해야 할 가장 좋은 점은 sparkleshare 프로젝트입니다 : http://www.sparkleshare.org/

잘만되면 그것은 위대한 것으로 성장하고, 스스로 그것을 대안으로 삼을 것입니다.


2
불행히도 이진 데이터를 수정하면 서버 공간 사용량이 증가하기 때문에 ~ 1TB 이진 데이터에 적합하지 않은 백엔드로 git DVCS를 사용하고 있습니다. 그러나 그 옆에는 유망한 것으로 보입니다.
math

44

실제로 많은 것이 있습니다.

  • github GUI 기반 동기화 소프트웨어의 SparkleShare (deps : git / subversion, mono, python) .

    에이. 버전 관리 : 소스 제어 시스템을 통해 버전 번호를 통해 중앙 서버에서 뮤텍스 기반입니다.

    비. 상태 : 개발 중

    씨. 장점 : OSS, 모노 기반이므로 쉽게 수정할 수 있음 단점 : 사용자 수준 프로세스, GC 종속, 비효율적 인 공유 프로토콜은 git이 주로 작은 텍스트 파일을위한 것이므로 컴파일하기가 어렵 기 때문에 시도했습니다. 고급 도구 사용

  • lipsync (deps : Unison, rsync) 명령 줄 서비스 기반 소프트웨어.

    에이. 버전 관리 : rsync delta algoritm을 통해 . 프로그래머가 충돌 해결을 선택해야한다고 가정합니다.

    비. 상태 : 소스 코드를 찾을 수 없으므로 잘 모르겠습니다. 그의 자식 저장소에있는 유일한 것은 바이너리입니다.

    씨. 장점 : 중간 수준의 도구를 사용한 멋진 설정.

  • iFolder -Novell의 Dropbox. 나는 그 출처를 아직 연구하지 않았습니다. 이 편집을하고 싶습니다. 사람들이 관심이 있다면 더 추가하겠습니다.

    에이. 버전 관리 :

    비. 상태 : 패키지는 물론 우분투에서도 컴파일하는 데 문제가 있습니다. 자세한 설치 안내서는 다음과 같습니다 .

    씨. 장점 : Windows X64 클라이언트, 성숙하고 ACL과 AD 통합, 다른 프로젝트가 구현하지 않은 기능. 나는 이것이 좋은 출발점이 될 것이라고 생각합니다. 단점 : Novell은 공용 svn 저장소를 기본 저장소로 사용하지 않고 코드 삭제 만 수행 할 수 있습니다. 그래도 정확히 알지 못합니다. Ubuntu에 쉽게 설치하기 위해 openSUSE에 너무 연결되었을 수 있습니다. 알고리즘을 확인하십시오.

  • scp / rcp-rsync를 위해 사용되지 않습니다

  • DRDB- 분산 RAID-1에 대한 블록 장치 미러링 도구, 즉 서버 변형 dropbox. 아직 소스 코드를 확인하지 않았지만 Linux 전용입니다. 실제 알고리즘은 아마도이 소프트웨어 목록 아래의 머스 닝에서 소스 코드와 쉽게 결합 할 수있을 것입니다.

    에이. 버전 관리 : LAN / WAN을 통한 내부 메시지 형식

    비. 상태 : 충분히 성숙해 보인다

    씨. 장점 : 리눅스에 충분히 안정적, 단점 : 다른 운영 체제는 지원되지 않습니다


지금은 가상화 된 Windows 7에서 컴파일 시간 개선을 조사 중입니다. 여기서 금속에서 Windows 7의 컴파일 시간은 40 초이지만 가상화 된 약 3m 20 초입니다. NTFS에서 선택한 폴더의 램 디스크처럼 보이는 연속 기입 캐시 인 ioctl 드라이버를 작성하려고합니다.

위의 소프트웨어를 사용하면 일주일에 2-3 인의 풀 타임 개발로 위의 소프트웨어를 결합하여 파일을 잃지 않는 유용한 알파를 만들 수 있다고 생각합니다.


내 시스템에서 일반적인 아이디어는 다음과 같습니다.

  1. 램 디스크와 RW 캐시 인 가상 드라이브 \? {GUID}를 마운트하십시오. 이 가상 드라이브를 생성하는 소프트웨어에는 두 가지 입력 매개 변수가 필요합니다 (필수).

    에이. 대상 폴더 이것이 SMB 폴더이므로 운영 체제의 네트워크 스택이 실제 IO를 처리하도록 할 것입니다. 필자의 경우 이것은 VMWare 가상 폴더로, ext4 드라이브에 대상이 있지만 SAMBA / SMB를 사용하는 파일 서버가 될 수 있습니다.

    비. 마운트 될 폴더의 경로 (예 : C : \ ramdisk)

    가상 볼륨을 생성하기위한이 코드 는 /Driver/DriverFilter.c의 다른 파일 중에서 TrueCrypt의 코드 에서 가져옵니다.

  2. 드라이브는 SMB / VMWare / 네트워크 프로토콜을 사용하여 시작할 때 데이터를 가져옵니다. 네트워크에서 비동기 적으로 작업 우선 순위가 낮은 것을 가져 와서 캐시를 채 웁니다. 간단한 압축 알고리즘을 사용할 수 있으며 메시지 상자 유형 연속 전달을 사용하여 성능을 높이는 스레드가 1 개 있습니다. Windows에서는 일반적인 비동기 IO 호출을 사용할 수 있으며 Linux에서는 epoll / inotify 구현을 사용하고 nginx 에서 코드를 가져올 수 있습니다 .

  3. 램 디스크 인 내 서비스는 이름이없는 램 디스크 드라이브를 NTFS 폴더로 마운트합니다. 모든 프로그램은 C : \ ramdisk 또는 내가 부르는 것을 계속 쓸 수 있습니다.

  4. 네트워크의 비동기 사본이 여전히 진행 중입니다. 약 100MiB / s의 읽기 속도와 2GiB 램 디스크의 경우 모든 데이터를 읽는 데 20.5 초가 걸립니다.

각 읽기 호출은 고정 n : ulong GiB 최대 크기 배열로 인덱스의 CPU 내 계산을 수행합니다. 그래도 충돌을 해결하거나 읽기 / 쓰기 잠금이 필요합니다. Microsoft Sync를 통해 사용 가능한 충돌 해결 알고리즘을 구현하는 경우 메시지로 충돌하는 각 청크를 다른 충돌 해결 프로세스에 전달할 수 있습니다. Dropbox는 새 파일을 만들고 "PrevFileName Username의 충돌 사본 (yyyy-MM-dd) .ext"라는 이름을 지정하여 문제를 해결합니다. 단일 소스에 대해 컴파일하는 경우 작은 위젯을 통해 변경 될 수 있습니다. 위젯은 메시지 / 이벤트로 미해결 변경 사항을 감지하고 충돌 해결 프로토콜을 선택합니다. 따라서 독점 모드에서 폴더에 대해 프로그래밍 할 때 Windows VM은 위젯을 '배타적'으로 설정할 수 있습니다.

이 전문가들은

  • 비 차단 / 비 동기화
  • 가정하지만 컴퓨터 한 대가 대부분 파일에 쓰지 않아도됩니다.
  • 임의로 큰 파일에 작동합니다.
  • 언급 된 프로젝트를 함께 묶어 * nix와 Windows에서 작동합니다.
  • 높은 읽기 성능이 필요할 때 작동합니다 (예 : 파일이 실제로 디스크에 위치 함)
  • 충돌하는 이벤트에 도달하면 사용자는 다양한 종류의 이벤트 (예 : 다른 종류의 파일)에 대해 정상적으로 작동하는 플러그인을 작성 / 다운로드 할 수있는 사용자 인터페이스 앱을 제공 할 수 있습니다. 예를 들어 텍스트 파일은 Kompare / WinDiff로 가져올 수 있지만 바이너리는 복제되어 다른 파일로 저장됩니다.

lipsync의 bin 폴더에는 바이너리가 아닌 쉘 스크립트가 포함되어 있습니다.
haggai_e



3

나는 이것이 당신이 찾고있는 것이라고 생각하지 않지만 의도 된 사용법에 달려 있습니다.

CrashPlan 은 백업 소프트웨어 패키지 및 관련 온라인 백업 호스팅 서비스이지만 다른 점은 소프트웨어에 인터넷 (또는 LAN)을 통해 소프트웨어를 실행하는 다른 PC에 데이터를 백업 할 수있는 모드가 있다는 것입니다.

즉, 대상이 클라우드에있을 필요가 없습니다. 그것은 어디에서나 파일을 동기화하고 액세스하는 대신 백업에 관한 것이기 때문에 드롭 박스와는 다르지 만 백업 만 원하는 경우 잘 작동합니다. 다른 PC에서 백업 된 파일에 액세스하려면 "로컬 복원"을 수행 할 수 있지만 시도한 것은 아닙니다.

기본 소프트웨어 패키지는 무료이며 "다른 컴퓨터로 백업"모드를 지원하지만 예약 된 백업 만 수행하지만 예약 된 백업보다는 비용과 실시간 동기화를 수행하는 "프로"버전의 소프트웨어가 있습니다. (클라우드 스토리지는 월별 추가 요금입니다.)


3

클라이언트에는 Unison을 사용 하고 서버 백업에는 rsnapshot (perl 스크립트와 rsync)을 사용합니다.


2

이것이 도움이되는지 확인하십시오.

http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/


-1 이것이 최선의 해결책이라고 생각하지 않으므로 답이 아닙니다.
Henrik

-1 이것은 솔루션과 같은 드롭 박스가 아닌 rsync 서버입니다 ...
Arman

1
이 솔루션은 단순히 다른 기사로 연결되어 링크 로트의 위험이 있으므로 유용성이 제한됩니다. 주어진 링크를 소스로 인용하면서이 답변은보다 실질적으로 편집되어야합니다.
Christopher Kyle Horton

이 이론적으로 질문에 대답 할 수 있습니다 동안, 바람직 할 것이다 여기에 대한 대답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공합니다.
Tim

2

복제 된 폴더로 두 대 이상의 시스템을 설정하려면 glusterfs를 살펴보십시오.

GlusterFS 사용 설명서를 따르면 쉽게 설정할 수 있습니다 .


GlusterFS 클러스터 내에서 클라이언트가 다른 서버에 연결되어있는 동안 파일이 동기화되지만 다른 시스템과의 연결이 끊긴 클라이언트가 파일 시스템을 로컬에서 계속 사용할 수 있다고 말씀하십니까? 랩톱과 서버간에 동기화하는 데 이것을 사용하려고합니다.
Ryan Thompson

예. 아직 테스트를 마치지 않았지만 아무런 문제없이 작동하는 것 같습니다.
Richard Holloway

Windows에서는 작동하지 않으므로 "dropbox 호환"이 아닙니다.
Henrik

2

아무도 언급 된 bitorrent sync ? 우분투, 창, 많은 스마트 폰 OS, 라즈베리 파이 등 무엇이든 실행할 수 있습니다. 암호화 된 전송, 클라우드에 저장되지 않은 파일 (bittorrent가 추적기를 실행한다고 생각하지만) 합리적으로 빠르며 폴더를 선택적으로 공유 할 수 있으며 거의 ​​합병증이 발생하지 않으므로 다른 키를 복사하여 붙여 넣으면됩니다. 체계.

일단 설정되면 작동합니다.


1

AeroFS를 계속 주시하고 있습니다 . 클라우드의 스토리지가 옵션 인 Dropbox와 유사한 서비스 일 수 있습니다. 그들이 모바일 지원을 구현할지 여부를 모르는 경우 클라우드와 파일을 동기화해야한다고 생각합니다. 나는 주로 Windows, Mac 및 Linux 컴퓨터 간의 상당히 고통없는 동기화 솔루션에 관심이 있습니다.

초기 베타 버전이지만 원하는 경우 초대에 가입 할 수 있습니다 .


1

아파치 웹 서버에 대해 mod_dav (webdav)와 함께 아파치를 사용하며, 드라이브로 마운트하고 웹을 통해 파일을 업로드 / 다운로드 할 수 있습니다. 이것은 매우 간단하지만 귀하의 요구를 충족시킬 수 있습니다.


1

여기에 이미 흥미로운 대안이 있지만 이것은 오래된 질문이지만,이 주제는 명백히 구식이 아니며 반대로 개인 정보 보호 위반 사건으로 인해 점점 더 중요 해지고 있다고 확신합니다.

그러므로 내 경험을 공유하고 싶습니다. 자체 호스팅 클라우드 유사 환경에 대한 나의 현재 솔루션은 Seafile 입니다.

Seafile 기능 :

  • 웹 기반 클라우드 액세스
  • Linux, Windows, Mac, iOS (무료 아님), Android 용 클라이언트
  • 사용자 / 그룹 관리
  • 다른 라이브러리를 통한 파일 구성
  • 클라이언트 소프트웨어를 통한 자동 파일 동기화
  • 공개 링크를 통해 파일을 게시 할 가능성

내 Seafile 경험 :

  • 설치가 쉽고 빠르다! (슬림 데비안 VM에서 파일을 물리적 호스트 dmraid 5에 공유하여 저장함)
  • 깨끗하고 기능적인 사용자 인터페이스
  • 깨끗하고 기능적인 클라이언트 소프트웨어
  • 지금까지는 기능적인 문제 가 없었습니다 ! (지금 몇 주부터 이것을 사용함)
  • 기능 세트는 기본 (예 : owncloud와 비교)이지만 모든 것이 여기에서 작동한다고 강조합니다.
  • 직접적인 프록시 지원은 없습니다 (적어도 Linux 클라이언트 및 웹 인터페이스에서는)! 참고 : 웹 인터페이스는 작동하지만 웹 인터페이스를 통한 파일 다운로드는 프록시 뒤에서 작동하지 않습니다-이것이 어떻게 가능한지 모릅니다

프록시 지원이 필요하지 않으므로 Seafile에 정말 만족합니다!


0

SSHFS를 사용하여 서버의 디렉토리를 데스크탑 및 랩톱의 로컬 디렉토리로 마운트합니다. 모든 파일 변경 사항은 서버에 직접 저장됩니다. 그러나 dropbox와 달리 파일은 클라이언트 시스템에 로컬로 저장되지 않습니다. 동기화 및 버전 관리에 대해 걱정할 필요가 없기 때문에 이것이 훌륭하다고 생각하지만 오프라인 사용 또는 대용량 파일에는 적합하지 않습니다.

매우 직접적이고 간단하며 최상의 솔루션이라고 생각합니다. 내가 사용하지 않는 유일한 것은 모든 파일이 네트워크를 통해 액세스되기 때문에 사진 및 영화와 같은 대형 미디어입니다. 내가 Rsync와 동기화하는 것.

SSHFS 설명서 링크-> http://fuse.sourceforge.net/sshfs.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.