Score:0

ฉันจะทำให้ LVM configs ทนต่อการบู๊ตด้วยไดรฟ์ USB ที่แนบมาได้อย่างไร

ธง gi

การตั้งค่า: DELL PowerEdge R520, oVirt Node 4.4.1 x86_64

#พีวีเอส
  PV VG Fmt Attr PSize Pฟรี   
  /dev/sda2 onn_ovirt01 lvm2 a-- 105.26g 20.77g
  /dev/sda3 VG_he_nfs lvm2 a-- <100.00g <10.00g
  /dev/sda4 VG_data_nfs lvm2 a-- <1.50t <206.00g

#lsblk
...

sdb 8:16 0 1.4T 0 ดิสก์ 
ââsdb1 8:17 0 1.4T 0 ส่วน /ส่งออก/nfs/สำรองข้อมูล

ปัญหา: เมื่อระบบรีบูต ไดรฟ์สำรอง 1.4T ที่เชื่อมต่อกับ sata-to-usb จะกลายเป็น sda โดยที่ lvm ไม่พบพาร์ติชันที่จำเป็นสำหรับฟิสิคัลวอลุ่ม จากนั้นระบบจะบู๊ตเข้าสู่โหมดช่วยเหลือซึ่งฉันต้องเข้าสู่ระบบผ่านจอภาพ/แป้นพิมพ์ที่แนบมา ยกเลิกการต่อเชื่อมและนำไดรฟ์ sata-to-usb ออก แสดงความคิดเห็นว่ารายการออกจาก fstab ถอดปลั๊กออก และรีบูตระบบ จากนั้น เมื่อบู๊ตอย่างถูกต้องด้วยอุปกรณ์ที่ถูกต้องเป็น sda ฉันต้องยกเลิกทุกสิ่งที่ฉันทำในโหมดช่วยเหลือด้วยอุปกรณ์ sata-to-usb

ทุกอย่างคือ fstab ถูกกำหนดไว้แล้วให้เมานต์โดย UUID หรือ /dev/mapper/

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

Score:0
ธง za
  1. LVM ไม่เก็บเส้นทางของอุปกรณ์ UUID ของส่วนประกอบจะถูกจัดเก็บไว้ใน LVM superblock และ UUID เหล่านี้ใช้เพื่อระบุส่วนประกอบโดยเฉพาะ (PVs, VGs, LV) LVM เพียงแค่สแกนอุปกรณ์บล็อกที่มีอยู่ทั้งหมด (อุปกรณ์ที่ได้รับอนุญาตให้สแกนได้รับการกำหนดค่าใน /etc/lvm/lvm.conf) ตรวจหาฟิสิคัลวอลุ่มและรวบรวมกลุ่มวอลุ่มจากอุปกรณ์เหล่านั้น มันไม่ได้ดูว่าฟิสิคัลวอลุ่มประเภทใด / เส้นทางอุปกรณ์ใดในเวลานี้ มีประสิทธิภาพมากในการจัดทำดัชนีอุปกรณ์ใหม่และอื่น ๆ ดังนั้นจะค้นหาข้อมูลของคุณหากคุณย้ายวอลุ่มไปที่ /dev/cciss/cXdYpZ (ไดรเวอร์บล็อก HP/Compaq SmartArray เก่าสร้างอุปกรณ์ดังกล่าว) หรือไปที่ /dev/hdXY หรือ /dev/sdXY หรือ /dev/mapper/...(สิ่งใดก็ตามที่สร้างขึ้นบน DM จะวางโหนดอุปกรณ์ไว้ที่นั่น â crypto, multipath ฯลฯ), /dev/md/... (Linux MD RAID) และอื่นๆ ข้อกังวลของคุณไม่ถูกต้องและปัญหาของคุณอยู่ที่อื่น

  2. สาเหตุของปัญหาของคุณอาจมาจากความช้าของ USB มันมีเวลาแฝงมาก ฮาร์ดไดรฟ์ภายนอกยังเริ่มต้นได้ช้ามาก (ทำเพื่อจำกัดการใช้พลังงานที่เพิ่มขึ้นในระหว่างการหมุน) USB ไม่เกี่ยวกับประสิทธิภาพ แต่เกี่ยวกับความทนทานในมือของผู้ใช้ที่ไม่มีประสบการณ์ ดังนั้นจึงเริ่มต้นได้ช้า คุณต้องกำหนดค่าสคริปต์ init ของคุณ (น่าจะเป็น initramfs init script) เพื่อให้เกิดความล่าช้า/หมดเวลามาก เพื่อให้อุปกรณ์ USB มีเวลาเพียงพอในการหมุนและชำระ

  3. สาเหตุทั่วไปอีกประการหนึ่งคือการกำหนดค่า bootloader ที่ไม่ถูกต้อง ตัวอย่างเช่น มันสามารถคาดหวังว่าจะพบข้อมูลใน "พาร์ติชันแรกของฮาร์ดไดรฟ์ตัวแรก" และถ้า "ฮาร์ดไดรฟ์ตัวแรก" เกิดขึ้นเป็นอุปกรณ์ที่ไม่ถูกต้อง ก็จะไม่มีการกำหนดค่าและอิมเมจเคอร์เนลที่จะบู๊ตและ โยนคุณเข้าไปใน ตัวโหลดบูต เปลือกกู้ภัย บรรทัดคำสั่งของเคอร์เนลหรือบางสิ่งที่ใส่ไว้ใน initramfs อาจเชื่อมโยงกับเส้นทางอุปกรณ์ที่เป็นรูปธรรม ดังนั้นการสลับอุปกรณ์ทำให้ไม่สามารถค้นหา / และทำให้คุณเข้าไป initramfs เปลือกกู้ภัย สังเกตว่าสิ่งเหล่านี้คือ แตกต่าง กู้ภัยหอยและความเข้าใจของ อันไหน คุณเห็นเป็นสิ่งสำคัญ

  4. RAID0 พร้อมอะไหล่เป็น oxymoron RAID0 ไม่มีความซ้ำซ้อน ไม่มีสถานะลดระดับที่กำหนดไว้ ไม่มีอะไรที่จะกู้คืนอาร์เรย์ให้อยู่ในสถานะที่เหมาะสมจากความล้มเหลวของอุปกรณ์ ดังนั้นอะไหล่สำรองจึงไม่สามารถช่วยได้ โดยทั่วไปปัญหาอุปกรณ์คอมโพเนนต์จะส่งผลให้เกิดการย้ายอาร์เรย์ทั้งหมดไปยังสถานะล้มเหลวโดยตรง ระดับ RAID อื่นๆ มีความซ้ำซ้อน โดยจะเปลี่ยนเป็นสถานะลดระดับก่อนในกรณีที่คอมโพเนนต์ล้มเหลว ดังนั้นจะได้รับประโยชน์จากอะไหล่ แต่ RAID0 ไม่มี

