การนำเข้า ZFS ไม่พบพูลใด ๆ


11

ฉันมีพูล ZFS - มิเรอร์ที่มี 2 vdevs - ทำงานบนเซิร์ฟเวอร์ FreeBSD ตอนนี้ฉันมีดิสก์แผ่นเดียวจากมิเรอร์และฉันพยายามกู้คืนไฟล์จากมัน

ข้อมูล ZFS อยู่ในพาร์ติชัน GPT บนดิสก์

เมื่อฉันพยายามนำเข้าพูลไม่มีวี่แววว่ามีอยู่จริง ฉันลองหลายวิธีแล้ว แต่ไม่มีอะไรเกิดขึ้น

ฉันทำงานzdb -luบนพาร์ติชันแล้วและดูเหมือนว่าจะพบป้ายกำกับได้ดี

# zpool import
# zpool import -D
# zpool status
no pools available
# zpool import -f ztmp
cannot import 'ztmp': no such pool available
# zpool import 16827460747202824739
cannot import '16827460747202824739': no such pool available

ข้อมูลพาร์ติชัน:

# gpart list da0
Geom name: da0
modified: false
state: OK
fwheads: 255
fwsectors: 63
last: 3907029134
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: da0p1
   Mediasize: 65536 (64K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0
   rawuuid: d7a10230-8b0e-11e1-b750-f46d04227f12
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: (null)
   length: 65536
   offset: 17408
   type: freebsd-boot
   index: 1
   end: 161
   start: 34
2. Name: da0p2
   Mediasize: 17179869184 (16G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7aa40b7-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 17179869184
   offset: 82944
   type: freebsd-swap
   index: 2
   end: 33554593
   start: 162
3. Name: da0p3
   Mediasize: 1905891737600 (1.7T)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7b6a47e-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 1905891737600
   offset: 17179952128
   type: freebsd-zfs
   index: 3
   end: 3755999393
   start: 33554594
Consumers:
1. Name: da0
   Mediasize: 2000398934016 (1.8T)
   Sectorsize: 512
   Mode: r0w0e0

ป้ายกำกับ ZFS:

--------------------------------------------
LABEL 0
--------------------------------------------
    version: 5000
    name: 'ztmp'
    state: 0
    txg: 0
    pool_guid: 16827460747202824739
    hostid: 740296715
    hostname: '#############'
    top_guid: 15350190479074972289
    guid: 3060075816835778669
    vdev_children: 1
    vdev_tree:
        type: 'mirror'
        id: 0
        guid: 15350190479074972289
        whole_disk: 0
        metaslab_array: 30
        metaslab_shift: 34
        ashift: 9
        asize: 1905887019008
        is_log: 0
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 3060075816835778669
            path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            phys_path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            whole_disk: 1
            DTL: 5511
            resilvering: 1
        children[1]:
            type: 'disk'
            id: 1
            guid: 3324029433529063540
            path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            phys_path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            whole_disk: 1
            DTL: 3543
            create_txg: 4
            resilvering: 1
    features_for_read:
    create_txg: 0
Uberblock[0]
    magic = 0000000000bab10c
    version = 5000
    txg = 0
    guid_sum = 1668268329223536005
    timestamp = 1361299185 UTC = Tue Feb 19 10:39:45 2013

(ฉลากอื่น ๆ เป็นสำเนาที่แน่นอน)

มีการสนทนาของปัญหาที่ทำให้เกิดเสียงคล้ายกันในเธรดเก่านี้ ฉันลองใช้labelfixเครื่องมือของ Jeff Bonwick (พร้อมอัปเดตจากโพสต์นี้ ) แต่ดูเหมือนว่าไม่ได้แก้ปัญหา

ความคิดใด ๆ


2
ไดรฟ์ถูกถอดออกจากกระจกแทนที่จะแยกออก ปรากฏว่าเป็นสาเหตุของปัญหา ส่วนที่เหลือของกระจกไม่มีอยู่อย่างน่าเสียดาย
squidpickles

1
ฉันไม่รู้ว่านี่เป็นฟอรัมที่เหมาะสมสำหรับสิ่งนี้เพราะ 'คำตอบ' ของคำถามเกี่ยวข้องกับการลองผิดลองถูกมากมาย สำหรับตอนนี้ให้ลอง 'zpool import -d </ dev / path / to / disk>' -D แสดงรายการพูลที่ถูกทำลาย -d ใช้อาร์กิวเมนต์ตำแหน่งของดิสก์เพื่อดูและสามารถระบุได้หลายครั้งในบรรทัดคำสั่ง (แต่ในกรณีของคุณจะต้องใช้เพียงครั้งเดียวตามที่คุณมี แต่ดิสก์เดียว) . ดูสิ่งที่ทำ
Nex7

1
คุณอาจถูกต้องเกี่ยวกับเรื่องนี้ไม่ใช่ฟอรัมที่เหมาะสม และใช่ฉันได้พยายามด้วย-dและ-Dตัวเลือกจะไม่มีประโยชน์
squidpickles

1
หากคุณลองกับ -d <disk dev path รวมถึง partition> และมันไม่แสดงขึ้นมาให้ลองทุกอย่างอีกครั้ง แต่ในระบบปฏิบัติการ illumos ถ้าสิ่งนั้นยังมองไม่เห็นฉันก็ไม่เป็นความคิด คุณอาจจำเป็นต้องมีผู้เชี่ยวชาญด้านการกู้คืนข้อมูลถ้าข้อมูลมีค่าเป็นเงินหรือเริ่มดูรหัส (src.illumos.org) ในขณะที่อยู่บนอนุพันธ์ของ Illumos และ dtrace'ing คำสั่งการนำเข้า zpool เพื่อดูเส้นทางที่ใช้และลอง เพื่อหาสาเหตุที่ไม่เห็นสระว่ายน้ำของคุณ
Nex7

2
@ GrahamPerrin ฉันทำมันได้แล้ว ฉันแก้ไขแหล่งที่มา ZFS ในการติดตั้ง FreeBSD ของฉันและทำให้พวกเขาผ่านการตรวจสอบสติทั้งหมด หลังจากปิดใช้งานได้เพียงพอฉันก็สามารถนำเข้ากลุ่มได้ ใครบางคนต้องผ่านการตรวจสอบสติของตัวเอง ...
ปลาหมึก

คำตอบ:


6

สำหรับการอ้างอิงในอนาคตเพียงทำ zpool import -a (จะค้นหาทั้งหมด) โดยปกติจะช่วยได้เช่นกันเมื่อ zpool / zfs fs ไม่รู้จัก


ฉันเห็นของฉันอยู่ในแคชด้วย แต่การพยายามทำเช่นนี้ไม่ได้ผล ฉันกำลังสำรองไฟล์แคชของฉันพยายามและไม่ใช้มันและเพื่อบังคับให้ทำเช่นนั้น ฯลฯ จะตรวจสอบสิ่งที่เกรแฮมแนะนำไว้ข้างต้น
Brian Thomas

4

จากคำอธิบาย (จากโปสเตอร์เปิด):

ฉันแก้ไขแหล่งที่มาของ ZFS ในการติดตั้ง FreeBSD ของฉันและทำให้พวกเขาผ่านการตรวจสอบสติทั้งหมด หลังจากปิดใช้งานได้เพียงพอฉันก็สามารถนำเข้ากลุ่มได้


1

ฉันทำให้การกำหนดค่า ZFS ของฉันแย่ลง น่าเสียดายที่ฉันจำไม่ได้ว่าฉันทำอะไร (ฉันเปลี่ยนฮาร์ดแวร์มาบ้างแล้วฉันก็สับสนไม่เหมือนฉัน!) แต่มันใช้ได้ผลกับฉัน ฉันใช้ XigmaNAS (nas4free) และคำสั่งทั้งหมดด้านล่างนี้ออกผ่านเทอร์มินัล

ความทรงจำที่คลุมเครือเกี่ยวกับสิ่งที่ฉันทำ (และไม่ได้ทำ):

  • ไม่ได้ส่งออกพูลใด ๆ
  • อาจมีการลบ (ทำลาย) พูล

อาการ:

  1. ใน Web GUI ดิสก์สามารถนำเข้าและรับรู้โดยอัตโนมัติว่าเป็น zpool (ไม่ใช่รูปแบบหรือ UFS เป็นต้น)
  2. อย่างไรก็ตามส่วน GUI ZFS ไม่สามารถตรวจจับ zpool ดังนั้นฉันไม่สามารถนำเข้ากลุ่มโดยเพียงแค่กดปุ่ม การบังคับให้นำเข้าไม่ทำงานเช่นกัน
  3. ข้อมูลสมาร์ทเกี่ยวกับดิสก์นี้ดูทั้งหมดใน GUI ฉันไม่คิดว่าดิสก์เสียหายทางร่างกาย
  4. ในส่วนข้อมูล GUI da1แสดงดิสก์เป็น นี่เป็นข้อมูลที่เพียงพอที่ฉันต้องการก่อนที่จะไปที่สถานี
  5. คำเตือนผู้ใช้รายอื่น: หากคุณประสบปัญหาเกี่ยวกับ GUI ให้หยุดการปฏิบัติการทำลายล้างทันที เช่นการสร้าง vdev ใหม่หรือลองกับรูปแบบดิสก์อื่น ๆ ไปที่เทอร์มินัล
  6. ในเทอร์มินัลนี่คือคำสั่งและผลลัพธ์ที่พยายามทำ

    • zpool import -a กล่าวว่า no pool available to import
    • zpool statusพูดว่าno pools available(ภาษาที่แตกสลาย? lol.)
    • gpart list -a ไม่แสดง da1
    • gpart list da1 กล่าวว่า gpart: no such geom: da1
    • zpool list กล่าวว่า no pools available
    • glabel list -a ไม่แสดงพูลใด ๆ ใน da1
    • zdb -l /dev/da1สามารถพิมพ์สองป้ายในda1ดังนั้นดิสก์ของฉันไม่ตาย
    • zpool import -Dบอกว่าสระว่ายน้ำda1ถูกทำลายและอาจนำเข้าได้

สารละลาย:

เรียกใช้zpool import -D -f (poolname)แก้ไขปัญหาได้

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