跳到主要内容

公有云OSS

本文指导用户使用悦库集群版搭建基于公有云服务的企业私有云盘,需要使用阿里云、AWS或其他云服务商提供的ECS(云主机)、OSS(对象存储)、云数据库三个基础云服务。

如果访问人数较多,安全性要求高,推荐使用阿里云、AWS的对象存储服务,因为其他云服务商对AWS STS(临时访问凭证)标准兼容性支持不友好,我们没有逐一验证适配。悦库的STS配置并不是必选项,但如果不启用STS,多用户访问悦库系统可能会有安全隐患。

私有云盘部署架构

image-20220418154548670

私有云盘优点

  1. 安全性高

    用户数据由云服务商托管,安全性高,无需备份。

  2. 成本低

    对比市面上主流企业云盘产品,悦库私有云盘费用只有其20%左右,但整体性能和传输速度无差别。

    以100用户数,2022年4月阿里云报价为例:

    服务名称费用
    云主机 (双核/4G/60G云盘/5M带宽)2281元/年
    云数据库基础版(双核/4G)1584元/年
    1T存储空间999元/年
    1T/月下载流量、上传免费4545元/年
    合计9409元/年

    以上表格是官方标准价格,购买云主机/云数据库价格水分大,新用户便宜到令人发指: image-20220418165624553

  3. 公网传输速度快

    公网下用户将直接访问云存储OSS服务,不受服务端带宽影响,上传下载速度快,大多数网络实际下载速度可达10MB/S。

  4. 私密性好

    企业云盘系统和数据完全独立私有化,文件数据分片离散存储,云服务商无法还原用户数据。

私有云盘效果

配置完成后,公网环境下同时上传/下载任务时的效果展示: 由于文件传输使用公网OSS云服务,对于每个客户端的下载速度都是可以跑满带宽的,并不受悦库服务端带宽影响。 云盘传输效果

在虚拟盘中的同步展示效果 image-20220419103816313

文件数据在云服务商的OSS服务中存储状态: 文件被分片存储,服务商无法还原数据。 image-20220419111847346

部署前的准备

  • 用同一阿里云账号,开通云服务产品:ECS(云主机)、MySQL云数据库、OSS(对象存储)。

下面我们以阿里云为例,介绍私有云盘的搭建过程。本示例中展示的所有云服务配置信息仅供参考,不能实际使用。

开通云服务

开通过程中需要您记录一些配置信息,以供后续在悦库服务端中进行配置。

为了方便记录和识别,我们为您创建了一个注释模板,请新建一个文本文件,并将以下内容复制进去,后续配置过程中我们将在此模板中临时记录一些配置信息。

############################ECS云主机配置信息##############################
#云主机公网IP

#开启2020、2021、2022端口公网访问

############################云数据库配置信息##############################
#数据库主机名称(内网)

#数据库主机端口

#数据库用户名称

#数据库密码

############################OSS配置信息##############################
#Bucket(桶)名称

#桶的Endpoint URL,例如:oss-cn-beijing.aliyuncs.com

#区域名称就是上面Endpoint URL的前面部分,例如:oss-cn-beijing

#AcessKeyID(访问ID)

#AcessKeySecret(安全ID )

#STS服务URL,是固定不变的,不需要额外获取。
sts.aliyuncs.com

#ARN(角色的资源名称)

配置ECS云主机

必须用同一账号购买云服务商产品:MySQL云数据库、ECS(云主机),需要选择同一地域,这可以确保两个服务在同一个内部专有网络中,否则跨地域访问数据库,延迟太大,会造成应用程序卡顿。

  1. 通过官方文档指导,创建ECS云主机

  2. 进入"云服务器 ECS" 控制台,点击刚创建的实例名称,进入详情页面。

    复制云主机公网IP,复制到文本文件中,后续备用。

    image-20220418174206999

  3. 进入安全组,添加 2020、2021、2022端口。

    image-20220418173727435

  4. 核对云主机配置信息

    ############################ECS云主机配置信息##############################
    #云主机公网IP
    47.111.99.48
    #开启2020、2021、2022端口公网访问
    已完成

