FastDFS蛋疼的集群和负载均衡(一)之FastDFS基础配置

diary_report.jpg

Interesting things

好像今天没有什么有趣的事情

What did you do today

  • 创建虚拟机的时候,有时会抛出很多错误,解决方案:添加分配给虚拟机的内存。
  • 解决XShell-ssh连接虚拟机经常被意外中断的问题,vi /etc/ssh/sshd_config,进入去掉注释#UseDNS no,改为UseDNS no,问题是ssh的服务端在连接虚拟机时会自动检测dns环境是否一致导致的,修改为不检测即可解决。

image.png

  • 什么是FastDFS?通过作者的话来说FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括文件村存储,文件同步和文件访问,以及高容量和负债均衡的设计。

    image.png

    • 下载FastDFS的Server安装包,点击FastDFS Server Source Code

    image.png

    image.png

    image.png

    • 安装8台虚拟机(最小化安装),给这8台虚拟机配置静态ip并且能ping通外网和主机(可以参考我上一篇博客),配置完后使用XShell工具来操作虚拟机。
    • 我使用的虚拟机分别为192.168.12.11 192.168.12.22 192.168.12.33 192.168.12.44 192.168.12.55 192.168.12.66 192.168.12.77 192.168.12.88。其中192.168.12.11和192.168.12.22分别作为tracker1和tracker2。192.168.12.33 和192.168.12.44作为group1。 192.168.12.55 和 192.168.12.66作为group2。最后把192.168.12.77和192.168.12.88作为Nginx集群多层负载均衡。多层负载均衡会生成一个虚拟ip,我们最终会通过虚拟ip来访问我们的集群。
    • 我们用Xftp 5连接192.168.12.11,在/usr/local/ 创建software文件夹,然后在software下准备好这些文件。

    image.png

    • 然后通过scp -r/user/local/software/ root@192.168.12.22:/usr/local这样的方式给每一个虚拟机复制一份到它的/usr/local/software路径下(如果目标虚拟机路径下没有software文件夹,则会自动创建software文件夹)
    • 给每一个虚拟机安装gcc, yum install make cmake gcc gcc++

    image.png

    • 如果虚拟机没有zip和unzip命令的话,会提示这样。

    image.png

    • 安装zip和unzip命令 yum install zip unzip

    image.png

    • 解压libfastcommon-master.zip, unzip libfastcommon-master.zip -d /usr/local/fast/

    image.png

    • 安装vim, yum install vim-enhanced,不然./make.sh编译会报错。

    image.png

    • 进入/usr/local/fast/libfastcommon-master,使用./make.sh进行编译。

    image.png

    • 执行./make.sh install

    image.png

    • 我们可以看到libfastcommon.so被安装进入/usr/lib64,而/usr/lib64里面东西巨他妈多,所以我们必须创建一个属于libfastcommon.so的软链接,方便我们查找libfastcommon.so。命令是: ln -s /usr/lib64/libfastcommon.so /usr/local/lib64/libfastcommon.so以此类推,我也要创建libfdfslclient.so 的软链接。命令是: ln -s /usr/lib64/libfdfsclient.so /usr/local/lib64/libfdfsclient.so、 ln -s /usr/local/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

    image.png

    image.png

    • 我们查看/usr/local 和 /usr/local/lib64发现libfdfsclient.so颜色是红色,因为/usr/lib64还没有libfdfsclient.so文件。

    image.png

    • 解析FastDFS.tar.gz。 tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/

    image.png

    • 然后执行./make.sh和./make.sh install

    image.png

    image.png

    • 我们可以看到FastDFS服务器脚本安装在了/usr/bin下面,但是FastDFS服务脚本设置的目录为/usr/local/bin下,所以我们要修改/etc/init.d/fdfs_storaged和/usr/init.d/fdfs_trackerd这配置文件。将其中的/usr/local/bin设置为/usr/bin。
    • 进入/etc/init.d/fdfs_storaged进行替换。命令:%s+/usr/local/bin+/usr/bin

    image.png

    image.png

    image.png

    • 进入/etc/init.d/fdfs_trackerd进行替换。命令:%s+/usr/local/bin+/usr/bin

    image.png

    image.png

    image.png

    • 公共部分的配置做完了,接下来搞tracker1(192.168.12.11)和tracker2(192.168.12.22)。
    • 进入/etc/fdfs下面,拷贝tracker.conf.sample一份,并且重命名为tracker.conf

    image.png

    • 编辑tracker.conf,将base_path修改为/fastdfs/tracker

    image.png

    • 设置store_look的属性(选择群组上传文件的方法)。 0是轮询, 1是指定group,3是负载均衡,选择最大可用空间组去上传文件。为了方便后面的测试,我先将store_look设置为0,只有store_look=1时,store_group=group2才会生效。

    image.png

    image.png

    • 将tracker.conf拷贝给tracker2。 scp tracker.conf root@192.168.12.22:/etc/fdfs

    image.png

    • 由于我们在tracker.conf设置的base_url=/fastdfs/tracker,所以我们要创建/fastdfs/tracker, mkdir -p /fastdfs/tracker, -p 代表递归创建目录。

    image.png

    • 配置防火墙,添加端口22122。你可能会纳闷了,为什么端口是22122?请看tracker.conf中默认的prot就是22122。

    image.png

    • 配置防火墙,vim /etc/sysconfig/iptables,但是我们在/etc/sysconfig/下面没有看到iptables

    image.png

