服务器版本

我们在服务器的命令行输入如下命令来查看服务器的内核版本。

[root@localhost lib]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core) 可以看到,集群中每台服务器的内核版本为:release 8.1.1911 (Core)。
服务器规划 这里,我们总共规划了6台服务器,分别为:2台tracker服务器,4台storage服务器,其中2台storage服务器为group1,两台storage服务器为group2。具体如下所示。 tracker服务器 tranker1:192.168.175.101 tracker2:192.168.175.102 storage服务器 storage1:192.168.175.103 group1 storage2:192.168.175.104 group1 storage3:192.168.175.105 group2 storage4:192.168.175.106 group2
环境准备
下载FastDFS 在每台服务器上执行如下命令下载FastDFS。 [root@localhost source]# wget https://github.com/happyfish100/fastdfs/archive/V6.06.tar.gz
[root@localhost source]# wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.22.tar.gz
[root@localhost source]# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.43.tar.gz 安装环境依赖 在每台服务器上执行如下命令安装FastDFS所依赖的环境。 [root@localhost dest]# yum install gcc gcc-c++
[root@localhost dest]# yum install libtool zlib zlib-devel openssl openssl-devel
[root@localhost dest]# yum -y install pcre pcre-devel libevent libevent-devel perl unzip net-tools wget 安装FastDFS
安装libfastcommon 在每台服务器上依次执行如下命令。 (1)解压libfastcommon的压缩包 [root@localhost source]# tar -zxvf V1.0.43.tar.gz (2)编译并安装编译并安装 [root@localhost source]# cd libfastcommon-1.0.43/
[root@localhost libfastcommon-1.0.43]# ./make.sh && ./make.sh install (3)检查执行的结果,看安装是否成功 [root@localhost libfastcommon-1.0.43]# ls /usr/lib64|grep libfastcommon
libfastcommon.so [root@localhost libfastcommon-1.0.43]# ls /usr/lib|grep libfastcommon
libfastcommon.so 安装fastdfs 在每台服务器上依次执行如下命令。 (1)解压fastdfs [root@localhost source]# tar -zxvf V6.06.tar.gz (2)安装fastdfs [root@localhost source]# cd fastdfs-6.06/
[root@localhost fastdfs-6.06]# ./make.sh && ./make.sh install (3)检查fastdfs是否安装成功 [root@localhost fastdfs-6.06]# ls /usr/bin|grep fdfs
fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_regenerate_filename
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file 安装部署tracker服务
复制tracker的配置文件 在两台tracker服务器上,依次执行如下命令。 [root@localhost fastdfs-6.06]# cd /etc/fdfs/
[root@localhost fdfs]# cp client.conf.sample client.conf
[root@localhost fdfs]# cp tracker.conf.sample tracker.conf 注意:无须生成storage.conf文件,这两台tracker不做为storage。
安装Nginx 在两台tracker服务器上,依次执行如下命令。 注意:tracker上不需要安装fastdfs-nginx-module (1)解压Nginx [root@localhost source]# tar -zxvf nginx-1.17.8.tar.gz (2)nginx配置,http_stub_status_module 模块 [root@localhost fdfs]# cd /usr/local/source/nginx-1.17.8/
[root@localhost nginx-1.17.8]# ./configure --prefix=/usr/local/soft/nginx --with-http_stub_status_module (3)编译安装Nginx [root@localhost nginx-1.17.8]# make && make install (4)检查安装是否成功 [root@localhost nginx-1.17.8]# ls /usr/local/soft/ | grep nginx
nginx (5)查看指定的编译参数是否起作用 [root@localhost fdfs]# /usr/local/soft/nginx/sbin/nginx -V
nginx version: nginx/1.17.8
built by gcc 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)
configure arguments: --prefix=/usr/local/soft/nginx --with-http_stub_status_module 配置并启动FastDFS 在两台tracker上,配置并启动FastDFS。 (1)创建tracker服务所需的目录 [root@localhost fdfs]# mkdir /data/fastdfs
[root@localhost fdfs]# mkdir /data/fastdfs/tracker
[root@localhost fdfs]# chmod 777 /data/fastdfs/tracker (2)配置tracker服务,修改 tracker.conf 文件 [root@localhost fdfs]# vi /etc/fdfs/tracker.conf 只修改base_path一项的值为我们在上面所创建的目录即可 base_path = /data/fastdfs/tracker (3)启动 tracker 服务 [root@localhost fdfs]# /etc/init.d/fdfs_trackerd start (4)检查tracker服务启动是否成功 [root@localhost fdfs]# ps auxfww | grep fdfs
root 15067 0.0 0.0 12320 964 pts/0 S+ 15:14 0:00 | | \_ grep --color=auto fdfs
root 15026 0.0 0.1 90160 5940 ? Sl 15:13 0:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf 说明:能看到 fdfs_trackerd,表示tracker服务启动成功。 (5)检查tracker服务是否已绑定端口 22122 [root@localhost dest]# netstat -anp | grep 22122
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN 15026/fdfs_trackerd 说明: 22122端口是在/etc/fdfs/tracker.conf中定义的,如下所示: # the tracker server port
port = 22122 配置client.conf 两台tracker上,配置client.conf,配置fastdfs的客户端使用的配置文件。 (1)配置client.conf [root@localhost fdfs]# vi /etc/fdfs/client.conf 以下两项配置用到的tracker目录和服务器地址端口 base_path = /data/fastdfs/tracker
tracker_server = 192.168.175.101:22122
tracker_server = 192.168.175.102:22122 说明:两台tracker上的client.conf配置相同 (2)从客户端的配置可以看到:客户端只需要了解tracker_server的信息。tracker server作用也正是负载均衡和调度 (3)Storage server作用是文件存储,客户端上传的文件最终存储在 Storage 服务上
测试文件 用client.conf上传文件测试。 (1)从tacker上传一个文件 [root@0268c2dc2bf6 ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/a.txt group1/M00/00/00/rBEABF5aTEeAXHF4AAAABHf4XZU792.txt 注意返回的是group1,我们可以group1下面的两台机器均找到此txt文件: storage1上 [root@d5d19e99e782 docker_tmp]# ls /data/fastdfs/storage/data/00/00
rBEABF5aTEeAXHF4AAAABHf4XZU792.txt storage2上 [root@f201111d0698 docker_tmp]# ls /data/fastdfs/storage/data/00/00
rBEABF5aTEeAXHF4AAAABHf4XZU792.txt (2)指定group上传文件 如果想指定上传到某个group怎么办?例如:指定上传到group2 [root@0268c2dc2bf6 ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/a.txt 192.168.175.105:23000
group2/M00/00/00/rBEABl5aUAqAXLCZAAAABHf4XZU043.txt 说明:指定group2中任一台的ip和端口即可。 (3)查看效果 storage3上 [root@494ac47d63f8 fdfs]# ls /data/fastdfs/storage/data/00/00
rBEABl5aUAqAXLCZAAAABHf4XZU043.txt storage4上 [root@59fa1efff362 fdfs]# ls /data/fastdfs/storage/data/00/00
rBEABl5aUAqAXLCZAAAABHf4XZU043.txt 安装部署storage服务
生成默认配置文件 四台storage上:生成启动fastdfs默认的配置文件。 [root@localhost fastdfs-6.06]# cd /etc/fdfs/
[root@localhost fdfs]# cp storage.conf.sample storage.conf
[root@localhost fdfs]# cp client.conf.sample client.conf 说明:不需要生成tracker.conf,因为storage上不再运行tracker服务
安装Nginx 四台storage上:安装nginx及fastdfs-nginx-module (1)解压nginx [root@localhost source]# tar -zxvf nginx-1.17.8.tar.gz (2)解压fastdfs-nginx-module [root@localhost source]# tar -zxvf V1.22.tar.gz (3)修改config文件,把/usr/local 替换成 /usr [root@localhost source]# cd fastdfs-nginx-module-1.22/
[root@localhost fastdfs-nginx-module-1.22]# cd src
[root@localhost src]# vi config (4)Nginx配置,添加fastdfs-nginx-module和http_stub_status_module 模块 [root@localhost fdfs]# cd /usr/local/source/nginx-1.17.8/
[root@localhost nginx-1.17.8]# ./configure --prefix=/usr/local/soft/nginx --with-http_stub_status_module --add-module=/usr/local/source/fastdfs-nginx-module-1.22/src/ (5)编译安装nginx [root@localhost nginx-1.17.8]# make && make install (6)检查安装是否成功 [root@localhost nginx-1.17.8]# ls /usr/local/soft/ | grep nginx
nginx (7)查看指定的编译参数是否起作用 [root@localhost fdfs]# /usr/local/soft/nginx/sbin/nginx -V
nginx version: nginx/1.17.8
built by gcc 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)
configure arguments: --prefix=/usr/local/soft/nginx --with-http_stub_status_module --add-module=/usr/local/source/fastdfs-nginx-module-1.22/src/ 配置并启动storage服务 四台storage上:配置并启动storage服务 (1)创建storage服务所需的目录 [root@localhost fdfs]# mkdir /data/fastdfs/storage
[root@localhost fdfs]# chmod 777 /data/fastdfs/storage/ (2)配置storage服务 编辑storage的配置文件: [root@localhost fdfs]# vi /etc/fdfs/storage.conf 各配置项包括: group_name = group1
#配置base_path为上面所创建的storage目录
base_path = /data/fastdfs/storage
#store_path :存储所在的目录,可以设置多个,注意从0开始
store_path0 = /data/fastdfs/storage
#tracker_server的ip和端口
tracker_server = 192.168.175.101:22122
tracker_server = 192.168.175.102:22122
#指定http服务的端口
http.server_port = 80 配置的不同之处: 192.168.175.103 group_name = group1
192.168.175.104 group_name = group1
192.168.175.105 group_name = group2
192.168.175.106 group_name = group2 (3)启动storage服务 [root@localhost fdfs]# /etc/init.d/fdfs_storaged start
正在启动 fdfs_storaged (via systemctl): [ 确定 ] (4)检查storage服务启动是否成功 [root@localhost fdfs]# ps auxfww | grep fdfs
root 15630 0.0 0.0 12320 972 pts/0 S+ 15:46 0:00 | | \_ grep --color=auto fdfs
root 15026 0.0 0.1 155696 6964 ? Sl 15:13 0:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
root 15573 2.7 1.7 150736 66292 ? Sl 15:45 0:02 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf 说明:看到fdfs_storaged,表示storage服务启动成功 (5)检查storage服务是否已绑定到端口:23000 [root@localhost fdfs]# netstat -anp | grep 23000
tcp 0 0 0.0.0.0:23000 0.0.0.0:* LISTEN 15573/fdfs_storaged 说明:23000 端口是在配置文件 /etc/fdfs/storage.conf中定义的,如下: # the storage server port
port = 23000 配置fastdfs-nginx-module 四台存储服务器上:配置fastdfs-nginx-module (1)生成配置文件 [root@localhost nginx-1.17.8]# cp /usr/local/source/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/ (2)编辑配置文件 [root@localhost nginx-1.17.8]# vi /etc/fdfs/mod_fastdfs.conf 配置以下几项 group_name=group1
connect_timeout=10
tracker_server=192.168.175.101:22122
tracker_server=192.168.175.102:22122
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 说明: 最上面的group_name:当机器属于group1这组时,值为group1;当机器属于group2这组时,值为group2。 说明:url_have_group_name = true。 注意:这一项不要漏掉,会导至nginx不正常工作 (3)复制另两个web访问用到配置文件到fdfs配置目录下: [root@d5d19e99e782 /]# cp /usr/local/source/fastdfs-6.06/conf/http.conf /etc/fdfs/
[root@d5d19e99e782 /]# cp /usr/local/source/fastdfs-6.06/conf/mime.types /etc/fdfs/ 配置Nginx 四台存储服务器上:配置nginx 编辑nginx的配置文件: [root@localhost conf]# vi /usr/local/soft/nginx/conf/nginx.conf 在server listen 80 的这个server配置下面, 增加一个location location ~/group([0-9]) {
root /data/fastdfs/storage/data;
ngx_fastdfs_module; } 启动nginx (1)启动Nginx [root@localhost storage]# /usr/local/soft/nginx/sbin/nginx (2)检查nginx是否已成功启动 [root@localhost storage]# ps auxfww | grep nginx
root 24590 0.0 0.0 12320 980 pts/0 S+ 16:44 0:00 | | \_ grep --color=auto nginx
root 24568 0.0 0.0 41044 428 ? Ss 16:44 0:00 \_ nginx: master process /usr/local/soft/nginx/sbin/nginx
nobody 24569 0.0 0.1 74516 4940 ? S 16:44 0:00 \_ nginx: worker process 配置tracker服务
配置tracker服务 说明:这一步等待四台storage server配置完成后再进行。使用n=Nginx做upstream负载均衡的原因:可以通过一个地址访问后端的多个group (1)文件上传完成后,从浏览器访问各个storage的Nginx即可: 例如: http://192.168.175.103/group1/M00/00/00/rBEABF5aTRiAEuHwAAAABHf4XZU322.txt
http://192.168.175.104/group1/M00/00/00/rBEABF5aTRiAEuHwAAAABHf4XZU322.txt
http://192.168.175.105/group2/M00/00/00/rBEABl5aUAqAXLCZAAAABHf4XZU043.txt
http://192.168.175.106/group2/M00/00/00/rBEABl5aUAqAXLCZAAAABHf4XZU043.txt 说明:各台storage server的ip地址后面跟着上传时所返回的地址。注意:只能访问各台机器所在的group, 如果想通过统一的ip地址进行访问
需要在Nginx中通过upstream访问到后端的机器
此Nginx应运行在tracker上 (2)配置nginx.conf [root@0268c2dc2bf6 ~]# vi /usr/local/soft/nginx/conf/nginx.conf 内容: 添加 upstream到后端的storage。 upstream fdfs_group1 {
server 192.168.175.103:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.175.104:80 weight=1 max_fails=2 fail_timeout=30s;
} upstream fdfs_group2 {
server 192.168.175.105:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.175.106:80 weight=1 max_fails=2 fail_timeout=30s;
} 针对带有group的url进行处理 location /group1 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://fdfs_group1;
expires 30d;
} location /group2 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://fdfs_group2;
expires 30d; } (3)重启测试 [root@0268c2dc2bf6 ~]# /usr/local/soft/nginx/sbin/nginx -s stop
[root@0268c2dc2bf6 ~]# /usr/local/soft/nginx/sbin/nginx 在浏览器中访问: http://192.168.175.101/group1/M00/00/00/rBEABF5aTRiAEuHwAAAABHf4XZU322.txt
http://192.168.175.101/group2/M00/00/00/rBEABl5aUAqAXLCZAAAABHf4XZU043.txt

