如何为SIOS群集软件激活许可证
这个简短的视频是由SIOS支持团队设计的一系列应用程序可用性“如何做”教程的第一部分。它逐步介绍了开始使用SIOS Protection Suite或SIOS DataKeeper软件所需的简单步骤。 在SIOS文档库中了解如何访问各种支持资源。
经SIOS许可转载
SIOS SANless clusters High-availability Machine Learning monitoring
这个简短的视频是由SIOS支持团队设计的一系列应用程序可用性“如何做”教程的第一部分。它逐步介绍了开始使用SIOS Protection Suite或SIOS DataKeeper软件所需的简单步骤。 在SIOS文档库中了解如何访问各种支持资源。
经SIOS许可转载
如今,Apache Web服务器是Internet上最受欢迎的Web服务器。 公司正在使用Amazon AWS,Microsoft Azure和Google Cloud Platform等云平台部署基于Apache构建的关键任务,面向客户的应用程序。 因此,您可以打赌他们正在投入大量时间和金钱来监视那些应用程序并试图减少停机时间。但是,如果我们告诉您,当Apache Web服务器停机时,可以通过自动监视和重新启动应用程序来消除手动干预的需要怎么办?
在探讨如何做到这一点之前,让我们先回顾一下,看看公司在监视和管理其Apache Web服务器以及这些关键应用程序方面的选择。
任何使用Apache Web服务器部署应用程序的人都在考虑监视其Web服务器本身的运行状况,或者将该任务外包给第三方。
在监视运行在Amazon Web Services上的云应用程序时,一种流行的选择是使用Amazon CloudWatch。 一些公司甚至通过开发脚本或使用AWS Lambda创建某种程度的自动化来扩展CloudWatch的功能。 但是,使用自定义指标正确配置Amazon CloudWatch并设置AWS Lambda需要一定数量的技术专长,而这可能超出了许多公司。 然后,随着应用程序的发展,维护任何脚本都需要付出成本和精力。
另一个选择是从诸如New Relics,Dynatrace,DataDog或LogicMonitor等供应商那里投资全面的应用程序性能监视(“ APM”)解决方案。如果您要监视的不仅仅是AWS环境,这些方法可能非常合适。APM解决方案非常可配置,可以根据发生的情况为您提供大量数据。
但是,您减少了停机时间吗?可能不是。 您所做的一切都花在了一个系统上,该系统将在Apache Web服务器出现故障时立即提醒您,并在尝试重新运行时使您的数据超载(或“警报风暴”)。
一些公司已决定将监视和管理其应用程序的责任外包给受信任的第三方(通常是“托管服务提供商”或MSP)。作为基本月费的回报,MSP监视应用程序并提供一组核心服务,通常受服务水平协议的约束。收到警报后,他们将进行调查。在某些情况下,这些调查可能需要(昂贵)升级。如果应用程序出现故障,则MSP将控制并重新启动服务或在可能的情况下重新启动实例。 但是这些补救措施通常是额外的费用。
一定有更好的方法。
根据我们的客户经验,只有三个EC2实例的普通公司每月至少要经历一次停机。 “该站点已关闭!放下一切。找出需要做什么!”您需要做的是减少对这些不必要的消防演习的需求。
SIOS AppKeeper是一项SaaS服务,易于安装和配置并监视Amazon EC2上运行的任何服务和应用程序,例如Apache httpd服务。 当检测到异常时,AppKeeper会自动重新启动服务,如果不起作用,它将重新启动整个实例。无需再通读日志以查明失败的原因,或升级到开发人员以重新启动服务。还是昂贵的外包费用。 AppKeeper提供“设置并忘记”功能,以便您消除停机时间。
如今,数百家公司依靠AppKeeper来保持其云环境运行。我们邀请您观看下面的视频,以演示AppKeeper如何保护Apache Web服务器。 如果您喜欢自己所看到的内容,请随时注册AppKeeper的14天免费试用版。
*基于客户数据,AppKeeper解决了85%的应用程序服务故障。因此,十分之九的AppKeeper会发送一封电子邮件,通知客户检测到停机时间并且服务已重新启动或实例自动重新启动。 这比手动重新启动所有文件之前恐慌和挖掘日志文件好吗?
请参阅相关文章:为什么AWS EC2应用程序监控如此困难?
干得好“随机同事”!而做得好,我并不是说好工作。 所谓“随机同事”,是指选中不应该选中的框的人,或者未选中应该选中的框的人,跳过消息和警告的男人或女人,以及“请确认”安全措施并破坏了您的SIOS Protection Suite for Linux配置。
我们都去过那里。 真是意外 但是它发生了,它发生了。 突然之间,您正在争先恐后在老板发现之前找出恢复配置,数据和“任何内容”的方法。
作为SIOS Technology Corp.客户体验副总裁,我们的团队正在与合作伙伴和客户积极合作,以架构和实施企业可用性,以保护其系统免于停机。 发生事故,最近的客户经验提醒我,即使通过多次检查和警告,即使是适用于Linux的SIOS Protection Suite产品也不能幸免于意外的配置更改,但是有一个简单的技巧可以使您从“Random Coworker's意外失误。
SIOS Protection Suite for Linux(SPS-L)的本机是一个名为lkbackup的工具,位于/ opt / LifeKeeper / bin / lkbackup下。 顾名思义,该工具将创建SPS-L配置详细信息的备份。 注意:此工具不会备份所有应用程序数据,但会为SPS-L配置创建所有数据的备份,例如:资源定义,在/ etc / default / LifeKeeper文件中配置的可调参数,客户创建的通用应用程序脚本,与集群状态关联的标志,通信路径/集群定义等。
[root@baymax ~ ] #/ opt / LifeKeeper / bin / lkbackup -c -f /root/mylkbackup-5.15.2020-v9.4.1 –cluster –ssh
示例:lkbackup创建语法
这将在/ root文件夹下创建一个名为mylkbackup-5.15.2020-v9.4.1的备份文件。 –cluster告诉lkbackup在每个群集节点上创建相同的文件。 –ssh使用ssh协议连接到每个群集节点。 其他lkbackup详细信息在这里:
我们的客户体验服务团队建议在进行SPS-L配置更改(例如升级,资源删除或添加或配置更改)之前进行备份。
因此,当您需要还原SPS-L配置时,更改就像再次运行lkbackup一样简单。
[root@baymax ~ ] #/ opt / LifeKeeper / bin / lkbackup -x -f /root/mylkbackup-5.15.2020-v9.4.1 –cluster –ssh
示例:lkbackup恢复语法
但是,如果您忘记运行lkbackup来创建此文件,而“ Random Coworker”却浪费了数小时的SPS-L设置和配置,该怎么办?如果设置SPS-L的“ Guy”或“ Gal”正在休假,陪产假或产假,该怎么办?如果您是“随机同事”,而来自基础团队的史蒂夫正驶向走廊,看看情况如何?对于大多数安装,SIOS在安装过程中启用自动备份功能。 此自动备份功能将在当地时间凌晨3点为您在/ opt / LifeKeeper / config / auto-backup下自动捕获lkbackup文件。#。tgz
[root@baymax ~]#ls -ltr / opt / LifeKeeper / config /自动备份。*
例。配置/自动备份清单的输出
如果您的系统已正确安装和配置,则自动备份每天晚上都在运行,可以在“ Random Coworker”罢工时为您提供保护。在错误之前找到SPS-L自动备份。#。tgz,然后使用SPS-L lkbackup工具将SIOS Protection Suite for Linux Configuration检索并恢复到先前配置的状态。
[root@baymax ~ ] #lkstop; / opt / LifeKeeper / bin / lkbackup -c -f /opt/LifeKeeper/config/auto-backup.0.tgz
示例:lkbackup恢复自动备份的语法
根据需要在集群中的其他节点上重复此操作。
注意。 如果您的系统似乎没有配置为生成自动备份文件并保护您免受自己的“随机同事”的侵扰,则SIOS提供安装和配置服务以及由SIOS专业服务工程师执行的配置运行状况检查。
—客户体验副总裁Cassius Rhue
经SIOS许可转载
在本逐步指南中,我将带您完成在Amazon Elastic Compute Cloud(Amazon EC2)中配置高可用性,两节点MySQL群集(加上见证服务器)所需的所有步骤。该指南包括屏幕截图,shell命令和相应的代码段。我假设您对Amazon EC2有点熟悉,并且已经拥有一个帐户。如果没有,您可以今天注册。我还将假设您对Linux系统管理和虚拟IP等故障转移群集概念有基本的了解。
故障转移群集已经存在了很多年。在典型配置中,两个或多个节点配置有共享存储,以确保在主节点上进行故障转移时,辅助或目标节点将访问最新数据。使用共享存储不仅可以实现接近零的恢复点目标,而且是大多数群集软件的强制性要求。但是,共享存储提出了一些挑战。首先,这是单点故障风险。如果共享存储(通常是SAN)发生故障,则群集中的所有节点都将发生故障。其次,SAN的价格昂贵,购买,设置和管理也很复杂。第三,对于想要保持高可用性(正常运行时间99.99%),接近零的恢复时间和恢复点目标以及灾难恢复保护的公司而言,包括Amazon EC2在内的公共云中的共享存储是不可能的,或者不可行。
以下内容演示了在云中创建SANless集群以消除这些挑战同时满足严格的HA / DR SLA的难易程度。下面的步骤将MySQL数据库与Amazon EC2结合使用,但可以对相同的步骤进行调整,以在AWS中创建2节点群集,以保护SQL,SAP,Oracle或任何其他应用程序。
注意:您对功能,屏幕和按钮的看法可能与下面显示的屏幕截图略有不同
1。创建虚拟私有云(VPC)
2。创建一个互联网网关
3。创建子网(可用区)
4。配置路由表
5,配置安全组
6。启动实例
7 创建弹性IP
8。为虚拟IP创建路由条目
9。禁用ENI的源/目标检查
10。获取访问密钥ID和秘密访问密钥
11。Linux OS配置
12 安装EC2 API工具
13 安装和配置MySQL
14。安装和配置集群
15 测试集群连接
本文将介绍如何在单个Amazon EC2区域内创建集群。群集节点(node1,node2和见证服务器)将驻留在不同的“可用区''中,以实现最大可用性。这也意味着节点将位于不同的子网中。
将使用以下IP地址:
首先,创建一个虚拟私有云(aka VPC)。VPC是专用于您的Amazon云中的隔离网络。您可以完全控制IP地址块和子网,路由表,安全组(即防火墙)等内容。您将在虚拟网络中启动Azure Iaas虚拟机(VM)。
在AWS主控制台中,选择“ VPC”
确保在“您的VPC”下,在屏幕右上方选择了正确的区域。在本指南中,将使用“美国西部(俄勒冈州)”区域,因为该区域具有3个可用区。有关区域和可用区的更多信息,请单击此处。
给VPC命名,并指定要使用的IP块。10.0.0.0/16将在本指南中使用:
现在,您应该在“您的VPC”屏幕上看到新创建的VPC:
接下来,创建一个Internet网关。如果您希望实例(VM)能够与Internet通信,则这是必需的。
在左侧菜单上,选择“ Internet网关”,然后单击“创建Internet网关”按钮。给它起一个名字,并创建:
接下来,将Internet网关连接到您的VPC:
选择您的VPC,然后单击附加:
接下来,创建3个子网。每个子网将位于其自己的可用区中。这3个实例(VM:node1,node2,见证)将启动到单独的子网(以及可用区)中,以便可用区的故障不会占用群集的多个节点。
美国西部(俄勒冈)地区(又称为us-west-2)具有3个可用区(us-west-2a,us-west-2b,us-west-2c)。创建3个子网,在3个可用性区域中的每个区域中。
在“ VPC仪表板”下,导航到“子网”,然后创建“子网”:
为第一个子网命名(“ Subnet1”),选择可用性区域us-west-2a,然后定义网络块(10.0.0.0/24):
重复创建第二个子网可用区us-west-2b:
重复在可用区域us-west-2c中创建第三个子网:
完成后,请验证是否已创建3个子网,每个子网具有不同的CIDR块,并位于单独的可用区中,如下所示:
更新VPC的路由表,以便将外界流量发送到上一步中创建的Internet网关。从VPC仪表板中,选择“路由表”。转到“路由”选项卡,默认情况下仅存在一条路由,该路由仅允许VPC内的流量通过。
点击修改:
添加另一条路线:
新路由的目的地将为“ 0.0.0.0/0”(Internet),对于Target,请选择Internet网关。然后点击保存:
接下来,将3个子网与路由表相关联。单击“子网关联”选项卡,然后编辑:
选中所有3个子网旁边的框,然后保存:
验证3个子网是否与主路由表关联:
稍后,我们将再次更新路由表,定义一条路由,该路由将允许流量与群集的虚拟IP通信,但这需要在创建Linux实例(VM)之后完成。
编辑``安全组''(虚拟防火墙)以允许传入的SSH和VNC通信。两者都将在以后用于配置linux实例以及集群软件的安装/配置。
在左侧菜单上,选择“安全组”,然后单击“入站规则”选项卡。点击修改:
为SSH(端口22)和VNC添加规则。VNC通常使用5900中的端口,具体取决于您的配置方式,因此,为了本指南的目的,我们将打开5900-5910的端口范围。根据您的VNC设置进行相应配置:
我们将在本指南中预配置3个实例(虚拟机)。前两个VM(称为“ node1”和“ node2”)将充当群集节点,并具有使MySQL数据库及其相关资源联机的功能。第三台虚拟机将充当群集的见证服务器,以增强对裂脑的保护。
为了确保最大可用性,所有3个VM都将部署在单个区域内的不同可用区中。这意味着每个实例将驻留在不同的子网中。
转到主要的AWS仪表板,然后选择EC2:
创建“ node1”
创建您的第一个实例(“ node1”)。单击启动实例:
选择您的Linux发行版。稍后使用的集群软件支持RHEL,SLES,CentOS和Oracle Linux。在本指南中,我们将使用RHEL 7.X:
相应地调整实例的大小。为了达到本指南的目的并最大程度地降低成本,我们使用了t2.micro尺寸,因为它是免费套餐。有关实例大小和定价的更多信息,请参见此处。
接下来,配置实例详细信息。重要说明:确保将第一个实例(VM)启动到“ Subnet1”,并定义对子网有效的IP地址(10.0.0.0/24)–选择低于10.0.0.4,因为它是子网中的第一个空闲IP。
注意:AWS中任何给定子网中的.1 / .2 / .3均已保留且无法使用。
接下来,向群集节点添加一个额外的磁盘(这将在“ node1”和“ node2”上都完成)。该磁盘将存储我们的MySQL数据库,以后将在节点之间复制。
注意:您不需要向“见证”节点添加额外的磁盘。仅“ node1”和“ node2”。添加新卷,然后输入所需的大小:
为实例Node1定义一个标签:
将实例与现有的安全组相关联,因此先前创建的防火墙规则将处于活动状态:
点击启动:
重要信息:如果这是您AWS环境中的第一个实例,则需要创建一个新的密钥对。私钥文件将需要存储在一个安全的位置,因为在您SSH进入linux实例时将需要它。
创建“ node2”
重复上述步骤以创建第二个Linux实例(node2)。完全像Node1一样配置它。但是,请确保将其部署到“Subnet2''(us-west-2b可用区)中。子网2的IP范围是10.0.1.0/24,因此此处使用的IP是10.0.1.4:
确保也将第二个磁盘添加到Node2。它的大小应与您添加到Node1的磁盘的大小完全相同:
给第二个实例一个标签…。“ Node2”:
创造“见证”
重复上述步骤以创建第三个Linux实例(见证)。完全像Node1和Node2一样进行配置,除了不需要添加第二个磁盘外,因为该实例仅充当集群的见证者,并且永远不会使MySQL联机。
确保将其部署到“ Subnet3”(us-west-2c可用区)中。子网2的IP范围是10.0.2.0/24,因此此处使用的IP是10.0.2.4:
注意:默认磁盘配置适用于见证节点。不需要第二张磁盘:
标记见证节点:
您的3个实例可能要花一些时间。完成后,您将在EC2控制台中看到正在运行的列表:
接下来,创建一个“弹性IP'',这是一个公共IP地址,将用于从外界连接到您的实例。在左侧菜单中选择弹性IP,然后单击“分配新地址”:
选择新创建的弹性IP,单击鼠标右键,然后选择“关联地址”:
将此弹性IP与Node1关联:
如果您希望其他两个实例具有Internet访问权限或能够直接通过SSH / VNC进入它们,请对其他两个实例重复此操作。
至此,所有3个实例均已创建,并且路由表将需要再更新一次以使群集的虚拟IP正常工作。在这种多子网群集配置中,虚拟IP必须位于分配给您的VPC的CIDR范围之外。
定义一条新路由,该路由会将流量定向到群集的虚拟IP(10.1.0.10)定向到主群集节点(Node1)
从VPC仪表板中,选择“路由表”,然后单击“编辑”。为目的地为Node1的“ 10.1.0.10/32”添加路由:
接下来,禁用群集节点的弹性网络接口(ENI)的源/目标检查。为了使实例能够接受网络数据包以获取群集的虚拟IP地址,这是必需的。
对所有ENI执行此操作。
选择“网络接口”,右键单击ENI,然后选择“更改源/目标检查”。
选择“已禁用”:
在指南的后面,集群软件将使用AWS命令行界面(CLI)来操纵集群虚拟IP的路由表条目,以将流量重定向到活动集群节点。为了使其正常工作,您将需要获取访问密钥ID和秘密访问密钥,以便AWS CLI可以正确进行身份验证。
在EC2仪表板的右上角,单击您的名称,然后从下拉菜单中选择“安全凭据”:
展开表格的“访问密钥(访问密钥ID和秘密访问密钥)”部分,然后单击“创建新的访问密钥”。下载密钥文件并将文件存储在安全的位置。
要连接到新创建的Linux实例(通过SSH),请右键单击该实例,然后选择“连接”。这将显示有关连接到实例的说明。您将需要在上一步中创建/下载的私钥文件:
例:
在这里,我们将离开EC2仪表板一段时间,然后在命令行上动手操作,作为Linux管理员,您现在应该已经习惯了。
没有为您在AWS中的Linux VM(或默认的“ ec2-user”帐户)提供root密码,因此一旦连接,请使用“ sudo”命令获取root特权:
$ sudo su –
除非已经设置了DNS服务器,否则,您将要在所有3台服务器上创建主机文件条目,以便它们可以通过名称正确地相互解析编辑/ etc / hosts
将以下行添加到/ etc / hosts文件的末尾:
10.0.0.4节点1
10.0.1.4节点2
10.0.2.4见证人
10.1.0.10 mysql-vip
编辑/ etc / sysconfig / linux并设置“ SELINUX = disabled”:
#vi / etc / sysconfig / selinux
#此文件控制系统上SELinux的状态。#SELINUX =可以采用以下三个值之一:
#强制-强制执行SELinux安全策略。
#允许-SELinux打印警告而不是强制执行。
#已禁用–未加载SELinux策略。
SELINUX =禁用
#SELINUXTYPE =可以采用以下两个值之一:
#目标-保护目标进程,#mls-多级安全保护。
SELINUXTYPE =目标
默认情况下,这些Linux实例的主机名基于服务器的IP地址,例如“ ip-10-0-0-4.us-west-2.compute.internal”
您可能会注意到,如果尝试以“常规”方式修改主机名(即编辑/ etc / sysconfig / network等),则在每次重新启动后,它将恢复为原始主机名!我在AWS讨论论坛上找到了一个不错的话题,该话题描述了如何使主机名在重启后实际保持静态。
此处的详细信息:https://forums.aws.amazon.com/message.jspa?messageID=560446
注释掉在“ /etc/cloud/cloud.cfg”文件中设置主机名的模块。可以使用#将以下模块注释掉。
#– set_hostname
#– update_hostname
接下来,还要在/ etc / hostname中更改您的主机名。
重新启动所有3个实例,以禁用SELinux,并且更改主机名生效。
为了访问Linux服务器的GUI,并在以后安装和配置我们的集群,请安装VNC服务器以及其他一些必需的软件包(集群软件需要redhat-lsb和patch rpm)。
#yum groupinstall“ X窗口系统”
#yum groupinstall“带有GUI的服务器”
#yum install tigervnc-server xterm wget解压缩补丁redhat-lsb
#vncpasswd
以下URL是使VNC服务器在RHEL 7 / CentOS 7上运行的好指南:对于RHEL 7.x / CentOS7.x:
注意:此示例配置在显示器2(:2,又名端口5902)上并以root用户身份(不安全)运行VNC。相应调整!
#cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.serv
#vi /etc/systemd/system/vncserver@:2.service
[Service]
类型=分叉
#清理/tmp/.X11-unix环境中的所有现有文件ExecStartPre = / bin / sh -c‘/ usr / bin / vncserver -kill%i> / dev / null 2>&1 || :’
ExecStart = / sbin / runuser –l root -c“ / usr / bin / vncserver%i-geometry 1024×768” PIDFile = / root / .vnc /%H%i.pid
ExecStop = / bin / sh -c‘/ usr / bin / vncserver -kill%i> / dev / null 2>&1 || :’
#systemctl守护程序重新加载
#systemctl启用vncserver @:2.service
#vncserver:2-几何1024×768
对于RHEL / CentOS 6.x系统:
#vi / etc / sysconfig / vncservers
VNCSERVERS =” 2:root” VNCSERVERARG[2]S =”-geometry 1024×768”
#服务vncserver启动
#chkconfig vncserver在
打开一个VNC客户端,然后连接到<ElasticIP:2>。如果您无法获得它,则可能是您的Linux防火墙在挡路。打开我们在此处使用的VNC端口(端口5902),或者暂时禁用防火墙(不推荐用于生产环境):
#systemctl停止firewalld
#systemctl禁用firewalld
当启动Linux实例时,在每个群集节点上添加了额外的磁盘来存储我们将保护的应用程序数据。在这种情况下,它恰好是MySQL数据库。
第二个磁盘应显示为/ dev / xvdb。您可以运行“ fdisk -l”命令进行验证。您会看到
/ dev / xvda(OS)已被使用。
#fdisk -l
#开始结束大小类型名称磁盘/ dev / xvda:10.7 GB,10737418240字节,20971520扇区单位= 1 * 512的扇区= 512字节
扇区大小(逻辑/物理):512字节/ 512字节I / O大小(最小/最佳):512字节/ 512字节磁盘标签类型:gpt
1 2048 4095 1M BIOS引导parti
2 4096 20971486 10G Microsoft基本
磁盘/ dev / xvdb:2147 MB,2147483648字节,4194304扇区单位= 1 * 512的扇区= 512字节
扇区大小(逻辑/物理):512字节/ 512字节I / O大小(最小/最佳):512字节/ 512字节
在这里,我将创建一个分区(/ dev / xvdb1),对其进行格式化,并将其安装在MySQL的默认位置,即
/ var / lib / mysql。对“ node1”和“ node2”都执行以下步骤:
#fdisk / dev / xvdb
欢迎使用fdisk(util-linux 2.23.2)。
更改将仅保留在内存中,直到您决定将其写入。使用write命令之前,请小心。
设备不包含可识别的分区表
使用磁盘标识符0x8c16903a构建一个新的DOS disklabel。
命令(m寻求帮助):
分区类型:
p主要(0个主要,0个扩展,4个免费)e扩展
选择(默认p):p
分区号(1-4,默认1):1
第一个扇区(2048-4194303,默认2048):<enter>
使用默认值2048
最后一个扇区,+ sectors或+ size {K,M,G}(2048-4194303,默认4194303):<enter>
使用默认值4194303
设置了类型为Linux且大小为2 GiB的分区1
命令(m寻求帮助):w
分区表已更改!
调用ioctl()以重新读取分区表。同步磁盘。
#mkfs.ext4 / dev / xvdb1
#mkdir / var / lib / mysql
在node1上,挂载文件系统:
#挂载/ dev / xvdb1 / var / lib / mysql
必须在每个群集节点上安装EC2 API工具(EC2 CLI),以便群集软件以后可以操纵路由表,从而实现与虚拟IP的连接。
以下网址是设置此网址的绝佳指南:
http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/set-up-ec2-cli-linux.html
以下是关键步骤:
下载,解压缩CLI工具并将其移动到标准位置(/ opt / aws):
#wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
#解压缩ec2-api-tools.zip
#MV ec2-api-tools-1.7.5.1 / / opt / aws /
#export EC2_HOME =” / opt / aws”
如果尚未安装Java(运行“检查哪个Java”),请安装它:
#yum安装java-1.8.0-openjdk
#export JAVA_HOME =” / usr / lib / jvm / java-1.8.0-openjdk-1.8.0.71-
示例(基于RHEL 7.2系统的默认配置。相应调整)
您将需要您的AWS Access Key和AWS Secret Key。请将这些值放在手边,因为稍后在群集设置期间也将需要它们!有关更多信息,请参考以下URL:
https://console.aws.amazon.com/iam/home?#security_credential
#export AWS_ACCESS_KEY =您的aws-access-key-id
#export AWS_SECRET_KEY =您的aws-秘密密钥
测试CLI实用程序功能:
#/ opt / aws / bin / ec2-describe-regions
地区eu-west-1 ec2.eu-west-1.amazonaws.com
地区ap-southeast-1 ec2.ap-southeast-1.amazonaws.com
地区ap-southeast-2 ec2.ap-southeast-2.amazonaws.com
地区eu-central-1 ec2.eu-central-1.amazonaws.com
地区ap-northeast-2 ec2.ap-northeast-2.amazonaws.com
地区ap-northeast-1 ec2.ap-northeast-1.amazonaws.com
地区us-east-1 ec2.us-east-1.amazonaws.com
地区sa-east-1 ec2.sa-east-1.amazonaws.com
地区us-west-1 ec2.us-west-1.amazonaws.com
地区us-west-2 ec2.us-west-2.amazonaws.com
接下来,安装MySQL软件包,初始化示例数据库,并为MySQL设置“ root”密码。在RHEL7.X中,MySQL软件包已替换为MariaDB软件包。
#yum安装mariadb mariadb-server
#挂载/ dev / xvdb1 / var / lib / mysql
#/ usr / bin / mysql_install_db –datadir =” / var / lib / mysql /” –user = mysql
#mysqld_safe –user = root –socket = / var / lib / mysql / mysql.sock –port = 3306 –datadi
#
##注意:下一条命令允许来自任何主机的远程连接。 #echo“更新用户集Host ='%',其中Host ='node1';同花顺特权| mysql mys#
##将MySQL的根密码设置为“ SIOS”
#回显“更新用户设置密码=密码(SIOS),其中用户=” root”;齐平
创建一个MySQL配置文件。我们将其放置在数据磁盘上(以后将复制它–
/var/lib/mysql/my.cnf)。例:
#vi /var/lib/mysql/my.cnf
[mysqld] datadir = / var / lib / mysql
套接字= / var / lib / mysql / mysql.sock
pid文件= / var / run / mariadb / mariadb.pid用户= root
端口= 3306
#建议禁用符号链接以防止各种安全风险symbolic-link = 0
[mysqld_safe]
日志错误= / var / log / mariadb / mariadb.log pid文件= / var / run / mariadb / mariadb.pid
[client] 用户=根密码= SIOS
将原始的MySQL配置文件放在一旁(如果存在):
#mv /etc/my.cnf /etc/my.cnf.orig
在“ node2”上,您只需要安装MariaDB / MySQL软件包。不需要其他步骤:在“ node2”上:
[root@node2 ~]#yum安装mariadb mariadb-server
至此,我们准备安装和配置集群。本指南中将使用用于Linux的SIOS保护套件(又名SPS-Linux)作为群集技术。它在单个集成解决方案中既提供了高可用性故障转移群集功能(LifeKeeper),又提供了实时的块级数据复制(DataKeeper)。使用SPS-Linux,您可以部署“ SANLess”集群(也称为“无共享”集群),这意味着集群节点没有任何共享存储,就像EC2实例一样。
在所有3个VM(node1,node2,见证)上执行以下步骤:
下载SPS-Linux安装映像文件(sps.img),并获得试用许可证或购买永久许可证。有关更多信息,请联系SIOS。
您将环回安装它并以root身份在其中运行“ setup”脚本(或第一个“ sudo su-”以获得根shell),例如:
#mkdir / tmp /安装
#mount -o loop sps.img / tmp / install
#cd / tmp /安装
# 。/建立
在安装脚本期间,系统会提示您回答许多问题。您几乎在每个屏幕上都将按Enter键以接受默认值。请注意以下例外:
LifeKeeper的Quorum / Witness服务器支持程序包(steeleye-lkQWK)与LifeKeeper核心的现有故障转移过程相结合,使系统故障转移能够在整个网络可能普遍发生的情况下更加自信地发生。这有效地意味着可以进行故障转移,同时大大降低“裂脑”情况的风险。
在所有3个节点(node1,node2,见证)上安装见证/仲裁rpm:
#cd / tmp / install / quorum
#rpm -Uvh steeleye-lkQWK-9.0.2-6513.noarch.rpm
在所有3个节点(node1,node2,见证)上,编辑/ etc / default / LifeKeeper,设置NOBCASTPING = 1
在仅见证服务器(“见证'')上,编辑/ etc / default / LifeKeeper,设置WITNESS_MODE = off / none
SPS-Linux提供了特定的功能,这些功能允许资源在不同可用性区域和区域中的节点之间进行故障转移。在这里,EC2恢复工具包(即群集代理)用于操作路由表,以便将与虚拟IP的连接路由到活动群集节点。
安装EC2 rpm(node1,node2):
#cd / tmp / install / amazon
#rpm -Uvh steeleye-lkECC-9.0.2-6513.noarch.rpm
在所有3个节点上,使用“ lkkeyins”命令安装从SIOS获得的许可证文件:
#/ opt / LifeKeeper / bin / lkkeyins <路径文件> / <文件名> .lic
启动LifeKeeper
在所有三个节点上,使用“ lkstart”命令启动集群软件:
#/ opt / LifeKeeper / bin / lkstart
设置LifeKeeper GUI的用户权限
在所有3个节点上,创建一个新的Linux用户帐户(在此示例中为“ tony”)。编辑/ etc / group并将“ tony”用户添加到“ lkadmin”组,以授予对LifeKeeper GUI的访问权限。默认情况下,只有“ root”是该组的成员,并且这里没有root密码:
#用户添加托尼
#passwd托尼
#vi / etc / group
lkadmin:x:1001:root,tony
与节点1的弹性IP(公共IP)地址建立VNC连接。根据上面的VNC配置,您将使用先前指定的VNC密码连接到<Public_IP>:2。登录后,打开终端窗口并使用以下命令运行LifeKeeper GUI:
#/ opt / LifeKeeper / bin / lkGUIapp和
系统将提示您连接到第一个群集节点(“ node1”)。输入在虚拟机创建过程中指定的linux用户名和密码:
接下来,通过单击以下屏幕快照中突出显示的“连接到服务器”按钮,连接到“ node2”和“见证”:
现在,您应该在GUI中看到所有3台服务器,并带有绿色的选中标记图标,指示它们处于联机状态且运行状况良好:
右键单击“ node1”,然后选择“创建通信路径”
选择“ node2”和“ witness”,然后按照向导进行操作。这将在以下之间创建通讯路径:
节点1和节点2节点1和见证
仍然需要在node2和见证服务器之间创建一个通讯路径。右键单击“ node2”,然后选择“创建通信路径”。按照向导并选择“见证”作为远程服务器:
此时,已创建以下通信路径:
node1 <—> node2 node1 <—>见证者node2 <—>见证者
服务器前面的图标已从绿色的“复选标记”更改为黄色的“危险标志”。这是因为节点之间只有一条通信路径。
如果这些虚拟机具有多个NIC(可以在此处找到有关创建具有多个NIC的Azure VM的信息,但本文将不介绍),则您将在每台服务器之间创建冗余的通信路径。
要删除警告图标,请转到“查看”菜单,然后取消选择“通信路径冗余警告”:
结果:
使用“ lcdstatus”命令查看群集资源的状态。运行以下命令,以验证您已在每个节点上正确创建了到涉及的其他两台服务器的通信路径:
#/ opt / LifeKeeper / bin / lcdstatus -q -d node1
机器网络地址/设备状态PRIO node2 TCP 10.0.0.4/10.0.1.4
实时1见证TCP 10.0.0.4/10.0.2.4实时1
#/ opt / LifeKeeper / bin / lcdstatus -q -d node2
机器网络地址/设备状态PRIO node1 TCP 10.0.1.4/10.0.0.4
实时1见证TCP 10.0.1.4/10.0.2.4实时1
#/ opt / LifeKeeper / bin / lcdstatus -q -d见证
机器网络地址/设备状态PRIO node1 TCP 10.0.2.4/10.0.0.4
ALIVE 1节点2 TCP 10.0.2.4/10.0.1.4 ALIVE 1
接下来,创建一个数据复制资源,将/ var / lib / mysql分区从node1(源)复制到node2(目标)。点击“绿色加号”图标以创建新资源:
按照向导进行以下选择:
请选择恢复工具包:数据复制回切类型:智能
服务器:node1
层次结构类型:复制退出文件系统
现有的挂载点:/ var / lib / mysql
数据复制资源标签:datarep-mysql
文件系统资源选项卡:/ var / lib / mysql
位图文件:(默认值)
启用异步复制:否
创建资源后,将出现“扩展”(即定义备份服务器)向导。
使用以下选择:
目标服务器:node2切回类型:智能模板优先级:1
目标优先级:10目标磁盘:/ dev / xvdb1
数据复制资源标签:datarep-mysql位图文件:(默认值)
复制路径:10.0.0.4/10.0.1.4挂载点:/ var / lib / mysql
根标签:/ var / lib / mysql
群集将如下所示:
接下来,创建一个虚拟IP群集资源。点击“绿色加号”图标以创建新资源:
按照向导创建具有以下选择的IP资源:
选择恢复工具包:IP回切类型:智能IP资源:10.1.0.10
网路遮罩:255.255.255.0
网络接口:eth0
IP资源标签:ip-10.1.0.10
通过以下选择扩展IP资源:
回切类型:智能模板优先级:1
目标优先级:10
IP资源:10.1.0.10
网路遮罩:255.255.255.0
网络接口:eth0
IP资源标签:ip-10.1.0.10
现在,群集将如下所示,同时创建了镜像和IP资源:
默认情况下,SPS-Linux通过执行广播ping来监视IP资源的运行状况。在许多虚拟和云环境中,广播ping不起作用。在上一步中,我们将“ NOBCASTPING = 1”设置为
/ etc / default / LifeKeeper关闭广播ping检查。相反,我们将定义一个ping列表。
这是此IP资源的IP运行状况检查期间要ping通的IP地址的列表。
在本指南中,我们将见证服务器(10.0.2.4)添加到我们的ping列表中。
右键单击IP资源(ip-10.1.0.10),然后选择“属性”:
您将看到,最初,没有为我们的10.1.0.0子网配置ping列表。点击“修改Ping列表”:
输入“ 10.0.2.4”(见证服务器的IP地址),单击“添加地址”,最后单击“保存列表”:
您将返回到IP属性面板,并可以确认10.0.2.4已添加到ping列表中。单击“确定”关闭窗口:
接下来,创建一个MySQL群集资源。MySQL资源负责停止/启动/监视MySQL数据库。
在创建MySQL资源之前,请确保数据库正在运行。运行“ ps -ef | grep sql”进行检查。
如果运行正常,那就太好了-无所事事。如果没有,请启动数据库备份:
#mysqld_safe –user = root –socket = / var / lib / mysql / mysql.sock –port = 3306 –datadi
按照向导的说明创建具有以下选择的IP资源:要创建,请单击“绿色加号”图标以创建新资源:
选择恢复工具包:MySQL数据库回切类型:智能服务器:node1
my.cnf的位置:/ var / lib / mysql
MySQL可执行文件的位置:/ usr / bin
数据库标签:mysql
使用以下选择扩展IP资源:
目标服务器:node2切换类型:智能模板优先级:1
目标优先级:10
结果,您的集群将如下所示。请注意,数据复制资源会自动移动到数据库下方(自动创建依赖关系),以确保始终使该资源在数据库之前联机:
SPS-Linux提供了特定的功能,这些功能允许资源在不同可用性区域和区域中的节点之间进行故障转移。在这里,EC2恢复工具包(即群集代理)用于操作路由表,以便将与虚拟IP的连接路由到活动群集节点。
要创建,请单击“绿色加号”图标以创建新资源:
按照向导创建具有以下选择的EC2资源:
选择恢复工具包:Amazon EC2 Switchback类型:智能服务器:node1
EC2主页:/ opt / aws
EC2网址:ec2.us-west-2.amazonaws.com
AWS访问密钥:(输入先前获得的访问密钥)AWS秘密密钥:(输入先前获得的密钥)EC2资源类型:RouteTable(后端集群)
IP资源:ip-10.1.0.10
EC2资源标签:ec2-10.1.0.10
使用以下选择扩展IP资源:
目标服务器:node2切换类型:智能模板优先级:1
目标优先级:10
EC2资源标签:ec2-10.1.0.10
群集将如下所示。请注意,EC2资源如何位于IP资源之下:
在IP资源和MySQL数据库资源之间创建依赖关系,以使它们作为一个组一起进行故障转移。右键单击“ mysql”资源,然后选择“创建依赖关系”:
在以下屏幕上,选择“ ip-10.1.0.10”资源作为依赖项。单击下一步,然后继续执行向导:
至此,SPS-Linux群集配置完成。资源层次结构如下所示:
至此,我们所有的Amazon EC2和群集配置均已完成!群集资源当前在节点1上处于活动状态:
测试从见证服务器(或另一个Linux实例,如果有的话)到群集的连通性SSH到见证服务器“ sudo su-”以获得根访问权限。如果需要,请安装mysql客户端:
[root@witness ~]#yum -y安装mysql
测试MySQL与集群的连接性:
[root@witness ~]#mysql –host = 10.1.0.10 mysql -u root -p
执行以下MySQL查询以显示活动集群节点的主机名:
Mari[mysql]aDB>选择@@主机名;
++
| @@主机名|
++
| node1 |
++
设置1行(0.00秒)MariaDB[mysql]>
使用LifeKeeper GUI,从节点1->节点2”进行故障转移。右键单击node2下的mysql资源,然后选择“ In Service…”:
故障转移完成后,重新运行MySQL查询。您会注意到,MySQL客户端已检测到会话丢失(在故障转移期间),并自动重新连接:
执行以下MySQL查询以显示活动集群节点的主机名,并确认“ node2”现在处于活动状态:
Mari[mysql]aDB>选择@@主机名;
错误2006(HY000):MySQL服务器已消失无连接。正在尝试重新连接…
连接ID:12
当前数据库:mysql
++
| @@主机名|
++
| node2 |
++
设置1行(0.53秒)MariaDB[mysql]>
经SIOS许可转载
jmlalonde.com的约瑟夫·拉隆德(Joseph Lalonde)的博客着重介绍了汉考克,《最伟大的艺人》和《冰雪奇缘II》等热门电影的领导力课程。 为了纪念约瑟夫的鼓舞人心的领导力课程,这是迪士尼从《冰雪奇缘》 II进行云迁移的四个高可用性课程。
在迪士尼的动画冒险电影《冰雪奇缘II》中,角色安娜,艾尔莎,克里斯托夫,奥拉夫和斯文离开了阿伦德尔,前往古老而秋天的魔法森林。在冒险中,他们着手寻找艾尔莎(Elsa)力量的起源,以拯救自己的王国。 除了为六个女儿的父亲带来乐趣之外,这部电影还充满了领导才能,生活和高可用性课程。
当艾尔莎(Elsa),安娜(Anna),克里斯托夫(Kristoff),奥拉夫(Olaf)和斯文(Sven)到达神秘声音呼唤他们的地方时,他们站在一片巨大的云层之外。 当Olaf和Kristoff试图进入时,他们会反弹并被击退。 只有当Elsa用她的魔力接近云层时,门户才会打开并进入。
迁移到云时,会有很多声音在呼唤您。 有些会吸引您使用AWS,Azure或GCP或其他许多工具。 但是,无论您打算使用哪一种,都知道您将需要适当的帮助才能成功进入。 此帮助应包括:
在穿过迷人的森林时,奥拉夫开始体验森林的怪异现象和魔力。 当他这样做时,他开始唱歌:
这首歌以令人振奋的结尾结束了:
停止。 如果您在开始云之旅时对您没有意义,请花一些时间使它们有意义。 如果您使用的是敏捷思维方式,请对单个主题或一个混乱主题启动调查峰值。 例如,如果您今天不了解VPC,安全组,可用区域或设置,区域或区域到区域的概念的魔力,那么几个月后再返回此配置时,它们的意义将变得越来越小。。 如果测试结果没有意义,请不要继续,然后再次运行它们。 另外,请记住要记录架构,不仅是您认为重要的细节,而且要经过其他六个项目并面临最后期限的年长者想知道的细节都使之有意义。
在用风神刷过后,魔幻的森林被火神点燃。 当火神散布着混乱和火力时,艾尔莎(Elsa)用冰冷的冲击力冲刺,以冷却火并使神灵平静。 安娜出于热情,在姐姐身后闯入大火,必须得救。 最终两人团聚后,艾尔莎(Elsa)告诫她的妹妹:“你不能只是跟着我开火”。 精力充沛的安娜回答:“你不想让我跟随你发火吗?那就别着火了!”
迁移到云并为您选择正确的可用性解决方案可能会感到压力很大,而不会通过未经测试的理论和方案制定不切实际的时间表而使解决方案复杂化。 没有部署团队的负责人希望他或她的团队参加消防演习,因此请不要故意闯入。 创建一个计划。 建立检查点和里程碑。 包括现实的风险和风险管理策略。 经常与供应商和合作伙伴,尤其是与您的团队进行沟通。 进行良好的测试,并了解备份和回退计划。
整部电影中都有一首歌唱着“所有人都被找到”,伴着令人不寒而栗的合唱-“潜入她的声音深处,但不要太深,否则你会被淹死。”当电影达到顶峰时,艾尔莎(Elsa)潜入深渊,对过去的搜寻和探索使她陷入了冰封,她的最后一阵喘息声警告并告知姐姐。
作为SIOS Technology Corp.客户体验团队的负责人之一,我目睹了太多的部署和迁移陷入了比较陷阱。 短语是这样的:“在我们的旧数据中心中,我们”或“旧系统可以做到这一点”。您的固定系统,专用资源,大型团队,特定网络以及高成本,高性能SAN存储的旧系统可以做到这一点。 (尽管,说实话,有时候我看到窗帘被剥落了,而内部部署也没有做到这一点)。 当您迁移到云中时,请了解在云中进行模拟的合理性,而不是什么。 了解为什么要在本地以这种方式设计系统,并使用“第一课”和“第二课”的帮助来做出有意义的决策。
这导致我进入最后一课。
电影结束时,安娜曾由姐姐艾尔莎(Elsa)统治,成为阿伦德尔(Arendelle)的女王,而艾尔莎(Elsa)留下并领导了诺桑德拉人。 有一个人曾经被神秘和乌云笼罩在森林中或附近,而另一个人则回到了熟悉的土地。
在考虑迁移到云和您的高可用性策略时,请记住,总会有两个王国。 您的迁移策略很容易记住,您始终需要一个本地数据中心来与您的云部署合作。 也许它并没有以前那么广泛,但是并非所有工作负载或关键基础架构都可以重新部署并打包到云中。 拥有可以同时装备和启用两个“王国”的高可用性解决方案和策略至关重要。
迁移到云中需要合适的团队,合适的工具和合适的解决方案,以及在不费吹灰之力的情况下达到目标的战略和计划。 当您迁移到云时,愿意面对过去,了解它,并记住不要卡在那里。 而且,就像迪斯尼《冰雪奇缘II》的两个姐妹一样,您最好记住每个美丽的企业故事都有两个方面,即内部部署和云计算可能就是您的了。
—客户体验副总裁Cassius Rhue
经SIOS许可转载