闪电存储产品介绍
闪电存储产品介绍
目录
闪电存储产品介绍 1
1. 项目背景 1
2. 产品概述 1
3. 用户体验 2
3.3数据操作 2
1. 项目背景
分布式存储其实是一个比较大的领域。有分布式数据库、分布式文件系统、分布式块(ServerSAN)、分布式对象存储之类。做的公司挺多,不过真正都自己的代码的挺少,很多都是开源改的。分布式数据来说一般互联网公司用的多,像阿里,腾讯、百度都有自己分布式数据库。国内做分布式文件系统来说,数中科院的一帮人做的最早。从中科院出来人基本的分为三家,曙光,龙存,达沃。这三家基本都属于自研并且应用时间都在国内来说时间最久了。也有像华为、淘宝、百度、腾讯的文件系统。
2. 产品概述
闪电存储是一个分布式集群存储的项目,为用户提供在线数据(包括文档、图片、视频)存储、下载、删除、图片水印、数据归档、私有存储、在线编辑等基本功能。该产品的数据传输使用数据分片技术,即数据被切割成较小的块数据进行传输,使上传和下载数据速度非常快。
闪电存储的存储空间大小可根据需求不断进行增加,初始存储空间设置为10G,以后通过增加存储服务器来扩展存储空间。
3. 用户体验
3.1注册
用户可以是个人,也可是企业。登陆闪电存储网页界面时,用户根据自己的定位注册对应的类型。
3.2 存储空间命名
用户注册并登陆后,系统会自动给予1G的免费存储空间,并弹出一个对话框“请命名你的存储空间名称”。命名之后的存储空间就是用户以后存储数据的地方。存储空间默认有三个文件夹:文字、图片、视频。在这三个文件夹中,用户可以随意创建子目录,但是存储的数据类型必须与默认的存储类型一致。
3.3数据操作
3.4 扩展存储空间
在存储空间首页,找到购买存储,点击后,会出现存储报价单,以年为使用周期。用户购买后,系统会自动对他的存储空间进行相应的扩容。
3.5 找回密码
在闪电网络首页登陆时,用户如果忘记登陆密码,可以通过点击“找回密码”,根据自己的注册信息,找回正确的登陆密码。
3.6 存储监控
在存储空间首页,会显示用户存储空间的大小,以及已用和可用的存储空间大小。
4.1 数据安全
用户存储的数据系统默认备份3份,主服务器有2台以上备用服务器,数据分散存储到多台存储服务器中。
当主用服务器宕机或出现故障时,备用服务器会启动,代替主服务器的功能,保证系统保持正常运行。因为数据默认有3个备份,当主用存储服务器宕机或出现故障时,其它存储该备份的服务器会接管提供数据的功能。
4.2 操作简单
闪电存储或下载等操作与windows文件操作系统类似,用户很容易接受,并很快学会如何操作。
4.3 系统存储空间可扩展
闪电存储具有可扩展性,通过增加存储服务器的数量,来达到提高系统可存储容量的大小的功能。
4.4 上传及下载数据快
闪电网络并没有像百度云盘那样,将数据传输进行带宽限流,当普通用户进行数据传输时,速度特别慢,只有交费成为VIP会员后才能快速进行数据传输。而闪电存储的数据传输速度只与客户端的网络带宽有关,同时数据是以块文件的形式进行传输,使用户更快的下载或上传大数据。
该产品适用于个人和企业内部。
6.1产品架构
分布式存储架构由三个部分组成:客户端、元数据服务器和存储服务器。客户端负责发送读写请求,缓存文件元数据和文件数据。元数据服务器负责管理元数据和处理客户端的请求,是整个系统的核心组件。存储服务器负责存放文件数据,保证数据的可用性和完整性。该架构的好处是性能和容量能够同时拓展,系统规模具有很强的伸缩性。
整体架构部件如下图,其中Web服务器就是元服务器。

系统的整体架构如下图所示,其中逻辑层是存储服务的使用方。系统由两大部分组成,一部分是图中数据仓库包含的模块,是直接提供数据存储服务的核心部分,由接入层、数据层、配置运维中心组成;另一部分是辅助系统,主要负责系统的监控、运维和运营备份系统、监控系统、运维管理系统、用户运营系统组成。
一个数据仓库就是一个存储集群,多个业务可以共享一个数据仓库的资源,我们根据需求可以部署多个数据仓库,辅助系统是所有数据仓库共用的。
6.2 工作原理
系统是一个分布式集群,由元服务器和存储服务器组成。
当用户在网页端上传存储数据时,元服务器接收到该请求后,按照负载均衡的原则,找到合适的存储服务器,将数据存储到该服务器中。
当用户下载或编辑数据操作时,元服务器接收到请求后,根据数据的存储路径找到对应的存储服务器,让其提供数据以及数据替换等操作。
7.1 组件
元服务器2台:1台主用,1台备用。
存储服务器4台:作为数据存储的节点。
分布式文件系统:GodFS系统(底层go语言实现的)
7.2 搭建过程
以CentOS7为例.
从最新的源码构建:
yum install golang -y
git clone https://github.com/hetianyi/godfs.git
cd godfs./make.sh
# Windows下直接点击 make.cmd 开始构建。
构建成功后, 三个文件会生成在./bin 目录下,分别是:
./bin/client
./bin/storage
./bin/tracker
将构建成功的二进制文件安装到目录 /usr/local/godfs:
./install.sh /usr/local/godfs
启动tracker服务:
/usr/local/godfs/bin/tracker [-c /your/tracker/config/path]
启动storage服务:
/usr/local/godfs/bin/storage [-c /your/storage/config/path]
然后你就可以在命令行直接使用 client 来上传和下载文件了。
当然要先设置trackers服务器设置
# 例如,为客户端设置tracker服务器
client --set "trackers=host1:port1[,host2:port2]"
举个栗子:
上传一个文件:
client -u /you/upload/file
或者可以用一个更酷的命令来上传一个文件夹下所有的文件:
echo \"$(ls -m /f/foo)\" |xargs client -u
如果你没有现成的godfs客户端,你可以使用 curl 来上传文件:
curl -F "file=@/your/file" "http://your.host:http_port/upload"
上传成功之后,服务器会返回一个json字符串:
{
"status":"success",
"formData":{
"data":[
"G01/01/M/826d552525bceec5b8e9709efaf481ec"
],
"name":[
"mike"
]
},
"fileInfo":[
{
"index":0,
"fileName":"mysql-cluster-community-7.6.7-1.sles12.x86_64.rpm-bundle.tar",
"path":"G01/01/M/826d552525bceec5b8e9709efaf481ec"
}
]}
其中, formData 是post表单中的所有字段的name-value信息,文件已被替换为上传之后的路径地址。
# 下载文件
client -d G01/10/M/2c9da7ea280c020db7f4879f8180dfd6 -n 123.zip