Score:0

Synology - วอลุ่ม BTRFS ขัดข้อง & กู้คืนแล้ว ทำไมมันถึงพัง?

ธง gb

นี่คือการชันสูตรพลิกศพ ฉันจะให้ข้อมูลกับคนที่อาจมีปัญหานี้ในอนาคต

เหตุการณ์นี้เกิดขึ้นกับ Synology RS2818RP+ ที่รัน Synology DSM 6.2-25556 ระบบประกอบด้วย Xeon CPU และหน่วยความจำ ECC มี 8 x HUH721010ALE604 (HGST WD Ultrastar DC HC510 10TB 7200 RPM SATA) ที่มาพร้อมกับ RAID6 นพ อาร์เรย์ ระบบไฟล์คือ BTRFS

(โปรดทราบว่านี่ไม่ใช่ BTRFS RAID แต่เป็น RAID "ธรรมดา" ที่มี BTRFS อยู่ด้านบนเพื่อประโยชน์ต่างๆ เช่น การตรวจสอบผลรวม / ภาพรวม เป็นต้น)

เมื่อคืน เมื่อฉันได้รับอีเมลจาก NAS ที่กล่าวว่า

ไดรฟ์ข้อมูล 1 บนขัดข้อง เป็นไปได้ว่าไฟล์เพิ่มเติมอาจเสียหายภายใต้สถานการณ์นี้ โปรดไปที่ Storage Manager > Volume สำหรับข้อมูลเพิ่มเติม

Score:1
ธง gb

ฉันเยี่ยมชม WebGUI ไม่มีข้อผิดพลาดใดๆ ในระบบนอกจากปริมาณที่ออฟไลน์

  • ตรวจสอบสถานะ SMART ของแต่ละดิสก์แล้วและดูเหมือนปกติ
  • "Storage Manager" แสดงว่า "สุขภาพดี"
  • "Storage Pool" แสดงว่า "แข็งแรง"

มีเพียง "ระดับเสียง" เท่านั้นที่แสดงข้อผิดพลาด

ฉันตรวจสอบ SSH แล้ว mdadm --D /dev/md2 ซึ่งเป็นที่ที่อาร์เรย์ของฉันอยู่ มันแสดง สถานะ: สะอาด เสื่อมโทรม

ฉันตรวจสอบ dmesg และพบสิ่งนี้:

