16 Star 76 Fork 6

谷之也 / wheatDFS

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

wheatDFS [goDFS]

介绍

wheatDFS是一个基于微服务思想的简单的分布式文件系统,具有无中心、高性能,高可靠,免维护等优点,支持自动同步,自动修复,封装了http协议上传保存,对于上传操作使用签名方式增加安全性。

软件架构

image-20210301220049282

安装教程

go语言安装

运行需要go语言环境, Go 语言环境安装go中文网 搜索安装教程,需要安装1.13以上版本, 记得配置gomod

以及代理 。

wheatDFS安装
cd ~
mkdir wheatDFS
git clone https://gitee.com/timedb/goDFS.git  # 下载仓库
cd goDFS
go build -o dfs
sudo cp dfs /bin  # 拷贝编译文件到bin下

快速使用

一下我们使用e1, e2, e3来表示服务器。 # 代表注释

# --- e1服务器 ---

cd ~
# 创建一个文件夹来放启动工程
mkdir pro  
cd pro
# 创建配置文件,到当前目录
sudo dfs -nc=./conf.json
# 原来开启静态web服务的文件夹,需要手动创建
mkdir web
# 开启tracker
sudo dfs -type=tracker -conf=./conf.json
# 开启storage,必须先启动tracker
sudo dfs -type=storage -conf=./conf.json

以上我们启动了一个tracker,一个storage的wheatDFS服务,wheatDFS支持小文件同步,我们使用一下命令启动,多节点服务。

# --- e2服务器 ---
cd ~
# 创建一个文件夹来放启动工程
mkdir pro  
cd pro
# 复制e1中的conf.json,同一组服务必须使用相同的配置文件

# 启动第2个storage节点
sudo dfs -type=storage -conf=./conf.json
# --- e3服务器 ---
cd ~
# 创建一个文件夹来放启动工程
mkdir pro  
cd pro
# 复制e1中的conf.json,同一组服务必须使用相同的配置文件

# 启动第3个storage节点
sudo dfs -type=storage -conf=./conf.json

以上我们开启了一个多节点的服务器,实际上最少只需要1个tracker,1个storage就可以运行服务,但是不推服,运行2个storage会有较为稳定的性能。

运行成功后,我们可以访问tracker的地址可以看到以下界面 dfs,要显示改页面,请再启动tracker前,连接网络,并且开启配置文件的web参数。 image-20210219195317909

使用说明

  1. 创建运行配置文件。

    我们使用以下命令创建一个配置文件,这里的 ./dfs.conf.json 是生成的配置文件的地址。

    dfs.exe -nc=./dfs.conf.json

    配置文件例子如下, 不要复制,一下注释只为了方便理解,实际上配置文件是json格式。

    
    {
      "storage": {
        "group_path": "./",    //storage中group的储存地址,用于保存文件,
        "log_path": "./"      //日志文件的地址,会在该地址下生成一个log文件夹保存日志
      },
      "tracker": {            
        "port": 80,           //tracker负载均衡,web引用的端口,默认80
        "token_pwd": "Q0578EphdbaaFpMt",      //随机密码不用更改,自动生成
        "host": "192.168.0.104",                   //tracker的ip
    	"web": "./web"  ,                    //配置这个选项,会启动一个静态服务器,需要index.htm作为入口
        "persistence": "./sync.db"           //这里保存所有文件的key
      },
      "client": {
        "cache_path": "./cache"              //大文件缓存区
      }
    }
    
  2. 运行tracker

    使用一下命令运行tracker -type 指定运行服务类型,-conf 指定运行服务的配置文件。tracker应该运行在原来的配置文件上。

    dfs.exe -type=tracker -conf=./dfs.conf.json
  3. 运行storage

    使用以下命令运行storage,注意,我们可以运行多个storage但是只可以配置一个tracker,并且,一组tracker和storage的集群必须使用同一个配置文件。

    dfs.exe -type=storage -conf=./dfs.conf.json

Comments ( 0 )

Sign in for post a comment

About

wheatDFS是基于go语言的Rpc封装的高性能,高可靠的分布式文件管理系统。 spread retract
Cancel

wheatDFS

Contributors

All

Activities

load more
can not load any more
Go
1
https://gitee.com/timedb/goDFS.git
git@gitee.com:timedb/goDFS.git
timedb
goDFS
wheatDFS
2.0.1

Search