
正文
linuxpcs命令 linux cpio命令
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Linux HA 集群原理和配置-02
本文介绍在Linux HA集群中的仲裁和分区概念。
集群正常工作时,所有节点都在一个分区内(partition),分区内的所有节点将选举出一个仲裁节点,这个仲裁节点负责向其他节点发送集群控制命令。当网络发生故障时,集群中的节点发现无法和仲裁节点通信,则会在可通信的范围内重新选举一个新的仲裁节点。此时集群内可能出现多个仲裁节点,每个仲裁节点的管理范围为一个分区。
下文中将通过防火墙策略的设置模拟集群网络中通信出现异常的各种情况,如:
通过防火墙策略可以精准控制两两节点之间的连通性,使我们能更准确的了解在网络连通性发生变化对集群的影响。
在所有节点上启动防火墙,并添加策略对整个管理网络192.168.56.0/24放通。
保存上述策略,之后在实验过程会使用iptables命名加入新策略模拟网络通信异常效果,如果需要恢复网络通信正常状态,直接不保存策略重启firewalld服务即可。
通过pcs status查看集群状态:
上述结果显示当前集群只有一个分区,分区内的节点包括全部3台主机,仲裁节点是ha-host3,这表示集群间的通信是完好的。下图显示当前集群状态:
在ha-host1上添加以下策略:
该策略将使得ha-host1和ha-host3之间的通信中断,在所有节点上查看集群状态:
上面的结果显示,ha-host1失去和当前仲裁节点ha-host3的联系之后,和ha-host2一起组成新的分区并选举出ha-host2作为新的仲裁节点。有趣的是ha-host2和ha-host3的通信并未中断,但是他被“优先级较高的ha-host1抢走并推举为老大”,剩下ha-host3独自留在其自身所在的分区。此时ha-host3所在的分区提示了“partition WITHOUT quorum”,表示该分区中的节点数目不超过一半。
下图显示当前集群状态:
在ha-host1上再添加策略:
使其和当前的仲裁节点ha-host2的通信中断,集群状态变为:
发现ha-host2和ha-host3一起组成了新的分区,由于ha-host1所在分区节点数不足一半,无法启动资源,虚拟ip资源vip被切换到了ha-host2上。下图显示当前集群状态:
如果再把ha-host2和ha-host3直接的通信中断,此时3个节点间两两均无法通信。每个节点都是一个分区,每个分区的主机数均不过半,因此无法启动任何资源,原先运行在ha-host2上的vip也停止了。
当前集群状态如下图:
相关问答
Q1: Pacemaker之高级资源类型:资源组,资源克隆和资源多状态
在Pacemaker集群中linuxpcs命令,各种功能服务通常被配置为 集群资源 linuxpcs命令,接受资源管理器的调度与控制, 资源 是集群管理的最小单位对象。在集群资源配置中,由于不同高可用模式的需求, 资源通常被配置为不同的运行模式 ,如Active/Active模式、Active/ Passive模式以及Master/Master模式和Master/Slave模式, 而这些不同资源模式的配置均需要使用Pacemaker提供的高级资源类型 ,包括 资源组 、 资源克隆 和 资源多状态 等。
在Pacemaker集群中, 经常需要将多个资源作为一个资源组进行统一操作 ,如将多个相关资源全部位于某个节点或者同时切换到另外的节点,并且要求这些资源按照一定的先后顺序启动,然后以相反的顺序停止, 为了简化同时对多个资源进行配置,Pacemaker提供了高级资源类型——资源组 。通过资源组,用户便可并行配置多个资源,资源组的创建语法格式: pcs resource group add group_name resource_id [resource_id] ... [resource_id][--before resource_id | --after resource_id
使用该命令创建资源组时,如果指定的资源组不存在,则此命令会新建一个资源组,如果指定的资源组已经存在,则此命令会将指定的资源添加到该资源组中。 资源组中的资源会按照资源在该命令中出现的先后位置顺序启动,并以相反的顺序停止 。在该命令中,还可使用--before和--after参数指定所添加的资源与组中已有资源的相对启动顺序。
在为资源组添加资源时,不仅可以将已有资源添加到组中,还可以在创建资源的同时顺便将其添加到指定的资源组中,命令语法:pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options] --group group_name
以下是资源组操作中经常使用的命令语法:
//将资源从组中删除,如果该组中没有资源,会将该组删除: pcs resource group remove group_name resource_id...
//查看资源组:pcs resource group list
//创建名为 MyGroup的资源组,并添加资源 IPaddr和HAproxy:pcs resource group add MyGroup IPaddr HAproxy
在Pacemaker集群中,资源组所包含的资源数目是不受限的,资源组中的资源具有如下的基本特性:
1) 资源按照其指定的先后顺序启动。
2) 资源按照其指定顺序的相反顺序停止。
3) 如果资源组中的某个资源无法在任何节点启动运行,那么在该资源后指定的任何资源都将无法运行。
4) 资源组中后指定资源不影响前指定资源的运行。
资源组具有组属性,并且资源组会继承组成员的部分属性 ,主要被继承的资源属性包括Priority、Target-role、Is-managed等,资源属性决定了资源在集群中的行为规范,以及资源管理器可以对其进行哪些操作。
资源属性介绍如下:
1) Priority :资源优先级,默认值是0,如果集群无法保证所有资源都处于运行状态,则低优先权资源会被停止,以便让高优先权资源保持运行状态。
2) Target-role :资源目标角色,默认值是Started,表示集群应该让这个资源处于何种状态,允许值为:
Stopped:表示强制资源停止linuxpcs命令;
Started:表示允许资源启动,但多状态资源的情况下不能将其提升为Master资源;
Master:允许资源启动,并在适当时将其提升为Master。
3) is-managed :表示是否允许集群启动和停止该资源,默认值是true。
4) Resource-stickiness :表示该资源保留在原有位置节点的倾向程度值,默认值是0。
5) Requires :表示资源在什么条件下允许启动,默认值为fencing。
克隆资源是Pacemaker集群中的高级资源类型之一, 通过资源克隆,集群管理员可以将资源克隆到多个节点上并在启动时使其并行运行在这些节点上 ,例如通过资源克隆的形式在集群中的多个节点上运行冗余IP资源实例,并在多个处于Active状态的IP资源之间实现负载均衡。 通常凡是其 资源代理 支持克隆功能的资源都可以实现资源克隆 , 但只有已经规划为可以运行在Active/Active高可用模式的资源才能在集群中配置为克隆资源 。通常在创建资源的过程中同时对其进行资源克隆,克隆后的资源将会在集群中的全部节点上存在,并且克隆后的资源会自动在其后添加名为clone的后缀并形成新的资源ID,资源创建并克隆资源的语法如下:pcs resource create resource_id standard:provider:type|type [resource options]--clone [meta clone_options]
克隆后的资源ID不再是语法中指定的Resource_id,而是Resource_id-clone,并且该资源会在集群全部节点中存在。在Pacemaker集群中,资源组也可以被克隆,但是资源组克隆不能由单一命令完成,必须先创建资源组然后再对资源组进行克隆,资源组克隆的命令语法如下:pcs resource clone resource_id | group_name [clone_options]...
克隆后资源的名称为Resource_id-clone或Group_name-clone。在资源克隆命令中,可以指定资源克隆选项(clone_options):
1) Priority/Target - role/Is-manage :从被克隆的资源中继承的,详见资源属性介绍。
2) Clone-max :该选项值表示需要存在多少资源副本才能启动资源,默认为该集群中的节点数。
3) Clone-node-max :表示在单一节点上能够启动多少个资源副本,默认值为1。
4) Notify :表示在停止或启动克隆资源副本时,是否在开始操作前和操作完成后告知其linuxpcs命令他所有资源副本,默认值为False。
5) Globally-unique :表示是否允许每个克隆副本资源执行不同的功能,允许值为False和True。如果其值为False,则不管这些克隆副本资源运行在何处,它们的行为都是完全相同的,因此每个节点中有且仅有一个克隆副本资源处于Active状态。如果其值为True,则运行在某个节点上的多个资源副本实例或者不同节点上的多个副本实例完全不一样。如果Clone-node-max取值大于1,即一个节点上运行多个资源副本,那么Globally-unique的默认值为True,否则为False。
6) Ordered :表示是否顺序启动位于不同节点上的资源副本,True为顺序启动,False为并行启动,默认值是False。
7) Interleave :该属性值主要用于改变克隆资源或者Masters资源之间的 Ordering约束行为。 如果Interleave值为False,则位于相同节点上的后一个克隆资源的启动或者停止操作需要等待前一个克隆资源启动或者停止完成才能进行;如果Interleave值为True,则位于相同节点上的后一个克隆资源不用等待前一个克隆资源启动或者停止完成便可进行启动或者停止操作,默认值为False。
在通常情况下, 克隆资源会在集群中的每个在线节点上都存在一个副本,即资源副本数目与集群节点数目相等 ,但集群管理员可以通过资源克隆选项Clone-max将资源副本数目设为小于集群节点数目, 如果资源副本数目小于节点数目,则需要通过资源位置约束(Location Constraint)将资源副本指定到相应的节点上 ,设置克隆资源的位置约束与设置常规资源的位置约束类似。例如要将克隆资源Web-clone限制在node1节点上运行,则命令语法如下:pcs constraint location web-clone prefers node1
多状态资源是Pacemaker集群中实现资源Master/Master或Master/Slave高可用模式的机制 ,并且 多态资源是一种特殊的克隆资源,多状态资源机制允许资源实例在同一时刻仅处于Master状态或者Slave状态 。多状态资源的创建只需在普通资源创建的过程中指定--Master参数即可,Master/Slave多状态类型资源的创建命令语法:pcs resource create resource_id standard:provider:type|type [resource options] --master [meta master_options]
多状态资源是一种特殊的克隆资源,默认情况下,多状态资源创建后也会在集群的全部节点中存在,多状态资源创建后在集群中的资源名称格式为Resource_id-master。在Master/Slave高可用模式下,尽管在集群中仅有一个节点上的资源会处于Master状态,其他节点上均为Slave状态,但是全部节点上的资源在启动之初均为Slave状态,之后资源管理器会选择将某个节点的资源提升为Master。用户还可以将已经存在的资源或资源组创建为多状态资源,命令语法:pcs resource master master/slave_name resource_id|group_name [master_options]
在多状态资源的创建过程中,可以通过Master选项(Master_options)来设置多状态资源的属性,Master_options主要有以下两种属性值:
1) Master-max :表示可将多少个资源副本由Slave状态提升至Master状态,默认值为1,即仅有一个Master。
2) Master-node-max :表示在同一节点中可将多少资源副本提升至Master状态,默认值为1。
在通常情况下, 多状态资源默认会在每个在线的集群节点中分配一个资源副本 ,如果希望资源副本数目少于节点数目,可通过资源的Location约束指定运行资源副本的集群节点,多状态资源的Location约束在实现的命令语法上与常规资源一样。在配置多状态资源的Ordering约束时,可以指定对资源进行的操作是提升(Promote)还是降级(Demote)操作:pcs constraint order [action] resource_id then [action] resource_id [options]
Promote操作将对应的资源(resource_id)提升为Master状态,Demote操作将资源(resource_id)降级为Slave状态,设定被提升或降级资源的顺序的方法是Ordering约束。
Q2: Linux命令行上传文件到百度网盘
在下边图示位置粘贴授权码,耐心等待一会即可(1-2分钟)
授权成功。
测试上传和同步本地文件到云盘
由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录。我们可以通过:
Q3: linux如何使用pcs添加执行脚本的资源?
首先把脚本做成类似network这样的系统服务,放到/etc/init.d/下,添加执行权限,测试执行成功,不需要放到/usr/lib/systemd/system下,在集群中添加资源时,选择lsb,会自动发现你自定义脚本的名字。
pcs
resource
create
service
lsb:service
关于linuxpcs命令和linux cpio命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







