ich bin neu hier und bei Debian. Ich habe ein Problem mit BTRFS, bei dem ich Hilfe suche.
Bei meinem im Aufbau befindlichen neuen Heimserver setze ich ein BTRFS-RAID 1 mit ursprünglich zwei, jetzt drei Platten als Datenlager ein. Bei meinen Tests während der Installation habe ich festgestellt, dass das Dateisystem ausgehängt wird, wenn ich die *erste* Platte entferne. Entferne ich die zweite oder dritte Platte bleibt das Dateisystem eingehängt. Die Festplatten sind in Hot-Swap-Rahmen, damit ist das leicht zu testen.
Mein mit einem RAID 1 verfolgtes Ziel war aber ja gerade, dass das System auch bei Ausfall einer Platte verfügbar bleibt. Natürlich werde ich die SMART-Daten und das gesamte System überwachen und jede Nacht Backups auf ein anderes System erstellen.
Hat hier vielleicht jemand eine Idee, warum das Dateisystem bei Verlust der ersten Platte ausgehängt wird? Hängt das vielleicht mit dem Mountpoint zusammen?
Versionen
Hier die genutzte Software:
Code: Alles auswählen
# uname -a
Linux myserver 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux
# cat /etc/debian_version
10.7
# btrfs version
btrfs-progs v4.20.1
Partitionen
Das System startet von nvme0n1p2 auf einer SSD, gemountet als /boot. Dann kann ich per SSH die Partition nvme0n1p3 entschlüsseln. Darauf ist eine LVM volume group mit einem volume member mit BTRFS und einem Subvolume @root das nach / gemountet wird und einem Subvolume @snapshots das nach /mnt/snapshots/system gemountet wird. Um SWAP auch verschlüsselt zu haben, ist es auch in der LVM volume group. Ich weiß, dass die SSD ein single point of failure ist, aber das ist der Rest des Systems wie das Mainboard auch. Ich erwarte dort aber eine wesentliche geringere Ausfallwahrscheinlichkeit als bei einer drehenden Festplatte und ich kann die Daten auf der SSD aufgrund der geringen Datenmenge und der extern gelagerten Snapshots viel schneller wiederherstellen.
Die Daten sollen auf einem BTRFS volume gespeichert werden, das aus drei Festplatten sda, sdb und sdc besteht. Ich habe mit nur zwei Festplatten angefangen. Nachdem ich den Fehler des Aushängens bemerkt habe, habe ich eine dritte eingebaut um auszuschließen, dass es daran liegt dass das Minimum für ein RAID 1 notwendiger Platten unterschritten wird. Das Verhalten hat sich aber nicht geändert.
Nach Auftreten des Problems mit dem Aushängen habe ich zur Reduktion der Komplexität das BTRFS volume direkt auf den drei Festplatten erstellt. Später sollen diese jeweils verschlüsselt, automatisch mit einer LUKS-Schlüsseldatei beim Booten entschlüsselt und darauf das BTRFS volume erstellt werden.
Code: Alles auswählen
# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
└─sda1 btrfs data 3f7ee395-f804-4e5e-99cb-2c0941b829e2 3.7T 0% /mnt/snapshots/data
sdb
└─sdb1 btrfs data 3f7ee395-f804-4e5e-99cb-2c0941b829e2
sdc
└─sdc1 btrfs data 3f7ee395-f804-4e5e-99cb-2c0941b829e2
nvme0n1
├─nvme0n1p1 vfat 93C2-6713 505.7M 1% /boot/efi
├─nvme0n1p2 ext2 6a07e2ea-9ab8-4180-a9fd-fd9e043ffa83 170.5M 23% /boot
└─nvme0n1p3 crypto_LUKS c73f13ea-ef20-4ebf-92d6-dbd0f5cd6d44
└─nvme0n1p3_crypt LVM2_member Z2mZtj-1lh2-kxau-v03N-XHcp-MSlJ-DCPtz8
├─system-root btrfs system 68af359d-8f8c-4b30-a41c-85ff2a9bb01a 93.2G 1% /mnt/snapshots/system
└─system-swap_1 swap 71ce1c6b-971d-4315-87b9-91ed45224abe [SWAP]
Für das BTRFS volume data habe ich bereits die Option degraded ergänzt. Auch die Angabe aller devices habe ich probiert wie im Wiki beschrieben. Ich habe verschiedene Varianten für die erste Angabe <file system> ausprobiert: /dev/mapper/data-a11, LABEL=data, UUID=3f7ee395-f804-4e5e-99cb-2c0941b829e2. Alles mit gleichem Ergebnis.
Code: Alles auswählen
# cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
# volumes on LVM-volume system-root
/dev/mapper/system-root / btrfs defaults,ssd,subvol=@root 0 0
/dev/mapper/system-root /mnt/snapshots/system btrfs defaults,ssd,subvol=@snapshots 0 0
# volumes on BTRFS-volume data
# /dev/mapper/data-a11 /var btrfs defaults,degraded,subvol=@var 0 0
# /dev/mapper/data-a11 /home btrfs defaults,degraded,subvol=@home 0 0
LABEL=data /mnt/snapshots/data btrfs defaults,degraded,subvol=@snapshots 0 0
# UUID=3f7ee395-f804-4e5e-99cb-2c0941b829e2 /mnt/snapshots/data btrfs defaults,degraded,subvol=@snapshots 0 0
# /boot was on /dev/nvme0n1p2 during installation
UUID=6a07e2ea-9ab8-4180-a9fd-fd9e043ffa83 /boot ext2 defaults 0 2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=93C2-6713 /boot/efi vfat umask=0077 0 1
/dev/mapper/system-swap_1 none swap sw 0 0
Code: Alles auswählen
# cat /proc/self/mountinfo | grep /dev/
23 22 0:20 / /dev/pts rw,nosuid,noexec,relatime shared:3 - devpts devpts rw,gid=5,mode=620,ptmxmode=000
25 0 0:22 /@root / rw,relatime shared:1 - btrfs /dev/mapper/system-root rw,ssd,space_cache,subvolid=266,subvol=/@root
27 22 0:25 / /dev/shm rw,nosuid,nodev shared:4 - tmpfs tmpfs rw
46 22 0:18 / /dev/mqueue rw,relatime shared:27 - mqueue mqueue rw
48 22 0:44 / /dev/hugepages rw,relatime shared:29 - hugetlbfs hugetlbfs rw,pagesize=2M
108 25 0:22 /@snapshots /mnt/snapshots/system rw,relatime shared:59 - btrfs /dev/mapper/system-root rw,ssd,space_cache,subvolid=258,subvol=/@snapshots
113 25 259:2 / /boot rw,relatime shared:61 - ext2 /dev/nvme0n1p2 rw
116 113 259:1 / /boot/efi rw,relatime shared:63 - vfat /dev/nvme0n1p1 rw,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro
[b]119 25 0:48 /@snapshots /mnt/snapshots/data rw,relatime shared:65 - btrfs /dev/sda1 rw,degraded,space_cache,subvolid=256,subvol=/@snapshots[/b]
sda wird entfernt:
Code: Alles auswählen
Jan 1 14:20:12 myserver kernel: [ 482.120376] ata1: SATA link down (SStatus 0 SControl 300)
Jan 1 14:20:18 myserver kernel: [ 487.504870] ata1: SATA link down (SStatus 0 SControl 300)
Jan 1 14:20:23 myserver kernel: [ 492.880940] ata1: SATA link down (SStatus 0 SControl 300)
Jan 1 14:20:23 myserver kernel: [ 492.880951] ata1.00: disabled
Jan 1 14:20:23 myserver kernel: [ 492.880985] ata1.00: detaching (SCSI 0:0:0:0)
Jan 1 14:20:23 myserver kernel: [ 492.881693] sd 0:0:0:0: [sda] Stopping disk
Jan 1 14:20:23 myserver kernel: [ 492.881714] sd 0:0:0:0: [sda] Start/Stop Unit failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Jan 1 14:20:23 myserver systemd[1]: Stopped target Local File Systems.
Jan 1 14:20:23 myserver systemd[1]: Unmounting /mnt/snapshots/data...
Jan 1 14:20:23 myserver systemd[895]: mnt-snapshots-data.mount: Succeeded.
Jan 1 14:20:23 myserver kernel: [ 492.924536] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 1, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924539] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 2, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924544] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 3, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924588] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 4, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924593] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 5, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924601] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 6, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924602] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 7, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924605] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 8, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924608] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 9, flush 0, corrupt 0, gen 0
Jan 1 14:20:23 myserver kernel: [ 492.924613] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 0, rd 10, flush 0, corrupt 0, gen 0
Jan 1 14:20:24 myserver kernel: [ 494.025952] BTRFS warning (device sda1): lost page write due to IO error on /dev/sda1
Jan 1 14:20:24 myserver kernel: [ 494.025962] BTRFS warning (device sda1): lost page write due to IO error on /dev/sda1
Jan 1 14:20:24 myserver kernel: [ 494.025969] BTRFS warning (device sda1): lost page write due to IO error on /dev/sda1
Jan 1 14:20:24 myserver kernel: [ 494.026108] BTRFS error (device sda1): error writing primary super block to device 1
Jan 1 14:20:24 myserver systemd[1]: mnt-snapshots-data.mount: Succeeded.
Jan 1 14:20:24 myserver systemd[1]: Unmounted /mnt/snapshots/data.
sdc wird entfernt:
Code: Alles auswählen
# tail -n 100 /var/log/syslog
Jan 1 14:09:14 myserver kernel: [ 266.234210] ata3: SATA link down (SStatus 0 SControl 300)
Jan 1 14:09:20 myserver kernel: [ 271.794813] ata3: SATA link down (SStatus 0 SControl 300)
Jan 1 14:09:25 myserver kernel: [ 277.170836] ata3: SATA link down (SStatus 0 SControl 300)
Jan 1 14:09:25 myserver kernel: [ 277.170861] ata3.00: disabled
Jan 1 14:09:25 myserver kernel: [ 277.170900] ata3.00: detaching (SCSI 2:0:0:0)
Jan 1 14:09:25 myserver kernel: [ 277.171539] sd 2:0:0:0: [sdc] Synchronizing SCSI cache
Jan 1 14:09:25 myserver kernel: [ 277.171571] sd 2:0:0:0: [sdc] Synchronize Cache(10) failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Jan 1 14:09:25 myserver kernel: [ 277.171573] sd 2:0:0:0: [sdc] Stopping disk
Jan 1 14:09:25 myserver kernel: [ 277.171578] sd 2:0:0:0: [sdc] Start/Stop Unit failed: Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Jan 1 14:10:39 myserver kernel: [ 350.600411] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 1, rd 0, flush 0, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.600502] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 2, rd 0, flush 0, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.600575] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 3, rd 0, flush 0, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.600658] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 4, rd 0, flush 0, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.610032] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 4, rd 0, flush 1, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.610219] BTRFS warning (device sda1): lost page write due to IO error on /dev/sdc1
Jan 1 14:10:39 myserver kernel: [ 350.610222] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 5, rd 0, flush 1, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.610290] BTRFS warning (device sda1): lost page write due to IO error on /dev/sdc1
Jan 1 14:10:39 myserver kernel: [ 350.610292] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 6, rd 0, flush 1, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.610357] BTRFS warning (device sda1): lost page write due to IO error on /dev/sdc1
Jan 1 14:10:39 myserver kernel: [ 350.610359] BTRFS error (device sda1): bdev /dev/sdc1 errs: wr 7, rd 0, flush 1, corrupt 0, gen 0
Jan 1 14:10:39 myserver kernel: [ 350.645655] BTRFS error (device sda1): error writing primary super block to device 3
Ich habe kein vergleichbares Problem hier im Forum, im Debian- oder Kernel-Wiki oder bei Google gefunden und bin mit meinem Latein am Ende. Ich würde mich über jeden Tipp freuen!