人们在寻求一种安全的机制来交换文件。今天我们很自豪地宣布新的开源文件服务器模块。作为 Psono 生态系统中最新的组件,它解决了多个问题:
这就是 Psono 的用武之地。Psono 是在考虑到所有这些问题的情况下设计的,非常灵活。
那么,对用户来说它看起来如何?很简单。
希望这够简单了。
在背后,客户端执行了一些更复杂的步骤,但这些步骤都对用户是隐藏的:
通过这种机制,我们可以解决任何文件大小的问题,因为文件被拆分成块。我们甚至可以为单个文件分布上传到多个服务器。所有文件(与 Psono 的其他所有内容一样)在离开客户端之前都进行了加密并发送到服务器。
顶部部分显示了一个典型的设置。一个中继服务器(一个简单的反向代理)服务于一些静态文件(web 客户端)。Web 客户端被发送到浏览器,然后调用服务器上的 REST API 端点。服务器使用 Postgres 数据库来存储所有持久数据。Psono Web 客户端和 Psono 服务器可以看作是无状态的,所有数据都存储在 Postgres 数据库中。
如果你现在想要附加一个文件服务器,你首先需要在服务器上创建一个分片和集群配置,然后可以使用它来配置实际的文件服务器。一旦文件服务器启动,它将自动注册并继续每 10 秒宣布其可用性。如果一个文件服务器出现故障,服务器将检测到这一情况,并停止向故障服务器发送客户端请求。一旦恢复,它将自动再次注册并开始接收客户端请求。在上面的图片中,我们将所有块存储在本地存储中,并有一个中继服务器(在小环境中可以与普通服务器共用,用于 SSL 卸载)。
除了本地存储外,你还可以使用各种存储后端,甚至将它们混合使用。
目前支持的(除了本地存储)有亚马逊 S3、GCP 云存储和 Azure Blob 存储。
你可以使用多个文件服务器,以解决例如由于带宽限制导致的性能问题。你可能有远程工作但办公室网络连接非常薄弱的情况。另一个使用案例可能是,你希望更好地保护本地文件,并且
一种解决性能问题并为你提供更好隔离的设置可能是这样的:
这种设置在站点之间双向共享所有“外部”分片的流量,允许外部人员上传文件,然后可以被员工下载,反之亦然。
另一方面,本地分片从不与远程位置同步,因此保护得更好。由于“外部”分片中的文件只同步一次,无论他们何时改变,你可以让 100 个员工访问这个分片中的文件,而无需从远程位置下载 100 次。或者如果你上传一个文件,你可以与 100 个外部人员共享它,而无需上传 100 次。
带宽优势也可以用于连接远程位置,其设置类似于这样的:
在这种设置中,每个站点都有一个文件服务器,所有文件在站点之间共享。写入操作只针对特定的分片,这允许每个分片的单向同步。这样设置可以让纽约的人们毫无延迟地访问文件。
下一个大问题是负载均衡。如果你只有少数员工,他们不会饱和你的带宽,那很好。如果你有 1000 名员工,定期访问文件服务器,那么这将为单个服务器带来带宽限制。但幸运的是,Psono 可以处理这种情况。这里有两个由 Psono 文件服务器提供的负载均衡选项。
你可能已经有一个负载均衡器,那么你的设置可以是这样的:
在这种设置中,一个负载均衡器被用来进行 SSL 卸载。两个后面的文件服务器被用来处理实际的请求。两者都宣布相同的分片,所以他们要么需要同步分片,要么有一些共享存储。你可以使用 GlusterFS 或简单的 rsync。
另一种选择是,让客户端进行所有负载均衡,并节省一些设置和成本。 不同于额外负载均衡器的设置可能看起来像这样。
所有这些设置可以堆叠,例如每个集群有 3 个服务器,每个集群服务相同的分片并有一个同步(或共享的)存储库,
希望我能让你对 Psono 新的强大文件服务器模块有一个好的印象。