สถานการณ์ที่น่ากลัว - ระบบไฟล์ติดตั้งพร้อมกันโดยอินสแตนซ์ระบบปฏิบัติการอิสระหลายตัว


14

ฉันจะออกจากสถานการณ์นี้อย่างปลอดภัยได้อย่างไร

รายละเอียดดังนี้

เซิร์ฟเวอร์ xen มีอุปกรณ์บล็อกที่จัดสรรให้กับ VMs แต่อุปกรณ์เหล่านี้ยังได้รับการติดตั้งภายใน Xen

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

VM guest OS มองเห็นเส้นทางผ่านอุปกรณ์หลอก PowerPath (จัดสรรเป็นอุปกรณ์ phy: block ไปยัง domU)

อุปกรณ์บางอย่างถูกจัดรูปแบบเป็น ext2 และ reiserfs

ไม่จำเป็นต้องอธิบายให้ฉันฟังถึงความเสี่ยงของการทุจริตของระบบไฟล์ที่เกี่ยวข้อง

ฉันกลัวว่าแม้เพียงแค่ unmounting ระบบแฟ้มอาจทำให้เกิดความเสียหายและรู้สึกว่าจุดนี้การดึงไฟจากโฮสต์เป็นตัวเลือกที่ปลอดภัยที่สุด

โปรดทราบว่าแอปพลิเคชันฐานข้อมูล Oracle ส่วนใหญ่ใน VMs ทั้งหมดยังคงทำงานและใช้งานอยู่

ฉันค้นพบสิ่งนี้เมื่อตรวจสอบการใช้งาน CPU สูงใน dom0 มีกระบวนการ "ค้นหา" ที่ไม่สามารถทำได้ซึ่งมี cwd -> / media / disk-12 ซึ่งถูกเมาท์จาก / dev / sdf1 ซึ่งเป็นของ / dev / emcpowerr

ก่อนที่จะมีคนถามครั้งเดียวที่ฉันเห็นกระบวนการไม่สามารถฆ่าและใช้ CPU และ RAM ต่อไป (ซึ่งแตกต่างจากกระบวนการตาย / ซอมบี้) คือเมื่อมี I / Os ที่ค้างชำระเช่นซิงค์กลับ แต่ยังไม่ได้อยู่บนดิสก์ . โดยทั่วไปเกิดขึ้นบนเทป I / O

ข้อเสนอแนะ !?

ป.ล. ฉันคาดว่าจะมีอุปกรณ์ "สงวน" ติดตั้งครั้งเดียวเพื่อป้องกันสิ่งนี้? หรือว่าเป็นไปไม่ได้บน Linux?

แก้ไข: ประการแรกฉันเชื่อว่า KDE ภายใน hypervisor) เป็นผู้ร้าย ดูเหมือนว่า KDE กำลังติดตั้งอุปกรณ์ที่สามารถบันทึกเพื่อสร้างไอคอนเดสก์ท็อป สิ่งเดียวกันนั้นไม่ได้เกิดขึ้นกับเซิร์ฟเวอร์ Xen อื่น ๆ แต่เซิร์ฟเวอร์อื่นทั้งหมดกำลังใช้ SLES และ KDE รุ่นเก่ากว่ามาก ... V4 ดูเหมือนจะเป็นเซิร์ฟเวอร์ที่ถูกละเมิดซึ่งมี 3.4 พฤติกรรมที่ดีกว่า)

นอกจากนี้ VM ที่ไม่สำคัญสองตัวก็หยุดทำงาน หลังจากปิดพวกเขาพวกเขาจะไม่บูตขึ้นอีกครั้งเนื่องจากความเสียหายของระบบไฟล์ VM หลัก / การผลิตยังคงทำงานอยู่และฐานข้อมูลยังคงทำงานอยู่ แต่ชัดเจนว่านี่เป็นระเบิดเวลา ลูกค้ากำลังพยายามสร้างสภาพแวดล้อมบน VM อื่นบนเซิร์ฟเวอร์อื่น แต่ติดอยู่กับปัญหาในการกำหนดค่าองค์ประกอบบางอย่างดังนั้นเราจึงรอ ...

ไม่ว่าในกรณีใดฉันรู้สึกว่าไม่มีคำตอบใดที่เกินกว่า "แนวปฏิบัติที่ดีที่สุดจะปิดตัวลงอย่างสง่างาม" และฉันหวังว่าจะได้สิ่งที่เป็นรูปธรรมมากขึ้น ... ในทุกกรณีฉันรู้สึกว่าสถานการณ์นี้อาจรับประกันได้มากขึ้น ความคิด การปิดระบบจะทำให้ IO ค้างอยู่โดยเฉพาะอย่างยิ่งการอัพเดตข้อมูลเมตาของระบบไฟล์จากไฮเปอร์ไวเซอร์ที่จะซิงค์และทำให้เกิดความเสียหายกับระบบไฟล์ที่สำคัญ?


