Score:3

เพิ่มเซิร์ฟเวอร์ในการกำหนดค่า DRBD9 ที่ทำงานอยู่

ธง mx

ฉันใช้ 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

ดังนั้นฉันจึงคิดว่าอย่างน้อยฉันก็ต้องการมันมากพอแล้ว ณ จุดนี้ ฉันแค่จับหลอด แต่ฉันไม่ค่อยแน่ใจว่าจะหยิบหลอดที่ถูกต้องต่อไปเพื่ออะไร

Matt Kereczman avatar
nr flag
คุณควรเห็นข้อมูลเพิ่มเติมในบันทึก แต่ลำไส้ของฉันบอกว่าคุณอาจไม่มีที่ว่างสำหรับข้อมูลเมตาเพิ่มเติม (โหนดที่ 3)เมื่อคุณสร้างข้อมูลเมตาเป็นครั้งแรก (บน 2 โหนด) คุณสามารถส่งแฟล็ก `create-md` `--max-peers=3` เพื่อจองสล็อตบิตแมปเพิ่มเติม เมื่อสร้างไดรฟ์ข้อมูล LUKS และ FS แล้ว การขยายข้อมูลเมตาจะต้องเขียนทับส่วนท้ายของ FS โปรดโพสต์อะไรก็ได้จากบันทึกขณะเรียกใช้ `drbdadm up` / `drbdadm down` และนั่นควรให้ข้อมูลเพิ่มเติม
mx flag
จากที่เคยเห็นมาประกอบกับการอ่าน(และเข้าใจในที่สุด) บล็อกนี้: https://www.neteye-blog.com/2020/04/adding-node-to-drbd-device-with-wrong- max-peers/ ฉันคิดว่านั่นคือสถานการณ์ที่เราอยู่ น่าเสียดาย วิธีสร้างสิ่งเหล่านี้ในขั้นต้น เป็นไปไม่ได้ที่เราจะขยายพาร์ติชันสำรองนั้น ดังนั้นฉันเดาว่าเราจะสร้างใหม่ในอนาคต เป็นทางเลือกที่เจ็บปวดน้อยที่สุด
Matt Kereczman avatar
nr flag
คุณยังสามารถแปลงเป็นข้อมูลเมตาภายนอก (สมมติว่าคุณมีอุปกรณ์บล็อกขนาดเล็กอื่นๆ ที่คุณสามารถใช้ได้) แต่จะต้องมี `umount' และ 'down' บนอุปกรณ์ DRBD

โพสต์คำตอบ

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