FastDFS is an open source high performance distributed file system (DFS). It's major functions include: file storing, file syncing and file accessing, and design for high capacity and load balance.


What to do tomorrow

  • 继续配置FastDFS的负载均衡和集群。大概3-4篇博客讲解完。

Summary

FastDFS真尼玛复杂。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏蓝天

MOOON-agent更新:新增IHeartbeatHook接口

新增IHeartbeatHook接口的目的是让应用可以在心跳包中安插自己的数据,比如将自己的状态数据通过心跳带回去。

6610
来自专栏程序员同行者

CentOS7搭建FastDFS V5.11分布式文件系统-第三篇

14130
来自专栏北京马哥教育

【Python】windows下Eclipse中安装集成webpy框架

这篇文章主要讲述的是在Windows下,在eclipse中如何通过使用webpy框架进行python的web开发。很多文章都是在自己一次次的碰壁中又决定自己写一...

20340
来自专栏java达人

FastDFS分布式文件系统

一,简介 FastDFS是一个开源的轻量级 分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决...

45070
来自专栏李家的小酒馆

JQuery $.axaj的基本格式

8820
来自专栏smy

git将代码提交到远程分支(非主分支)

一个仓库可以包含多个分支,有一个默认的主分支:master 若想提交代码至远程仓库的某个分支(非主分支) 先查看下本地分支以及远程分支:git branch -...

35150
来自专栏运维

系统重启后ngix reload不生效原因分析

这是一种比较少见,困扰我很久的问题,虽然这个问题很简单,但是找到根本原因还是费了不少时间,现在把分析过程分享如下。

9620
来自专栏有趣的django

7.Flask文件上传

12620
来自专栏我有一个梦想

Python 项目实践三(Web应用程序)第五篇

 接着上节继续学习,在这一节,我们将建立一个用户注册和身份验证系统,让用户能够注册账户,进而登录和注销。我们将创建一个新的应用程序,其中包含与处理用户账户相关的...

23280
来自专栏架构师之路

线上操作与线上问题排查实战

技术同学需要经常登录线上的服务器进行操作,58到家架构部/运维部/58速运技术部,联合进行了一次线上操作与线上问题排查实战演练,同学们反馈有收获,特将实战演练的...

32840

扫码关注云+社区

领取腾讯云代金券