AmazonS3和GoogleCloudStorage之类的商业云存储服务以能承受的价格提供了高可用性、可扩展、无限容量的对象存储服务。为了加速这些云产品的广泛采用,这些提供商为他们的产品通过明确的API和SDK培养了一个良好的开发者生态系统。而基于云的文件系统便是这些活跃的开发者社区中的典型产品,已经有了好几个开源的实现。
S3QL便是最流行的开源云端文件系统之一。它是一个基于FUSE的文件系统,提供了好几个商业或开源的云存储后端,比如AmazonS3、GoogleCloudStorage、RackspaceCloudFiles,还有OpenStack。作为一个功能完整的文件系统,S3QL拥有不少强大的功能:最大2T的文件大小、压缩、UNIX属性、加密、基于写入时复制的快照、不可变树、重复数据删除,以及软、硬链接支持等等。写入S3QL文件系统任何数据都将首先被本地压缩、加密,之后才会传输到云后端。当你试图从S3QL文件系统中取出内容的时候,如果它们不在本地缓存中,相应的对象会从云端下载回来,然后再即时地解密、解压缩。
需要明确的是,S3QL的确也有它的限制。比如,你不能把同一个S3FS文件系统在几个不同的电脑上同时挂载,只能有一台电脑同时访问它。另外,ACL(访问控制列表)也并没有被支持。
在这篇教程中,我将会描述如何基于AmazonS3用S3QL配置一个加密文件系统。作为一个使用范例,我还会说明如何在挂载的S3QL文件系统上运行rsync备份工具。
准备工作
本教程首先需要你创建一个AmazonAWS帐号(注册是免费的,但是需要一张有效的信用卡)。
然后创建一个AWSaccesskey(accesskeyID和secretaccesskey),S3QL使用这些信息来访问你的AWS帐号。
之后通过AWS管理面板访问AWSS3,并为S3QL创建一个新的空bucket。
为最佳性能考虑,请选择一个地理上距离你最近的区域。
在Linux上安装S3QL
在大多数Linux发行版中都有预先编译好的S3QL软件包。
对于Debian、Ubuntu或LinuxMint:
复制代码