基于CentOS 8服务器来搭建FastDFS高可用集群环境的更多相关文章

  1. ElasticSearch高可用集群环境搭建和分片原理

    1.ES是如何实现分布式高并发全文检索 2.简单介绍ES分片Shards分片技术 3.为什么ES主分片对应的备分片不在同一台节点存放 4.索引的主分片定义好后为什么不能做修改 5.ES如何实现高可用容 ...

  2. Apache httpd和JBoss构建高可用集群环境

    1. 前言 集群是指把不同的服务器集中在一起,组成一个服务器集合,这个集合给客户端提供一个虚拟的平台,使客户端在不知道服务器集合结构的情况下对这一服务器集合进行部署应用.获取服务等操作.集群是企业应用 ...

  3. Mysql高可用集群环境介绍

    MySQL高可用集群环境搭建 01.MySQL高可用环境方案 02.MySQL主从复制原理 03.MySQL主从复制作用 04.在Linux环境上安装MySQL 05.在MySQL集群环境上配置主从复 ...

  4. Flink的高可用集群环境

    Flink的高可用集群环境 Flink简介 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布,数据通信以及容错机制等功能. 因现在主要Flink这一块做先关方面的学习, ...

  5. Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录

    一.   MySQL InnoDB Cluster 介绍MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, G ...

  6. 搭建 Kubernetes 高可用集群

    使用 3 台阿里云服务器(k8s-master0, k8s-master1, k8s-master2)作为 master 节点搭建高可用集群,负载均衡用的是阿里云 SLB ,需要注意的是由于阿里云负载 ...

  7. 阿里云搭建k8s高可用集群(1.17.3)

    首先准备5台centos7 ecs实例最低要求2c4G 开启SLB(私网) 这里我们采用堆叠拓扑的方式构建高可用集群,因为k8s 集群etcd采用了raft算法保证集群一致性,所以高可用必须保证至少3 ...

  8. SpringCloud之Eureka高可用集群环境搭建

    注册中心集群 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式. Eureka集群相当简单:相互注册 ...

  9. ProxySQL Cluster 高可用集群环境部署记录

    ProxySQL在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是Proxy ...

