如何自己在linux上搭建类似云盘的分布式云存储
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何自己在linux上搭建类似云盘的分布式云存储相关的知识,希望对你有一定的参考价值。
我们常用的系统大多数是Windows和Mac,但是相比较来说在Linux上部署云盘更稳定。楼主的想要的是如何从0到1,一步步开发、搭建云存储,但相对于大众来说,难度系数太高,毕竟不是人人都有IT技术,也不是每个公司都有IT人员能够完成开发、搭建、部署、运维的。
楼上已经有答案说到开发的层面,那我就来说说更适合大众的搭建方式,那就是拿成熟的云盘产品直接搭建。
现在云盒子企业私有云盘的官网上提供了云盒子Linux服务器安装包,大家有服务器或者闲置电脑的话,可以直接进入下载板块下载适用,为方便大家搭建,云盒子还附上了使用帮助,根据提示轻松部署。
关于运维也不用担心,云盒子配备了实施工程师,排查、解决、更新都不用你操心。
有兴趣的朋友可以试试
参考技术A 如何自己在linux上搭建类似云盘的分布式云存储对分布式的要求(弹性可伸缩、高可用)的需求,只是为了整合多个电脑的存储资源,并且还想要一个漂亮的操作界面的话,最简单的方法其实是用iscsi将其他电脑的存储资源挂载到服务器,然后使用seafile提供服务。
如果真正的有对分布式存储的需求并且对界面没什么需求或者打算自己开发一个界面的话,swift,ceph,glusterFS都是可以考虑的可靠的技术。(需求简单的话swift还是有很多界面的,也是可以考虑本回答被提问者采纳
docker 搭建私有云盘 Seafile
缘起
现如今各种云存储服务其实挺多的,国外有经典的DropBox、Google Drive、微软的OneDrive等,国内也有可以免费使用的各种云。
那么为什么想要搭建私有云存储呢?主要是本着“自己的数据自己管理”的原则。
其一是防止数据被窃取。这些云存储服务往往是和自己的某些平台账号绑定在一起的,或者至少是跟自己的某个邮箱绑定在一起的(密码重设),一旦平台账号或邮箱被黑客获取,所有的数据就一览无余了。再加之网络上社工库泛滥,很多人喜欢在各种网络服务上使用相同 的密码,往往是某一个账号失窃,所有数据全部暴露。
其二是防止数据被主动泄漏。Google退出中国事件之后,我们知道运营在国内的产品数据都是对政府公开的,你一定不想把私密照片传到百度云或是360云盘上去。而“棱镜门”之后,我们知道诸如Google等号称“不作恶”的企业,其数据也是对政府公开的,老大哥时刻盯着你……
其三是防止数据遗失。有些人贪图更便宜的价格或是更大的空间选择不知名的云存储服务,说不定哪天就停止服务了,到时候悔之晚矣。另外貌似诸如百度云如果判定你的视频文件有色情内容,会主动将其清除掉。
这么一看自己搭建私有云存储太有必要性了。至少能保证自己的私人数据与其他互联网账号无关,不被搜索引擎索引,不被政府监视。保证服务器运行并做好数据备份就不会丢失。如果仅在家庭或公司内部使用可以部署在内网,安全系数更高。
Docker和Seafile介绍
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。
摘自开源中国
Docker能简化我们的云存储搭建过程,还能使其更安全地运行,更方便的维护。
Seafile是新一代的开源云存储软件。它提供更丰富的文件同步和管理功能,以及更好的数据隐私保护和群组协作功能。Seafile支持 Mac、Linux、Windows三个桌面平台,支持Android和iOS 两个移动平台。
Seafile是由国内团队开发的国际型项目,目前已有10万左右的用户,以欧洲用户为多。典型的机构用户包括比利时的皇家自然科学博物馆,德国的Wuppertal气候、能源研究所。
摘自开源中国
下面讲述在rancher管理平台搭建Seafile
一、拉取jenserat/seafile 镜像
docker pull jenserat/seafile:latest
二、下载Seafile
jenserat/seafile
镜像中包含了下载Seafile的脚本,可惜其文件托管在Amazon ECS上,国内无法正常访问。
所以我们需要从官方网站上手动下载
本例中我们把Seafile存放在/home/app/seafile
三、运行镜像并挂载本地目录
docker run -t -i --rm -p 10001:10001 -p 12001:12001 -p 8000:8000 -p 8080:8080 -p 8082:8082 -v /home/app/seafile:/opt/seafile jenserat/seafile -- /bin/bash
注意将黄色改为具体的位置
/home/app/seafile:/opt/seafile 表示将运行镜像中的/opt/seafile目录挂载到/home/app/seafile目录。这样就方便我们将下载的Seafile拷贝到运行镜像中。
-v
容器启动后将看到
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh... *** Running /etc/rc.local... *** Booting runit daemon... *** Runit started as PID 9 *** Running /bin/bash... [email protected]:/# May 10 08:37:40 635064a090b9 syslog-ng[20]: syslog-ng starting up; version=‘3.5.3‘
四、配置
- 定位到/opt/seafile 目录
- 解压下载的seafile
tar -zxf seafile-server_6.0.9_x86-64.tar.gz
- 进入解压的目录
check_init_admin.py seaf-fuse.sh seahub setup-seafile.sh reset-admin.sh seaf-gc.sh seahub.sh upgrade runtime seafile setup-seafile-mysql.py seaf-fsck.sh seafile.sh setup-seafile-mysql.sh
- 运行配置:
./setup-seafile.sh
将会出现配置 域名,端口号等等,按照提示一步步确认来。
- 运行seafile,seahub
./seafile.sh start
./seahub.sh start
配置完成后启动Seafile的两个服务测试,seafile是文件管理引擎,seahub提供网页访问服务。seahub首次启动时会要求提供管理员邮箱及密码:
五、后续工作
至此基本上一配置完成。但在web页面上传中一直遇到上传失败。其解决方法需要在页面的系统设置中
将IP地址改变为rancher的地址。因为我们通过暴露端口访问,所以上传等需要进行相应的更改。
以上是关于如何自己在linux上搭建类似云盘的分布式云存储的主要内容,如果未能解决你的问题,请参考以下文章
Linux搭建开源企业云盘Seafile,私有文件同步云盘及基本使用