[5638907.327288] ------------[ ตัดตรงนี้ ]------------
[5638907.332247] คำเตือน: CPU: 3 PID: 10234 ที่ fs/btrfs/extent-tree.c:4207 btrfs_write_dirty_block_groups+0x365/0x390 [btrfs]()
[5638907.343601] BTRFS: ธุรกรรมถูกยกเลิก (ข้อผิดพลาด -2)
[5638907.343603] โมดูลที่เชื่อมโยงใน: nfsd exportfs rpcsec_gss_krb5 cifs udf isofs loop tcm_loop(O) iscsi_target_mod(O) target_core_ep(O) target_core_multi_file(O) target_core_file(O) target_core_iblock(O) target_core_mod(O) syno_extent_pool(PO) rod hid_generic usbhid hid usblp usb_storage denverton_synobios(PO) การซ้อนทับ exfat(O) btrfs synoacl_vfs(PO) hfsplus md4 hmac bnx2x(O) mdio mlx5_core(O) mlx4_en(O) mlx4_core(O) mlx_compat(O) qede(O) qed(O ) atlantic(O) tn40xx(O) i40e(O) ixgbe(O) be2net(O) igb(O) i2c_algo_bit e1000e(O) vxlan ip6_udp_tunnel udp_tunnel fuse vfat fat crc32c_intel aesni_intel glue_helper lrw gf128mul ablk_helper arc4 cryptd ecryptfs sha256_generic ecb aes_x86_64 authenc des_generic ansi_cprng cts md5 cbc cpufreq_powersave cpufreq_performance โปรเซสเซอร์ acpi_cpufreq cpufreq_stats
[5638907.425092] dm_snapshot dm_bufio crc_itu_t crc_ccitt Quota_v2 Quota_tree psnap p8022 llc นั่งอุโมงค์ 4 ip_tunnel ipv6 zram sg etxhci_hcd xhci_pci xhci_hcd uhci_hcd ehci_pci ehci_hcd usbcoreed usb_comnobiverton] [ยกเลิกการโหลดล่าสุด]
[5638907.448308] CPU: 3 PID: 10234 Comm: btrfs-transacti เสีย: P O 4.4.59+ #25556
[5638907.457047] ชื่อฮาร์ดแวร์: Synology Inc. RS2818RP+/Type2 - Board Product Name1, BIOS M.212 2019/11/01
[5638907.466571] 0000000000000000 ffff880068a0fc50 ffffffff812bf70d ffff880068a0fc98
[5638907.474851] fffffffffa0939b8d ffff880068a0fc88 ffffffff8104b7cd ffff8801704f9e00
[5638907.483132] ffff88003b616338 0000000000000001 00000000fffffffe ffff8801704f9f50
[5638907.491422] การติดตามการโทร:
[5638907.494179] [<ffffffff812bf70d>] dump_stack+0x4d/0x70
[5638907.499623] [<ffffffff8104b7cd>] alert_slowpath_common+0x7d/0xc0
[5638907.505932] [<ffffffff8104b859>] alert_slowpath_fmt+0x49/0x50
[5638907.511996] [<ffffffffa0892d45>] btrfs_write_dirty_block_groups+0x365/0x390 [btrfs]
[5638907.520056] [<ffffffffa0932df8>] commit_cowonly_roots+0x230/0x2d1 [btrfs]
[5638907.527250] [<ffffffffa08a90e8>] btrfs_commit_transaction+0x528/0xcb0 [btrfs]
[5638907.534793] [<ffffffffa08a9905>] ? start_transaction+0x95/0x3d0 [btrfs]
[5638907.541810] [<ffffffffa08a387c>] transaction_kthread+0x1ec/0x220 [btrfs]
[5638907.548915] [<ffffffffa08a3690>] ? btrfs_cleanup_transaction+0x510/0x510 [btrfs]
[5638907.556701] [<ffffffff810672a6>] kthread+0xc6/0xe0
[5638907.561883] [<ffffffff810671e0>] ? kthread_create_on_node+0x180/0x180
[5638907.568717] [<ffffffff81567abf>] ret_from_fork+0x3f/0x80
[5638907.574423] [<ffffffff810671e0>] ? kthread_create_on_node+0x180/0x180
[5638907.581346] ---[ สิ้นสุดการติดตาม 27185b26c2db1370 ]---
[5638907.586280] BTRFS: ข้อผิดพลาด (อุปกรณ์ md2) ใน btrfs_write_dirty_block_groups:4207: errno=-2 ไม่มีรายการดังกล่าว
[5638907.595721] ข้อมูล BTRFS (อุปกรณ์ md2): บังคับให้อ่านอย่างเดียว
[5638907.600997] คำเตือน BTRFS (อุปกรณ์ md2): ข้ามการคอมมิตของธุรกรรมที่ถูกยกเลิก
[5638907.608618] BTRFS: ข้อผิดพลาด (อุปกรณ์ md2) ใน cleanup_transaction:2019: errno=-2 ไม่มีรายการดังกล่าว
[5638907.617108] ข้อมูล BTRFS (อุปกรณ์ md2): delayed_refs ไม่มีรายการ

ดังนั้นข้อมูลจึงอยู่ที่นั่น และอาร์เรย์เป็นแบบอ่านอย่างเดียว งานวิจัยของฉันพาฉันไปที่ SuSe KB: https://www.suse.com/support/kb/doc/?id=000018769

ฉันอ้างอิงข้อผิดพลาดเดียวกันกับที่ฉันได้รับ BTRFS: ธุรกรรมถูกยกเลิก (ข้อผิดพลาด -2).

