前言:
而今看官们对“centos6964”大体比较重视,我们都需要了解一些“centos6964”的相关知识。那么小编也在网上网罗了一些对于“centos6964””的相关资讯,希望看官们能喜欢,同学们快快来了解一下吧!写在前面
在生产环境中,往往需要对FastDFS实现高可用,进而实现文件的大规模分布式存储。那么,如何实现FastDFS的高可用呢?今天,我们就基于CentOS 8服务器来搭建FastDFS高可用集群环境。
服务器版本
我们在服务器的命令行输入如下命令来查看服务器的内核版本。
[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 [root@localhost source]# wget [root@localhost source]# wget
安装环境依赖
在每台服务器上执行如下命令安装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
安装FastDFS
安装libfastcommon 在每台服务器上依次执行如下命令。
解压libfastcommon的压缩包
[root@localhost source]# tar -zxvf V1.0.43.tar.gz编译并安装编译并安装
[root@localhost source]# cd libfastcommon-1.0.43/ [root@localhost libfastcommon-1.0.43]# ./make.sh && ./make.sh install检查执行的结果,看安装是否成功
[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
在每台服务器上依次执行如下命令。
解压fastdfs
[root@localhost source]# tar -zxvf V6.06.tar.gz安装fastdfs
[root@localhost source]# cd fastdfs-6.06/ [root@localhost fastdfs-6.06]# ./make.sh && ./make.sh install检查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
解压Nginx
[root@localhost source]# tar -zxvf nginx-1.17.8.tar.gznginx配置,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编译安装Nginx
[root@localhost nginx-1.17.8]# make && make install检查安装是否成功
[root@localhost nginx-1.17.8]# ls /usr/local/soft/ | grep nginx nginx查看指定的编译参数是否起作用
[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。
创建tracker服务所需的目录
[root@localhost fdfs]# mkdir /data/fastdfs [root@localhost fdfs]# mkdir /data/fastdfs/tracker [root@localhost fdfs]# chmod 777 /data/fastdfs/tracker配置tracker服务,修改 tracker.conf 文件
[root@localhost fdfs]# vi /etc/fdfs/tracker.conf
只修改base_path一项的值为我们在上面所创建的目录即可
base_path = /data/fastdfs/tracker启动 tracker 服务
[root@localhost fdfs]# /etc/init.d/fdfs_trackerd start检查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服务启动成功。
检查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的客户端使用的配置文件。
配置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配置相同
从客户端的配置可以看到:客户端只需要了解tracker_server的信息。tracker server作用也正是负载均衡和调度Storage server作用是文件存储,客户端上传的文件最终存储在 Storage 服务上
测试文件
用client.conf上传文件测试。
从tacker上传一个文件
[root@0268c2dc2bf6 ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/a.txt
注意:返回的是group1,我们可以group1下面的两台机器均找到此txt文件
storage1上
[root@d5d19e99e782 docker_tmp]# ls /data/fastdfs/storage/data/00/00 rBEABF5aTEeAXHF4AAAABHf4XZU792.txtstorage2上
[root@f201111d0698 docker_tmp]# ls /data/fastdfs/storage/data/00/00 rBEABF5aTEeAXHF4AAAABHf4XZU792.txt指定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和端口即可。
查看效果
storage3上
[root@494ac47d63f8 fdfs]# ls /data/fastdfs/storage/data/00/00 rBEABl5aUAqAXLCZAAAABHf4XZU043.txtstorage4上
[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
解压nginx
[root@localhost source]# tar -zxvf nginx-1.17.8.tar.gz解压fastdfs-nginx-module
[root@localhost source]# tar -zxvf V1.22.tar.gz修改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 configNginx配置,添加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/编译安装nginx
[root@localhost nginx-1.17.8]# make && make install检查安装是否成功
[root@localhost nginx-1.17.8]# ls /usr/local/soft/ | grep nginx nginx查看指定的编译参数是否起作用
[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服务
创建storage服务所需的目录
[root@localhost fdfs]# mkdir /data/fastdfs/storage [root@localhost fdfs]# chmod 777 /data/fastdfs/storage/配置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
配置的不同之处:
1
92.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启动storage服务
[root@localhost fdfs]# /etc/init.d/fdfs_storaged start 正在启动 fdfs_storaged (via systemctl): [ 确定 ]检查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服务启动成功
检查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
生成配置文件
[root@localhost nginx-1.17.8]# cp /usr/local/source/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/编辑配置文件
[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不正常工作
复制另两个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
启动Nginx
[root@localhost storage]# /usr/local/soft/nginx/sbin/nginx检查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
文件上传完成后,从浏览器访问各个storage的Nginx即可:
例如:
说明:各台storage server的ip地址后面跟着上传时所返回的地址。注意:只能访问各台机器所在的group,
如果想通过统一的ip地址进行访问 需要在Nginx中通过upstream访问到后端的机器 此Nginx应运行在tracker上
配置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 ; expires 30d; } location /group2 { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_pass ; expires 30d; }重启测试
[root@0268c2dc2bf6 ~]# /usr/local/soft/nginx/sbin/nginx -s stop [root@0268c2dc2bf6 ~]# /usr/local/soft/nginx/sbin/nginx
在浏览器中访问:
最后,感谢大家的观看,谢谢
如果文章有问题可以关注私信我交流更改,或在评论区互相交流。
标签: #centos6964