私有云办公平台大规模集群/企业级集群/小型工作室集群解决方案:NextCloud集群部署方案

您所在的位置:网站首页 大数据环境部署方案 私有云办公平台大规模集群/企业级集群/小型工作室集群解决方案:NextCloud集群部署方案

私有云办公平台大规模集群/企业级集群/小型工作室集群解决方案:NextCloud集群部署方案

#私有云办公平台大规模集群/企业级集群/小型工作室集群解决方案:NextCloud集群部署方案| 来源: 网络整理| 查看: 265

原作者:NextCloud文档库 转载来源:https://docs.nextcloud.com/server/11/admin_manual/installation/deployment_recommendations.html

 

NextCloud集群部署方案

 

部署建议

安装和维护Nextcloud的最佳方法是什么?答案就是 “它取决于”,因为每个Nextcloud客户都有自己的特定需求和IT基础架构。Nextcloud和LAMP堆栈是高度可配置的,因此我们将介绍三种典型场景,并为软件和硬件提供最佳实践建议。

 

一般建议

注意

无论您的组织规模如何,请始终牢记一点:Nextcloud中存储的数据量只会增加。未雨绸缪。

考虑设置横向扩展部署,或使用联合云共享将各个Nextcloud实例保持在可管理的大小。

操作系统:Linux(建议使用Ubuntu 16.04或Red Hat Enterprise Linux 7)。Web服务器:Apache 2.4。数据库:MySQL / MariaDB。PHP 5.6+。PHP 5.6是支持的最低版本。如果可能,我们建议在PHP 7上部署。众所周知,该版本具有显着的性能优势。mod_php由于供应商的支持和易于配置,是推荐的Apache模块。php-fpm使用Apache事件MPM(或nginx)是一种替代方案,可在高负载和有限RAM环境中提供更好的可扩展性。为了获得最佳结果,我们建议与Nextcloud GmbH企业支持团队合作进行大型部署。

 

小型工作组或部门

用户数量

最多150个用户。

存储大小

100 GB到10 TB。

高可用性水平

通过Btrfs快照进行零停机备份,组件故障会导致服务中断。其他文件系统上的备用备份方案:夜间备份,服务中断。

 

推荐的系统要求

一台机器运行应用程序服务器,Web服务器,数据库服务器和本地存储。

通过现有LDAP或Active Directory服务器进行身份验证。

组件

一台服务器至少有2个CPU核心,16GB RAM,根据需要使用本地存储。

操作系统

企业级Linux发行版,得到OS供应商的全力支持。建议使用Red Hat Enterprise Linux或Ubuntu 16.04。

SSL配置

SSL终止在Apache中完成。根据Apache文档安装需要标准SSL证书。

负载均衡器

没有。

数据库

MySQL,MariaDB或PostgreSQL。我们目前推荐使用MySQL / MariaDB,因为我们的客户在迁移到Galera集群以扩展数据库时拥有良好的体验。

备用

在Btrfs文件系统上安装Nextcloud,Nextcloud数据目录和数据库。以所需的时间间隔制作常规快照,以实现零停机备份。使用“nodatacow”选项挂载数据库分区以防止碎片。

或者,通过服务中断进行夜间备份:

关闭Apache。创建数据库转储。将数据目录推送到备份。将数据库转储推送到备份。启动Apache。

然后可选择rsync到备份存储或磁带备份。(有关备份和还原的提示,请参阅“ 管理”手册的“ 维护”部分。)

认证

通过一个或多个LDAP或Active Directory服务器进行用户身份验证。(有关配置Nextcloud以使用LDAP和AD的信息,请参阅 使用LDAP进行用户身份验证。)

会话管理

应用程序服务器上的本地会话管理。PHP会话存储在安装在特定于操作系统的会话存储位置的tmpfs中。您可以通过运行找出它的位置,然后将其添加到文件中,例如: 。grep -R 'session.save_path'/etc/php5/etc/fstabecho "tmpfs /var/lib/php5/pool-www tmpfs defaults,noatime,mode=1777 0 0">> /etc/fstab

内存缓存

内存缓存加快了服务器性能,Nextcloud支持四个内存缓存; 有关选择和配置内存缓存的信息,请参阅配置内存缓存。

存储

本地存储。

 

中型企业

用户数量

150至1,000名用户。

存储大小

高达200TB。

高可用性水平

每个组件都是完全冗余的,并且可以在没有服务中断的情 备份没有服务中断

推荐的系统要求

2到4个应用程序服务器。

两个数据库服务器的集群。

存储在NFS服务器上。

通过现有LDAP或Active Directory服务器进行身份验证。