1
และตอนนี้การสำรองข้อมูลใด ๆ ที่ดำเนินการก่อน "ปิดระบบ" อาจเป็นเพียงข้อมูลสำรองที่เสียหาย แต่ในสถานการณ์นี้มีแนวโน้มว่าเมตาดาต้าระบบไฟล์เสียหายมากกว่าเนื้อหาไฟล์
Johan

ฉันเกรงว่าคุณจะสูญเสียข้อมูลบางอย่างไม่ว่าในกรณีใด ๆ การปิดโฮสต์ออกทางกายภาพหรือยกเลิก VMs อย่างแรงอาจทำให้เกิดผลลัพธ์ที่ไม่พึงประสงค์ในการทำทุกอย่าง (เช่นแม้แต่ระบบไฟล์ที่ติดตั้งเพียงครั้งเดียว) ฉันอาจจะพยายามที่จะยุติทุกอย่างอย่างหมดจดเท่าที่จะทำได้เพื่อลดความสูญเสีย และแน่นอนว่าจะไม่เกิดขึ้นอีก
peterph

สำหรับการป้องกัน IIUC คุณอาจลองตั้งค่าการอนุญาตบนอุปกรณ์ใน dom0 เมื่อแขกเปิดขึ้นมา แต่เนื่องจากสิทธิ์ fs (ในไฟล์อุปกรณ์) สามารถถูกข้ามโดยรูท (เว้นแต่ว่าคุณมีเคอร์เนลที่ได้รับการแก้ไข) ไม่ต้องการความช่วยเหลือ
peterph

1
เกี่ยวกับสคริปต์การโพสต์ของคุณ: หากอุปกรณ์สามารถมองเห็นได้ผ่านหลายเส้นทางเคอร์เนลอาจไม่ทราบด้วยซ้ำว่ามันเป็นอุปกรณ์เดียวกันดังนั้นมันจะ "สำรอง" ได้อย่างไร สำหรับการส่งออกอุปกรณ์จาก dom0 ไปยัง domUs หลายเครื่องจะช่วยให้คุณทำเช่นนั้นได้เพราะคุณอาจต้องการที่จะทำมันตามวัตถุประสงค์ (เช่นกับระบบไฟล์ที่รองรับหรือติดตั้งแบบอ่านอย่างเดียวทุกที่)
Celada

@Celada ฉันคิดว่ายกเลิก แต่มีวิธีการ "ล็อค" อุปกรณ์: PowerPath ควร (ทำในกรณีของ Solaris) สำรองพาเรนต์พา ธ ของอุปกรณ์ทั้งหมด (ในเวลาที่เริ่มต้น) นอกจากนี้คำสั่ง "สำรอง" SCSI ได้รับการจัดการโดยอุปกรณ์เป้าหมายดังนั้นเมื่อมีการจองเป้าหมายแล้วควรปฏิเสธที่จะอนุญาตให้สำรองกับเส้นทางใด ๆ สำหรับอุปกรณ์นั้น อย่างน้อยนั่นก็เป็นความเข้าใจที่ จำกัด ของฉัน
Johan

คำตอบ:


2

หากมีการเขียนดิสก์จากจุดเมานท์เดียวจะไม่มีอันตรายใด ๆ เกิดขึ้น ทำการปิดระบบใหม่ทั้งหมด (สำรองข้อมูลจากสถานะระงับหากคุณต้องการ) แก้ไขการเมาท์ อย่ารันอะไรเลยยกเว้นแอพที่จำเป็นบน Dom0 ถ้า OTOH พาร์ติชั่นกำลังถูกเขียนจากหลาย ๆ พา ธ นั่นคือ BAD และแย่ลงในตอนที่สอง ดึงปลั๊ก


0

ฉันไม่มีเหตุผลที่ชัดเจน แต่ความรู้สึกของฉันบอกว่าสิ่งต่อไปนี้อาจเป็นวิธีที่ดีที่สุด:

  1. ปิดแอปพลิเคชัน
  2. คัดลอกข้อมูลทั้งหมดจาก VM ผ่านเครือข่ายไปยังตำแหน่งสำรอง
  3. ถอนการติดตั้งระบบไฟล์จากภายใน VM
  4. ปิด VM (มีเพียง VM เดียวที่ทำงานบนโฮสต์นี้ในตอนนี้)
  5. ตรวจสอบให้แน่ใจว่าไม่มีการตั้งค่า domUs ให้เริ่มโดยอัตโนมัติ
  6. ดึงพลังออกจากโฮสต์เพื่อป้องกันไฮเปอร์ไวเซอร์จากการดำเนินการ "ปิด" การซิงค์ I / O ที่โดดเด่น ฯลฯ
  7. บูตเครื่อง VM โดยหวังว่าไฮเปอร์ไวเซอร์เองจะรอดชีวิตจากพลังงัด
  8. หากล้มเหลวให้สร้างสภาพแวดล้อมขึ้นใหม่ (ดิสก์สำหรับบูตของ VM เป็นไฟล์ แต่จุดเชื่อมต่อข้อมูลอยู่บนดิสก์ภายนอกที่จัดสรรเป็นอุปกรณ์บล็อก)
  9. ตรวจสอบว่า hypervisor กำลังติดตั้งระบบไฟล์ใด ๆ ที่เป็นของ domUs ยกเลิกการเชื่อมต่อสิ่งเหล่านี้ก่อนที่จะเริ่ม domU ใด ๆ )
  10. ปิดการติดตั้ง KDE อัตโนมัติ
  11. เริ่มต้น VM และบังคับให้ตรวจสอบ FS เต็มรูปแบบ

