写点什么

S3QL:一个用 Python 写成的在线存储系统

  • 2015-09-07
  • 本文字数:1299 字

    阅读完需:约 4 分钟

S3QL 是一个在线存储系统,使用诸如 Google Storage Amazon S3 OpenStack 这样的服务存储数据。它提供了一个动态的、容量无限的硬盘,任何运行 Linux、FreeBSD 或 OS X 的计算机都可以通过互联网访问。

S3QL 是一个符合标准的全功能 Unix 文件系统。它有一些额外的特性,使它特别适应于在线备份和归档。相比性能和功能而言,它更注重简洁与优雅。项目创建者 Nikolaus Rath 一直致力于确保源代码的可读性和可维护性。以下是 S3QL 的特性:

  • 透明性——从概念上讲,S3QL 与本地文件系统很难区分,例如,它支持硬连接、符号连接、标准 Unix 权限等;
  • 动态大小——S3QL 文件系统的大小可以根据需求动态增长和缩小;
  • 压缩——所有数据在存储之前都可以使用 LZMA、bzip2 或 Deflate(gzip)算法压缩;
  • 加密——在压缩之后上传之前,所有数据都可以使用一个 256 位的密钥进行 AES 加密,它还使用 SHA256 HMAC 校验和保护数据不被篡改;
  • 数据去重——如果多个文件有相同的内容,那么冗余数据只存储一次;
  • 不可变树——目录树可以设置为不可变的,这一特性有利于确保备份不会被修改;
  • 写入时复制\快照——S3QL 可以复制整个目录树,而不使用任何额外的存储空间,只有当其中一个副本被修改了时,被修改的数据会占用额外的空间;
  • 高性能——所有不读写文件内容的操作都非常快,因为 S3QL 将整个文件和目录结构存储在一个数据库中,而后者会在本地缓存,且远程副本为异步更新;
  • 支持低带宽连接——S3QL 将文件内容分成多个小块并缓存在本地。

近日,该项目在Hacker News 上引发了激烈的讨论,并登上了HN 的首页。不过,虽然讨论的内容很多,但关于S3QL 的内容相对较少,大多数讨论是围绕类似的解决方案,比如 Duplicity Attic Tarsnap ObjectiveFS 等。网友 indiv0 根据 S3QL 的文档断定,S3QL 使用的加密算法为 MAC-then-encrypt 算法。他认为这种算法不好。也有其他网友持类似观点,其中 dlitz 就认为这种算法太老。但网友 JoachimSchipper 并不认为 S3QL 采用了 MAC-then-encrypt 算法。另外,网友 witten 使用过 S3QL 和 Tarsnap,他认为:

S3QL 使用了远程加载文件系统,从根本上讲,这不适合无人值守的备份。在许多情况下,S3QL 加载的文件系统会在备份过程中因为网络问题中断……

另外,S3QL 会周期性地发布不支持旧版本文件格式的新版本,或者仅仅向前支持一定的版本数量。因此,如果你升级不够经常,那么你会发现自己用了一个拒绝读取现有的 GB 级数据的版本。

关于第二点, S3QL 开源页面也提到了:

S3QL 已经稳定,可以用于生产环境。不过从一个小版本升级到下一个可能会改变公共接口,或者需要升级文件系统结构。因此,强烈建议在升级前阅读变更日志。

按照该页的说法,如果用户系统支持 Python 3.3 及以上版本,则建议下载最新的 2.x 版本。但 maint-1.x 分支也可以用于生产环境,只是不再进行积极的开发,只会修复影响较大的 Bug。更多信息,请查看 S3QL Wiki


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-09-07 19:004446
用户头像

发布了 1008 篇内容, 共 405.0 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

photoshop神经滤镜是什么,神经滤镜功能揭秘~

Rose

photoshop神经滤镜 Neural Filters插件 ps滤镜下载 PS2023破解

爆肝了!阿里最新版的这份Spring Security源码手册,狂揽GitHub榜首

做梦都在改BUG

Java spring spring security Spring Security OAuth

工厂+策略在springboot项目中的使用场景

做梦都在改BUG

Java Spring Boot 工厂模式 策略模式

简直人生外挂,直接涨薪25K,跪谢这份Java性能调优实战宝典

做梦都在改BUG

Java 性能优化 性能调优

Redis和MySQL的爱恨情仇!

Java你猿哥

Java MySQL redis ssm 缓存雪崩

Maven Cannot resolve plugin org.apache.maven.plugins

Andy

AE模板:短信消息聊天对话气泡动画Smart Text Message

Rose

AE模板下载 Smart Text Message 对话框气泡生生成器插件

非常全面的 SpringBoot 保姆级笔记,面面俱到,太牛了

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

国外顶级架构师编写2580页DDD领域驱动设计笔记,看到内容后破防了

做梦都在改BUG

Java 架构 领域驱动设计 DDD

基于Redis讲解,学懂缓存雪崩,缓存击穿,缓存穿透

做梦都在改BUG

Java redis 缓存穿透 缓存击穿 缓存雪崩

阿里“妈宝级”之作,Kubernetes原理剖析与实战应用手册,太全了

做梦都在改BUG

Java Kubernetes k8s

关于Spring Cloud Alibaba,看阿里这篇笔记真香

Java你猿哥

分布式事务 微服务 Spring Cloud 服务治理 Spring Cloud Aliababa

Java面试很难?啃完阿里老哥这套Java架构速成笔记,我都能拿30K

做梦都在改BUG

分布式事务的21种武器 - 7

俞凡

架构 云原生

利用springboot初始化机制三种实现策略模式的应用

Java你猿哥

Java spring Spring Boot 设计模式 ssm

学懂缓存雪崩,缓存击穿,缓存穿透仅需一篇,基于Redis讲解

Java你猿哥

Java redis 缓存击穿 缓存雪崩 Redis缓存穿透

iOS MachineLearning 系列(19)—— 分析文本中的问题答案

珲少

Office 2021和 Office 365 有什么不同之处?office 2021 和 365 区别是什么

Rose

Office 365 Office 2021 office下载

Parallels Desktop如何退出账号?PD18虚拟机退出账号方法

Rose

pd18虚拟机 PD如何退出账号 Parallels Desktop下载 Parallels破解版 Mac虚拟机下载

DR5白金版 for mac(PS一键磨皮插件Delicious Retouch)支持ps2022 v5.0汉化版

Rose

DR5白金版 PS一键磨皮插件 dr5插件 汉化版PS插件 dr5插件教程

Java面试集锦

源字节1号

微信小程序 开源 软件开发 后端开发

软件测试/测试开发丨Web自动化 PageObject 设计模式

测试人

程序员 软件测试 自动化测试 测试开发 Web自动化测试

阿里巴巴工程师1480道Java面试题及答案整理( 2023年 整理版)

Java你猿哥

Java MySQL redis JVM java面试

阿里巴巴Java开发手册(华山版)

Java你猿哥

Java MySQL ssm JAVA开发 Alibaba

S3QL:一个用Python写成的在线存储系统_Python_谢丽_InfoQ精选文章