05: 分布式文件系统 、 FastDFS原理 、 FastDFS配置及应用

简介:

部署分布式存储服务
一、分布式文件系统介绍

二、配置分布式存储服务
2.1 配置主控节点(111) 装包 修改配置文件 启动服务 查看端口
]# yum -y install gcc gcc-c++ libevent
]# cd fastdfs
]# yum -y install libevent-*.rpm
]#tar -zxf FastDFS_v4.06.tar.gz 
]#cd FastDFS
]#./make.sh 
]#./make.sh install
]# ls /etc/fdfs/ #配置文件存放目录
]# ls /usr/local/bin/ #命令文件存放目录

]# vim /etc/fdfs/tracker.conf //服务主配置文件
base_path=/data/fastdfs 
max_connections=4096

store_group=group1
use_storage_id = true
storage_ids_filename = storage_ids.conf

]# mkdir -p /data/fastdfs
]# cd FastDFS
]# cp conf/storage_ids.conf /etc/fdfs/
]# vim /etc/fdfs/storage_ids.conf

[root@mon111 FastDFS]# tail -2 /etc/fdfs/storage_ids.conf
100001 group1 192.168.4.108
100002 group1 192.168.4.109

]#cd FastDFS
]# cp init.d/fdfs_trackerd /etc/init.d/
]# chmod +x /etc/init.d/fdfs_trackerd 
]# /etc/init.d/fdfs_trackerd status 
fdfs_trackerd 停止

]# netstat -utnalp | grep :22122

++++++++++++++++++++++++++++++++++
2.2 配置数据节点 108 109 
准备存储空间:分区 格式化 配置开机挂载到/data/fastdfs
172 fdisk /dev/vdb
173 fdisk -l /dev/vdb

174 mkfs.ext4 /dev/vdb1
175 mkdir -p /data/fastdfs
176 blkid /dev/vdb1

]#vim /etc/fstab 
UUID=f2853b35-13d3-48b1-8c3f-9b9e5f225fca /data/fastdfs ext4 defaults 0 0

]# mount -a
]# mount | grep /data/fastdfs
/dev/vdb1 on /data/fastdfs type ext4 (rw)
装包 修改配置文件 启动服务 查看端口
2 yum -y install gcc gcc-c++ libevent
6 yum -y install libevent-*.rpm
]#tar -zxf FastDFS_v4.06.tar.gz 
]#cd FastDFS
]#./make.sh 
]#./make.sh install
]# ls /etc/fdfs/ #配置文件存放目录
]# ls /usr/local/bin/ #命令文件存放目录

]# vim /etc/fdfs/storage.conf
base_path=/data/fastdfs

max_connections=4096store_path0=/data/fastdfs
subdir_count_per_path=256

tracker_server=192.168.4.111:22122
++++++++++++++++++++++++++++++++
2.3 启动服务
2.3.1 启动主控节点主机上的服务trackerd
209 /etc/init.d/fdfs_trackerd status
210 /etc/init.d/fdfs_trackerd start
211 netstat -utnalp | grep :22122
212 ps -C fdfs_trackerd
]#cd /data/fastdfs/
]#ls 
data logs
219 cat data/storage_changelog.dat 
221 vim logs/trackerd.log

2.3.2 启动数据节点主机上的storaged服务
193 cd FastDFS
197 cp init.d/fdfs_storaged /etc/init.d/
198 chmod +x /etc/init.d/fdfs_storaged
]# /etc/init.d/fdfs_storaged start
]#netstat -utnalp | grep :23000

++++++++++++++++++++++++++++++++++++
2.3 在客户端测试配置 250 、254
254:
]# ping -c 2 192.168.4.111
]# echo $PATH
]# mkdir /root/bin

创建连接主控服务器111的配置文件
]# scp 192.168.4.108:/etc/fdfs/client.conf /root/

]# vim /root/client.conf
10 base_path=/data/fastdfs
14 tracker_server=192.168.4.111:22122
:wq

]# mkdir -p /data/fastdfs

108:
把命令行,操作文件的命令传给客户端 
]# scp fdfs_test 192.168.4.254:/root/bin/
]# scp fdfs_upload_file 192.168.4.254:/root/bin/
]# scp fdfs_download_file 192.168.4.254:/root/bin/
]# scp fdfs_delete_file 192.168.4.254:/root/bin/

250:
上传文件:
显示上传文件过程fdfs_test
不显示上传文件过程 fdfs_upload_file

]# fdfs_test 配置文件 上传 文件名

]# fdfs_test /root/client.conf upload foo.sh
]#fdfs_upload_file /root/client.conf /etc/passwd

删除文件
]# fdfs_test /root/client.conf delete group1 M00/00/00/wKgEbVp7fh-AdtHSAAAJ6YX0WVM0035120

下载文件
++++++++++++++++++++++++++++++++
把数据节点主机110添加到存储组group1里
110的配置: 准备存储空间 装包 修改配置文件 启动服务 查看端口

111的配置: 修改storage_ids.conf 添加新的存储主机
重启tracked 服务

250客户端测试:

