本发明属于云计算,涉及一种基于fuse技术的云存储出网流量控制方法及系统。
背景技术:
1、在it系统之中,需要存储的内容,比如图片、音乐、视频等,通常都会直接存储在云存储。典型的比如aws的simple storage service,业界通常简称s3。当用户需要看图片、听音乐、看视频的时候,都需要从云存储之中下载对应的文件。而文件的下载会产生出网流量,并且云厂商通常都按照出网流量进行计费。
2、目前主要通过以下几种方式来控制出网流量,从而降低一些出网流量产生的费用。
3、1、使用云厂商自带的cdn
4、以海外aws为例,aws提供的cdn名为cloudfront。从s3流入cloudfront的费用为0,但是从cloudfront流出的费用并未明显降低。cdn的主要作用为提高用户访问的速度。
5、2、使用第三方cdn
6、海外使用最广泛的cdn尝试为cloudflare,其提供每天2tb的免费出网流量。在免费额度范围之中,用户从cloudflare获取内容的费用为0,但是从aws s3流出至cloudflare的费用仍然需要计费。也就是说,从云存储流向cloudflare的数据仍然根据流量计费,并且cloudflare向用户输出数据,每天只有2t的免费流量,超出额度仍然需要计费。
7、3、使用cdn+lightsail
8、lightsail为aws提供的出网流量非常便宜的虚拟机服务,其出网流量费用相比云存储的出网费用降低了非常多。
9、目前已经有实践直接将文件存储在服务器之上,但是lightsail机型的磁盘无法动态伸缩,需要提前准备大磁盘容量的机型。但是,大容量机器的价格很贵,同时最大容量也只有640gb,无法满足大多数应用场景,需要流量扩容的时候,存储成本也会成倍增加。
10、4、自行编码,动态从s3请求文件并向请求端输出
11、s3有非常完善的api,支持自行编码完成文件转发的工作,包括:提供文件列表展示、翻页、查询的功能;提供文件读取到本地磁盘并输出给请求客户端的功能。同时lightsail为共享cpu与磁盘,特别是磁盘性能较低。但是,自行编码较为复杂,需要较大的开发工作量;文件需要在机器上读写并转发,但是lightsail机型性能较弱,会降低获取文件的性能;为了保持程序稳定运行,大幅增加了系统复杂度。
技术实现思路
1、本发明提供一种基于fuse技术的云存储出网流量控制方法,当文件服务器出网流量达到阈值时,可以快速切换到新的文件服务器。
2、本发明提供的基于fuse技术的云存储出网流量控制方法,包括以下步骤:
3、(1)在文件服务器上安装docker容器,拉取云存储的镜像,即,将云存储服务器的目录挂接到docker容器的内部目录,docker容器上运行有基于fuse技术的文件系统;
4、(2)在文件服务器上创建挂接点目录;
5、(3)运行docker镜像,将挂接点目录挂接到docker容器的内部目录;
6、(4)在文件服务器上安装nginx,安装有nginx的服务器即为文件服务器;
7、(5)监控文件服务器的出网流量,如果出网流量达到设定的阈值,则根据步骤(1)至(4)创建新的文件服务器。
8、本发明通过fuse技术直接将云存储文件映射到文件服务器本地磁盘,用户访问时不需要进行文件服务器本地磁盘读写,不占用文件服务器实际存储,当文件服务器出网流量达到阈值时,可以快速切换到新的文件服务器。由于文件不需要实际在文件服务器存储,对文件服务器的容量进行动态伸缩非常方便。
9、优选地,将根据步骤(1)至(4)创建的文件服务器制作为系统镜像,当出网流量达到设定的阈值,通过复用系统镜像的方式创建新的文件服务器,大大方便了新建文件服务器。
10、优选地,在新的文件服务器正常使用后,删除旧的文件服务器。
11、优选地,在文件服务器创建完成后,调整访问文件服务器的服务器的dns设置,将文件服务器的ip地址添加到访问文件服务器的服务器中。
12、优选地,云存储为aws s3,docker容器上运行的文件系统为s3fs,所述文件服务器为lightsail服务器。目前,lightsail的出网费用为2.5usd/tb,aws s3直接出网费用为90usd/tb,其降价幅度约为97%,可以极大幅度降低流量费用。
13、本发明还提供一种基于fuse技术的云存储出网流量控制系统,用于连接云存储服务器,包括文件服务器和监控与调度系统;所述文件服务器通过以下方式创建:在所述文件服务器安装docker容器,并拉取云存储的镜像,即,将云存储服务器的目录挂接到docker容器的内部目录,docker容器上运行有基于fuse技术的文件系统,在文件服务器上创建挂接点目录,运行docker镜像,将挂接点目录挂接到docker容器的内部目录,在文件服务器上安装nginx;所述监控与调度系统用于监控文件服务器的出网流量,当出网流量达到设定的阈值,则创建新的文件服务器。
14、优选地,将搭建好的文件服务器制作成系统镜像,当出网流量达到设定的阈值,所述监控与调度系统通过复用所述系统镜像的方式创建新的文件服务器。
15、优选地,所述监控与调度系统还用于访问文件服务器的服务器的dns设置,将文件服务器的ip地址添加到访问文件服务器的服务器中。
16、优选地,当新的文件服务器正常使用后,所述监控与调度系统删除旧的文件服务器。
17、优选地,所述云存储为aws s3,docker容器上运行的文件系统为s3fs,所述文件服务器为lightsail服务器。
18、本发明通过fuse技术直接将云存储文件映射到文件服务器本地磁盘,用户访问时不需要进行文件服务器本地磁盘读写,不占用文件服务器实际存储,当文件服务器出网流量达到阈值时,可以快速切换到新的文件服务器。由于文件不需要实际在文件服务器存储,对文件服务器的容量进行动态伸缩非常方便。使用cloudflare进行文件转发服务,将云储存服务的文件转发给用户,不需要额外开发文件转发服务,对性能影响小。使用现有成熟技术,包括fuse、docker、nginx等,系统稳定性高。
1.一种基于fuse技术的云存储出网流量控制方法,其特征在于,包括以下步骤:
2.如权利要求1所述的基于fuse技术的云存储出网流量控制方法,其特征在于,将根据步骤(1)至(4)创建的文件服务器制作为系统镜像,当出网流量达到设定的阈值,通过复用系统镜像的方式创建新的文件服务器。
3.如权利要求1或2所述的基于fuse技术的云存储出网流量控制方法,其特征在于,在新的文件服务器正常使用后,删除旧的文件服务器。
4.如权利要求1或2所述的基于fuse技术的云存储出网流量控制方法,其特征在于,在文件服务器创建完成后,调整访问文件服务器的服务器的dns设置,将文件服务器的ip地址添加到访问文件服务器的服务器中。
5.如权利要求所述1或2所述的基于fuse技术的云存储出网流量控制方法,其特征在于,云存储为aws s3,docker容器上运行的文件系统为s3fs,所述文件服务器为lightsail服务器。
6.一种基于fuse技术的云存储出网流量控制系统,用于连接云存储服务器,其特征在于,包括文件服务器和监控与调度系统;所述文件服务器通过以下方式创建:在所述文件服务器安装docker容器,并拉取云存储的镜像,即,将云存储服务器的目录挂接到docker容器的内部目录,docker容器上运行有基于fuse技术的文件系统,在文件服务器上创建挂接点目录,运行docker镜像,将挂接点目录挂接到docker容器的内部目录,在文件服务器上安装nginx;所述监控与调度系统用于监控文件服务器的出网流量,当出网流量达到设定的阈值,则创建新的文件服务器。
7.如权利要求6所述的基于fuse技术的云存储出网流量控制系统,其特征在于,将搭建好的文件服务器制作成系统镜像,当出网流量达到设定的阈值,所述监控与调度系统通过复用所述系统镜像的方式创建新的文件服务器。
8.如权利要求6或7所述的基于fuse技术的云存储出网流量控制系统,其特征在于,所述监控与调度系统还用于访问文件服务器的服务器的dns设置,将文件服务器的ip地址添加到访问文件服务器的服务器中。
9.如权利要求6或7所述的基于fuse技术的云存储出网流量控制系统,其特征在于,当新的文件服务器正常使用后,所述监控与调度系统删除旧的文件服务器。
10.如权利要求6或7所述的基于fuse技术的云存储出网流量控制系统,其特征在于,所述云存储为aws s3,docker容器上运行的文件系统为s3fs,所述文件服务器为lightsail服务器。