FastDFS架构包括:Tracker server和Storage server.客户端请求Tracker server进行文件上传,下载,通过Tracker server调度最终由Storage server完成文件上传和下载.
Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务,可以将tracker称为追踪服务器或调度服务器.
Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storageserver没有实现自己的文件系统而是利用操作系统的文件系统来管理文件,可以将Storage称为存储服务器
Tracker:管理集群,tracker也可以实现集群.每一个tracker节点地位平等,收集Storage集群的状态.
Storage:实际保存文件,Storage分为多个组,每个组之间保存的文件是不同的,每个分组内部可以有多个成员,组成员保存的内容是一样的,组成员的地位是一致的,没有主从概念.
客户端上传文件后存储服务器将文件 ID 返回给客户端,此文件 ID 用于以后访问该文 件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
- 组名:文件上传后所在的 storage 组名称,在文件上传成功后有 storage 服务器返回, 需要客户端自行保存。
- 虚拟磁盘路径:storage 配置的虚拟路径,与磁盘选项 store_path*对应。如果配置了 store_path0 则是 M00,如果配置了 store_path1 则是 M01,以此类推。
- 数据两级目录:storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据 文件。
- 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储 服务器 IP 地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
启动docker: sudo service docker start
停止docker: sudo service docker stop
重启docker: sudo service docker restart
列出镜像: docker image ls
拉取镜像: docker image pull library/镜像名称
删除镜像: docker image rm 镜像名或镜像id
创建守护交互式容器(myubuntu): docker run -dit --name=myubuntu ubuntu /bin/bash
列出本机正在运行的容器: docker container ls
列出本机所有容器(包括停止的): docker container ls --all
停止与启动容器
# 停止一个已经在运行的容器
docker container stop 容器名或容器id
# 启动一个已经停止的容器
docker container start ..............
# kill掉一个已经在运行的容器
docker container kill ................
删除容器:
docker container rm ............
将容器保存为镜像
docker commit 容器名 镜像名
通过save命令将镜像打包成文件,拷贝给别人使用:
docker save -o 保存的文件名 镜像名==> docker save -o ./ubuntu.tar ubuntu
拿到镜像文件后,可以通过load方法,将镜像加载到本地
docker load -i ./ubuntu.tar
使用Docker安装FastDFS
1:获取镜像
通过下载: docker image pull delron/fastdfs
直接使用: docker load -i 文件路径/fastdfs_docker.tar
2:运行docker:
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
将fastDFS tracker运行目录映射到本机的 /var/fdfs/tracker目录中。
执行: docker container ls:查看tracker是否运行
停止:docker sontainer stop tracker
重启: docker container start tracker
3:运行storage
docker run -dti --network=host --name storage -e TRACKER_SERVER=本机ip:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage
执行:docker container ls命令查看storage是否运行
停止: docker container stop storage
重启: docker container start storage