Amazon S3 和 Google Cloud Storage 之类的商业云存储服务以能承受的价格提供了高可用性、可扩展、无限容量的对象存储服务。为了加速这些云产品的广泛采用,这些提供商为他们的产品通过明确的 API 和 SDK 培养了一个良好的开发者生态系统。而基于云的文件系统便是这些活跃的开发者社区中的典型产品,已经有了好几个开源的实现。
S3QL 便是最流行的开源云端文件系统之一。它是一个基于 FUSE 的文件系统,提供了好几个商业或开源的云存储后端,比如 Amazon S3、Google Cloud Storage、Rackspace CloudFiles,还有 OpenStack。作为一个功能完整的文件系统,S3QL 拥有不少强大的功能:最大 2T 的文件大小、压缩、UNIX 属性、加密、基于写入时复制的快照、不可变树、重复数据删除,以及软、硬链接支持等等。写入 S3QL 文件系统任何数据都将首先被本地压缩、加密,之后才会传输到云后端。当你试图从 S3QL 文件系统中取出内容的时候,如果它们不在本地缓存中,相应的对象会从云端下载回来,然后再即时地解密、解压缩。
需要明确的是,S3QL 的确也有它的限制。比如,你不能把同一个 S3FS 文件系统在几个不同的电脑上同时挂载,只能有一台电脑同时访问它。另外,ACL(访问控制列表)也并没有被支持。
在这篇教程中,我将会描述“如何基于 Amazon S3 用 S3QL 配置一个加密文件系统”。作为一个使用范例,我还会说明如何在挂载的 S3QL 文件系统上运行 rsync 备份工具。
准备工作
本教程首先需要你创建一个 Amazon AWS 帐号(注册是免费的,但是需要一张有效的信用卡)。
然后 创建一个 AWS access key(access key ID 和 secret access key),S3QL 使用这些信息来访问你的 AWS 帐号。
之后通过 AWS 管理面板访问 AWS S3,并为 S3QL 创建一个新的空 bucket。
为最佳性能考虑,请选择一个地理上距离你最近的区域。
在 Linux 上安装 S3QL
在大多数 Linux 发行版中都有预先编译好的 S3QL 软件包。
对于 Debian、Ubuntu 或 Linux Mint:
$ sudo apt-get install s3ql
对于 Fedora:
$ sudo yum install s3ql
对于 Arch Linux,使用 AUR。
首次配置 S3QL
在 ~/.s3ql 目录中创建 autoinfo2 文件,它是 S3QL 的一个默认的配置文件。这个文件里的信息包括必须的 AWS access key,S3 bucket 名,以及加密口令。这个加密口令将被用来加密一个随机生成的主密钥,而主密钥将被用来实际地加密 S3QL 文件系统数据。
$ mkdir ~/.s3ql
$ vi ~/.s3ql/authinfo2
via: http://xmodulo.com/2014/09/create-cloud-based-encrypted-file-system-linux.html
作者:Dan Nanni 译者:felixonmars 校对:wxy
发表回复