++++++++++++++++++++++++++++++++++
在存储服务器上配置web服务,让客户端访问存储服务器的web服务上传和下载文件
108 
1 运行nginx网站服务: 装包 修改配置文件 启动服务 查看端口
]# netstat -utnalp | grep :80
]# systemct stop httpd ; systemctl disable httpd

]# yum -y install gcc gcc-c++ 
]# useradd nginx
]# yum -y install pcre-devel zlib-devel

]#tar -zxf fastdfs-nginx-module_v1.16.tar.gz
]#tar -zxf nginx-1.7.10.tar.gz 
]#cd nginx-1.7.10
]# ./configure --prefix=/usr/local/nginx --user=nginx 
--group=nginx --add-module=../fastdfs-nginx-module/src/

]# make && make install
]# ls /usr/local/nginx/
conf html logs sbin

]# cp fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
]# vim /etc/fdfs/mod_fastdfs.conf
40 tracker_server=192.168.4.111:22122
53 url_have_group_name = true
47 group_name=group1
57 store_path_count=1
62 store_path0=/data/fastdfs/:wq

]#vim /usr/local/nginx/conf/nginx.conf
43 location / {
44 #root html;
45 #index index.html index.htm;
ngx_fastdfs_module; 
46 }
:wq

[root@web108 ~]# /etc/init.d/fdfs_storaged stop
stopping fdfs_storaged ...
..
[root@web108 ~]# /etc/init.d/fdfs_storaged start
Starting FastDFS storage server:

[root@web108 ~]# /usr/local/nginx/sbin/nginx -t
ngx_http_fastdfs_set pid=8668
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@web108 ~]#

[root@web108 ~]# /usr/local/nginx/sbin/nginx
ngx_http_fastdfs_set pid=8674
[root@web108 ~]#

配置109 : 可以供客户端以web的方式访问。
装包 修改配置文件 启动服务

++++++++++++++++++++++++++++++++++++++++

客户端访问:
254: 上传文件
[root@room8pc205 ~]# ls *.jpg
tedu.jpg
[root@room8pc205 ~]# fdfs_upload_file /root/client.conf ./tedu.jpg 
group1/M00/00/00/wKgEbFp7nlWABtXMAACwEV-ILDc616.jpg
[root@room8pc205 ~]#

254: 通过访问web页面下载文件
]#firefox http://192.168.4.108/group1/M00/00/00/wKgEbFp7nlWABtXMAACwEV-ILDc616.jpg

http://192.168.4.108
80 -----> nginx----->连接tracked服务的模块->模块读取配置文件---> 访问taracked服务器--->配置文件


     本文转自sweak_h 51CTO博客,原文链接:http://blog.51cto.com/13478354/2070380,如需转载请自行联系原作者



相关文章
|
4天前
|
分布式计算 API 对象存储
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
28 11
|
2天前
|
NoSQL Redis 数据库
|
7天前
|
分布式计算 并行计算 算法
探索排序的宇宙奥秘:Python中归并排序的并行处理与分布式应用!
【7月更文挑战第11天】归并排序是一种分治算法,适用于并行和分布式处理。在Python中,利用`concurrent.futures`可实现并行归并排序,但因GIL限制,可能需借助`multiprocessing`或GPU库。分布式归并排序则通过分布式框架如Apache Spark处理大规模数据,每个节点独立排序后进行网络合并。并行与分布式技术提升了处理大数据的速度和效率。**
17 9
|
14天前
|
机器学习/深度学习 人工智能 分布式计算
编程语言未来发展趋势探析:简化与标准化、并发与分布式、智能应用新篇章
编程语言未来发展趋势探析:简化与标准化、并发与分布式、智能应用新篇章
22 1
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能平台PAI产品使用合集之如何配置cluster系统自动生成分布式参数
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
17天前
|
缓存 自然语言处理 负载均衡
理解大模型在分布式系统中的应用和优化策略
理解大模型在分布式系统中的应用和优化策略
|
7天前
|
缓存 搜索推荐 Java
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
Java面试题:简述CAP理论及其在分布式系统设计中的应用。请提供一个具体的例子,说明在系统设计中如何取舍一致性和可用性
11 0
|
9天前
|
存储 负载均衡 算法
实现Java应用的分布式存储系统
实现Java应用的分布式存储系统
|
1月前
|
负载均衡 运维 监控
负载均衡与容错性:集群模式在分布式系统中的应用
本文由小米分享,解释了分布式系统中的集群模式。集群模式是通过组合多个服务器节点,共同提供服务,实现高可用性、负载均衡和扩展性。文章介绍了主控节点的角色及其高可用性策略,如主备模式和选举机制,并以Zookeeper为例详细阐述了其工作机制。集群模式的优势在于高可用性、负载均衡、扩展性和数据一致性,但也面临节点通信、数据一致性、故障检测和管理等挑战。最后,作者鼓励读者讨论和交流相关技术问题。
238 5
|
2月前
|
存储 域名解析 缓存
【域名解析DNS专栏】DNS解析中的分布式哈希表(DHT)应用
【5月更文挑战第29天】为解决DNS性能瓶颈和单点故障问题,分布式哈希表(DHT)技术被引入DNS解析,以实现分布式存储和检索,提高可扩展性和鲁棒性。DHT应用于DNS解析,包括负载均衡与数据分发、缓存优化和安全性增强。示例代码展示了DHT基本概念,但实际应用更复杂,需考虑更多因素。