一、集群模式
- 由于本人机器环境有限,因此本人在一台云服务器上进行本地集群搭建
- 本次集群环境为:
- 1台client端
- 1台tracker服务端3
- 台storage服务端,分为两组
二、tracker端搭建
- 第一步:在家目录下创建一个fastdfs/目录,用来存储fastdfs相关的文件。然后在fastdfs目录内创建一个tracker/目录用来存放tracker服务端相关的内容
mkdir ~/fastdfsmkdir ~/fastdfs/trackerls ~/fastdfs
- 第二步:拷贝/etc/fdfs/下的tracker.conf.sample配置文件,复制一份名为tracker.conf,然后上面创建的tracker目录下
sudo cp /etc/fdfs/tracker.conf.sample ~/fastdfs/tracker/tracker.confls ~/fastdfs/tracker
- 第三步:修改配置文件,修改的内容有:其中port默认为22122,当启动tracker时,其服务监听端口为22122base_path:用来存储节点信息和日志的目录其他的参数不需要变动
sudo vim ~/fastdfs/tracker/tracker.conf
fdfs_trackerd ~/fastdfs/tracker/tracker.conf
- 第五步:输入下面的命令可以查看到tracker服务端启动成功
netstat -aptn | grep 22122
- 第六步:可以查看相关的文件data:存储tracker节点的相关数据log:存储tracker节点的日志
ls ~/fastdfs/tracker/
三、group1组配置
- 第一步:
- 在家目录的fastdfs目录下创建一个storage/目录用来存放storage服务端相关的内容
- 然后在storage/目录下创建group1目录用来存放组1相关内容
- 然后创建在group1目录创建storage1目录和storage2目录,分别两台storage
- 然后在storage1目录和storage2目录下分别创建store_data目录,用来存放storage节点实际的文件数据
# 存放所有storage节点mkdir ~/fastdfs/storage# 存放group1中的所有节点mkdir ~/fastdfs/storage/group1# 存放group1中的storage1节点mkdir ~/fastdfs/storage/group1/storage1## 存放group1中的storage2节点mkdir ~/fastdfs/storage/group1/storage2# 存放group1中的storage1节点实际数据的(store_path0选项所指地址)mkdir ~/fastdfs/storage/group1/storage1/store_data# 存放group1中的storage2节点实际数据的(store_path0选项所指地址)mkdir ~/fastdfs/storage/group1/storage2/store_data ls ~/fastdfs ~/fastdfs/storage ~/fastdfs/storage/group1/
- 第二步:拷贝/etc/fdfs/下的storage.conf.sample配置文件,分别复制两份,放到~/fastdfs/storage/group1/storage1和~/fastdfs/storage/group1/storage2目录下
sudo cp /etc/fdfs/storage.conf.sample ~/fastdfs/storage/group1/storage1/storage.confsudo cp /etc/fdfs/storage.conf.sample ~/fastdfs/storage/group1/storage2/storage.confls ~/fastdfs/storage/group1/storage1/ ~/fastdfs/storage/group1/storage2/
- 第三步:修改storage1的配置文件
- group_name:默认为group1,表示其在第一组
- port:默认为23000,也不变
- base_path:用来节点数据和日志的,设置为上面我们设置的目录
- store_path0:真正存储文件数据的,设置为上面我们设置的目录;其会在该目录下创建data目录用来存储文件数据
- tracker_server:要连接的tracker服务地址,此处填写我们上面创建的tracker服务(如果有多个tracker服务端,那么可以填写多个,每个占一行)
- 其他的参数不需要变动
sudo vim ~/fastdfs/storage/group1/storage1/storage.conf
- 第四步:修改storage2的配置文件
- group_name:默认为group1,表示其在第一组
- port:修改23001
- base_path:用来节点数据和日志的,设置为上面我们设置的目录
- store_path0:真正存储文件数据的,设置为上面我们设置的目录
- tracker_server:要连接的tracker服务地址,此处填写我们上面创建的tracker服务
- 其他的参数不需要变动
sudo vim ~/fastdfs/storage/group1/storage2/storage.conf
- 第五步:启动storage1、storage2服务端
sudo fdfs_storaged ~/fastdfs/storage/group1/storage1/storage.conf sudo fdfs_storaged ~/fastdfs/storage/group1/storage2/storage.conf
- 第六步:输入下面的命令可以查看到两个tracker是否启动成功(要过几十秒再查看,因为storage需要创建65536个目录)
netstat -aptn | grep 23000netstat -aptn | grep 23001
- 第七步:输入下面的命令查看到storage服务是否接收到tracker1服务的连接,可以看到连接成功
netstat -aptn | grep 22122
- 第八步:可以查看相关的文件
- data:存储storage节点的相关数据
- log:存储storage节点的日志
- store_data:storage实际存放数据文件的地方
ls ~/fastdfs/storage/group1/storage1
- store_data目录:
- store_data目录下会有一个data目录,用来存放所有数据的
- data目录下有255个目录,这255个目录下又有255个目录,因此总共有25536个目录来存储数据
四、group2组配置
- 第一步:
- 接着上面的演示案例
- 然后在storage/目录下创建group2目录用来存放组2相关内容
- 然后创建在group2目录创建storage目录,用来存放组2中storage服务器的内容
- 然后在storage目录下再创建store_data目录,用来存放storage节点实际的文件数据
# 存放group2中的所有节点mkdir ~/fastdfs/storage/group2# 存放group2中的storage节点mkdir ~/fastdfs/storage/group2/storage# 存放group2中的storage节点实际数据的(store_path0选项所指地址)mkdir ~/fastdfs/storage/group2/storage/store_datals ~/fastdfs ~/fastdfs/storage ~/fastdfs/storage/group2/
- 第二步:拷贝/etc/fdfs/下的storage.conf.sample配置文件,放到~/fastdfs/storage/group2/storage目录下
sudo cp /etc/fdfs/storage.conf.sample ~/fastdfs/storage/group2/storage/storage.conf ls ~/fastdfs/storage/group2/storage/
- 第三步:修改storage的配置文件
- group_name:修改为group2,因此它在第二组了
- port:修改为23002
- base_path:用来节点数据和日志的,设置为上面我们设置的目录
- store_path0:真正存储文件数据的,设置为上面我们设置的目录;其会在该目录下创建data目录用来存储文件数据
- tracker_server:要连接的tracker服务地址,此处填写我们上面创建的tracker服务(如果有多个tracker服务端,那么可以填写多个,每个占一行)
- 其他的参数不需要变动
sudo vim ~/fastdfs/storage/group2/storage/storage.conf
sudo fdfs_storaged ~/fastdfs/storage/group2/storage/storage.conf
- 第五步:输入下面的命令可以查看到两个tracker是否启动成功(要过几十秒再查看,因为storage需要创建65536个目录)
netstat -aptn | grep 23002
- 第六步:输入下面的命令查看到storage服务是否接收到该tracker服务的连接,可以看到连接成功
netstat -aptn | grep 22122
- 第七步:可以查看相关的文件,与上面一样的,就不详细介绍了
ls ~/fastdfs/storage/group2/storage
五、使用客户端检测集群状态、操作文件
- 第一步:接着上面的演示案例,在fastdfs目录下创建一个client目录,用来存放客户端的相关数据
mkdir ~/fastdfs/client ls ~/fastdfs
- 第二步:将/etc/fsfd下客户端的配置文件client.conf.sample拷贝一份,放到~/fastdfs/client/下,命名为client.conf
sudo cp /etc/fdfs/client.conf.sample ~/fastdfs/client/client.confls ~/fastdfs/client/
- 第三步:修改配置文件
- base_path:存储客户端相关文件,填上面我们建立的
- tracker_server:要连接的tracker_server服务端地址,填上面我们开启的
sudo vim ~/fastdfs/client/client.conf
- 第四步:先输入下面的命令来检测一下storage服务端的状态,查看当前集群的相关信息
fdfs_monitor ~/fastdfs/client/client.conf
- 信息如下所示:
- tracker服务端的地址为0.0.0.0:22122
- 有两个group组
- 组1中有1个storage server(上面我们配置了两台,但是此处只生效1台,可能是我哪里没弄好,不管了,下次再说吧,先凑合着用)
- 其中组1中端口为23001的storage server处于“ACTIVE”状态,因此可以使用
- 组2中有1个storage server,storage server端口为23002,并且处于“ACTIVE”状态(与预期一样)
- 第五步:现在我们创建一个文件,并在文件中输入HelloWorld字符串
touch test.txt & echo "HelloWorld" > test.txtcat test.txt
- 第六步:输入下面的命令将该文件上传到FastDFS文件系统中,显示上传成功
fdfs_upload_file ~/fastdfs/client/client.conf ./test.txt
- 第七步:通过上面命令的执行结果可以看到,文件被上传到group1组中的第2台storage2服务器stora_data/data/目录的00/00/目录下,查看如下,成功
cat ~/fastdfs/storage/group1/storage2/store_data/data/00/00/fwAAAV8C6XWAMshWAAAACxt5uAc563.txt
- 第八步:我们创建一个目录,用来接收下载的文件,然后输入fdfs_download_file命令下载文件
mkdir test cd test fdfs_download_file ~/fastdfs/client/client.conf group1/M00/00/00/fwAAAV8C6XWAMshWAAAACxt5uAc563.txt
- 第九步:输入下面的命令可以删除文件,删除完成之后再次查看,文件没了
fdfs_delete_file ~/fastdfs/client/client.conf group1/M00/00/00/fwAAAV8C6XWAMshWAAAACxt5uAc563.txtls ~/fastdfs/storage/group1/storage2/store_data/data/00/00/