Ceph : ถ้าหาก OS พัง จะทำอย่างไรดีกับ OSD ในเครื่อง

Jetsada Malaisirirat
1 min readOct 25, 2019

--

Ceph เป็น software ทำ SDS (Software Define Storage) ตัวหนึ่งที่รองรับการใช้งานที่หลากหลาย สามารถให้บริการ block,object,share ได้ และสามารถขยายระบบ (Scale Out) ได้อย่างง่าย ๆ โดยการเพิ่มเครื่องเข้าไปในระบบ

แต่เกิดคำถามขึ้น ถ้าเครื่องในส่วน OSD เกิด OS พังขึ้นมา
ซึ่ง disk ที่เป็น osd ในเครื่องนั้นไม่ได้เสียหายด้วย ซึ่งน่าจะมีวิธีจัดการได้ดีกว่าการ format และ add osd ใหม่ เพื่อ rebalance ข้อมูลใหม่ก็จะเสียเวลานาน

จึงได้หาข้อมูลและพบว่าน่าจะมีทางเป็นไปได้ จึงได้ทดสอบโดยการจำลอง Ceph cluster เล็ก ๆ ขนาด 3 node ขึ้นมาชุดหนึ่ง (mon osd1 osd2) และเตรียมเครื่องที่ติดตั้ง OS อย่างเดียวไว้อีกเครื่องหนึ่ง จากนั้นได้ทำการย้าย Disk จากเครื่อง osd2 ไปยังเครื่องที่ติดตั้ง OS ไว้อย่างเดียว เสมือนว่าเครื่อง osd2 ตายไป

ในการโยก OSD ไปยังเครื่องใหม่ ที่ระบบ Ceph สั่งคำสั่งเพื่อไม่ให้ระบบ rebalance ข้อมูล

# ceph osd set noout

จากนั้นเปิดเครื่องที่โยก Disk ขึ้นมา ตั้งค่าเครือข่าย ชื่อเครื่อง ให้เป็นเครื่อง osd2 แทนเครื่องเดิม และติดตั้งซอฟต์แวร์ Ceph

# yum install ceph

และคัดลอกไฟล์คอนฟิก ceph.conf ไปยังเครื่องใหม่ โดยใช้คำสั่ง ceph-deploy

$ ceph-deploy config pull osd2

จากนั้นไปที่เครื่อง osd2 ใหม่ สั่งคำสั่ง ceph-volume เพือ activate osd และสร้าง service ให้ทำงานได้

ceph-volume lvm list
ceph-volume lvm activate -- all

หากเป็นเวอร์ชั่นเก่า ๆ เช่น Jewel จะใช้คำสั่ง

ceph-disk list
ceph-disk activate -- all

osd จะถูกเพิ่มกลับเข้าระบบ Ceph

หลังจากนั่นก็ให้สั่งปลดล๊อกการ rebalance ก็จะเสร็จสิ้นการเพิ่ม osd กลับเข้ามาในระบบ

# ceph osd unset noout

--

--

No responses yet