分布式文件系统FastDFS动态扩容

  当用户量越来越大,则集群中某个group总会到达其极限,这时就得扩展集群的容量了。

FastDFS的扩容分为对group纵向扩容和横向扩容

  纵向扩容 指在同一个group组中增加服务器,实现数据冗余,数据备份。同一个group中最大容量取决于最小的storage的存储容量。因此如果还想继续使用此group,则需要对此group对应的所有服务器挂载同样容量的磁盘,指定store_path1……,但这样做的话成本相当的高,不推荐。

  横向扩容是通过集群实现,指新增一个group,增加整个FastDFS的存储空间。fastDFS的存储空间指的是所有group加起来的存储容量。

下面就横向扩容来做介绍

  在 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备 中已经讲了如何配置集群的2个tracker和4个storage,分group1和group2,下面增加一组group3,也由2台服务器组成 group3:36、37。

安装storage

  按照 高可用高性能分布式文件系统FastDFS进阶keepalived+nginx对多tracker进行高可用热备 分别布署storage存储节点。

  安装 nginx和fastdfs-nginx-module 到 storage存储节36、37。

  将/etc/fdfs/storage.conf里面的 group_name=group3 其它内容与其它storage存储节一样。

然后开启这两个storage,并加入开机启动:

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf chkconfig fdfs_storaged on

查看集群状态,会显示整体内容:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

安装配置nginx

/opt/nginx/conf/nginx.conf 文件内容与其它结点一样。

但修改/etc/fdfs/mod_fastdfs.conf

base_path=/data/fastdfs/storage
tracker_server=192.168.80.30:22122
tracker_server=192.168.80.31:22122
storage_server_port=23000
group_name=group3 # 第一组storage的组名
url_have_group_name=true
store_path0=/data/fastdfs/storage
group_count=2
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/storage
[group2]
group_name=group2
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/storage
[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/storage

注意:

将存储结点32到37的/etc/fdfs/mod_fastdfs.conf里面都加上

[group3]
group_name=group3
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/storage

启动Nginx,并加和自启动

shell> /opt/nginx/sbin/nginx

上传测试文件到group3上。

浏览器访问测试时上传的文件,应该都能正常访问。 http://192.168.80.36:8888/group3/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg http://192.168.80.37:8888/group3/M00/00/00/CgNXGVpddOKANpzbAABdrZgsqUU369_big.jpg

配置Nginx,设置tracker负载均衡以及缓存

vi /opt/nginx/conf/nginx.conf

添加以下内容

#设置 group3 的服务器
upstream fdfs_group3 {
server 192.168.80.36:8888 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.80.37:8888 weight=1 max_fails=2 fail_timeout=30s;
}
        location /group3/M00 {
            proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache http-cache;
            proxy_cache_valid 200 304 12h;
            proxy_cache_key $uri$is_args$args;
            proxy_pass http://fdfs_group3;
            expires 30d;
        }

再重启nginx就行了。

  从上面来看,给集群增加group,storage的安装配置很简单,主要是 nginx和fastdfs-nginx-module的配置比较麻烦,需要手动添加组,因此要注意以上要注意的地方不要漏掉了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

故障诊断 | 系统级追踪诊断方法及案例分享

所谓操作系统,是应用程序与服务器硬件进行沟通的中间层。应用程序的所有操作,都是和操作系统进行沟通交互。操作系统负责将所有交互转化为设备语言,进行硬件交互。 我们...

35530
来自专栏互扯程序

用FastDFS一步步搭建文件管理系统

FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

25210
来自专栏Linux驱动

27.Linux-DM9000C网卡移植(详解)

上一节 我们学习了:   网卡驱动介绍以及制作虚拟网卡驱动 接下来本节,学习网卡芯片DM9000C,如何编写移植DM9000C网卡驱动程序。 1.首先来看DM9...

24650
来自专栏java一日一条

Java 线程池(ThreadPoolExecutor)原理分析与使用

在我们的开发中“池”的概念并不罕见,有数据库连接池、线程池、对象池、常量池等等。下面我们主要针对线程池来一步一步揭开线程池的面纱。

9820
来自专栏丑胖侠

Zookeeper开源客户端Curator之基本功能讲解

简介 Curator是Netflix公司开源的一套Zookeeper客户端框架。了解过Zookeeper原生API都会清楚其复杂度。Curator帮助我们在其基...

37750
来自专栏IT笔记

JavaWeb项目架构之FastDFS分布式文件系统

分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System。一种允许文件通过网络在多台...

55150
来自专栏黑泽君的专栏

day55_BOS项目_07

第一步:我们使用 PowerDesigner 通过 权限控制.pdm文件 生成 建表文件bos_qx.sql,为了避免外键名冲突,需要修改建表文件的外键名称和...

6510
来自专栏张戈的专栏

启用WP Super Cache纯代码版本之后的一些优化措施

张戈博客在上个月 28 号启用了 WP Super Cache 代码版,几天下来,虽然小问题不断,但是总体感觉非常不错!不管是前台还是后台,速度都有质的提升,着...

37570
来自专栏散尽浮华

Centos7下ELK+Redis日志分析平台的集群环境部署记录

之前的文档介绍了ELK架构的基础知识(推荐参考下http://blog.oldboyedu.com/elk/),日志集中分析系统的实施方案: - ELK+Red...

32640
来自专栏用户2442861的专栏

redis 学习指南

http://www.cnblogs.com/hoojo/p/4466024.html

22210

扫码关注云+社区

领取腾讯云代金券