Score:1

PCS Cluster - ผูกทรัพยากร nfsserver กับ IP เฉพาะ

ธง it

ฉันกำลังพยายามปรับใช้สถาปัตยกรรมคลัสเตอร์ HA NFS กับ PCS บน Rocky Linux 8.5 เคอร์เนลปัจจุบันและเวอร์ชันแพ็คเกจที่เกี่ยวข้องกับ nfs การกำหนดค่า pcs จะแสดงพร้อมรายละเอียดด้านล่าง

ฉันไม่สามารถประกาศ IP เฉพาะสำหรับอินสแตนซ์ NFSD (rpc.statd, rpc.mountd ฯลฯ) เพื่อผูก ไม่ว่าฉันจะทำอะไร บริการต่างๆ ก็จะมีผลผูกพัน 0.0.0.0:$default-พอร์ต.

ฉันต้องการเริ่มต้น "ocf:Hearthbeat:nfsserver" ที่แตกต่างกันด้วยทรัพยากร VirtualIP เฉพาะสำหรับแต่ละกลุ่มทรัพยากร NFS (บล็อก) ของฉัน เมื่อฉันประกาศกลุ่มทรัพยากรที่ใช้ร่วมกัน NFS ที่สองบนโหนดเดียวกันของคลัสเตอร์ (โดยที่ฉันวางแผนที่จะมี NFS มากกว่าขนาดคลัสเตอร์) ทรัพยากร "ocf:Hearthbeat:nfsserver" จะบล็อกซึ่งกันและกัน และในที่สุดทรัพยากรหนึ่งก็ชนะและทรัพยากรอื่นก็เข้ามา เข้าสู่สถานะ "ถูกบล็อก"

[root@node1 ~]# uname -a
Linux node1.local 4.18.0-348.12.2.el8_5.x86_64 #1 SMP วันพุธที่ 19 มกราคม 17:53:40 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@node1 ~]# รอบต่อนาที -qa nfs* rpc*
nfs-utils-2.3.3-46.el8.x86_64
rpcbind-1.2.5-8.el8.x86_64
[รูท@node1 ~]# 

สถานะคลัสเตอร์ PCS

[root@node1 ~]สถานะ # ชิ้น
ชื่อคลัสเตอร์: cluster01
สรุปคลัสเตอร์:
  * สแต็ค: corosync
  * DC ปัจจุบัน: node5 (เวอร์ชัน 2.1.0-8.el8-7c3f660707) - พาร์ติชันที่มีองค์ประชุม
  * ปรับปรุงล่าสุด: พฤ. 24 มี.ค. 13:10:09 น. 2565
  * แก้ไขล่าสุด: พฤ. 24 มี.ค. 13:03:48 2022 โดย root ผ่าน crm_resource บน node3
  * กำหนดค่า 5 โหนด
  * กำหนดค่าอินสแตนซ์ทรัพยากร 5 รายการ

รายการโหนด:
  * ออนไลน์: [ node1 node2 node3 node4 node5 ]

รายการทรัพยากรทั้งหมด:
  * กลุ่มทรัพยากร: Group_SHARE:
    * ROOT-FS_SHARE (ocf::heartbeat:Filesystem): เริ่มทำงาน node2
    * NFSD_SHARE (ocf::heartbeat:nfsserver): เริ่มต้น node2
    * NFS_SHARE (ocf::heartbeat:exportfs): เริ่มต้น node2
    * NFS-IP_SHARE (ocf::heartbeat:IPaddr2): เริ่มต้น node2
    * NFS-NOTIFY_SHARE (ocf::heartbeat:nfsnotify): เริ่มต้น node2

สถานะภูต:
  corosync: เปิดใช้งาน/เปิดใช้งาน
  เครื่องกระตุ้นหัวใจ: เปิดใช้งาน/เปิดใช้งาน
  pcsd: เปิดใช้งาน/เปิดใช้งาน
[รูท@node1 ~]# 

เอาต์พุตการกำหนดค่าทรัพยากร PCS

