您的位置 首页 新品

在Linux中创立一个云端加密文件体系

Amazon S3 和 Google Cloud Storage 之类的商业云存储服务以能承受的价格提供了高可用性、可扩展、无限容量的对象存储服务。为了加速这些云产品的广泛采

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

[s3]storage-url: s3://[bucket-name]backend-login: [your-access-key-id]backend-password: [your-secret-access-key]fs-passphrase: [your-encryption-passphrase]

指定的 AWS S3 bucket 需求预先经过 AWS 办理面板来创立。

为了安全起见,让 authinfo2 文件仅对你可拜访。

$ chmod 600 ~/.s3ql/authinfo2

创立 S3QL 文件体系

现在你现已准备好能够在 AWS S3 上创立一个 S3QL 文件体系了。

运用 mkfs.s3ql 东西来创立一个新的 S3QL 文件体系。这个指令中的 bucket 名应该与 authinfo2 文件中所指定的相符。运用“–ssl”参数将强制运用 SSL 连接到后端存储服务器。默许状况下,mkfs.s3ql 指令会在 S3QL 文件体系中启用紧缩和加密。

$ mkfs.s3ql s3://[bucket-name] –ssl

你会被要求输入一个加密口令。请输入你在 ~/.s3ql/autoinfo2 中经过“fs-passphrase”指定的那个口令。

假如一个新文件体系被成功创立,你将会看到这样的输出:

挂载 S3QL 文件体系

当你创立了一个 S3QL 文件体系之后,下一步就是要挂载它。

首要创立一个本地的挂载点,然后运用 mount.s3ql 指令来挂载 S3QL 文件体系。

$ mkdir ~/mnt_s3ql$ mount.s3ql s3://[bucket-name] ~/mnt_s3ql

挂载一个 S3QL 文件体系不需求特权用户,只需确认你对该挂载点有写权限即可。

视状况,你能够运用“–compress”参数来指定一个紧缩算法(如 lzma、bzip2、zlib)。在不指定的状况下,lzma 将被默许运用。留意假如你指定了一个自界说的紧缩算法,它将只会应用到新创立的数据目标上,并不会影响现已存在的数据目标。

$ mount.s3ql –compress bzip2 s3://[bucket-name] ~/mnt_s3ql

由于功能原因,S3QL 文件体系维护了一份本地文件缓存,里边包含了最近拜访的(部分或悉数的)文件。你能够经过“–cachesize”和“–max-cache-entries”选项来自界说文件缓存的巨细。

假如想要除你以外的用户拜访一个已挂载的 S3QL 文件体系,请运用“–allow-other”选项。

假如你想经过 NFS 导出已挂载的 S3QL 文件体系到其他机器,请运用“–nfs”选项。

运转 mount.s3ql 之后,查看 S3QL 文件体系是否被成功挂载了:

$ df ~/mnt_s3ql$ mount | grep s3ql

卸载 S3QL 文件体系

想要安全地卸载一个(或许含有未提交数据的)S3QL 文件体系,请运用 umount.s3ql 指令。它将会等候一切数据(包含本地文件体系缓存中的部分)成功传输到后端服务器。取决于等候写的数据的多少,这个进程或许需求一些时刻。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/322903.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部