สรุป
หนึ่งใน ZFS ของฉันไม่สามารถนำเข้าได้อีกต่อไปเนื่องจากข้อความต่อไปนี้:
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
...
data1 UNAVAIL insufficient replicas
ฉันต้องการที่จะเข้าใจว่า "แบบจำลองไม่เพียงพอ" หมายถึงอะไรและหากมีวิธีการกู้คืนจากวิธีนี้อย่างปลอดภัยก่อนที่ฉันจะดึงการสำรองข้อมูลออกมาและสร้างพูลหน่วยเก็บข้อมูลขึ้นมาใหม่
ฉันต้องการที่จะเข้าใจสิ่งที่ทำให้เกิดสิ่งนี้และสิ่งที่ฉันสามารถทำได้เพื่อป้องกันสถานการณ์นี้ในอนาคต ฉันเข้าใจหิน ZFS แต่ในฐานะมือใหม่ ZFS มันน่ากลัวที่ฉันต้องดึงการสำรองข้อมูลออกมาสำหรับบางสิ่งบางอย่างที่ไม่น่ากลัวเหมือนการดึงไดรฟ์ออกจากกล่อง
พื้นหลัง
ฉันเพิ่งขับเคลื่อนกล่องนี้และดึงดิสก์ SATA sda ออกมา ฉันแน่ใจว่า 99% ว่าฉันปล่อยให้ระบบปิดตัวเองอย่างสมบูรณ์ก่อนที่จะถอดปลั๊กออกจากผนัง แต่เป็นไปได้ที่ฉันอาจจะปิดฮาร์ดไดรฟ์หากการปิดระบบใช้เวลานานเกินไป
เมื่อเสียบไดรฟ์กลับเข้าใหม่ฉันเชื่อว่าฉันเสียบกลับเข้าไปในพอร์ต SATA เดียวกันบนเมนบอร์ด แต่เป็นไปได้ที่ฉันอาจเสียบเข้ากับพอร์ตอื่น
กล่องยังมีดิสก์ PATA sdb รุ่นเก่าที่ติดตั้ง Debian เป็นระบบปฏิบัติการเพียงพาร์ติชัน ext
ในอดีตฉันจะบู๊ตพูลทั้งหมดของฉันจะถูกนำเข้าและติดตั้งไดรฟ์ข้อมูล ครั้งนี้ฉันไม่ได้อะไรเลย
ในวันนี้
เมื่อฉันบูทขึ้นมาฉันอยู่ที่หน้าจอเข้าสู่ระบบ GDM ตามปกติและรู้ว่าฉันไม่สามารถเข้าสู่ระบบได้ ฉันค้นพบในภายหลังว่าฉันไม่มีไดเรกทอรีบ้านของผู้ใช้เนื่องจากมันอยู่ในกลุ่มทั้งหมด
จากบรรทัดคำสั่งฉันค้นพบสิ่งต่อไปนี้:
# zfs list
no datasets available
# zpool list
no pools available
# zpool status
no pools available
ไดรฟ์ของฉันพร้อมใช้งาน; fdisk สร้างเอาต์พุตที่คาดหวังและฉันมีอุปกรณ์ / dev / sdaX และ / dev / sdbX ของฉัน
zpool import
ให้ผลลัพธ์ที่น่าสนใจ พูลอื่นรายงาน ONLINE แต่หนึ่งในคำถามนั้นรายงานสิ่งนี้:
pool: ...
id: ...
state: UNAVAIL
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
data1 UNAVAIL insufficient replicas
sda2 UNAVAIL
ฉันก็สามารถที่จะนำเข้าสระว่ายน้ำอื่น ๆ ที่จุดนี้ใช้แล้วดูทุกอย่างที่ดีกับพวกเขาด้วยzpool import poolname
zfs list
ไม่เช่นนั้นกับอันนี้:
# zpool import data1
cannot import 'data1': one or more devices are already in use
zpool import
แสดงผลลัพธ์เดียวกันสำหรับพูลนี้
ฉันคิดถึงการลบ/etc/zfs/zpool.cache
ไฟล์ ฉันส่งออกทุกอย่างแล้วตรวจสอบไดเรกทอรี:
# zpool export -a
# ls /etc/zfs
ไม่มี zpool.cache หลังจากส่งออกดังนั้นฉันเพียงแค่เริ่มระบบใหม่ (ฉันไม่รู้ว่าจะเกิดอะไรขึ้นถ้าฉันลบ zpool.cache ในขณะที่นำเข้าพูลดังนั้นฉันจึงไม่ลอง)
ผลลัพธ์เดียวกันหลังจากรีบูต พูลอื่นนั้นใช้ได้และไม่สามารถนำเข้าได้
zdb /dev/sda
และ / หรือzdb /dev/sda2
(สมมติว่าดิสก์ ZFS ที่มีปัญหา จริง ๆ แล้วระบบปฏิบัติการนั้นถูกระบุว่าเป็น / dev / sda หรือไม่ก็ปรับตามความเหมาะสม)?