[root@node2 ~]# pcs การกำหนดค่าทรัพยากร
 กลุ่ม: Group_SHARE
  ทรัพยากร: ROOT-FS_SHARE (คลาส=ผู้ให้บริการ ocf=ประเภท heartbeat=ระบบไฟล์)
   คุณสมบัติ: device=/dev/disk/by-id/wwn-0x6001405ce6b7033688d497a91aa23547 directory=/srv/block/SHARE fstype=xfs
   การทำงาน: ช่วงเวลามอนิเตอร์ = หมดเวลา 20 วินาที = 40 วินาที (ROOT-FS_SHARE-monitor-interval-20s)
               ช่วงเวลาเริ่มต้น = หมดเวลา 0 วินาที = 60 วินาที (ROOT-FS_SHARE-start-interval-0s)
               ช่วงเวลาหยุด = หมดเวลา 0 วินาที = 60 วินาที (ROOT-FS_SHARE-stop-interval-0s)
  ทรัพยากร: NFSD_SHARE (คลาส=ผู้ให้บริการ ocf=ชนิด heartbeat=nfsserver)
   แอตทริบิวต์: nfs_ip=10.1.31.100 nfs_no_notify=true nfs_shared_infodir=/srv/block/SHARE/nfsinfo/
   การดำเนินการ: ช่วงเวลามอนิเตอร์=10s หมดเวลา=20s (NFSD_SHARE-monitor-interval-10s)
               ช่วงเวลาเริ่มต้น = 0 วินาที หมดเวลา = 40 วินาที (NFSD_SHARE-ช่วงเริ่มต้น-0 วินาที)
               หยุดช่วงเวลา = 0 วินาทีหมดเวลา = 20 วินาที (NFSD_SHARE-หยุดช่วงเวลา-0 วินาที)
  ทรัพยากร: NFS_SHARE (คลาส=ผู้ให้บริการ ocf=ประเภทการเต้นของหัวใจ=ส่งออก)
   คุณสมบัติ: clientspec=10.1.31.0/255.255.255.0 directory=/srv/block/SHARE/SHARE fsid=0 options=rw,sync,no_root_squash
   การดำเนินการ: ช่วงเวลามอนิเตอร์=10s หมดเวลา=20s (NFS_SHARE-monitor-interval-10s)
               ช่วงเวลาเริ่มต้น = 0 วินาที หมดเวลา = 40 วินาที (NFS_SHARE-ช่วงเริ่มต้น-0 วินาที)
               ช่วงเวลาหยุด = 0 วินาที หมดเวลา = 120 วินาที (NFS_SHARE-stop-interval-0 วินาที)
  ทรัพยากร: NFS-IP_SHARE (คลาส=ผู้ให้บริการ ocf=ประเภทการเต้นของหัวใจ=IPaddr2)
   คุณสมบัติ: cidr_netmask=24 ip=10.1.31.100 nic=team31
   การทำงาน: ช่วงเวลามอนิเตอร์ = 30 วินาที (NFS-IP_SHARE-monitor-interval-30s)
               ช่วงเวลาเริ่มต้น = 0 วินาที หมดเวลา = 20 วินาที (NFS-IP_SHARE-ช่วงเริ่มต้น-0 วินาที)
               ช่วงเวลาหยุด = 0 วินาที หมดเวลา = 20 วินาที (NFS-IP_SHARE-stop-interval-0 วินาที)
  ทรัพยากร: NFS-NOTIFY_SHARE (คลาส=ผู้ให้บริการ ocf=ประเภทการเต้นของหัวใจ=nfsnotify)
   แอตทริบิวต์: source_host=SHARE.local
   การทำงาน: ช่วงเวลามอนิเตอร์=หมดเวลา 30 วินาที=90 วินาที (NFS-NOTIFY_SHARE-monitor-interval-30s)
               ช่วงเวลาการโหลดซ้ำ = 0 วินาที หมดเวลา = 90 วินาที (NFS-NOTIFY_SHARE-reload-interval-0s)
               ช่วงเวลาเริ่มต้น = 0 วินาที หมดเวลา = 90 วินาที (NFS-NOTIFY_SHARE-ช่วงเริ่มต้น-0 วินาที)
               ช่วงเวลาหยุด = 0 วินาที หมดเวลา = 90 วินาที (NFS-NOTIFY_SHARE-stop-interval-0s)
[รูท@node2 ~]#

IP เสมือนผูกสำเร็จบน node2

