godfs

godfs 是一个用go实现的轻量,快速,简单易用的分布式文件存储服务器。

godfs 开箱即用,并对docker支持友好。

特性快速, 轻量, 开箱即用, 友好的API

易于扩展,运行稳定

非常低的资源开销

提供原生的客户端和Java客户端(还未开始)

提供HTTP方式的下载和上传API

清晰的日志帮助排查运行异常

支持不同平台下的编译运行: Linux, Windows, Mac

更好地支持docker容器

文件分片保存

完美的文件迁移解决方案

支持读写和只读文件节点

文件组内自动同步

安装请先安装golang1.9+

以CentOS7为例.

从最新的源码构建:yum install golang -y

git clone https://github.com/hetianyi/godfs.git

cd godfs

./make.sh

构建成功后, 三个文件会生成在./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服务器设置(见下)

举个栗子:

上传一个文件:

client -u /you/upload/file

或者可以用一个更酷的命令来上传一个文件夹下所有的文件:

echo \"$(ls -m /f/foo)\" |xargs client -u

# 下载文件

client -d G01/10/M/2c9da7ea280c020db7f4879f8180dfd6 -n 123.zip

从最新源代码构建docker镜像:cd godfs/docker

docker build -t godfs .

强烈推荐使用docker来运行godfs.

最新的godfs的docker镜像可以在 docker hub 获取:

docker pull hehety/godfs

启动tracker服务器:

docker run -d -p 1022:1022 --name tracker --restart always -v /godfs/data:/godfs/data --privileged -e log_level="info" hehety/godfs:latest tracker

启动storage服务器:

docker run -d -p 1024:1024 -p 80:8001 --name storage -v /godfs/data:/godfs/data --privileged -e trackers=192.168.1.172:1022 -e bind_address=192.168.1.187 -e port=1024 -e instance_id="01" hehety/godfs storage

# 单机上部署多个storage最好加上命令: '-e port=1024'

这里,我们使用宿主机上的目录 /godfs/data 来存放上传的文件。

客户端命令:

-u string

the file to be upload, if you want upload many file once, quote file paths using """ and split with ","

example:

client -u "/home/foo/bar1.tar.gz, /home/foo/bar1.tar.gz"

-d string

the file to be download

-l string

custom logging level: trace, debug, info, warning, error, and fatal

-n string

custom download file name

--set string

set client config, for example:

client --set "tracker=127.0.0.1:1022"

client --set "log_level=info"

golang分布式文件服务器,分享一个用go实现的分布式文件系统:godfs相关推荐

  1. 来自滴滴平台的技术部架构师给大家做一些 golang 相关的分享和交流

    前言 我是来自滴滴平台的陶文,今天很高兴能够在这里给大家做一些 golang 相关的分享和交流,我的演讲主要分为三个模块: 一.为什么不手写测试? 二.流量录制和回放方案的取舍. 三.golang 实 ...

  2. 腾讯十年老兵:区块链本质上是一个异地多活的分布式数据库

    \ 区块链前哨导读:本文整理自 9 月 8 日"腾讯技术工程-区块链技术沙龙"上的演讲. 讲师介绍:潘安群,腾讯 TEG 计费平台部账户中心总监,专家工程师:中国计算机学会 CCF ...

  3. FastDFS分布式文件服务器部署与运用

    FastDFS分布式文件服务器部署与运用 FastDFS介绍 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大 ...

  4. 译文 Ceph:一个可扩展,高性能分布式文件系统

    译者注:本文是出于作者对于ceph的兴趣,在开源中国上关注ceph翻译,没有看到ceph论文的相关翻译, 索性在阅读过程中把它翻译了出来,花费了几个周末时间,翻译过程中收获颇多,现把译文分享出来,如对 ...

  5. 抱抱脸(hugging face)教程-中文翻译-分享一个模型

    分享一个模型 最后两个教程展示了如何使用 PyTorch. Keras 和 Accelerate 优化分布式设置的模型.下一步就是把你的模型公之于众!我们相信公开分享知识和资源,使人工智能大众化.我们 ...

  6. 【分析】Ceph:一个可扩展,高性能分布式文件系统

    译者注:本文是出于作者对于ceph的兴趣,在开源中国上关注ceph翻译,没有看到ceph论文的相关翻译,索性在阅读过程中把它翻译了出来,花费了几个周末时间,翻译过程中收获颇多,现把译文分享出来,如对您 ...

  7. 美团技术分享:深度解密美团的分布式ID生成算法

    本文来自美团技术团队"照东"的分享,原题<Leaf--美团点评分布式ID生成系统>,收录时有勘误.修订并重新排版,感谢原作者的分享. 1.引言 鉴于IM系统中聊天消息I ...

  8. golang 面试经验分享

    golang 面试经验分享 1.分享一下golang一面(hr面): 首先是简单的自我介绍: 根据简历上的项目简单介绍一下项目使用的技术栈: 有没有了解过公司 前一段实习经验的感受与想法,为什么从上一 ...

  9. Ceph论文译文--Ceph:一个可扩展,高性能分布式文件系统 (转载)

    Ceph论文译文--Ceph:一个可扩展,高性能分布式文件系统 分类: Storage 2014-09-23 11:56 1146人阅读 评论(0) 收藏 举报 Ceph 目录(?)[+] Ceph一 ...

最新文章

  1. C语言实现RC4序列密码
  2. Java多线程编程的常见陷阱
  3. Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)的区别
  4. docker基础命令
  5. java httpclient 关闭_java中使用httpclient如何关闭debug日志
  6. nginx php实例,多个mysql,nginx,php实例环境安装zabbix(完全自定义)
  7. 【C语言】用C语言输出一个吃豆人
  8. c++开发工具下载地址
  9. 95-30-012-Channel-AbstractNioChannel
  10. python 匹配段落_python格式化段落
  11. MySQL join 与where的执行顺序
  12. 车辆控制知识总结(一):LQR算法
  13. 学习笔记(4):《微电子器件》陈星弼(第四版)第2章 PN结
  14. 从零开始的立绘拆包教程
  15. 贪心——国际象棋锦标赛
  16. HDS存储产品概述1
  17. 100+个NLP数据集
  18. windows驱动开发8:虚拟摄像头方案
  19. 执行多个window.onload匿名函数的方法
  20. 噩梦射手 安装包资源包提供下载 Unity官方教程 Survival Shooter 资源已经失效了!? Unity3D休闲射击类游戏《Survival Shooter》完整源码

热门文章

  1. WordNET 安装
  2. 音视频开发——通信直播协议和视频推流丨RTMP-RTSP
  3. winfrom-绘制十字线
  4. c语言大顶堆算法,数据结构之大顶堆
  5. 清华大学视频课件:面向对象程序设计(C++)(自主模式)
  6. linux软件时间同步硬件时间,linux系统时间同步,硬件时钟和系统时间同步,时区的设置...
  7. 基于ssm工商学院办公用品管理信息系统设计与实现-计算机毕业设计源码+LW文档
  8. java 获取wifi强度_Android获取当前已连接的wifi信号强度的方法
  9. 仿生义肢加上人工智能做出人体细微动作
  10. MIPS架构的传奇演化