你好,游客 登录 注册 发布搜索
背景:
阅读新闻

如何在Amazon S3上配置加密文件系统

[日期:2015-07-21] 来源: 中关村在线   作者: 王迪 [字体: ]

  提及云计算,亚马逊Amazon S3是备受关注的商业云存储服务。Amazon S3以能承受的价格提供高可用性、可扩展、无限容量的对象存储服务。为了加速云产品的广泛采用,产品通过明确的API和SDK打造一个良好的开发者生态系统。

  S3QL作为一款开源云端文件系统,基于FUSE的文件系统提供多个商业或开源的云存储后端,如Amazon S3、 Google Cloud Storage、Rackspace CloudFiles以及OpenStack。并且3QL提供最大2T的文件大小、压缩、UNIX属性、加密、重复数据删除等支持功能。但S3QL限制是不能把同一个S3FS文件系统在几个不同的电脑上同时挂载,只能一台电脑访问它。另外,ACL也并没有被支持。

  笔者从Xmodulo网站了解到,基于Amazon S3用S3QL配置一个加密文件系统的技巧说明。作为一个使用范例,将节省如何在挂载的S3QL文件系统上运行rsync备份工具。(图片来源Xmodulo网站)

  前期工作准备

如何在开源应用Amazon S3上配置加密文件系统

  

如何在开源应用Amazon S3上配置加密文件系统

 

  首先,需要一个Amazon AWS帐号(注册是免费的,但需要有效的信用卡)。创建AWS 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

  

开源应用!Amazon S3上配置加密文件系统

 

  指定的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”指定的那个口令。

  如果一个新文件系统被成功创建,你将会看到这样的输出:

开源应用!Amazon S3上配置加密文件系统

  ●挂载S3QL文件系统

  当创建S3QL文件系统之后,下一步要挂载它。首先创建一个本地的挂载点,然后使用mount.s3ql命令来挂载S3QL文件系统。

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

  挂载一个S3QL文件系统不需要特权,只要确定挂载点有写权限即可。

  因为性能原因,S3QL文件系统维护了一份本地文件缓存,里面包括了最近访问的文件。可以通过“--cachesize”和“--max-cache-entries”选项来自定义文件缓存的大小。

  如果想要除你以外的用户访问一个已挂载的S3QL文件系统,使用“--allow-other”选项。如果你想通过NFS导出已挂载S3QL文件系统到其他设备,使用“--nfs”选项。

  

开源应用!Amazon S3上配置加密文件系统

 

  \$ df ~/mnt_s3ql \$ mount | grep s3ql

  运行mount.s3ql之后,检查S3QL文件系统是否被成功挂载。

  卸载S3QL文件系统

  卸载一个S3QL文件系统,使用umount.s3ql命令。它将会等待所有数据(包括本地文件系统缓存中的部分)成功传输到后端服务器。这个过程时间取决于等待写的数据的多少。

  \$ umount.s3ql ~/mnt_s3ql

开源应用!Amazon S3上配置加密文件系统

  查看S3QL文件系统统计信息,你可以使用s3qlstat命令,它将会显示总的数据、元数据大小、重复文件删除率和压缩率等信息。还可以使用fsck.s3ql命令来检查和修复 S3QL 文件系统。与 fsck 命令类似,待检查的文件系统必须首先被卸载。

  \$ s3qlstat ~/mnt_s3ql \$ fsck.s3ql s3://[bucket-name]

  S3QL使用案例:Rsync备份

  之前也提到将介绍本地文件系统备份。使用rsync增量备份工具,特别是因为S3QL提供了一个rsync的封装脚本(/usr/lib/s3ql/pcp.py)。这个脚本允许你使用多个rsync进程递归地复制目录树到S3QL目标。

  \$ /usr/lib/s3ql/pcp.py -h 

开源应用!Amazon S3上配置加密文件系统

  下面这个命令使用4个并发的rsync连接来备份~/Documents里的所有内容到一个S3QL文件系统。

  \$ /usr/lib/s3ql/pcp.py -a --quiet --processes=4 ~/Documents ~/mnt_s3ql

  这些文件将首先被复制到本地文件缓存中,然后在后台再逐步地同步到后端服务器。

收藏 推荐 打印 | 录入:574107552 | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款