ฉันใช้ CentOS7 และฉันมีโหนด HA สองคลัสเตอร์ที่มีอยู่ซึ่งรันเครื่องกระตุ้นหัวใจ (1.1.23-1.el7_9.1) และ DRBD (kmod-drbd90-9.0.22-3.el7_9) พาร์ติชันสำรองสำหรับไดรฟ์ DRBD ได้รับการเข้ารหัส LUKS เรากำลังเพิ่มเซิร์ฟเวอร์ที่สามลงในสแต็ก แต่หลังจากอัปเดตการกำหนดค่า ไดรฟ์ drbd บนเซิร์ฟเวอร์ใหม่ไม่เชื่อมต่อ
สถานะ
สถานะปัจจุบันที่แสดงโดยกล่องใหม่คือ:
[root@svr3]# สถานะ drbdadm
drbd0 บทบาท:รอง
ดิสก์: ไม่สอดคล้องกัน
การเชื่อมต่อ svr1: กำลังเชื่อมต่อ
การเชื่อมต่อ svr2: กำลังเชื่อมต่อ
จากหลัก สถานะจะแสดงเป็น:
[root@svr1]# สถานะ drbdadm
บทบาท drbd0: หลัก
ดิสก์: UpToDate
บทบาท svr2: รอง
เพียร์ดิสก์: UpToDate
การเชื่อมต่อ svr3:สแตนด์อโลน
การกำหนดค่า DRBD
การกำหนดค่าปัจจุบันสำหรับ drbd0
ทรัพยากรคือ:
ทรัพยากร drbd0 {
โปรโตคอล C;
อุปกรณ์ /dev/drbd0;
ดิสก์ /dev/sdb1;
เมตาดิสก์ภายใน
บน svr1 {
ที่อยู่ 10.10.11.1:7789;
รหัสโหนด 1;
}
บน svr2 {
ที่อยู่ 10.10.11.2:7789;
รหัสโหนด 2;
}
บน svr3 {
ที่อยู่ 10.10.11.3:7789;
รหัสโหนด 3;
}
ตาข่ายเชื่อมต่อ {
โฮสต์ svr1 svr2 svr3;
}
}
ก่อนที่จะเพิ่ม svr3 การกำหนดค่าบน svr1 และ svr2 เป็นดังนี้:
ทรัพยากร drbd0 {
โปรโตคอล C;
อุปกรณ์ /dev/drbd0;
ดิสก์ /dev/sdb1;
เมตาดิสก์ภายใน
บน svr1 {
ที่อยู่ 10.10.11.1:7789;
รหัสโหนด 1;
}
บน svr2 {
ที่อยู่ 10.10.11.2:7789;
รหัสโหนด 2;
}
ตาข่ายเชื่อมต่อ {
โฮสต์ svr1 svr2;
}
}
ดิสก์ DRBD ถูกสร้างขึ้นด้วยสคริปต์ต่อไปนี้ในทุกกล่อง:
drbdadm สร้าง-md --force drbd0
drbdm ขึ้น drbd0
บนดิสก์หลักเท่านั้น มีการรันสิ่งต่อไปนี้เพื่อตั้งค่าดิสก์ด้วย:
dd if=/dev/zero of=/dev/sdb1 bs=128M count=10
drbdadm หลัก -- บังคับ drbd0
cryptsetup -q --keyfile /path/to/keyfile luksFormat /dev/drbd0
cryptsetup --key-file /path/to/keyfile luksOpen /dev/drbd0 luks-drbd
mkfs.ext4 /dev/mapper/luks-drbd
การกำหนดค่าเครื่องกระตุ้นหัวใจ
ทรัพยากร DRBD ในเครื่องกระตุ้นหัวใจได้รับการกำหนดค่าด้วยสคริปต์ต่อไปนี้ ทรัพยากร PCS ไม่มีการเปลี่ยนแปลง เนื่องจากเดิมได้รับการตั้งค่าให้อนุญาตสำหรับโหนดที่สามในอนาคต
ทรัพยากรชิ้นสร้าง drbd0_data ocf:linbit:drbd drbd_resource=drbd0
pcs ทรัพยากรหลัก drbd0_clone drbd0_data \
master-max=1 master-node-max=1 clone-max=3 clone-node-max=1 \
แจ้ง=จริง
ทรัพยากรชิ้นสร้าง drbd0_luks ocf:vendor:luks \
--group=drbd_resources
ทรัพยากรชิ้นสร้าง drbd0_fs ocf:heartbeat:Filesystem \
อุปกรณ์=/dev/mapper/luks-drbd ไดเร็กทอรี=/mnt/data fstype=ext4 \
--group=drbd_resources
ลำดับข้อ จำกัด pcs ส่งเสริม drbd0_data จากนั้นเริ่ม drbd_resources
colocation ข้อ จำกัด ชิ้นเพิ่ม drbd_resources \
ด้วย drbd0_clone INFINTITY with-rsc-role=Master
pcs คำสั่งจำกัด drbd0_luks แล้วก็ drbd0_fs
(เดอะ drbd0_luks
ทรัพยากรเป็นทรัพยากรที่กำหนดเองที่เราจัดหาให้ซึ่งโดยทั่วไปจะทำงาน cryptsetup luksOpen|luksClose
บนพาร์ติชันของ LUKS ตามความเหมาะสม)
สถานะของเครื่องกระตุ้นหัวใจจะแสดงดังต่อไปนี้:
ออนไลน์: [ svr1 svr2 svr3 ]
ทรัพยากรที่ใช้งานอยู่:
ชุดมาสเตอร์/สเลฟ: drbd0_clone [drbd0_data]
ผู้เชี่ยวชาญ: [ svr1 ]
ทาส: [ svr2 svr3 ]
กลุ่มทรัพยากร: drbd_resources
drbd0_luks (ocf::vendor::luks): เริ่มต้น svr1
drbd0_fs (ocf::heartbeat::Filesystem): เริ่ม svr1
ความพยายามในการเชื่อมต่อ
ฉันได้ลองทำซ้ำหลายขั้นตอนต่อไปนี้:
[root@svr1]# drbdadm ยกเลิกการเชื่อมต่อ drbd0
[root@svr2]# drbdadm ยกเลิกการเชื่อมต่อ drbd0
[root@svr3]# drbdadm ยกเลิกการเชื่อมต่อ drbd0
[root@svr3]# drbdadm เชื่อมต่อ --discard-my-data drbd0
[root@svr1]# drbdadm เชื่อมต่อกับ drbd0
drbd0: ล้มเหลว: (162) คำขอกำหนดค่าไม่ถูกต้อง
คำสั่ง 'drbdsetup connect drbd0 3' สิ้นสุดด้วยรหัสออก 10
[root@svr2]# drbdadm เชื่อมต่อกับ drbd0
drbd0: ล้มเหลว: (162) คำขอกำหนดค่าไม่ถูกต้อง
คำสั่ง 'drbdsetup connect drbd0 3' สิ้นสุดด้วยรหัสออก 10
หลังจากนี้ผลลัพธ์ของ สถานะ drbdadm
ตามรูปด้านบนกระทู้เลยครับฉันได้รับข้อผิดพลาดเดียวกันหากฉันพยายามเรียกใช้ drbdadm ปรับ drbd0
บน svr1 หรือ svr2
ถ้าฉันพยายามที่จะวิ่ง drbdadm ลง drbd0
ในขณะที่ drbd0_luks
เปิดใช้งานทรัพยากร ฉันได้รับสิ่งต่อไปนี้:
[root@svr1]# drbdadm ลง drbd0
drbd0: การเปลี่ยนสถานะล้มเหลว: (-12) อุปกรณ์ถูกเปิดโดยใครบางคน
ข้อมูลเพิ่มเติมจากเคอร์เนล:
/dev/drbd0 เปิดโดย cryptsetup (pid 11777) เมื่อ 2021-11-01 16:50:51
คำสั่ง 'drbdsetup down drbd0' สิ้นสุดด้วยรหัสออก 11
ถ้าฉันปิดการใช้งาน drbd0_luks
ทรัพยากร ฉันสามารถเรียกใช้ drbdadm ลง drbd0
, แต่ ปรับ
คำสั่งล้มเหลวด้วยสิ่งต่อไปนี้:
[root@svr1]# drbdadm ปรับ drbd0
0: ล้มเหลว: (162) คำขอกำหนดค่าไม่ถูกต้อง
คำสั่ง 'drbdsetup แนบ 0 /dev/sdb1 /dev/sdb1 ภายใน' สิ้นสุดด้วยรหัสออก 10
ดังนั้นฉันจึงคิดว่าอย่างน้อยฉันก็ต้องการมันมากพอแล้ว ณ จุดนี้ ฉันแค่จับหลอด แต่ฉันไม่ค่อยแน่ใจว่าจะหยิบหลอดที่ถูกต้องต่อไปเพื่ออะไร