NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:004220
用户头像

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

关注

评论

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

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

股市老人

货拉拉智能监控实践:如何解决多云架构下的故障应急问题?

TakinTalks稳定性社区

pdd商品详情数据接口

tbapi

拼多多API接口 拼多多商品详情数据接口 pdd详情数据接口 拼多多商品数据采集

Project软件的六大核心作用详解

PingCode

项目管理 Project软件

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

大瞿科技

探索web技术与低代码开发的融合应用

EquatorCoco

云计算 软件开发 低代码 web3

市场动态:在比特币 ETF 投机和摄氏度网络向挖矿转型的背景下,2024 年将保持稳定开局

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

体育直播系统源码提供哪些安全购买保障策略

软件开发-梦幻运营部

化作乾坤万里春:openGauss跨越生态拐点之后,改变了什么?

脑极体

数据库 自主化

1 月 21 日,三件事儿,线上不见不散丨社区活动

声网

实时云渲染赋能2023湾区文采会元宇宙虚拟展厅

3DCAT实时渲染

云VR 元宇宙虚拟展厅 线上展厅

文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题

福大大架构师每日一题

福大大架构师每日一题

API设计:从基础到优秀实践

高端章鱼哥

API

倒计时6天|PolarDB开发者大会,我们讲什么?看什么?玩什么?

阿里云瑶池数据库

数据库 阿里云 云原生 开发者大会

谈谈文章标题的「模式」

Luke

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

加密眼界

探索AI技术的奥秘:揭秘人工智能的核心原理

快乐非自愿限量之名

人工智能 机器学习 AI技术

软件测试/测试开发全日制|Pyest结合json实现数据驱动测试

霍格沃兹测试开发学社

软件测试/测试开发全日制|Pytest测试框架fixture作为参数使用

霍格沃兹测试开发学社

AWS EC2 必知必会小技巧 | 机型特点解析和选型技巧分享

Greptime 格睿科技

数据库 AWS 时序数据库

软件测试/测试开发/全日制/测试管理丨Vue 页面布局组件-Vuetify

测试人

软件测试

2023年度产品评选!人人都是产品经理携手boardmix博思白板联合呈现!

彭宏豪95

产品 产品经理 SaaS 在线白板 效率软件

Dubbo 3.3.0-beta 版本正式发布

阿里巴巴云原生

阿里云 云原生 dubbo

软件测试/测试开发/全日制/测试管理丨Vue 页面布局组件-Semantic

测试人

软件测试

TDengine 签约积成电子

TDengine

tdengine 时序数据库

智能导向的用户钱包画像分析:揭秘 NFT 市场的秘密

Footprint Analytics

NFT 加密钱包

软件测试/测试开发全日制|Pytest结合CSV实现测试的数据驱动

霍格沃兹测试开发学社

数据库与低代码:加速开发,提升效率的完美结合

不在线第一只蜗牛

MySQL 数据库 sql 低代码

涛思数据获评北京市“专精特新”中小企业

TDengine

涛思数据 tdengine 时序数据库

期待!《数字化运维路线图》震撼发布(第一部分)

博睿数据

需求跟踪矩阵的作用

PingCode

需求管理 嵌入式系统 需求跟踪

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