随机推荐

  1. Kubernetes v1.24 基于containerd部署

      k8s每个节点安装containerd.   containerd安装参考<containerd安装博文>:https://www.cnblogs.com/punchlinux/p/1 ...

  2. 再见Docker!Containerd安装与使用

    Containerd 的技术方向和目标 简洁的基于 gRPC 的 API 和 client library 完整的 OCI 支持(runtime 和 image spec) 同时具备稳定性和高性能的定 ...

  3. 【实操填坑】在树莓派上编译 EtherCAT IgH Master 主站程序

    官网下载地址:https://etherlab.org/download/ethercat/  (可list查看文件列表)https://etherlab.org/download/ethercat/ ...

  4. 谷歌邮箱使用python自动化发送邮件出现smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.的解决

    今天学习使用邮箱自动化办公的过程中run时一直出现如下错误;smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password n ...

  5. docker 安装gitlab

    # docker 安装gitlab # 一.安装镜像(官网文档) export GITLAB_HOME=/srv/gitlab # 必须先设置它,它就是你存储代码仓库的位置.以后要移植的时候直接把这个 ...

  6. WPF开发随笔收录-WriteableBitmap绘制高性能曲线图

    一.前言 之前分享过一期关于DrawingVisual来绘制高性能曲线的博客,今天再分享一篇通过另一种方式来绘制高性能曲线的方法,也就是通过WriteableBitmap的方式:具体的一些细节这里就不 ...

  7. 处理化学SDF文件出现乱码的解决经验

    近期,在VS2019中用WTL编写一个处理化学SDF文件的程序,遇到多处数据出现乱码的问题,典型一处情况如下:在原始SDF文件的一个字段中,有个形如下面的文字信息: https://product.p ...

  8. 4 亿用户,7W+ 作业调度难题,Bigo 基于 Apache DolphinScheduler 巧化解

    点击上方 蓝字关注我们 ✎ 编 者 按 成立于 2014 年的 Bigo,成立以来就聚焦于在全球范围内提供音视频服务.面对 4 亿多用户,Bigo 大数据团队打造的计算平台基于 Apache Dolp ...

  9. 大数据工作流任务调度--有向无环图(DAG)之拓扑排序

    点击上方蓝字关注DolphinScheduler(海豚调度) |作者:代立冬 |编辑:闫利帅 回顾基础知识: 图的遍历 图的遍历是指从图中的某一个顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点 ...

  10. java学习第六天集合框架.day15

    Set接口 Set集合存储特点: 不允许元素重复 不会记录元素的添加先后顺序 Set只包含从Collection继承的方法,不过Set无法记住添加的顺序,不允许包含重复的元素.当试图添加两个相同元素进 ...