Làm cách nào để tạo máy chủ Dropbox / Ubuntu One của riêng tôi tại nhà?


70

Có ai biết bất kỳ tài nguyên nào có thể chỉ cho tôi cách tạo máy chủ "Dropbox, Ubuntu One" của riêng tôi không?

Tôi thực sự thích ý tưởng về các dịch vụ này, nhưng tôi không muốn đưa 'công cụ' của mình lên mây. Lý tưởng nhất, nó nên có một máy khách chạy trên Linux và Windows.

Tôi đã cố gắng thiết lập iFolder trên Ubuntu 10.04 của mình nhưng không thành công cho đến nay.


Tôi không chắc là tôi hiểu vấn đề. Có gì sai với dropbox?
Oli

Nó có một số giới hạn lưu trữ và với nhiều cộng tác viên trong nhiều dự án, những người được trả 50 GiB bị mất khá nhanh.
Henrik

4
Có thể có những hậu quả khôn lường trong việc cho phép các công ty như Dropbox lưu trữ dữ liệu cá nhân của chúng tôi. Rất may, có một dự án đang được thực hiện để tạo ra một hệ điều hành có thể chạy đám mây cá nhân của riêng bạn trên một máy tính chạy ARM kiểu cắm.
daithib8

2
Trớ trêu rằng điều này không đơn giản như a sudo apt-get install ubuntu-one-server.
Prateek

Câu trả lời:


41

Hiện tại không có một sự thay thế nguồn mở tuyệt vời nào sẽ hoạt động tốt. Điều tốt nhất để theo dõi là dự án spark Meatare: http : //www.spark Meatare.org/

Hy vọng rằng sẽ phát triển thành một tuyệt vời, tự làm, thay thế.


2
Thật không may, nó đang sử dụng git DVCS làm phụ trợ không phù hợp với dữ liệu nhị phân ~ 1TB, vì các sửa đổi trên dữ liệu nhị phân sẽ làm tăng dung lượng sử dụng của máy chủ. Nhưng bên cạnh đó có vẻ đầy hứa hẹn.
toán

44

Thực tế có rất nhiều trong số họ.

  • SparkleShare (deps: git / subversion, mono, python) tại phần mềm đồng bộ hóa dựa trên GUI của github .

    a. Phiên bản: thông qua hệ thống kiểm soát nguồn, do đó, nó dựa trên máy chủ trung tâm thông qua số phiên bản.

    b. Nhà nước: đang phát triển

    c. Ưu điểm: OSS, dựa trên đơn sắc nên có thể sửa đổi dễ dàng, Nhược điểm: quy trình cấp độ người dùng, phụ thuộc vào GC, giao thức chia sẻ không hiệu quả theo các đơn đặt hàng cường độ vì git chủ yếu dành cho các tệp văn bản nhỏ, khá khó biên dịch (tôi đã thử). Sử dụng các công cụ cấp cao.

  • lipync (deps: Unison, rsync) Phần mềm dựa trên dịch vụ dòng lệnh.

    a. Phiên bản: thông qua algoritm rsync . Tôi giả sử lập trình viên phải chọn giải quyết xung đột.

    b. Bang: Tôi không thể tìm thấy mã nguồn của nó, vì vậy tôi không biết. Điều duy nhất trong repo git của anh ta là nhị phân.

    c. Ưu điểm: thiết lập đẹp, sử dụng các công cụ trung cấp.

  • iFolder - Dropbox của Novell. Tôi chưa nghiên cứu nguồn của nó. Tôi chỉ muốn chỉnh sửa nó và nếu mọi người quan tâm tôi sẽ thêm nhiều hơn nữa.

    a. Phiên bản:

    b. Trạng thái: Có vấn đề khiến nó thậm chí biên dịch trên Ubuntu, chứ chưa nói đến các gói. Dưới đây là hướng dẫn cài đặt chi tiết .

    c. Ưu điểm: Máy khách Windows X64, trưởng thành, tích hợp AD với ACL, các tính năng không có dự án nào khác bắt đầu thực hiện. Tôi nghĩ rằng đây có thể là một điểm khởi đầu tốt. Nhược điểm: Novell có thể không sử dụng repo svn công khai của nó làm repo chính và chỉ thực hiện giảm mã. Tôi không biết chính xác về điều này mặc dù. Có thể quá ghép nối với openSUSE để dễ dàng cài đặt trên Ubuntu. Để kiểm tra các thuật toán của nó.

  • scp / RCp - không dùng nữa cho rsync

  • DRDB - chặn các công cụ phản chiếu thiết bị cho RAID-1 phân tán, tức là biến thể máy chủ của dropbox. Tôi chưa kiểm tra mã nguồn của nó, nhưng nó chỉ là linux. Thuật toán thực tế có thể dễ dàng kết hợp với mã nguồn trong phần suy nghĩ của tôi bên dưới danh sách phần mềm này.

    a. Phiên bản: định dạng tin nhắn nội bộ qua LAN / WAN

    b. Bang: có vẻ đủ trưởng thành

    c. Ưu điểm: đủ ổn định cho linux, Nhược điểm: không có hệ điều hành nào khác được hỗ trợ


