基于CenterOS7环境下本地挂载云端COS对象存储桶256TB!

2018-12-12 15:48:00 浏览数 (1)

基于腾讯云COSFS工具的256TB大容量网盘挂载技术实践

一、方案目的介绍

方案客户群体:企业或个人海量文件存储备份,数据迁移灾备,数据云端灾备服务,实现本地挂载COS存储256TB大容量网盘。

(1)COSFS 工具支持将 COS 存储桶挂载到本地,像使用本地文件系统一样直接操作腾讯云对象存储中的对象,COSFS适用Ubuntu、CenterOS、MacOS等主流系统。

(2)支持 POSIX 文件系统的大部分功能,如:文件读写、目录操作、链接操作、权限管理、uid/gid 管理等功能。

(3)大文件分块传输功能。

(4)MD5 数据校验功能。

方案目标:实现云端----本地的海量数据灾备迁移,实现有公网能力的linux主机或云下用户直接挂载使用COS对象存储桶,实现云数据共享、存储、备份服务。

使用产品:腾讯云COS对象存储、本地虚拟机CenterOS7.3/系统盘20G/1核2G内存。

二、方案架构

三、COS数据安全架构

四、方案部署

1.获取源码

您首先需要从 GitHub 上将 COSFS 源码 下载到指定目录,下面以目录 /usr/cosfs 为例:

代码语言:shell复制
git clone https://github.com/tencentyun/cosfs /usr/cosfs

2.安装依赖软件的软件

COSFS 的编译安装依赖于 automake、git、libcurl-devel、libxml2-devel、fuse-devel、make、openssl-devel 等软件包, CentOS的依赖软件安装过程如下:

代码语言:shell复制
sudo yum install automake gcc-c   git libcurl-devel libxml2-devel fuse-devel make openssl-devel fuse

3.进入下载目录/usr/cosfs/并查看README等文件

4.在下载目录下执行安装COSFS工具软件.

4.1 执行安装脚本等命令

代码语言:shell复制
cd /usr/cosfs
./autogen.sh
./configure
make
sudo make install
cosfs --version

4.2执行编译配置

注:如果安装时报错,官网给出了报错处理的提示

https://cloud.tencent.com/document/product/436/6883

5.COSFS工具配置文件参数填写

5.1在腾讯控制台创建一个自己的存储桶,建议用记事本把命令和信息一次性写好再运行。

5.2根据官网给出的格式填写命令

注意: 您需要将 <Name>、<Appid>、<SecretId> 和 <SecretKey> 替换为您的信息。 在 test-1253972369 这个 Bucket 中,<Name> 为 test, <Appid> 为 1253972369, Bucket 命名规范,请参见 存储桶命名规范。<SecretId> 和 <SecretKey> 请前往访问管理控制台的 云 API 密钥管理 中获取。

代码语言:shell复制
echo <Name>-<Appid>:<SecretId>:<SecretKey> > /etc/passwd-cosfs      #命令格式示范
代码语言:javascript复制
chmod 640 /etc/passwd-cosfs #此处是给目录添加可读写权限

5.3将命令全部准备复制,核对信息无误后准备执行。

5.4在centerOS7.3系统中执行命令,并附加权限给/etc/passwd-cosfs

6.运行工具

将已经在密钥文件中配置好信息的存储桶挂载到指定目录,可以使用如下命令行:

代码语言:shell复制
cosfs <Name>-<Appid> <MountPoint> -ourl=<CosDomainName> -odbglevel=info

其中:

  • <MountPoint> 为本地挂载目录(如 /mnt)。
  • <CosDomainName> 为存储桶对应的访问域名,形式为 http://cos.<Region>.myzijiebao.com (适用于XML API),其中<Region> 为地域简称, 如: ap-guangzhou 、 eu-frankfurt 等。更多地域信息,请查阅 可用地域。
  • -odbglevel 指定日志级别。

6.1创建挂载目录 mkdir /munt/mnt-cos 注意这里只是挂载网盘的目录挂载点。

6.2执行挂载命令(建议用记事本粘贴复制一整条命令)

7.查看挂载信息。

由图可以看到我们的本地mnt-cos目录上挂载上了一个256TB数据盘

8.测试验证

8.1这里我们复制一个60MB大小的视频文件到这个目录下,做下测试。

我们发现,上传速度很快,没有限制,基本在2.6MB/S,只是根据本地带宽大小而定,如果是专线,那么速度肯定会更快!

8.2大概20秒左右,我们的视频就从本地目录上传到了挂载的云端COS目录上了。

8.3检查存储桶。在腾讯云控制台上查看存储桶中是否存在这个文件

8.4这里我们发现挂载的目录没有什么影响,大小连0.1%也没用到。

8.5最后我们再次验证,直接将左面上的视频文件mv上云端的目录。速度达到3.5MB/S。

9.总结:

综上所述,本次实验成功挂载一个存储桶到本地的Linux虚拟机,实现256TB本地挂载。

(1)本次实验验证了本地----腾讯云端COS的强大存储能力,能够承载大容量存储。

(2)本次上传的速度相对较慢,是因为本地就给了12M带宽,所以受限。

(3)COSFS工具适合任意有公网能力的主机挂载云端COS对象存储,达到海量存储,简单实用,这样就能实现,数据灾备,本地容量上限,使用云端扩容本地,实现业务扩容。

(4)本实践自己还有一个节,就是如何实现【开机自动挂载】,因为是工具,所以只能是命令操作,自己设想的是要么就是crontab shell脚本实现或者/etc/fstable挂载就好了,留个后续研究者。

10.FA&Q实践踩坑:

(1)为什么git不了文件目录?

答:自己本地的机器没有初始化,环境初始化,更新yum仓库,安装更新git包。

(2)编译时老是报错,有error出现,找了很多,都没有作用?

答:依赖包没有安装fuse-devel,很难弄,我是直接安装*.deve

代码语言:shell复制
sudo yum install automake gcc-c   git libcurl-devel libxml2-devel fuse-devel make openssl-devel fuse

(3)编译安装时还会报错?

答:我是先检查这个目录是否存在,后面make install再次安装了一次成功,后面直接运行命令。

(4)在执行很长的秘钥存储桶命令时一定要用笔记本写好再一次性执行,后面安装tools。

本次实践依据腾讯云官网COSFS官网文档指导,参考链接:

https://cloud.tencent.com/document/product/436/6883

0 人点赞