JayRugMan avatar
gi flag
ฉันได้รับ RAID 0 และ 1 สับสน ไดรฟ์ของฉันเป็นแบบมิเรอร์ ดังนั้น RAID 1 (ฉันแก้ไขด้านบนแล้ว) อย่างไรก็ตาม สิ่งที่คุณพูดเกี่ยวกับ RAID 0 นั้นสมเหตุสมผล ขอบคุณที่แจ้งให้ฉันแก้ไขรายละเอียดนั้นในคำถามของฉัน สำหรับส่วนที่เหลือ ทั้งหมดที่ฉันรู้ก็คือเมื่อฉันตรวจสอบ lsblk ในโหมดช่วยเหลือ ไดรฟ์ USB จะเป็น sda และ LVM ไม่พบข้อมูลระบบบน sdb ซึ่งเป็นตำแหน่งที่อุปกรณ์ RAID 1 ภายในถูกแมปเมื่อบูตด้วย USB-to-SATA เชื่อมต่อแล้ว USB ที่ช้าจะเอาชนะอุปกรณ์ภายในให้กลายเป็น sda ได้อย่างไร และเหตุใดสิ่งนี้จึงขึ้นอยู่กับทุกสิ่งที่คุณเขียน
JayRugMan avatar
gi flag
ตอนนี้ฉันไม่สามารถลองได้ แต่ดูเหมือนว่าถ้าฉันเพิ่มพาร์ติชั่น sdb ให้กับตัวกรอง LVM มันอาจจับข้อมูลระบบขณะบู๊ต แม้ว่า sda จะถูกแมปกับไดรฟ์สำรอง usb ของฉันก็ตาม ตอนนี้ ระบุเฉพาะ sda ในตัวกรองในการกำหนดค่า lvm เมื่อฉันกลับถึงบ้าน ฉันจะลองทำดู
Nikita Kipriyanov avatar
za flag
มันแปลกมากที่จะมี sda ในตัวกรองเท่านั้น การสแกน SCSI เป็นแบบอะซิงโครนัส จัดลำดับอุปกรณ์ใหม่ ซึ่งเป็นเรื่องปกติและคาดหวังไว้ *ไม่มีจุดหมาย* ที่จะอนุญาตเฉพาะการสแกนอุปกรณ์ sdX บางตัวและห้ามการสแกนอุปกรณ์อื่นๆ LVM ไม่ทำเช่นนี้โดยค่าเริ่มต้น ดังนั้นจึงต้องเป็นการตั้งค่าที่คุณกำหนดเอง
JayRugMan avatar
gi flag
อาจจะเป็นฉันเองที่เป็นคนทำ ฉันไม่รู้ (คงจะเป็นฉันเดา) ฉันจำไม่ได้ว่าทำอย่างนั้น ฉันได้เพิ่มพาร์ติชัน sdb ลงในตัวกรองและใช้งานได้ - พวกมันถูกสแกนและ LVM พบข้อมูลระบบได้ดี (ดูคำตอบที่ฉันโพสต์)
Nikita Kipriyanov avatar
za flag
มันเป็นความคิดที่ผิดอยู่แล้วที่จะสัมผัสมันตั้งแต่แรก เพียงเปลี่ยนกลับเป็นค่าเริ่มต้นของแพ็คเกจดั้งเดิม
Score:0
ธง gi