Ngay bây giờ tôi đang nghiên cứu cải thiện thời gian biên dịch trên Windows 7 ảo hóa, trong đó thời gian biên dịch trên Windows 7 trên kim loại là 40 giây, nhưng ảo hóa khoảng 3m 20 giây. Tôi đang nghĩ đến việc viết trình điều khiển ioctl là bộ đệm ghi thông tin trông giống như một đĩa ram cho các thư mục được chọn trên NTFS.

Sử dụng phần mềm trên, tôi nghĩ rằng việc phát triển toàn thời gian 2-3 người trong một tuần sẽ tạo ra một Alpha có thể sử dụng mà không làm mất các tệp của bạn bằng cách kết hợp các phần mềm trên.


Trên hệ thống của tôi sau đó, ý tưởng chung sẽ là;

  1. Gắn ổ đĩa ảo \? {GUID}, đó là đĩa ram và bộ đệm RW. Phần mềm tạo ổ đĩa ảo này có hai tham số đầu vào (rất quan trọng):

    a. Thư mục đích; đây là thư mục SMB, vì vậy tôi sẽ để ngăn xếp mạng của hệ điều hành xử lý IO thực tế. Trong trường hợp của tôi, đây là lần lượt thư mục ảo VMWare, bản thân nó đã là mục tiêu trên ổ đĩa ext4, nhưng nó có thể dễ dàng trở thành máy chủ tệp của bạn bằng SAMBA / SMB.

    b. Đường dẫn của thư mục sẽ được gắn kết, ví dụ: C: \ ramdisk

    Mã này để tạo khối lượng ảo được lấy từ mã của TrueCrypt , trong /Driver/DriverFilter.c (trong số các tệp khác)

  2. Ổ đĩa sử dụng giao thức SMB / VMWare / mạng để tìm nạp dữ liệu khi khởi động; nó tìm nạp với mức độ ưu tiên tác vụ thấp, không đồng bộ từ mạng và lấp đầy bộ đệm của nó. Nó có thể sử dụng thuật toán nén đơn giản và có 1 luồng sử dụng chuyển tiếp kiểu hộp thông báo để có hiệu năng tuyệt vời. Trên Windows, nó có thể sử dụng các cuộc gọi IO async bình thường và trên linux, nó có thể sử dụng triển khai epoll / inotify và lấy mã từ nginx .

  3. Dịch vụ của tôi đó là đĩa ram gắn ổ đĩa ramdisk không tên dưới dạng thư mục NTFS. Tất cả các chương trình có thể tiếp tục viết thư cho C: \ ramdisk hoặc bất cứ điều gì tôi gọi nó.

  4. Async sao chép từ mạng vẫn đang diễn ra. Với tốc độ đọc xấp xỉ 100 MiB / s và 2 GiB ramdisk, sẽ là 20,5 giây để đọc tất cả dữ liệu.

Mỗi lệnh gọi để đọc sẽ thực hiện tính toán trong CPU của chỉ mục thành một mảng có kích thước tối đa n: ulong GiB. Nó sẽ yêu cầu giải quyết xung đột mặc dù hoặc khóa đọc-ghi. Nếu chúng tôi thực hiện một algoritm giải quyết xung đột như những thứ có sẵn thông qua Microsoft Sync, chúng tôi có thể chuyển từng đoạn xung đột dưới dạng tin nhắn sang một quy trình giải quyết xung đột khác. Dropbox giải quyết nó bằng cách tạo một tệp mới và đặt tên là "Bản sao mâu thuẫn của tên người dùng PrevFileName (yyyy-MM-dd) .ext". Có lẽ điều này có thể được thay đổi thông qua một tiện ích nhỏ, nếu một người đang biên dịch theo nguồn đơn đó - tiện ích sẽ phát hiện các thay đổi nổi bật dưới dạng tin nhắn / sự kiện và chọn giao thức giải quyết xung đột. Như vậy, khi lập trình dựa vào thư mục ở chế độ độc quyền, Windows VM có thể đặt tiện ích thành 'độc quyền'.

