首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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真尼玛复杂。

下一篇
举报
领券