有没有人知道任何可以向我展示如何在家里制作自己的“Dropbox,Ubuntu One”服务器的资源?
我真的很喜欢这些服务的想法,但我不想把我的“东西”放在云端。理想情况下,它应该有一个在 Linux 和 Windows 上运行的客户端。
我试图在我的 Ubuntu 10.04 上设置 iFolder,但到目前为止没有任何成功。
有没有人知道任何可以向我展示如何在家里制作自己的“Dropbox,Ubuntu One”服务器的资源?
我真的很喜欢这些服务的想法,但我不想把我的“东西”放在云端。理想情况下,它应该有一个在 Linux 和 Windows 上运行的客户端。
我试图在我的 Ubuntu 10.04 上设置 iFolder,但到目前为止没有任何成功。
实际上有很多。
SparkleShare(deps:git/subversion,mono,python)在github 基于 GUI 的同步软件。
一个。版本控制:通过源代码控制系统,因此它通过版本号基于中央服务器的互斥锁。
湾。状态:开发中
C。优点:OSS,基于单声道的,因此很容易修改,缺点:用户级进程,依赖于 GC,无效的共享协议数量级,因为 git 主要用于小文本文件,很难编译(我试过)。使用高级工具。
lipsync (deps: Unison, rsync) 基于命令行服务的软件。
一个。版本控制:通过rsync delta 算法。我假设程序员必须选择冲突解决方案。
湾。状态:我找不到它的源代码,所以我不知道。他的 git repo 中唯一的东西是二进制文件。
C。优点:很好的设置,使用中级工具。
iFolder - Novell 的 Dropbox。我还没有研究它的来源。我只是想完成这个编辑,如果人们有兴趣,我会添加更多。
一个。版本控制:
湾。状态:即使在 Ubuntu 上编译也有问题,更不用说软件包了。这是详细的安装指南。
C。优点:Windows X64 客户端,成熟,与 ACL 的 AD 集成,其他项目尚未开始实施的功能。我认为这可能是一个很好的起点。缺点:Novell 可能不会将其公共 svn 存储库用作主存储库,而只会进行代码删除。不过,我并不确切知道这一点。可能与 openSUSE 过于耦合而无法在 Ubuntu 上轻松安装。检查它的算法。
scp/rcp - 不推荐使用以支持 rsync
DRDB - 用于分布式 RAID-1 的块设备镜像工具,即保管箱的服务器变体。我还没有查看它的源代码,但它只是 linux 的。实际的算法可能很容易与我在此软件列表下方的思考中的源代码相结合。
一个。版本控制:LAN/WAN 上的内部消息格式
湾。状态:看起来足够成熟
C。优点:对于 linux 足够稳定,缺点:不支持其他操作系统
现在我正在研究改进虚拟化 Windows 7 上的编译时间,其中金属上的 Windows 7 上的编译时间是 40 秒,但虚拟化大约 3m 20 秒。我正在考虑编写一个 ioctl 驱动程序,它是一个直写式缓存,看起来像 NTFS 上选定文件夹的 ram-disk。
使用上面的软件,我想2-3人的全职开发一周的时间,结合上面的软件,就可以制作出一个不丢失文件的可用Alpha。
那么在我的系统上,一般的想法是;
挂载一个虚拟驱动器 \?{GUID},即 ram-disk 和 RW-cache。创建此虚拟驱动器的软件需要两个输入参数(至关重要):
一个。目标文件夹;这是 SMB 文件夹,所以我将让操作系统的网络堆栈处理实际的 IO。在我的例子中,这又是 VMWare 虚拟文件夹,它本身就是一个 ext4 驱动器上的目标,但它很容易成为您使用 SAMBA/SMB 的文件服务器。
湾。要挂载的文件夹路径,例如C:\ramdisk
此用于创建虚拟卷的代码取自TrueCrypt 的代码,位于 /Driver/DriverFilter.c(以及其他文件)
驱动器启动时使用SMB/VMWare/网络协议获取数据;它以低任务优先级从网络异步获取并填充其缓存。它可以使用简单的压缩算法并有 1 个线程使用消息框类型的延续传递来获得出色的性能。在 Windows 上它可以使用正常的异步 IO 调用,在 linux 上它可以使用epoll / inotify实现并从nginx获取代码。
我的 ram-disk 服务将未命名的 ramdisk 驱动器安装为 NTFS 文件夹。所有程序都可以继续写入 C:\ramdisk 或我所说的任何东西。
来自网络的异步复制仍在继续。读取速率约为 100 MiB/s 和 2 GiB ramdisk,读取所有数据需要 20.5 秒。
每次调用 read 都会在 CPU 中计算索引到一个固定的 n:ulong GiB 最大大小的数组中。它需要解决冲突或读写锁。如果我们要实现像 Microsoft Sync 中可用的冲突解决算法,我们可以将每个冲突块作为消息传递给另一个冲突解决进程。Dropbox 通过创建一个新文件并将其命名为“PrevFileName Username's Conflicted Copy (yyyy-MM-dd).ext”来解决它。也许这可以通过一个小部件来改变,如果一个小部件正在针对该单一源进行编译 - 小部件会将未完成的更改检测为消息/事件并选择冲突解决协议。因此,当以独占模式对文件夹进行编程时,Windows VM 可以将小部件设置为“独占”。
这将有这些 PRO
目前还没有一个很好的开源替代方案可以开箱即用。最好关注的是 sparkleshare 项目:http ://www.sparkleshare.org/
希望这将成长为一个伟大的,自己做的,替代品。
自己的云!听起来像你正在寻找的东西。
我在Ubuntu UK Podcast上听说过Syncany,目前是测试版,但看起来它符合要求
我认为这不是您正在寻找的东西,但这取决于您的预期用途。
CrashPlan是一个备份软件包和相关的在线备份托管服务,但不同的是,他们的软件有一种模式,允许您通过互联网(或 LAN)将数据备份到另一台运行该软件的 PC。
这意味着目的地不必在云中。它与保管箱不太一样,因为它更多的是备份而不是从任何地方同步和访问文件,但如果它只是你想要的备份,那么它运行良好。如果您想从另一台 PC 访问备份的文件,我认为您可以进行“本地还原”,但这不是我尝试过的。
基本软件包是免费的,并支持“备份到另一台计算机”模式,但只进行计划备份,但有一个“专业”版本的软件也需要付费并进行实时同步,而不仅仅是计划备份。(云存储也是可选的每月额外付费)
我使用 Unison 作为客户端,使用rsnapshot (rsync with perl script) 备份服务器。
如果您想设置两台(或更多)具有复制文件夹的机器,请查看 glusterfs。
如果您遵循GlusterFS 用户指南,则很容易设置。
没有人提到比特流同步?可以在任何东西上运行——Ubuntu、windows、许多常见的智能手机操作系统、覆盆子 pi ......你说它,它可能工作,并且作为一个普通用户。加密传输,文件没有存储在云上(尽管我认为 bittorrent 会为它运行跟踪器),速度相当快,您可以选择性地共享文件夹,并且几乎不涉及任何复杂性,您只需将密钥复制并粘贴到另一个系统。
设置好后,它就可以工作了。
我一直在关注AeroFS。看起来它可能是一种类似于 Dropbox 的服务,其中云中的存储是可选的。不知道他们是否/何时会实施移动支持,我想这也需要您将这些文件同步到云端。我主要对 Windows、Mac 和 Linux 计算机之间相当轻松的同步解决方案感兴趣。
它们处于早期测试阶段,但您可以根据需要注册邀请。
我将 apache 与 mod_dav (webdav) 一起用于 apache 网络服务器,我可以将其挂载为驱动器并通过网络上传/下载文件。这很简单,但可能会满足您的需求。