1.基于ftp协议的分布式存储系统,其特征在于,包括:
基于ftp协议并安装有业务系统的windows主机ftpclient;
若干用于负责数据流传输以及物理文件读写的linux分机ftpslave1、ftpslave2……ftpslaven;所有的linux分机之间均挂载了其它分机的共享目录;
以及,用于负责ftp协议控制命令处理和所有linux分机负载均衡的linux主机ftpmaster。
2.基于ftp协议的分布式存储系统的实现方法,其特征在于,包括以下步骤:
s101、linux主机创建至少2个tcp通道,其中一个tcp通道用于与windows主机建立联系并负责ftp控制命令响应和处理,另一个tcp通道用于与linux分机建立联系;
s102、每个linux分机均创建至少2个tcp通道,其中一个tcp通道用于负责ftp控制命令响应和处理,另一个tcp通道用于与linux主机建立联系;
s103、所有的linux分机均创建各自的共享目录,并将目录信息同步至linux主机,linux主机更新集群共享目录列表信息;
s104、windows主机访问linux主机;
s105、linux主机收到请求后,建立tcp连接并开始会话;
s106、windows主机和linux主机之间进行账户验证,若验证不成功,则循环步骤s106,直至验证成功后,执行步骤s107;
s107、windows主机向linux主机发起pasv命令;
s108、linux主机进行轮询,并根据轮询结果,在确保负载均衡的前提下向windows主机返回一个linux分机节点的ip和端口;
s109、windows主机根据响应派生出一个客户端数据传输进程,并随机产生一个客户端数据传输端口连接到返回的linux分机节点的ip和端口,然后windows主机、返回的linux分机节点之间基于ftp协议和所有linux分机的共享目录信息进行数据文件传输,实现文件的上传和下载。
3.根据权利要求2所述的基于ftp协议的分布式存储系统的实现方法,其特征在于,所述步骤s109中,在进行数据文件传输时,若为文件上传,则执行步骤s110;若为文件下载,则执行步骤s111;
s110、windows主机向linux分机节点发送“stor<文件名>”指令,并上传文件至linux分机节点,linux分机节点对“stor<文件名>”命令中的“<文件名>”进行crc32散列变换之后再对linux分机的个数进行取模,确定将文件存储到哪个节点的共享目录上,执行步骤s112;
s111、windows主机向linux分机节点发送“retr<文件名>”指令,linux分机节点对“retr<文件名>”命令中的“<文件名>”进行crc32散列变换之后再对linux分机的个数进行取模,确定文件存储在哪个节点的共享目录上,然后从该共享目录上读取文件传输至windows主机,执行步骤s112;
s112、windows主机完成操作后,关闭tcp通道。
4.根据权利要求3所述的基于ftp协议的分布式存储系统的实现方法,其特征在于,根据非阻塞io模型epoll创建tcp通道。
5.根据权利要求2~4任一项所述的基于ftp协议的分布式存储系统的实现方法,其特征在于,所述步骤s101中,linux主机还启动一个监控程序,负责linux主机进程的开机启动和崩溃后的自动重启。
6.根据权利要求2~4任一项所述的基于ftp协议的分布式存储系统的实现方法,其特征在于,所述步骤s102中,linux分机还启动一个监控程序,负责linux分机进程的开机启动和崩溃后的自动重启。
7.根据权利要求2~4任一项所述的基于ftp协议的分布式存储系统的实现方法,其特征在于,当有新的linux分机连接linux主机时,linux主机将当前集群的共享目录列表信息传送给新的linux分机,该linux分机将所有的非本机共享目录挂载到本机上;同时,linux主机根据新的linux分机的共享目录信息更新集群共享目录列表信息。