我想使用 corosync/pacemaker/drbd 设置一个两节点的高可用性集群。为此,当然,我需要击剑。据我所知,所有 IPMI/iLO/... 解决方案都可以完成这项工作,但前提是机箱有电。在节点 B 断电的情况下,节点 A 没有任何机会对节点 B 使用 STONITH。
什么样的硬件可以解决这个问题?是否有(标准机架)服务器提供 IPMI/iLO/... 使用电池运行的硬件?我应该使用联网的 UPS 吗?
我正计划复制 Web 服务器以实现高可用性目的。该服务器在 Hyper-V 中作为 Ubuntu 15.04 虚拟机运行,并安装了 MariaDB 10.0、Apache 2.4 和 PHP-FPM 5.6。
第二个虚拟机将作为该虚拟机的直接副本启动,但位于美国。第一个虚拟机位于欧洲。(延迟约为 80-120 毫秒)
我想让服务器保持同步,以便它们都可以向我的客户端提供相同的内容,并且客户端将使用最近的服务器(为此我将使用 Route 53)
服务器之间的数据交换是安全的,这很重要,以保护数据库中的联系方式和其他信息,并防止更改 /var/www 目录中的文件。
我已经考虑为此使用以下选项:
SSL(TLS)
我已经考虑使用 SSH 进行数据库和文件复制。但是我不确定文件复制部分使用哪个应用程序。
SSL 可用于数据库复制,但它需要生成需要时不时更换的证书,这可能会花钱。
我的最后一个选择是使用 openvpn,但我不确定是否可以将其设置为附加网络,而不是通过它路由我的所有流量。这个方法好像也需要生成证书文件。。
mysql ubuntu mysql-replication replication high-availability
当通过 ARR POST 一个大文件时,请求在 120 秒后超时。客户端收到错误代码502 Bad Gateway。我已将 Web 场的“代理超时”配置为 600 秒。我还配置了Connection time-out的Default Web Site为600秒。ARR 服务器已重新启动。
以下来自ARR服务器上的日志文件:
2015-05-07 13:25:16 192.168.87.155 POST /Redacted/Import/RedactedImport20150507_152313.csv X-ARR-CACHE-HIT=0&X-ARR-LOG-ID=253daa4a-8372-405a-8efd-21ebbc38353f 80 - 192.168.87.198 - redacted.local 502 3 64 120436
Run Code Online (Sandbox Code Playgroud)
来自 applicationHost.config:
<webFarm name="redacted.local" enabled="true">
<server address="redacted.local" enabled="true" />
<applicationRequestRouting>
<healthCheck url="http://redacted.local/redacted.svc" liveTrafficFailureCodes="400-" />
<protocol timeout="00:10:00" />
</applicationRequestRouting>
</webFarm>
Run Code Online (Sandbox Code Playgroud)
背景:
我正在构建一个 PoC 以使用 ARR 为我们的后端服务实现负载平衡和高可用性,这些服务主要是 WCF(基本 HTTP)和 REST。
其中一个(REST)服务用于每天从批处理作业中接收大(ish)文件几次。REST 服务在文件处理完成之前不会返回(这可能需要 5 分钟),因为客户端应用程序需要知道处理何时完成(后面有更多步骤,取决于第一个步骤)。
据我所知,服务或系统的可用性定义为:
(Time resource was available - Time resource was unavailable) / Total Time
我的问题是:
将系统/服务描述为“高度可用”是行业公认的标准术语吗?
这就引出了我的下一个问题:
如果软件供应商声称销售高可用性解决方案,那么该解决方案是否具有符合描述的合理预期的最低可用性级别?
我正在尝试设置一个全新的 RDS 环境。我正在尝试遵循本指南:https : //msfreaks.wordpress.com/2013/12/09/windows-2012-r2-remote-desktop-services-part-1/并且已经走得很远,但我m 在“为 HA 配置 RD 连接代理”屏幕上失败。这是我得到的错误:
数据库连接字符串中指定的数据库无法从 RD 连接代理服务器获得。确保网络上有SQL Server,RD Connection Broker服务器上安装了SQL Server Native Client,RD Connection Broker对数据库有写权限。
到目前为止,这就是我所做和尝试的(无特定顺序):
这是我正在尝试的数据库连接字符串:
DRIVER=SQL Server Native …Run Code Online (Sandbox Code Playgroud) high-availability remote-desktop-services sql-server rds database-connection
我的公司正在与一位对数据中心之间的最小距离有要求的客户进行谈判。也就是说,它们需要在相距超过 3 公里的数据中心中进行冗余存储。
是否可以通过在一个 AWS 区域(法兰克福,如果可能)中使用两个不同的可用区来确保这一点?
我在互联网上搜索了一段时间,但我发现的都是关于 AWS 区域和可用区架构的通用描述,没有任何关于形成可用区和区域的数据中心之间的地理距离的说明。
常见问题解答仅说明 AZ 是
物理上分开,这样即使是非常罕见的灾难,如火灾、龙卷风或洪水,也只会影响一个可用区
但我找不到比这更具体的东西了。
我正在配置 LAMP 服务器,但希望确保它可以为未来的扩展做好准备。
我的想法是使用虚拟 IP 地址,该地址将分配给配置为主服务器的两个 apache 服务器之一。如果主服务器死了,我希望辅助从服务器声明该虚拟 ip 并充当主服务器,直到原始主服务器重新联机。我不必担心在两个 apache 服务器之间同步数据,因为数据存储在 ISCSI 中。我不必担心“文件访问冲突”,因为一次只有一台服务器会访问服务器。同样的概念也适用于 MySQL 服务器。
问题是.. 你认为这种设置对现在和未来都有好处吗?下一个问题是.. 我应该使用什么来处理主动-被动故障转移。我正在研究 ucarp,它似乎很容易使用。你们有什么感想?
我在每个数据中心都有一对 CentOS Linux 服务器。他们在每个数据中心内都有故障转移,由心跳和DRBD管理(我知道这些是过时的工具,但它们很稳定,所以没有改变它们的愿望)。
它们还具有数据中心间切换的能力,使东部数据中心处于活动状态,而西部数据中心变为被动状态。但这是一个手动工程过程,没关系。
西数据中心目前是主动的,东数据中心是被动的。
serverA.west <-> serverB.west <-----------> serverA.east <-> serverB.east
ACTIVE DATA CENTER PASSIVE DATA CENTER
Run Code Online (Sandbox Code Playgroud)
服务器可以运行 mysqld 和 Java 应用程序。
此服务器上的 Java 应用程序应仅在活动数据中心(即 serverA.west)中的主要主机上运行。如果 Java 应用程序的另一个实例在辅助主机 (serverB.west) 或被动数据中心的任一主机上启动,则存在裂脑问题的风险。
今天 serverA.east 重启,导致心跳切换到 serverB.east。Heartbeat 然后尽职尽责地在 serverB.east 上启动了 Java 应用程序,这是我们不希望发生的。
Heartbeat 还在 serverB.east 上启动了 mysqld,这是正确的,因为 MySQL 复制应该继续进行,不断从西部数据中心复制更改,以便东部 DC 准备好在需要时接管。
/etc/ha.d/haresources 将 mysqld 和 Java 应用程序的 /etc/init.d 脚本命名为要启动的资源。
我们希望允许 heartbeat 管理被动数据中心中的 A/B 对。它应该在故障转移时启动 mysqld,而不是 Java 应用程序。但是如果东数据中心是活动的,那么在心跳自动故障转移期间心跳应该启动 Java 应用程序。
什么是实现这一点的好方法?
我希望的是,当我们将活动数据中心从西向东切换时,只需一步配置即可。理想情况下,它应该是防错的,即应该保证恰好有一个数据中心被配置为活动的。
我正在阅读虚拟化中的 HA 技术,但我看到的所有解决方案都或多或少地像更专业的 VRRP 一样工作 - 当主机停机时,VM 会在另一台虚拟化主机上启动。如果存储是共享的(例如 iSCSI),则可以启动“相同的”VM,因此对于来宾操作系统,它看起来像是电源故障。但是如果有一些重要的数据驻留在 RAM 中(例如内存数据库),那么它仍然会丢失。
虽然可以以一定的时间间隔创建正在运行的 VM 的快照(不幸的是,创建此类快照需要大量时间,因此无法每隔 10 秒完成一次)。然后另一个虚拟化主机可以加载这样的快照并“不间断”(加上减去间隔时间)继续运行虚拟机。
所以我的问题是 - 是否有任何解决方案可以自动“镜像”虚拟机,以便在虚拟化主机故障后虚拟机可以在另一台主机上“恢复”而不会出现明显中断?从字面上看,就像虚拟机的 RAID1。在 RAM 级别完全同步的镜像。
由于我们的备份策略依赖于 RDS Postgresql 手动备份,因此我们遇到了在创建快照期间 RDS 实例(单可用区)可能停机的问题。根据 AWS:
在单可用区数据库实例上创建此数据库快照会导致短暂的 I/O 暂停,可能会持续几秒到几分钟,具体取决于数据库实例的大小和类别。
这并不清楚我们如何确定数据库实例 I/O 在快照期间是否正常运行,就好像数据库在短时间内关闭一样,我们希望停止相应的 Web 服务器或将其从负载均衡器以确保客户端不会发生连接中断。
让我们非常疑惑的是:
数据库在快照期间真的有停机时间吗,AWS 只是说“I/O 暂停”和“延迟”?我在某处读到停机时间仅在快照初始化期间持续很短时间(从几秒钟到几分钟),我们是否可以知道停机时间是否已经过去并且数据库实例已准备好提供服务(同时其快照仍在创建中)?
处理这些 IO 暂停的一般最佳做法是什么?似乎即使使用自动备份也会发生这种情况,这是否意味着在进行数据库快照创建时站点每天可能会停机?
high-availability snapshot amazon-web-services database-backup amazon-rds
failover ×3
amazon-rds ×1
arr ×1
centos ×1
hardware ×1
heartbeat ×1
hyper-v ×1
iis ×1
ilo ×1
ipmi ×1
iscsi ×1
linux ×1
mysql ×1
rds ×1
replication ×1
snapshot ×1
sql-server ×1
ubuntu ×1
ubuntu-16.04 ×1