[root@node2 ~]# ip -4 addr แสดง team31
6: team31: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP กลุ่มเริ่มต้น qlen 1000
    inet 10.1.31.2/24 brd 10.1.31.255 ขอบเขต global noprefixroute team31
       valid_lft ตลอดไป reserved_lft ตลอดไป
    inet 10.1.31.100/24 ​​brd 10.1.31.255 ขอบเขตทีมรองทั่วโลก31
       valid_lft ตลอดไป reserved_lft ตลอดไป
[รูท@node2 ~]#

TCP LISTEN เชื่อมโยง

[root@node2 ~]# netstat -punta | ฟัง
tcp 0 0 0.0.0.0:2049 0.0.0.0:* ฟัง -                   
tcp 0 0 127.0.0.1:44321 0.0.0.0:* ฟัง 1803/pmcd           
tcp 0 0 0.0.0.0:34661 0.0.0.0:* ฟัง 630273/rpc.statd    
tcp 0 0 127.0.0.1:199 0.0.0.0:* ฟัง 1257/snmpd            
tcp 0 0 127.0.0.1:4330 0.0.0.0:* LISTEN 2834/pmlogger       
tcp 0 0 10.20.101.136:2379 0.0.0.0:* ฟัง 3285/etcd           
tcp 0 0 10.20.101.136:2380 0.0.0.0:* ฟัง 3285/etcd           
tcp 0 0 0.0.0.0:111 0.0.0.0:* ฟัง 1/systemd           
tcp 0 0 0.0.0.0:20048 0.0.0.0:* ฟัง 630282/rpc.mountd   
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 317707/nginx: เสาหลัก 
tcp 0 0 0.0.0.0:2224 0.0.0.0:* ฟัง 3725/platform-pytho 
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง 1170/sshd           
tcp 0 0 0.0.0.0:41017 0.0.0.0:* ฟัง -                   
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 317707/nginx: เสาหลัก 
tcp 0 0 0.0.0.0:35261 0.0.0.0:* ฟัง -                   
tcp6 0 0 :::2049 :::* ฟัง -                   
tcp6 0 0 ::1:44321 :::* ฟัง 1803/pmcd           
tcp6 0 0 ::1:4330 :::* ฟัง 2834/pmlogger       
tcp6 0 0 :::111 :::* ฟัง 1/systemd           
tcp6 0 0 :::20048 :::* ฟัง 630282/rpc.mountd   
tcp6 0 0 :::2224 :::* ฟัง 3725/platform-pytho 
tcp6 0 0 :::37329 :::* ฟัง -                   
tcp6 0 0 :::22 :::* ฟัง 1170/sshd           
tcp6 0 0 :::41179 :::* ฟัง 630273/rpc.statd    
tcp6 0 0 :::43487 :::* ฟัง -                   
[รูท@node2 ~]#

ทรัพยากรคลัสเตอร์ PCS (รูปแบบ cib.xml ในกรณีที่คุณต้องการข้อมูลเชิงลึก)