组件

2到4个应用服务器,带有4个插槽和32GB RAM。2个DB服务器,带4个插槽和64GB RAM。1个HAproxy负载平衡器,带2个插槽和16GB RAM。NFS存储服务器根据需要。

操作系统

企业级Linux发行版,得到OS供应商的全力支持。建议使用Red Hat Enterprise Linux或Ubuntu 16.04。

SSL配置

SSL终止在HAProxy负载均衡器中完成。根据HAProxy文档安装需要标准SSL证书。

负载均衡器

HAProxy在应用程序服务器前面的专用服务器上运行。由于应用程序服务器上的本地会话管理,因此需要使用粘性会话。

数据库

具有主从复制的MySQL / MariaDB Galera集群。从站仅用作主站故障时的故障转移。这可以通过负载均衡器扩展,以便将写入分配给主设备并读取到从设备。(参见下面的“数据库负载均衡器”)

备用

每日最低备份,无需停机。应将所有MySQL / MariaDB语句复制到备份MySQL / MariaDB从属实例。

在NFS存储服务器上创建快照。同时停止MySQL复制。创建备份从站的MySQL转储。将NFS快照推送到备份。将MySQL转储推送到备份。删除NFS快照。重启MySQL复制。

认证

通过一个或多个LDAP或Active Directory服务器进行用户身份验证。(有关 配置Nextcloud以使用LDAP和AD的信息,请参阅使用LDAP进行用户身份验证。)

LDAP

应在每个应用程序服务器上部署只读从站,以实现最佳可伸缩性

会话管理

应用程序服务器上的会话管理。PHP会话存储在安装在特定于操作系统的会话存储位置的tmpfs中。您可以通过运行找出它的位置,然后将其添加到文件中,例如: 。grep -R 'session.save_path'/etc/php5/etc/fstabecho "tmpfs /var/lib/php5/pool-www tmpfs defaults,noatime,mode=1777 0 0">> /etc/fstab

内存缓存

内存缓存加快了服务器性能,Nextcloud支持四个内存缓存; 有关选择和配置内存缓存的信息,请参阅配置内存缓存。

存储

使用现成的NFS解决方案,例如IBM Elastic Storage或RedHat Ceph。

 

大型企业和服务提供商

用户数量

5,000到100,000个用户。

存储大小

最高1 PB。

高可用水平

每个组件都是完全冗余的,并且可以在没有服务中断的情 备份没有服务中断

 

推荐的系统要求

4到20个应用程序/ Web服务器。

两个或多个数据库服务器的集群,它们位于负载均衡器后面,用于将所有写入发送到主服务器并读取到从服务器。(参见下面的“数据库负载均衡器”)

存储是NFS服务器,或与S3兼容的对象存储。

云联合,用于在多个数据中心上进行分布式设置。

通过现有LDAP或Active Directory服务器或SAML进行身份验证。

组件

4到20个应用服务器,带4个插槽和64GB RAM。4个DB服务器,带4个插槽和128GB RAM以及DB负载均衡器(请参阅下面的“数据库负载均衡器”)2负载均衡器 - 具有keepalived(心跳)的HAProxy和作为软件解决方案或硬件负载均衡器的共享虚拟IP地址。对于HAProxy,我们建议每个至少2个插槽和16GB RAM。NFS存储服务器根据需要。

操作系统

企业级Linux发行版,得到OS供应商的全力支持。建议使用Red Hat Enterprise Linux或Ubuntu 16.04。

SSL配置

SSL终止在负载均衡器中完成。需要一个标准的SSL证书,根据负载均衡器文档安装。

负载均衡器

具有心跳的冗余负载平衡器,例如HAProxy。这会在应用程序服务器前面运行两个负载平衡器。

数据库

具有主从复制的MySQL / MariaDB Galera集群(主服务器和3个从服务器)。负载均衡器infront将写入分配给主站并读取到从站。(参见下面的“数据库负载均衡器”)

备用

每日最低备份,无需停机。应将所有MySQL / MariaDB语句复制到备份MySQL / MariaDB从属实例。

在NFS存储服务器上创建快照。同时停止MySQL复制。创建备份从站的MySQL转储。将NFS快照推送到备份。将MySQL转储推送到备份。删除NFS快照。重启MySQL复制。

认证

通过一个或多个LDAP或Active Directory服务器或SAML / Shibboleth进行用户身份验证。(请参阅使用LDAP的用户身份验证。)

LDAP

应在每个应用程序服务器上部署只读从站,以实现最佳可伸缩性。

会话管理

Redis应该用于会话管理存储。

高速缓存

Redis用于分布式内存缓存(请参阅配置内存缓存)。

