12.3. 配置位置约束策略
在使用位置限制时,您可以配置常规策略来指定资源可在哪些节点上运行:
- Opt-in 集群 - 配置一个集群,默认情况下没有资源可在任何位置运行,然后有选择地为特定资源启用允许的节点。
- opt-out 集群 - 配置一个集群,默认情况下,所有资源都可以在任何位置运行,然后为不允许在特定节点上运行的资源创建位置限制。
根据您的需要以及集群的组成,把集群设置为 opt-in 集群还是 opt-out 集群。如果大多数资源可以在大多数节点上运行,那么如果没有选择的协议则可能会导致配置更简单。另一方面,如果大多数资源只能在一小部分节点中运行,那么选择的配置可能比较简单。
12.3.1. 配置 "Opt-In" 集群
要创建一个 opt-in 集群,请将 symmetric-cluster
集群属性设置为 false
,以防止资源默认在任何地方运行。
# pcs property set symmetric-cluster=false
为单个资源启用节点。以下命令配置位置约束,以便资源 Webserver
首选节点 example-1
,资源 Database
首选节点 example-2
,如果它们的首选节点都出现故障,则这两个资源都可以切换到节点 example-3
。当为 opt-in 集群配置位置限制时,设置零分数可允许资源在节点上运行,而不表示首选或避免该节点。
# pcs constraint location Webserver prefers example-1=200 # pcs constraint location Webserver prefers example-3=0 # pcs constraint location Database prefers example-2=200 # pcs constraint location Database prefers example-3=0
12.3.2. 配置 "Opt-Out" 集群
要创建一个 opt-out 集群,请将 symmetric-cluster
集群属性设置为 true
,以允许资源默认可在任何地方运行。如果没有显式设置 symmetric-cluster
,则这是默认配置。
# pcs property set symmetric-cluster=true
以下命令将生成一个与"配置"集群"配置"中的示例相当的配置。如果它们的首选节点出现故障,这两个资源都可以切换到节点 example-3
,因为每个节点都有一个隐含的为 0 的 score 。
# pcs constraint location Webserver prefers example-1=200 # pcs constraint location Webserver avoids example-2=INFINITY # pcs constraint location Database avoids example-1=INFINITY # pcs constraint location Database prefers example-2=200
请注意,不需要在这些命令中指定 INFINITY 分数,因为这是分数的默认值。