ทางเลือกที่ 11: เริ่มต้น VM และติดตั้งระบบไฟล์โดยไม่มี fsck เต็ม

เหตุผลก็คือฉันไม่ต้องการให้ Xen hypervisor มีโอกาสอีกมากที่จำเป็นอย่างยิ่งที่จะทำให้เกิดความเสียหายในระบบไฟล์ domU


0

ฉันไม่ใช่ผู้เชี่ยวชาญของเซนและยังไม่เคยมีประสบการณ์มาก่อน แต่วิธีการของฉันถ้าฉันอยู่ในสถานที่ของคุณจะเป็น: ก่อนอื่นฉันรู้ว่าฉันอาจสูญเสียข้อมูล (อาจจะทั้งหมด); สองฉันจะพยายามสร้างภาพรวมแล้วระงับ VMs คืนค่าพวกเขาในสภาพแวดล้อมที่แตกต่างกันอย่างปลอดภัย
ฉันไม่ต้องการให้ความหวังผิด ๆ กับคุณ แต่ฉันคิดว่าคุณจะโชคดีถ้าคุณสามารถกู้คืนสิ่งใดได้

คำเตือน : การปฏิบัติตามคำแนะนำเหล่านี้อาจทำให้คุณสูญเสียข้อมูลทั้งหมด มันขึ้นอยู่กับคุณว่ามันคุ้มค่ากับความเสี่ยงหรือไม่

โชคดีมากที่แอปพลิเคชันของคุณยังคงทำงานได้เนื่องจากข้อมูลที่ใช้อยู่นั้นอยู่ในหน่วยความจำที่ไม่แน่นอน คุณควรพยายามใช้ประโยชน์จากสถานการณ์นี้ (ลองประเมินว่าเป็นไปตามแอพ) และส่งออกข้อมูลสดไปยังเครือข่ายที่ใช้ร่วมกันหากแอปพลิเคชันมีคุณสมบัติดังกล่าว หากข้อมูลใด ๆ อยู่บนดิสก์ฟังก์ชั่นการส่งออกนี้อาจ "ล็อค" เหมือนfindคำสั่งหรือความผิดพลาดของคุณ(และแอปพลิเคชันหรือระบบปฏิบัติการล่ม) เนื่องจากข้อมูลดิสก์ที่มีการเปลี่ยนแปลง / เสียหาย

จากนั้นคุณสามารถพยายามที่จะทำภาพสดคำแนะนำในบทความต่อไปนี้: การสร้างภาพรวมใน Xen ฉันจะไปหาสแน็ปช็อตต่อไบต์แม้ว่ามันจะติดอยู่กับfindคำสั่งของคุณมาก... อย่างไรก็ตามฉันจะไม่ให้ความหวังมากขนาดนี้

ก่อนที่จะทำคำสั่งก่อนหน้านี้คุณควรจะอ่านเอกสารนี้จากซิทริกซ์ซึ่งจะช่วยให้ภาพรวมความเข้าใจใน Xen (PDF)

ฉันขอให้คุณโชคดี.


ขอขอบคุณ. ลูกค้ามีการส่งออกฐานข้อมูล ฉันคิดว่าพวกเขาเพิ่งใช้ FTP เพื่อลบมันออกจาก VM แต่เป็นไปได้ที่จะเชื่อมต่อเครือข่ายและส่งออกโดยตรงไปที่นั้น
Johan

ฉันใช้ความคิดในการระงับ VM แล้วคัดลอกแบบเต็มไปยังโฮสต์อื่นแล้วลอง a) ดำเนินการต่อจากโหมดสลีปหรือ b) บูตมันตามด้วยการรีบูตและ fsck แนวคิดก็คือเนื่องจากฉันยังคงมี VM ที่ถูกระงับบนโฮสต์เดิมฉันอาจสามารถดำเนินการต่อได้หากการคัดลอกไม่ทำงานบนโฮสต์อื่น
Johan

FWIW ปัญหาที่เกิดขึ้นกับการกลับไปที่การสำรองข้อมูลก็คือมันกลัวว่าการสำรองข้อมูลทั้งหมดในช่วงสองสามเดือนที่ผ่านมาจะเสียหาย
Johan

@Johan สิ่งนี้อาจเป็นจริงมากกว่านั้นส่วนใหญ่หากไม่ใช่การสำรองข้อมูลทั้งหมด (เนื่องจากปัญหาที่เกิดขึ้น) อาจเสียหายได้ อาจเป็นจริงสำหรับการส่งออกฐานข้อมูล ขอให้โชคดีอีกครั้งคุณจะต้องการมัน!
Huygens
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.