存储

应该使用现成的NFS解决方案。示例是IBM Elastic Storage或RedHAT Ceph。可选地,还可以使用S3兼容对象存储。

 

硬件考虑因素 用于I / O的固态驱动器(SSD)。用于存储和数据库的单独硬盘,用于数据库的SSD。多个网络接口,用于跨多个子网分配服务器同步和后端流量。

 

单机/纵向扩展部署

单机部署在社区中得到广泛使用。

优点:

轻松设置:没有会话存储守护进程,使用tmpfs和内存缓存来增强性能,本地存储。无需考虑网络延迟。要扩展购买更大的CPU,更多的内存,更大的硬盘驱动器或额外的硬盘驱动器。

缺点:

较少的高可用性选项。Nextcloud中的数据量趋于持续增长。最终一台机器不会扩展; 即使使用固态硬盘,I / O性能也会下降并成为多个上传和下载的瓶颈。

 

横向扩展部署

提供商设置:

DNS循环到HAProxy服务器(2-n,SSL卸载,缓存静态资源)对Apache服务器的最小负载(2-n)Memcached / Redis用于共享会话存储(2-n)具有单个主服务器,多个从服务器和代理服务器的数据库集群相应地拆分请求(2-n) - MaxScale是一种可能的代理解决方案,用于对写入主服务器和读取服务器的负载进行负载平衡(请参阅下面的“数据库负载平衡器”)GPFS或Ceph通过phprados(2-n,3为安全,Ceph 10+节点,以查看负载下的速度优势)

优点:

可以根据需要缩放组件。高可用性。测试迁移更容易。

缺点:

设置更复杂。网络成为瓶颈(建议使用10GB以太网)。目前,DB filecache表会迅速增长,如果表被更改,迁移会很痛苦。

 

Nginx / PHP-FPM怎么样?

可以用来代替HAproxy作为负载均衡器。但是在上传时,将整个文件存储在磁盘上,然后再将其传递给PHP-FPM。

 

单主数据库是单点故障,无法扩展

当主人失败时,另一个奴隶可以成为主人

不支持使用Galera集群的多主设置,因为我们需要 READ-COMMITTED作为事务隔离级别。Galera不支持使用主 - 主复制,例如,在将多个文件上载到一个目录期间会导致死锁。

 

数据库负载均衡器

当Galera集群用作数据库集群解决方案时,我们建议使用 MaxScale作为集群前面的负载均衡器,以将写入分发到主节点并读取到从集群。

 

软件考虑因素

 

操作系统

我们依赖于分发,这些分发提供了一种在最新版本中安装各种组件的简便方法。我们建议使用Red Hat Enterprise Linux 7或Ubuntu 16.04,以获得商业支持。Debian和Ubuntu是免费的,包括更新的软件包。CentOS是社区支持的免费Red Hat Enterprise Linux克隆。

 

网络服务器

以Apache和Nginx作为竞争者,使用mod_php的Apache目前是最佳选择,因为Nginx不支持企业部署所需的所有功能。建议使用Mod_php而不是PHP_FPM,因为在横向扩展部署中,单独的PHP池根本不是必需的。

 

关系型数据库

客户通常对使用的数据库有一个看法。通常,建议使用数据库管理员最熟悉的内容。考虑到我们在客户部署中看到的情况,我们建议在主从部署中使用MySQL / MariaDB,在它们前面使用MySQL代理向主服务器发送更新,并选择从服务器。(参见上面的“数据库负载均衡器”)

第二个最好的选择是PostgreSQL(alter table没有锁定表,这使得迁移不那么痛苦)虽然我们还没有找到使用主从设置的客户。

其他DBMS怎么样?

SQLite适用于简单测试和低负载单用户部署。它不适合生产系统。Microsoft SQL Server不是受支持的选项。有关Oracle DB支持,请联系Nextcloud团队以获取有关此内容的更多信息。

 

文件存储

虽然许多客户都是从NFS开始,但迟早需要横向扩展存储。目前,选项是GPFS或GlusterFS,或者是S3或Swift等对象存储协议。S3还允许访问Ceph存储。

 

会话存储 Redis:提供持久性,可用的漂亮图形检查工具,支持Nextcloud高级文件锁定。如果需要Shibboleth,则必须使用Memcached,它也可以用于横向扩展shibd会话存储(请参阅Memcache StorageService)。  参考

数据库高可用性

Apache和PHP的性能增强

如何在Ubuntu 14.04上将Redis服务器设置为PHP的会话处理程序

“ 系统要求

PS:

    文章中奴隶代指主从服务器中的从服务器

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3