Điều này sẽ có những PRO

  • Nó sẽ không chặn / không đồng bộ
  • Nó sẽ đưa ra giả định nhưng không yêu cầu một máy tính sẽ ghi phần lớn vào các tệp.
  • Nó sẽ làm việc cho các tệp lớn tùy ý
  • Nó sẽ hoạt động trên * nix và Windows bằng cách liên kết các dự án được đề cập.
  • Nó sẽ hoạt động khi cần hiệu suất đọc cao (tức là các tệp được đặt trên đĩa)
  • Khi đạt được các sự kiện xung đột, người ta có thể cung cấp một ứng dụng giao diện người dùng cho phép người dùng viết / tải xuống các plugin hoạt động hoàn toàn cho các loại sự kiện khác nhau - tức là các loại tệp khác nhau. Ví dụ: một tệp văn bản có thể được đưa lên bằng Kompare / WinDiff, trong khi tệp nhị phân sẽ được sao chép và lưu dưới dạng tệp khác.

Thư mục bin của Lipync chứa các tập lệnh shell, không phải nhị phân.
haggai_e


5

Tôi đã nghe nói về Syncany trên Podcast Ubuntu UK , hiện đang là bản beta nhưng có vẻ như nó đáp ứng các yêu cầu


Ý tưởng tuyệt vời để sử dụng không gian web miễn phí cho dù giao thức ban đầu được dự định là gì :)
toán học

3

Tôi không nghĩ rằng đây là những gì bạn đang tìm kiếm, nhưng nó phụ thuộc vào mục đích sử dụng của bạn.

CrashPlan là gói phần mềm sao lưu và dịch vụ lưu trữ sao lưu trực tuyến có liên quan, nhưng điều khác biệt là phần mềm của họ có chế độ cho phép bạn sao lưu dữ liệu qua internet (hoặc LAN) cho một PC khác chạy phần mềm.

Điều này có nghĩa là đích đến không phải ở trên đám mây. Nó không hoàn toàn giống như dropbox ở chỗ nó thiên về sao lưu hơn là đồng bộ hóa và truy cập các tệp từ khắp mọi nơi, nhưng nếu nó chỉ là bản sao lưu bạn muốn thì nó hoạt động tốt. Nếu bạn muốn truy cập các tệp được sao lưu từ PC khác, tôi nghĩ bạn có thể thực hiện "khôi phục cục bộ" nhưng đó không phải là thứ tôi đã thử.

Gói phần mềm cơ bản là miễn phí và hỗ trợ chế độ "sao lưu sang máy tính khác", nhưng chỉ thực hiện sao lưu theo lịch trình nhưng có phiên bản "pro" của phần mềm cũng có chi phí và đồng bộ hóa thời gian thực thay vì chỉ sao lưu theo lịch trình. (Lưu trữ đám mây cũng là một khoản thanh toán tùy chọn mỗi tháng thêm)


3

Tôi sử dụng Unison cho máy khách và rsnapshot (rsync với perl script) để sao lưu máy chủ.


2

-1 Tôi không nghĩ đây là giải pháp tốt nhất và do đó không phải là câu trả lời.
Henrik

-1 đây là một máy chủ rsync không phải là một dropbox như giải pháp ...
Arman

1
Giải pháp này bị hạn chế về tính hữu ích vì nó chỉ đơn giản là liên kết đến một bài viết khác, tạo ra nguy cơ liên kết. Câu trả lời này nên được chỉnh sửa để có ý nghĩa hơn, trong khi chỉ cần trích dẫn liên kết đã cho làm nguồn.
Christopher Kyle Horton

Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Tim

2

Nếu bạn muốn thiết lập hai (hoặc nhiều) máy với một thư mục được sao chép, hãy xem glusterfs.

Thật dễ dàng để thiết lập nếu bạn làm theo Hướng dẫn sử dụng GlusterFS .


Bạn có nói rằng trong cụm GlusterFS, các tệp sẽ được đồng bộ hóa trong khi các máy khách được kết nối với các máy khách khác, nhưng hệ thống tệp vẫn sẽ có sẵn cục bộ cho một máy khách bị ngắt kết nối với các máy khách khác? Tôi đang nghĩ đến việc sử dụng điều này để đồng bộ hóa giữa máy tính xách tay và máy chủ của tôi.
Ryan Thompson

Đúng. Tôi chưa hoàn thành thử nghiệm của mình nhưng nó dường như hoạt động mà không có vấn đề gì.
Richard Holloway

Điều này không hoạt động trên Windows, vì vậy nó không "tuân thủ dropbox".
Henrik

2

