分布式文件系统fastdfs与docker

大数据: http://hadoop.apache.org/
MFS: https://moosefs.com/
fastdfs:https://github.com/happyfish100/fastdfs

1.介绍fastdfs及原理

FastDFS是一款轻量级的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。只能通过 专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。

原理介绍:

服务分为两大部件Tracker server和Storage server Tracker server负责调度 计算最适合的存储服务器 Storage server负责存储数组 Storage server被分为

运行过程:

1.Client询问Tracker server ,Tracker server通过负载算法 返回一台存储 的Storage server
2.Tracker server 返回的数据为该Storage server的IP地址和端口
3.Client直接和该Storage server建立连接,进行文件上传,Storage server返回新生成的文件ID,文件上传结束

分布式文件系统fastdfs与docker_第1张图片

Client客户端

Tracker服务器

1.判断有哪些存储服务器(注册中心)eureka
2.判断哪个存储服务器空间比较大
3.判断资源所在的存储服务器(路由)zuul

Storage服务器

每台Storage服务器都有一个备份Storage服务器

推荐

高可用,不会造成服务器奔溃

关闭linux和centos防火墙

  1. linux防火墙:systemctl disable|enable firewalld
  2. 搜索:find / -name selinuxfind / -name selinux
  3. 编辑:vi /etc/sysconfig/selinux
  4. 修改属性:
    分布式文件系统fastdfs与docker_第2张图片

2.fastdfs的部署

  1. 下载fastdfs镜像:docker pull season/fastdfs
  2. 创建trakcer容器:docker run -ti -d --name trakcer -v ~/tracker_data:/fastdfs/tracker/data --net=host season/fastdfs tracker
    注意:默认端口:22122,容器是关闭状态请设置一下防火墙。
  3. 创建storage容器:docker run -tid --name storage -v ~/storage_data:/fastdfs/storage/data -v ~/store_path:/fastdfs/store_path --net=host -e TRACKER_SERVER:192.168.153.133:22122 season/fastdfs storage
  4. 查看可用storage服务器在trakcer容器的
    进入:docker exec -it trakcer bash 查看:ls
    进入:cd fdfs_conf/ 查看ls
    查看可用的storage服务器:fdfs_monitor storage.conf
    在这里插入图片描述

将storag服务器ip注册到trakcer服务器里

  1. 进入storag容器:docker exec -it storage bash 查看ls
  2. 进入cd fsfs_conf 查看ls
  3. 查看ip地址有没有改:more storage.conf
  4. 将storage.conf文件拷贝到跟目录:docker cp storage:/fdfs_conf/storage.conf ~/
  5. 编辑: vi storage.conf修改为linux的Ip
    在这里插入图片描述
  6. 修改完成后再拷贝回去:docker cp ~/storage.conf storage:/fdfs_conf/
  7. 关闭容器:docker stop storage在开启容器:docker start storage
  8. 再次进入storag容器的storage.conf所在目录查看:fdfs_monitor storage.conf
    分布式文件系统fastdfs与docker_第3张图片

查看22122端口是否可用

  1. 是否被占用:netstat -ano | grep 22122
  2. 是否能通:telnet localhost 22122 出现以下说明可用
    在这里插入图片描述

演示上传文件

  1. 此容器只能操作文件:docker run -ti --name fdfs_sh --net=host season/fastdfs sh
  2. 将storage.conf拷贝到fdfs_sh:/fdfs_conf/目录下:docker cp ~/storage.conf fdfs_sh:/fdfs_conf/
  3. 创建一个a.txt文件:echo hello>a.txt
  4. 进入cd: fdfs_conf 上传文件:fdfs_upload_file storage.conf /a.txt 出现以下上传成功
group1/M00/00/00/wKiZhVwGlJOAYEPIAAAABncc3SA782.txt
  1. 在linux根目录
  2. cd store_path
  3. cd data
  4. cd 00
  5. cd 00
  6. more wKiZhVwGlJOAYEPIAAAABncc3SA782.txt 结果:
hello

你可能感兴趣的:(fastdfs)