发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

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

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

关注

评论

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

基于香港服务器的应用开发中测试数据管理的 3 个最佳实践

九河云安全

如何保存数据并更快地从勒索软件攻击中恢复

九河云安全

带你读AI论文:SDMG-R结构化提取—无限版式小票场景应用

华为云开发者联盟

语义 多模态 推理模型 SDMG-R 检测文本

CC挖矿系统源码开发

获客I3O6O643Z97

挖矿 挖矿矿池系统开发案例 fil矿机

专业好用的数据恢复软件推荐

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

论 Erda 的安全之道

尔达Erda

云原生 安全 企业数字化转型 云平台 开发平台

Serverless 全能选手,再添一“金”

Serverless Devs

Serverless 互联网 云原生

如何实时打通数据孤岛?Tapdata 创始人唐建法受邀于GOTC深度分享

tapdata

数据库 打通数据孤岛 数据同步 Real Time DaaS GOTC

Pangaea AI 智能机器人炒币系统开发

获客I3O6O643Z97

量化策略 量化跟单 量化机器人

这几个棘手的面试常见问题,如何高情商的回答?

架构精进之路

面试 情商 8月日更

2021全球开源技术峰会|IoT 时代的开源数据基础设施

EMQ映云科技

开源 IOT Platform IoT emq 开源技术

iOS开发-为 iOS 编写 Kotlin Parcelize 编译器插件

iOSer

ios 编译器 编译器原理 iOS 知识体系 Kotlin Parcelize

【Vue2.x 源码学习】第二十七篇 - Vue 生命周期的实现

Brave

源码 vue2 8月日更

让数据库从业者用实力对美国说不!

博文视点Broadview

Swift 实现获取、展示 Mac 的 WiFi 密码

fuyoufang

ios swift SwiftUI Mac 软件 8月日更

巨头纷纷布局分布式云,一场新的云战争即将打响

浪潮云

云计算

你的工作有弹性么?

escray

学习 极客时间 朱赟的技术管理课 8月日更

Python代码阅读(第4篇):过滤掉列表中的唯一值

Felix

Python 编程 Code Programing 阅读代码

Go与Redis连接池的那些事儿~

Regan Yue

redis Go 语言 8月日更

推动数据中心行业的“水电煤”,可视化如何用数据改变传统产业?

一只数据鲸鱼

机房 数据可视化 数字孪生 智能IDC

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之数据库逆向(十二)

crudapi

Vue crud crudapi quasar 数据库逆向

服务器的升级,不可避免的安全问题

九河云安全

Mysql读写锁保姆级图文教程

华为云开发者联盟

MySQL 数据 读写锁 读锁 MyLSAM

只需6步,教你从零开发一个签到小程序

华为云开发者联盟

小程序 App 移动 智慧校园 FunctionGraph

赛迪发布《2020-2021年中国IT服务市场研究年度报告》,联想位居第一梯队

科技大数据

科技互联网

2021第二届云原生编程挑战赛正式启动,抢先报名!

阿里巴巴云原生

阿里云 Serverless RocketMQ 云原生 dubbo

阿里云-云开发平台入门篇——静态网站的全生命周期实战

若尘

阿里云 8月日更

十大排序算法--快速排序

Ayue、

排序算法 8月日更

快来看,大数据两地三中心的容灾也可以如此省心!

华为云开发者联盟

大数据 数据湖 容灾 华为云MRS 两地三中心

TrafficStatsRunnable 实用封装

Changing Lin

8月日更

限12小时删!白嫖对标阿里P5—P8的Java学习路线+大厂刷题秘籍

Java架构追梦

Java 阿里巴巴 架构 面试

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