Không ai đề cập đến đồng bộ hóa bitorrent ? Chạy trên mọi thứ - Ubuntu, windows, nhiều hệ điều hành điện thoại thông minh phổ biến, raspberry pi .... bạn đặt tên cho nó, nó có thể hoạt động và như một người dùng thông thường. Chuyển tiền được mã hóa, các tệp không được lưu trữ trên đám mây (mặc dù tôi nghĩ rằng bittorrent chạy trình theo dõi cho nó), rất nhanh, bạn có thể chia sẻ có chọn lọc các thư mục và hầu như không có sự phức tạp nào, bạn chỉ cần sao chép và dán khóa vào khóa khác hệ thống.

Một khi nó được thiết lập, nó chỉ hoạt động.


1

Tôi đang để mắt đến AeroFS . Có vẻ như nó có thể là một dịch vụ giống như Dropbox trong đó lưu trữ trong đám mây là tùy chọn. Không biết liệu họ có thực hiện hỗ trợ di động hay không và tôi đoán điều đó sẽ yêu cầu bạn đồng bộ hóa các tệp đó với đám mây. Tôi chủ yếu quan tâm đến một giải pháp đồng bộ hóa khá đau đớn giữa các máy tính Windows, Mac và Linux.

Họ đang ở giai đoạn đầu nhưng bạn có thể đăng ký lời mời nếu muốn.


1

Tôi sử dụng apache với mod_dav (webdav) cho máy chủ web apache, tôi có thể gắn kết nó dưới dạng một ổ đĩa và tải lên / tải xuống các tệp trên web. Điều này khá đơn giản, nhưng có thể đáp ứng nhu cầu của bạn.


1

Mặc dù đã có những lựa chọn thay thế thú vị được liệt kê ở đây và đây là một câu hỏi cũ hơn, tôi tin chắc rằng chủ đề này rõ ràng không lỗi thời và - ngược lại - ngày càng trở nên quan trọng hơn, do các sự kiện phá vỡ quyền riêng tư cuối cùng.

Tôi muốn chia sẻ kinh nghiệm của riêng tôi do đó. Giải pháp hiện tại của tôi cho một môi trường giống như đám mây được lưu trữ riêng là Seafile .

Các tính năng của Seafile:

  • Truy cập đám mây dựa trên web
  • Các máy khách dành cho Linux, Windows, Mac, iOS (không miễn phí), Android
  • Quản lý người dùng / nhóm
  • Tổ chức tệp qua các thư viện khác nhau
  • Đồng bộ hóa tập tin tự động thông qua phần mềm máy khách
  • Khả năng xuất bản tệp thông qua việc tạo liên kết công khai

Kinh nghiệm đi biển của tôi:

  • Cài đặt đã chết dễ dàng và nhanh chóng! (trên vm debian mỏng, với các tệp được lưu trữ qua chia sẻ với máy chủ vật lý sợ 5)
  • Giao diện người dùng sạch sẽ và tiện dụng
  • Phần mềm máy khách sạch sẽ và tiện dụng
  • Không vấn đề chức năng cho tôi, cho đến bây giờ! (sử dụng cái này từ vài tuần nay)
  • Bộ tính năng là cơ bản (so với owncloud ví dụ), nhưng tôi nhấn mạnh rằng mọi thứ đều hoạt động ở đây!
  • Không hỗ trợ proxy trực tiếp (ít nhất là cho máy khách linux - và webinterface!). Lưu ý: webinterface hoạt động, nhưng tải xuống các tệp qua webinterface không hoạt động đằng sau proxy - không biết điều này có thể bằng cách nào đó

Vì tôi không cần hỗ trợ proxy, tôi thực sự hài lòng với Seafile!


0

Tôi sử dụng SSHFS để gắn các thư mục trên máy chủ của mình làm thư mục cục bộ trên máy tính để bàn và máy tính xách tay của tôi. Tất cả các thay đổi tập tin được lưu trực tiếp vào máy chủ. Không giống như dropbox, các tệp không được lưu trữ cục bộ trên các máy khách của bạn. Tôi nghĩ điều này thật tuyệt vì bạn không phải lo lắng về việc đồng bộ hóa và tạo phiên bản, nhưng nó không lý tưởng để sử dụng ngoại tuyến hoặc các tệp rất lớn.

Nó rất trực tiếp và đơn giản, và tôi thấy đó là giải pháp tốt nhất. Điều duy nhất tôi không sử dụng nó cho các phương tiện lớn như hình ảnh và phim ảnh vì tất cả các tệp được truy cập qua mạng. Những người tôi đồng bộ hóa với Rsync.

Liên kết đến tài liệu SSHFS -> http://fuse.sourceforge.net/sshfs.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.