Ein kleiner Teil der Hintergrundgeschichte:
Ich habe ein kleines Mediendateisystem, auf dem ich verschiedene Filme und Fernsehsendungen speichere, die für mein HTPC-Setup verwendet werden. Dies wurde ursprünglich mit btrfs
einem externen 1-TB-WD-Laufwerk eingerichtet.
Später habe ich beschlossen, ein anderes Laufwerk zu kaufen, um diesem Dateisystem RAID1-Spiegelungsfunktionen zu verleihen. Dieses Laufwerk ist ein Seagate Barracuda (2 TB, BARRACUDA 7200.14 FAMILY). Leider war dies keine gute Wahl für die Fahrt. Das Laufwerk entwickelte in Kürze große Mengen an Lesefehlern, obwohl BTRFS diese korrigieren konnte.
In letzter Zeit hat die Anzahl der Lesefehler von diesem Laufwerk zugenommen, und sein Zustand hat sich stetig verschlechtert. BTRFS stürzt jetzt ab:
kernel: RSP: 0018:ffff88005f0e7cc0 EFLAGS: 00010282
kernel: RIP: 0010:[<ffffffffa0081736>] [<ffffffffa0081736>] btrfs_check_repairable+0xf6/0x100 [btrfs]
kernel: task: ffff88001b5c4740 ti: ffff88005f0e4000 task.ti: ffff88005f0e4000
kernel: Workqueue: btrfs-endio btrfs_endio_helper [btrfs]
kernel: CPU: 1 PID: 3136 Comm: kworker/u8:3 Tainted: G O 4.5.3-1-ARCH #1
kernel: invalid opcode: 0000 [#1] PREEMPT SMP
kernel: kernel BUG at fs/btrfs/extent_io.c:2309!
kernel: ------------[ cut here ]------------
kernel: BTRFS info (device sdc1): csum failed ino 73072 extent 1531717287936 csum 3335082470 wanted 3200325796 mirror 0
kernel: ata3: EH complete
kernel: BTRFS error (device sdc1): bdev /dev/sda3 errs: wr 0, rd 18, flush 0, corrupt 0, gen 0
kernel: blk_update_request: I/O error, dev sda, sector 2991635296
Ich möchte das fehlerhafte Laufwerk aus dem RAID1-Array entfernen und auf keine Redundanz auf einem einzelnen Laufwerk zurückgreifen. Leider scheint es an der Dokumentation zu fehlen, wie dies getan werden kann.
Mir ist bekannt, dass man folgendes ausführen kann:
sudo btrfs balance start -dconvert=single /media
das Datenprofil in den single
Modus zu konvertieren , aber ich bin nicht sicher, wo die Daten platziert werden. Da eines der Laufwerke ausfällt, möchte ich sicherstellen, dass BTRFS nicht alle Daten auf dem guten Laufwerk pflichtgemäß löscht, und eine einzelne Kopie auf dem schlechten Laufwerk ablegen - stattdessen möchte ich einfach tun, als ob das andere Laufwerk nie existiert hätte (wie in, konvertiere zurück zu meinem alten Setup)
Das geht nicht:
$ sudo btrfs device delete /dev/sda3 /media
ERROR: error removing device '/dev/sda3': unable to go below two devices on raid1
Was soll ich tun? Hilfe wäre sehr dankbar.
TL; DR: hat mit 1 Laufwerk in BTRFS begonnen single
, ein weiteres Laufwerk hinzugefügt, es erstellt RAID1
, ein anderes Laufwerk ist jetzt fehlerhaft. Wie kann ich mit nur einem Laufwerk (INSBESONDERE dem als gut bekannten) zurückkehren single
?
dconvert=single
nur ein Teil das tut, was ich befürchtet habe, wird die bekannte gute Kopie gelöscht. :(