บทความระบุว่า

สิ่งที่ดีคือ เป็นคำเตือน ไม่ใช่ข้อผิดพลาดร้ายแรง คำเตือนเช่นนี้เช่น เกี่ยวกับโควต้า โดยทั่วไปจะเป็นรันไทม์เท่านั้นที่ได้รับการแก้ไขโดย BTRFS หลังจากที่มีการออกคำเตือน ไม่ใช่ปัญหาที่ไม่ดี

ซึ่งค่อนข้างอุ่นใจ

ฉันวิ่งก

syno_poweroff_task -d

เพื่อปิดบริการ Synology ทั้งหมดที่อาจเข้าถึงไดรฟ์ข้อมูล สิ่งนี้จะหยุด WebUI ฯลฯ แต่เปิด SSH ไว้

จากนั้นฉันก็ทำ

umount /volume1 

เพื่อหยุด I/O เป็นโวลุ่ม (แม้ว่าจะอยู่ในโหมด RO ต่อเอาต์พุตของ dmesg ข้างต้น. จากนั้นฉันก็ทำ btrfsck บน md2 อุปกรณ์. เอาต์พุตด้านล่าง

# btrfsck /dev/md2
เปิดฟีเจอร์ Syno caseless
กำลังตรวจสอบระบบไฟล์บน /dev/md2
UUID: 7a29febb-e9b5-4f77-afd7-4e1e10971340
ตรวจสอบขอบเขต
ตรวจสอบต้นไม้พื้นที่ว่าง
ตรวจสอบราก fs
ตรวจสอบ csums
ตรวจสอบการอ้างอิงรูท
พบ 30769182859264 ไบต์ที่ใช้ err คือ 0
ไบต์ csum ทั้งหมด: 44052
จำนวนไบต์ของต้นไม้ทั้งหมด: 50331648
ไบต์ต้นไม้ fs ทั้งหมด: 24477696
จำนวนไบต์ของต้นไม้ทั้งหมด: 23691264
ไบต์พื้นที่ว่าง btree: 1190925
บล็อกข้อมูลไฟล์ที่จัดสรร: 30769149861888
อ้างอิง 30769131089920

และใน dmesg:

[5644451.646580] ข้อมูล BTRFS (อุปกรณ์ md127): การใช้แผนผังพื้นที่ว่าง
[5644451.652561] ข้อมูล BTRFS (อุปกรณ์ md127): มีขอบเขตแคบ
[5644459.827213] ข้อมูล BTRFS (อุปกรณ์ md127): ตรวจสอบแผนผัง UUID

เมื่อดำเนินการเสร็จสิ้น ฉันเพียงแค่รีบูตระบบและทุกอย่างก็เป็นปกติ

ขณะนี้ฉันกำลังใช้การตรวจสอบความสอดคล้องของปริมาณ" ซึ่งฉันเชื่อว่าเป็น mdadm "resync" ที่ทำงานมาเกือบ 24 ชั่วโมงแล้วโดยไม่มีปัญหา

ฉันเดาว่าเป้าหมายของการสร้างโพสต์นี้คือเพื่อดูว่าใครก็ตามที่มีความรู้ความชำนาญเกี่ยวกับ btrfs มากกว่านี้เคยมีประสบการณ์นี้มาก่อนหรือไม่ และพวกเขามีความคิดใดๆ ไหมว่าอะไรเป็นสาเหตุของสิ่งนี้

spaceman-spiff avatar
ie flag
ดูเหมือนว่าสิ่งนี้จะทำบน DSM6 เนื่องจาก DSM7 ได้ลบคำสั่ง syno_poweroff_task มีความคิดอย่างไรเกี่ยวกับการดำเนินการนี้ใน DSM 7
rgb255_255_255 avatar
gb flag
@spaceman-spiff - ดูที่ https://community.synology.com/enu/forum/1/post/146217

โพสต์คำตอบ

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