OpenStack高可用集群(上冊):原理與架構》—3.7.2 集群資源約束

      網友投稿 697 2025-04-01

      3.7.2 集群資源約束

      集群是由眾多具有特定功能的資源組成的集合,集群中的每個資源都可以對外提供獨立服務,但是資源彼此之間又存在著依賴與被依賴的關系。如資源B的啟動必須依賴資源A的存在,因此資源A必須在資源B之前啟動,再如資源A必須與資源B位于同一節點以共享某些服務,則資源B與A在故障切換時必須作為一個邏輯整體而同時遷移到其他節點,在Pacemaker中,資源之間的這種關系通過資源約束或限制(Resource Constraint)來實現。Pacemaker集群中的資源約束可以分為以下幾類。

      位置約束(Location):位置約束限定了資源應該在哪個集群節點上啟動運行。

      順序約束(Order):順序約束限定了資源之間的啟動順序。

      資源***約束(Colocation):***約束將不同的資源***在一起作為一個邏輯整體,即資源 A位于C節點,則資源B也必須位于C節點,并且資源A、B將會同時進行故障切換到相同的節點上。

      資源配置中,Location約束在限定運行資源的節點時非常有用,例如在Openstack高可用集群配置中,我們希望Nova-Compute資源僅運行在計算節點上,而Nova-api和Neutron-sever等資源僅運行在控制節點上,這時便可通過資源的Location約束來實現。例如,我們先給每一個節點設置不同的osprole屬性(屬性名稱可自定義),計算節點中該值設為compute,控制節點中該值設為controller,如下:

      pcs property set --node compute1 osprole=compute

      pcs property set --node compute1 osprole=compute

      pcs property set --node controller1-vm osprole=controller

      《OpenStack高可用集群(上冊):原理與架構》—3.7.2 集群資源約束

      pcs property set --node controller2-vm osprole=controller

      pcs property set --node controller3-vm osprole=controller

      然后,通過為資源設置Location約束,便可將Nova-Compute資源僅限制在計算節點上運行,Location約束的設置命令如下:

      pcs constraint location nova-compute-clone rule\ resource-discovery=exclusive score=0 osprole eq compute

      即資源Nova-Compute-Clone僅會在osprole等于compute的節點上運行,也即計算節點上運行。

      在Pacemaker集群中,Order約束主要用來解決資源的啟動依賴關系,資源啟動依賴在Linux系統中非常普遍。例如在OpenStack高可用集群配置中,需要先啟動基礎服務如RabbitMQ和MySQL等,才能啟動OpenStack的核心服務,因為這些服務都需要使用消息隊列和數據庫服務;再如在網絡服務Neutron中,必須先啟動Neutron-sever服務,才能啟動Neutron的其他Agent服務,因為這些Agent在啟動時均會到Neutron-sever中進行服務注冊。Pacemaker集群中解決資源啟動依賴的方案便是Order約束。例如,在OpenStack的網絡服務Neutron配置中,與Neutron相關的資源啟動順序應該如下:Keystone--> Neutron-server--> Neutron-ovs-cleanup-->Neutron-netns-cleanup-->Neutron-openvswitch-agent-->Neutron-dhcp-agent-->Nutron-l3-agent,上述依賴關系可以通過如下Order約束實現:

      pcs constraint order start keystone-clone then neutron-server-api-clone

      pcs constraint order start neutron-server-api-clone then neutron-ovs-cleanup-clone

      pcs constraint order start neutron-ovs-cleanup -clone then neutron-netns-cleanup-clone

      pcs constraint order start neutron-netns-cleanup-clone then neutron-openvswitch-agent-clone

      pcs constraint order start neutron-openvswitch-agent-clone then neutron-dhcp-agent-clone

      pcs constraint order start neutron-dhcp-agent-clone then neutron-l3-agent-clone

      pcs constraint order start neutron-l3-agent-clone then neutron-metadata-agent-clone

      Colocation約束主要用于根據資源A的節點位置來決定資源B的位置,即在啟動資源B的時候,會依賴資源A的節點位置。例如將資源A與資源B進行Colocation約束,假設資源A已經運行在Node1上,則資源B也會在Node1上啟動,而如果Node1故障,則資源B與A會同時切換到Node2,而不是其中某個資源切換到Node3。在OpenStack高可用集群配置中,通常需要將Libvirtd-compute與Neutron-openvswitch-agent進行資源***,要將Nova-compute與Libvirtd-compute進行資源***,則Colocation約束的配置如下:

      pcs constraint colocation add nova-compute-clone with libvirtd-compute-clone

      pcs constraint colocation add libvirtd-compute-clone with neutron-openvswitch-agent-compute-clone

      Location約束、Order約束和Colocation約束是Pacemaker集群中最為重要的三個約束,通過這幾個資源約束設置,集群中看起來彼此獨立的資源就會按照預先設置有序運行,在Openstack高可用集群配置中,幾乎全部資源的配置都會用到這幾個約束。

      OpenStack 云計算

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何在WPS表格2013進行數據合并計算(wps相同數據合并計算)
      下一篇:技術實踐-HBase增量數據遷移的方法
      相關文章
      久久夜色精品国产嚕嚕亚洲av| 亚洲最大的成人网站| 久久亚洲精品国产精品婷婷| 亚洲美女aⅴ久久久91| 亚洲αv久久久噜噜噜噜噜| 国产亚洲精品激情都市| 国产亚洲精品不卡在线| 中文国产成人精品久久亚洲精品AⅤ无码精品| 鲁死你资源站亚洲av| 欧美亚洲精品一区二区| 色婷婷六月亚洲综合香蕉| 亚洲成a人片在线观看天堂无码| 亚洲精品人成网线在线播放va| 亚洲熟妇无码AV不卡在线播放| 亚洲七久久之综合七久久| 亚洲国产精品无码久久九九大片| 亚洲国产综合AV在线观看| 亚洲a无码综合a国产av中文| 亚洲精品永久在线观看| 337P日本欧洲亚洲大胆艺术图| 国产成人va亚洲电影| 亚洲一区二区高清| 亚洲一区二区三区香蕉| 亚洲AV无码专区国产乱码4SE| 亚洲视频在线观看| 亚洲性无码av在线| 亚洲伊人久久大香线蕉AV| 欧美亚洲精品一区二区| 亚洲综合激情另类专区| 精品亚洲永久免费精品| 久久亚洲日韩精品一区二区三区| 亚洲理论在线观看| 国产精品亚洲一区二区麻豆| 久久人午夜亚洲精品无码区| 亚洲精品亚洲人成在线观看下载| 亚洲综合无码AV一区二区| 亚洲精品视频在线| 亚洲一区在线视频观看| 亚洲AV性色在线观看| 亚洲欧洲久久av| 久久久久亚洲AV成人无码|