配置云数据库

  1. 创建MySQL实例

    开通云数据库服务,创建RDS MySQL实例,数据库版本为:MySQL8.0 ,注意地域要和上面创建的云主机ECS地域一致,否则阿里云内网无法通信。

    image-20220416113352249

  2. 创建数据库账号

    创建数据库账号名称为:"ydisk" , 类型为: "高权限账号"。

    记录数据库的 账号(用户名称)、密码到文本文件中,后续备用。

    image-20220416113800279

  3. 获取数据库内网访问地址

    在基本信息中,点击网络类型中的 "查看连接详情"。将内网地址(主机名称)和内网端口(主机端口)复制到文本文件中,后续备用。

    image-20220416114146804

    image-20220419111020479

  4. 核对已获取的云数据库配置信息

    ############################云数据库配置信息##############################
    #主机名称
    rm-bp1eu43om2c8651rg.mysql.rds.aliyuncs.com
    #主机端口
    3306
    #用户名称
    ydisk
    #密码
    1+-ydisk.cn

配置OSS对象存储

  1. 通过阿里云官方文档指导开通OSS服务

  2. 创建Bucket(存储桶)

    创建Bucket,例如名称为:"ydisk-test" ; 存储类型为:"标准存储"; 读写权限为:"私有"。

    将Bucket名称和Endpoint URL,复制到文本文件中,后续备用。

    image-20220416095903978

  3. 设置Bucket跨域访问

    在Bucket列表中,点击 "ydisk-test" ,进入详情页面;点击左侧"权限管理"标签进入"跨域设置"项。

    创建规则:来源:* ; 允许Methods:勾选所有。

    image-20220415170035051

  4. 创建RAM(访问控制)用户

    点击左侧"权限管理"标签进入"访问控制 RAM"项,打开"RAM访问控制"页面。

    创建RAM用户,例如用户名为:"ydisk"; 显示名称为:"悦库网盘"; 访问方式为:"Open API 调用访问"。

    image-20220415165842328

  5. 创建用户AcessKey

    创建用户AcessKey后,将AcessKeyID和AcessKeySecret复制到文本文件中,后续备用。

    image-20220415180320683

  6. 为用户添加访问权限

    为用户添加 "AliyunOSSFullAccess" 和 "AliyunSTSAssumeRoleAccess" 权限。

    image-20220416100156351

  7. 创建RAM角色,并添加权限

    创建可信实体为阿里云账号的RAM角色,例如角色名称为:"ydiskRole"。创建成功后,为角色添加"AliyunOSSFullAccess"权限。

    复制"ARN",记录到文本文件中,后续备用。

    image-20220415165646798

  8. 核对已获取的OSS服务配置信息

    ############################OSS配置信息##############################
    #Bucket(桶)名称
    ydisk-test

    #桶的Endpoint URL,例如:oss-cn-beijing.aliyuncs.com
    oss-cn-beijing.aliyuncs.com

    #区域名称就是上面Endpoint URL的开头部分,例如:oss-cn-beijing
    oss-cn-beijing

    #AcessKeyID(访问ID)
    sC5gAPDRLyxVEFMOlwFurDdTUremDo

    #AcessKeySecret(安全ID )
    sC5gAPDRLyxVEFMOlwFurDdTUremDo

    #STS服务URL,是固定不变的,不需要额外获取。
    sts.aliyuncs.com

    #ARN(角色的资源名称)
    acs:ram::1179636438064388:role/ydiskrole

安装悦库服务

到此为止,云服务就配置好了,然后请安装悦库集群版服务,并将您开通云服务时在模板文件中记录的云服务信息配置到config.json中。

例如我实际配置后的悦库集群版服务端/opt/ydisks/config.json文件是这样的:

{
"service": {
"web": {
"scheme": "http",
"hostname": "47.111.99.48",
"port": 2020
},
"api": {
"scheme": "http",
"hostname": "47.111.99.48",
"port": 2010
},
"doc": {
"scheme": "http",
"hostname": "47.111.99.48",
"port": 2022
},
"oss": {
"scheme": "http",
"hostname": "oss-cn-beijing.aliyuncs.com",
"port":80,
"region": "oss-cn-beijing",
"bucket": "ydisk-test",
"accessKey": "LTAI5tMniSesFkj7hC4Tnb8L",
"secretKey": "sC5gAPDRLyxVEFMOlwFurDdTUremDo",
"sts": "sts.aliyuncs.com",
"arn": "acs:ram::1179636438064388:role/ydiskrole"
},
"db": {
"hostname": "rm-bp1eu43om2c8651rg.mysql.rds.aliyuncs.com",
"port":3306,
"user": "ydisk",
"password": "1+-ydisk.cn"
}
}
}

安装Redis服务

Redis服务直接在ECS云主机中安装配置即可。

完成

完成所有配置后,需要重启悦库服务容器生效。

docker restart ydisks_cluster

相关教程

快速入门 - 快速体验多用户场景下简单的文件共享和权限管控功能。

用户手册 - 全面了解产品功能。