ฉันแก้ไขปัญหา สิ่งที่ฉันต้องทำคือเพิ่มพาร์ติชัน sdb ให้กับตัวกรอง /etc/lvm/lvm.conf:

เคยเป็น:

filter = ["a|^/dev/sda2$|", "a|^/dev/sda3$|", "a|^/dev/sda4$|", "r|.*|"]

เปลี่ยนไปเป็น:

filter = ["a|^/dev/sda2$|", "a|^/dev/sda3$|", "a|^/dev/sda4$|", "a|^/dev/sdb2$|" , "a|^/dev/sdb3$|", "a|^/dev/sdb4$|", "r|.*|"]

ใครก็ตามที่พยายามทำเช่นนี้ ตรวจสอบให้แน่ใจว่าคุณยืนยันการเปลี่ยนแปลงและสร้างแคชใหม่ด้วย vgscan

ไปครั้งแรกของฉัน (ลืม | หลังจาก $):

[root@host lvm]# vgscan
  ตัวคั่นไม่ถูกต้องที่ส่วนท้ายของ regex
  รูปแบบตัวกรองไม่ถูกต้อง "a|^/dev/sdb2$"
  สร้างตัวกรองอุปกรณ์ regex ไม่สำเร็จ

ไปครั้งที่สองของฉัน:

[root@host lvm]# vgscan
  พบกลุ่มวอลุ่ม "VG_data_nfs" โดยใช้ประเภทข้อมูลเมตา lvm2
  พบกลุ่มวอลุ่ม "VG_he_nfs" โดยใช้ประเภทข้อมูลเมตา lvm2
  พบกลุ่มวอลุ่ม "onn_ovirt01" โดยใช้ประเภทข้อมูลเมตา lvm2

ไดรฟ์ sata-to-usb ยังคงแสดงเป็น sda แต่ไม่เป็นไร - LVM ข้ามไปยังพาร์ติชัน sdb เมื่อไม่พบสิ่งใดใน sda ฉันต้องเมานต์ไดรฟ์ sata-to-usb ด้วยตนเอง แต่เพราะมันอยู่ใน /etc/fstab ถูกต้อง ฉันต้องออกเท่านั้น เมานต์ -a. ฉันจะต้องจัดการปัญหานี้ในภายหลังและรับชัยชนะนี้ไปก่อน

Nikita Kipriyanov avatar
za flag
นี่เป็นทางออกที่ไม่ดี ดีกว่าเพิ่มอุปกรณ์ `/dev/sd*` ทั้งหมดที่จะสแกน เป็นความคิดที่ผิดที่จะกรองตามดัชนีอุปกรณ์ดังที่ฉันอธิบายไว้ในคำตอบ จะเกิดอะไรขึ้นถ้าคุณเพิ่มไดรฟ์ USB อื่นหรือไดรฟ์แบบลอจิคัล RAID อื่น วิธีที่ดีที่สุดคือเปลี่ยน `lvm.conf` เป็นค่าเริ่มต้นของการแจกจ่าย เชื่อฉันเถอะ **คุณไม่จำเป็นต้องสัมผัสสิ่งนั้นจริงๆ**
JayRugMan avatar
gi flag
คุณกำลังจะบอกว่าถ้าฉันไม่ใช้ตัวกรองเลย มันจะใช้ได้ไหม ฉันจะลองดูเมื่อมีโอกาส ยังไงก็ตาม เหตุใดจึงยืนกรานเกี่ยวกับการไม่ใช้ฟังก์ชันที่จัดเตรียมโดย lvm เซิร์ฟเวอร์นี้เป็นของฉันและฉันรู้ว่าอะไรจะเสียบเข้ากับมันและอะไรจะไม่เสียบ ฉันไม่กังวลแม้แต่น้อยเกี่ยวกับ _anything_ ที่ทำให้ยุ่งเหยิงนี้
Nikita Kipriyanov avatar
za flag
ฉันแนะนำให้ทิ้งไฟล์ไว้เหมือนตอนที่ตัวจัดการแพ็คเกจติดตั้ง ในการทำงานกับ Linux มากกว่า 20 ปี ฉันมีเคสเดียวที่น่าจะถูกต้องที่จะแตะต้องสิ่งนั้นในสภาพแวดล้อมแบบคลัสเตอร์ ฉันขอขอบคุณฟังก์ชันที่มีให้โดย LVM ฉันยังสนับสนุนการใช้พารามิเตอร์การกำหนดค่าตามวัตถุประสงค์ที่ตั้งใจไว้ คุณมีจุดประสงค์ใด ๆ ? คุณต้องการจำกัดการสแกนหาโวลุ่ม LVM เป็น sda เท่านั้น แม้ว่าที่จริงแล้วอุปกรณ์ sd มักจะถูกเปลี่ยนชื่อก็ตาม มันเลยทำให้เกิด "ปัญหา" ของคุณ ติดตามการเปลี่ยนแปลงของคุณและพิจารณาเปลี่ยนกลับเป็นอันดับแรกเมื่อมีสิ่งผิดปกติเกิดขึ้น

โพสต์คำตอบ

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