分布式云盘环境搭建

一.fastDFS的安装与使用

1.fastDFS的安装部署与使用

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。https://github.com/aceld/distributed_memory老师源码
https://www.gitbook.com/@aceld

1.2.1 libevent

老版本的fastDFS是基于libevent写的,但是最新版的fastDFS最终网络IO这部分重新用
epoll实现了。
所以如果是fastDFS是2.0之前,请先安装好libevent环境。 之后就不用了。

1.2.2 libfastcommon

git下载地址:
https://github.com/happyfish100/libfastcommon.git

./make.sh
sudo ./make.sh install

确认make没有错误后,执行安装,64位系统默认会复制到/usr/lib64下。
这时候需要设置环境变量或者创建软链接

export LD_LIBRARY_PATH=/usr/lib64/
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

debian独有的第三种添加连接路径的方法:

sudo vim /etc/ld.so.conf
sudo ldconfig -v

测试一个执行文件是否缺少动态库
ldd [可执行文件路径]

1.2.3 安装fastDFS

下载 FastDFS 源程序,下载地址http://code.google.com/p/fastdfs/downloads/list
也可以用github下载https://github.com/happyfish100/fastdfs.git
这里我们下的是V5.05版本。

tar -zxvf fastdfs-5.05.tar.gz
./make.sh
sudo ./make.sh install

确认make没有错误后,执行安装,默认会安装到/usr/bin中,并在/etc/fdfs中添加三个配置文件。
遇到权限问题需要加sudo,或者去root目录下面操作

1.2.4 修改配置文件

首先将三个文件的名字去掉sample,暂时只修改以下几点,先让fastdfs跑起来,其余参数调优的时候再考虑。也可以考虑将三个文件备份一下。
tracker.conf 中修改

base_path=/usr/fastdfs #用于存放日志。
bind_addr=192.168.21.139 #不要绑定127.0.0.1

注意 确保/usr/fastdfs 目录存在

storage.conf 中修改

base_path=/usr/fastdfs/storage #用于存放日志。
store_path0=/usr/fastdfs/fastdfs0 #存放数据,若不设置默认为前面那个
tracker_server=192.168.2.105:22122 #指定tracker服务器地址。不能是127.0.0.1

注意 确保/usr/fastdfs/storage、 /usr/fastdfs/fastdfs0目录存在

client.conf 中同样要修改

base_path=/usr/fastdfs #用于存放日志。
tracker_server=192.168.2.105:22122 #指定tracker服务器地址。

1.2.5 启动tracker和storage—–3个中tracker必须最先启动

tracker必须最先启动且绑定IP不能选择127.0.0.1,或者默认,因为默认就是127.0.0.1,client和storage的track_server必须连接到tracker的IP,track的http端口也就是http.server_port=8080,storage上启动的http服务的端口号 http.server_port=8080,client中http.tracker_server_port=8080,主要是为了支持http,还有一个小细节,就是最后一行的##include http.conf 删掉一个#,并且配置中的path可以根据自己的要求设置但也要尽可能便于管理,目录尽量避免放到root目录,涉及权限问题,目录最好在改配置之前就建好,以免遗忘出现错误

sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

同下

sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

查看端口是否起来

[root@itcast:/etc/fdfs]# netstat -antp | grep storage
tcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      10333/fdfs_storaged
tcp        0      0 10.1.20.245:57886       10.1.20.245:22122       ESTABLISHED 10333/fdfs_storaged

也可以以下命令来监控服务器的状态: 可以使用 fdfs_monitor 来查看一下storage的状态,看是否已经成功注册到了tracker

[root@itcast:/etc/fdfs]# fdfs_monitor /etc/fdfs/storage.conf
[2016-09-02 17:33:01] DEBUG - base_path=/usr/fastdfs/storage, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
server_count=1, server_index=0
tracker server is 192.168.137.128:22122
group count: 1
Group 1:
group name = group1
disk total space = 48756 MB
disk free space = 40471 MB
trunk free space = 0 MB
storage server count = 1
active server count = 1
storage server port = 23000
storage HTTP port = 8888
store path count = 1
subdir count per path = 256
current write server index = 0
current trunk file id = 0
    Storage 1:
        id = 192.168.137.128
        ip_addr = 192.168.137.128  ACTIVE
...
        last_heart_beat_time = 2016-09-02 17:32:35
        last_source_update = 1970-01-01 08:00:00
        last_sync_update = 1970-01-01 08:00:00
        last_synced_timestamp = 1970-01-01 08:00:00

看到ACTIVE,就说明已经成功注册到了tracker。

查看端口情况

[root@ubuntu:~]#netstat -lnp --tcp

检查进程

[root@ubuntu:~]# ps -ef |grep fdfs
root 7819 1 0 15:24 ? 00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tra
cker.conf
root 8046 1 0 15:36 ? 00:00:01 fdfs_storaged /etc/fdfs/storage.conf start
[root@itcast:/]# ps aux | grep fdfs
root      3815  0.0  0.3 144552  3536 ?        Sl   17:03   0:04 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
root      3825  0.0  6.7 146676 67712 ?        Sl   17:03   0:04 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

表示启动ok了,若有错误,可以在/usr/fastdfs目录下检查日志。

1.2.6 上传、删除测试

  1. 上传文件:
    使用自带的fdfs_test来测试,使用格式如下:
fdfs_test /etc/fdfs/client.conf upload abcd.txt(在测试目录下)

出现example file url:
http://192.168.2.105/group1/M00/00/00/wKgCaVeVnY2AcveAAAAAFDGtH6s805
表示添加成功

  1. 删除文件
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgCaVeVnY2AcveAAAAAFDGtH6s805
_big.txt

可以看到,上传ok了,这里会生成两个文件,这是fastdfs的主/从文件特性,以后再介绍。
example file url是不能在浏览器中直接打开的,除非配合nginx使用,这里我不需要了。
删除文件需要完整的group_name和remote_filename。

一些其他的指令均在fastdfs/client目录中。包括指令:

fdfs_appender_test
fdfs_append_file
fdfs_delete_file
fdfs_file_info
fdfs_storaged
fdfs_test1
fdfs_upload_appender
fdfs_appender_test1
fdfs_crc32
fdfs_download_file
fdfs_monitor
fdfs_test
fdfs_trackerd
fdfs_upload_file

1.2.7 重新启动程序

server进程退出运行

直接kill即可让server进程正常退出,可以使用killall命令,例如:

killall fdfs_trackerd
killall fdfs_storaged

也可以使用如下命令:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop

千万不要使用-9参数强杀,否则可能会导致binlog数据丢失的问题。

重启server进程

直接使用:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
删除storage
 /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf delete group2 20.12.1.73(删除group2中ip为20.12.1.73的storage)

注意:在配置过程,要注意防火墙的设置。关闭防火墙,或者设置对相关端口例外。
1、关闭ubuntu的防火墙

ufw disable

2、卸载了iptables

apt-get remove iptables

3、关闭ubuntu中的防火墙的其余命令

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F

二.memcache的安装与配置

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值