<resources>
  <group id="Group_SHARE">
    <primitive class="ocf" id="ROOT-FS_SHARE" provider="heartbeat" type="Filesystem">
      <instance_attributes id="ROOT-FS_SHARE-instance_attributes">
        <nvpair id="ROOT-FS_SHARE-instance_attributes-device" name="device" value="/dev/disk/by-id/wwn-0x6001405ce6b7033688d497a91aa23547"/>
        <nvpair id="ROOT-FS_SHARE-instance_attributes-directory" name="directory" value="/srv/block/SHARE"/>
        <nvpair id="ROOT-FS_SHARE-instance_attributes-fstype" name="fstype" value="xfs"/>
      </instance_attributes>
      <operations>
        <op id="ROOT-FS_SHARE-monitor-interval-20s" interval="20s" name="monitor" timeout="40s"/>
        <op id="ROOT-FS_SHARE-start-interval-0s" interval="0s" name="start" timeout="60s"/>
        <op id="ROOT-FS_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="60s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFSD_SHARE" provider="heartbeat" type="nfsserver">
      <instance_attributes id="NFSD_SHARE-instance_attributes">
        <nvpair id="NFSD_SHARE-instance_attributes-nfs_ip" name="nfs_ip" value="10.1.31.100"/>
        <nvpair id="NFSD_SHARE-instance_attributes-nfs_no_notify" name="nfs_no_notify" value="true"/>
        <nvpair id="NFSD_SHARE-instance_attributes-nfs_shared_infodir" name="nfs_shared_infodir" value="/srv/block/SHARE/nfsinfo/"/>
      </instance_attributes>
      <operations>
        <op id="NFSD_SHARE-monitor-interval-10s" interval="10s" name="monitor" timeout="20s"/>
        <op id="NFSD_SHARE-start-interval-0s" interval="0s" name="start" timeout="40s"/>
        <op id="NFSD_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="20s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFS_SHARE" provider="heartbeat" type="exportfs">
      <instance_attributes id="NFS_SHARE-instance_attributes">
        <nvpair id="NFS_SHARE-instance_attributes-clientspec" name="clientspec" value="10.1.31.0/255.255.255.0"/>
        <nvpair id="NFS_SHARE-instance_attributes-directory" name="directory" value="/srv/block/SHARE/SHARE"/>
        <nvpair id="NFS_SHARE-instance_attributes-fsid" name="fsid" value="0"/>
        <nvpair id="NFS_SHARE-instance_attributes-options" name="options" value="rw,sync,no_root_squash"/>
      </instance_attributes>
      <operations>
        <op id="NFS_SHARE-monitor-interval-10s" interval="10s" name="monitor" timeout="20s"/>
        <op id="NFS_SHARE-start-interval-0s" interval="0s" name="start" timeout="40s"/>
        <op id="NFS_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="120s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFS-IP_SHARE" provider="heartbeat" type="IPaddr2">
      <instance_attributes id="NFS-IP_SHARE-instance_attributes">
        <nvpair id="NFS-IP_SHARE-instance_attributes-cidr_netmask" name="cidr_netmask" value="24"/>
        <nvpair id="NFS-IP_SHARE-instance_attributes-ip" name="ip" value="10.1.31.100"/>
        <nvpair id="NFS-IP_SHARE-instance_attributes-nic" name="nic" value="team31"/>
      </instance_attributes>
      <operations>
        <op id="NFS-IP_SHARE-monitor-interval-30s" interval="30s" name="monitor"/>
        <op id="NFS-IP_SHARE-start-interval-0s" interval="0s" name="start" timeout="20s"/>
        <op id="NFS-IP_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="20s"/>
      </operations>
    </primitive>
    <primitive class="ocf" id="NFS-NOTIFY_SHARE" provider="heartbeat" type="nfsnotify">
      <instance_attributes id="NFS-NOTIFY_SHARE-instance_attributes">
        <nvpair id="NFS-NOTIFY_SHARE-instance_attributes-source_host" name="source_host" value="SHARE.local"/>
      </instance_attributes>
      <operations>
        <op id="NFS-NOTIFY_SHARE-monitor-interval-30s" interval="30s" name="monitor" timeout="90s"/>
        <op id="NFS-NOTIFY_SHARE-reload-interval-0s" interval="0s" name="reload" timeout="90s"/>
        <op id="NFS-NOTIFY_SHARE-start-interval-0s" interval="0s" name="start" timeout="90s"/>
        <op id="NFS-NOTIFY_SHARE-stop-interval-0s" interval="0s" name="stop" timeout="90s"/>
      </operations>
    </primitive>
  </group>
</resources>

แก้ไข-1

มันดูเหมือน OpenClusterFramework - ทรัพยากร nfsserver ไม่ได้ใช้ฟิลด์ nfs_ip สำหรับ "rpc.nfsd -H $nfs_ip" เลย. บน RockyLinux 8.5 ทรัพยากรนี้ยังไม่อนุญาตให้เราทำ เขียนทับพฤติกรรมเริ่มต้นของการสนับสนุน NFS แต่ละเวอร์ชัน RockyLinux 8.5 ใช้แพ็คเกจต่อไปนี้ resource-agent-4.1.1-98.el8_5.2.x86_64

ฉันจะพยายามแก้ปัญหาด้วยการระบุทรัพยากร systemd pcs แบบกำหนดเองสำหรับ [email protected]

U. Windl avatar
it flag
อาจแสดงรายการบันทึกเมื่อเซิร์ฟเวอร์ NFS เริ่มทำงาน ที่นี่ (สำหรับ SLES 12) ได้ผล!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา