Якщо ви натиснули на посилання на цю тему: Дякую!
У мене є така настройка:
6x 500 Гб HDD-накопичувачі
1x 32 ГБ NVME-SSD (Intel Optane)
Я використовував bcache для налаштування SSD як пристрою кешування, а всі інші шість дисків - це резервні пристрої. Зрештою, що було на місці, я відформатував шість HHD з btrfs в RAID5. Все працює так, як очікувалося останні 7 місяців.
На сьогоднішній день у мене є запасний 6-ти дисковий накопичувач на 2 ТБ, і я хочу замінити старі диски об'ємом 500 ГБ по черзі. Тому я почав з першого, видаливши його з btrfs. Це добре працювало, у мене там проблем не було. Після цього я чисто відокремив порожній диск від bcache, все одно добре, тому я його видалив. Ось командні лінії для цього:
sudo btrfs device delete /dev/bcacheX /media/raid
cat /sys/block/bcacheX/bcache/state
cat /sys/block/bcacheX/bcache/dirty_data
sudo sh -c "echo 1 > /sys/block/bcacheX/bcache/detach"
cat /sys/block/bcacheX/bcache/state
Після цього я встановив один із накопичувачів 2 ТБ, приєднав його до bcache та додав його до рейду. Наступним кроком було збалансування даних на новому диску. Будь ласка, дивіться командні рядки:
sudo make-bcache -B /dev/sdY
sudo sh -c "echo '60a63f7c-2e68-4503-9f25-71b6b00e47b2' > /sys/block/bcacheY/bcache/attach"
sudo sh -c "echo writeback > /sys/block/bcacheY/bcache/cache_mode"
sudo btrfs device add /dev/bcacheY /media/raid
sudo btrfs fi ba start /media/raid/
Баланс справно працював, поки до нового диска не було записано ~ 164 Гб, це приблизно 50% даних, які потрібно збалансувати. Раптом на диску з’являються помилки запису. Рейд повільно став непридатним (я працював 3 ВМ RAID під час балансування). Я думаю, що це працювало деякий час завдяки SSD, який займався написанням записів. В якийсь момент врівноваження припинилося, і я зміг лише вбити ВМ. Я перевірив I / Os на дисках і SSD виплюнув постійну 1,2 ГБ / с зчитувану. Я думаю, що bcache якимось чином доставив дані до btrfs, і він там відхилився і знову запитав, але це лише здогадка. У будь-якому разі я закінчив скидання хоста і фізично відключив зламаний диск і поставив новий на місце. Я також створив на ньому резервний пристрій bcache і видав таку команду для заміни несправного диска:
sudo btrfs replace start -r 7 /dev/bcache5 /media/raid
Файлову систему потрібно встановити для читання / запису, щоб ця команда працювала. Зараз він робить свою роботу, але дуже повільно, близько 3,5 Мб / с. На жаль, syslog повідомляє про багато таких повідомлень:
...
scrub_missing_raid56_worker: 62 callbacks suppressed
BTRFS error (device bcache0): failed to rebuild valid logical 4929143865344 for dev (null)
...
BTRFS error (device bcache0): failed to rebuild valid logical 4932249866240 for dev (null)
scrub_missing_raid56_worker: 1 callbacks suppressed
BTRFS error (device bcache0): failed to rebuild valid logical 4933254250496 for dev (null)
....
Якщо я спробую прочитати файл з файлової системи, команда output-output не працює з простою помилкою вводу / виводу, і в syslog відображаються щось подібне до цього:
BTRFS warning (device bcache0): csum failed root 5 ino 1143 off 7274496 csum 0xccccf554 expected csum 0x6340b527 mirror 2
Поки так добре (чи погано). Поки що це зайняло 4,3% заміни. Не було повідомлено про помилки читання чи запису для процедури заміни ("btrfs status status"). Я дозволю його до своєї речі до кінця. До того, як перший диск 2 ТБ не вдався, було записано 164 ГБ даних відповідно до "шоу файлової системи btrfs". Якщо я перевіряю кількість даних, записаних на новий накопичувач, 4,3% представляють близько 82 ГБ (згідно / proc / discstats). Я не знаю, як це інтерпретувати, але все одно.
І ось нарешті мої запитання: Якщо команда заміни завершиться успішно, що мені робити далі. Скраб? Баланс? Ще одна резервна копія? ;-) Ви бачите щось, що я зробив неправильно в цій процедурі? Чи означають попередження та помилки, повідомлені з btrfs, що дані втрачені? :-(
Ось додаткова інформація ( відредагована ):
$ sudo btrfs fi sh
Total devices 7 FS bytes used 1.56TiB
Label: none uuid: 9f765025-5354-47e4-afcc-a601b2a52703
devid 0 size 1.82TiB used 164.03GiB path /dev/bcache5
devid 1 size 465.76GiB used 360.03GiB path /dev/bcache4
devid 3 size 465.76GiB used 360.00GiB path /dev/bcache3
devid 4 size 465.76GiB used 359.03GiB path /dev/bcache1
devid 5 size 465.76GiB used 360.00GiB path /dev/bcache0
devid 6 size 465.76GiB used 360.03GiB path /dev/bcache2
*** Some devices missing
$ sudo btrfs dev stats /media/raid/
[/dev/bcache5].write_io_errs 0
[/dev/bcache5].read_io_errs 0
[/dev/bcache5].flush_io_errs 0
[/dev/bcache5].corruption_errs 0
[/dev/bcache5].generation_errs 0
[/dev/bcache4].write_io_errs 0
[/dev/bcache4].read_io_errs 0
[/dev/bcache4].flush_io_errs 0
[/dev/bcache4].corruption_errs 0
[/dev/bcache4].generation_errs 0
[/dev/bcache3].write_io_errs 0
[/dev/bcache3].read_io_errs 0
[/dev/bcache3].flush_io_errs 0
[/dev/bcache3].corruption_errs 0
[/dev/bcache3].generation_errs 0
[/dev/bcache1].write_io_errs 0
[/dev/bcache1].read_io_errs 0
[/dev/bcache1].flush_io_errs 0
[/dev/bcache1].corruption_errs 0
[/dev/bcache1].generation_errs 0
[/dev/bcache0].write_io_errs 0
[/dev/bcache0].read_io_errs 0
[/dev/bcache0].flush_io_errs 0
[/dev/bcache0].corruption_errs 0
[/dev/bcache0].generation_errs 0
[/dev/bcache2].write_io_errs 0
[/dev/bcache2].read_io_errs 0
[/dev/bcache2].flush_io_errs 0
[/dev/bcache2].corruption_errs 0
[/dev/bcache2].generation_errs 0
[devid:7].write_io_errs 9525186
[devid:7].read_io_errs 10136573
[devid:7].flush_io_errs 143
[devid:7].corruption_errs 0
[devid:7].generation_errs 0
$ sudo btrfs fi df /media/raid/
Data, RAID5: total=1.56TiB, used=1.55TiB
System, RAID1: total=64.00MiB, used=128.00KiB
Metadata, RAID1: total=4.00GiB, used=2.48GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
$ uname -a
Linux hostname 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ btrfs --version
btrfs-progs v4.15.1
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
Дякую ще раз за прочитання та сподіваємось ваші коментарі / відповіді!
EDIT 2
Щойно завершено "Заміна пристрою". Це було поруч із позначкою 9%, я думаю, що цей відсоток відповідає письмовій кількості даних на накопичувачі: 164 Гб від загального розміру 1,82 TiB. Таким чином, 100% означатиме повний 2-ТБ рецелемант. Отже, ось додатковий вихід:
$ btrfs replace status -1 /media/raid/
Started on 30.Oct 08:16:53, finished on 30.Oct 21:05:22, 0 write errs, 0 uncorr. read errs
$ sudo btrfs fi sh
Label: none uuid: 9f765025-5354-47e4-afcc-a601b2a52703
Total devices 6 FS bytes used 1.56TiB
devid 1 size 465.76GiB used 360.03GiB path /dev/bcache4
devid 3 size 465.76GiB used 360.00GiB path /dev/bcache3
devid 4 size 465.76GiB used 359.03GiB path /dev/bcache1
devid 5 size 465.76GiB used 360.00GiB path /dev/bcache0
devid 6 size 465.76GiB used 360.03GiB path /dev/bcache2
devid 7 size 1.82TiB used 164.03GiB path /dev/bcache5
Читання файлів досі перервано з помилками вводу / виводу, syslog все ще показує:
BTRFS warning (device bcache0): csum failed root 5 ino 1143 off 7274496 csum 0x98f94189 expected csum 0x6340b527 mirror 1
BTRFS warning (device bcache0): csum failed root 5 ino 1143 off 7274496 csum 0xccccf554 expected csum 0x6340b527 mirror 2
Тож я вважаю, що найнешкідливіша дія - це скраб лише для читання, я тільки почав процес. Помилки та попередження заповнюють системний журнал:
$ sudo btrfs scrub start -BdrR /media/raid # -B no backgroud, -d statistics per device, -r read-only, -R raw statistics per device
$ tail -f /var/log/syslog
BTRFS error (device bcache0): bdev /dev/bcache5 errs: wr 0, rd 0, flush 0, corrupt 2848, gen 0
BTRFS warning (device bcache0): checksum error at logical 4590109331456 on dev /dev/bcache5, physical 2954104832, root 5, inode 418, offset 1030803456, length 4096, links 1 (path: VMs/Virtualbox/Windows 10 Imaging VMs/Windows 10 Imaging/Windows 10 Imaging-fixed.vdi)
BTRFS error (device bcache0): bdev /dev/bcache5 errs: wr 0, rd 0, flush 0, corrupt 2849, gen 0
BTRFS warning (device bcache0): checksum error at logical 4590108811264 on dev /dev/bcache5, physical 2953977856, root 5, inode 1533, offset 93051236352, length 4096, links 1 (path: VMs/Virtualbox/vmrbreb/vmrbreb-fixed.vdi)
BTRFS error (device bcache0): bdev /dev/bcache5 errs: wr 0, rd 0, flush 0, corrupt 2850, gen 0
BTRFS warning (device bcache0): checksum error at logical 4590109335552 on dev /dev/bcache5, physical 2954108928, root 5, inode 418, offset 1030807552, length 4096, links 1 (path: VMs/Virtualbox/Windows 10 Imaging VMs/Windows 10 Imaging/Windows 10 Imaging-fixed.vdi)
BTRFS error (device bcache0): bdev /dev/bcache5 errs: wr 0, rd 0, flush 0, corrupt 2851, gen 0
BTRFS warning (device bcache0): checksum error at logical 4590108815360 on dev /dev/bcache5, physical 2953981952, root 5, inode 621, offset 11864412160, length 4096, links 1 (path: VMs/Virtualbox/Win102016_Alter-Firefox/Win102016_Alter-Firefox-disk1.vdi)
BTRFS error (device bcache0): bdev /dev/bcache5 errs: wr 0, rd 0, flush 0, corrupt 2852, gen 0
BTRFS warning (device bcache0): checksum error at logical 4590109339648 on dev /dev/bcache5, physical 2954113024, root 5, inode 418, offset 1030811648, length 4096, links 1 (path: VMs/Virtualbox/Windows 10 Imaging VMs/Windows 10 Imaging/Windows 10 Imaging-fixed.vdi)
BTRFS error (device bcache0): bdev /dev/bcache5 errs: wr 0, rd 0, flush 0, corrupt 2853, gen 0
BTRFS warning (device bcache0): checksum error at logical 4590109343744 on dev /dev/bcache5, physical 2954117120, root 5, inode 418, offset 1030815744, length 4096, links 1 (path: VMs/Virtualbox/Windows 10 Imaging VMs/Windows 10 Imaging
Мої питання досі залишаються: що мені робити далі. Скраб? Баланс? Я зробив щось зовсім не так? Як інтерпретувати помилки та застереження з скрабу лише для читання, чи може btrfs змогти їх виправити?
edit
ліворуч, щоб змінити оригінальну публікацію.
uname -a
і btrfs --version
слід також додавати.