LINUX.ORG.RU

Сообщения Vark

 

Не монтируется XFS на RAID/Сломанная ФС или сломанный RAID

Прошу помочь.

Есть у меня на домашнем сервере софтовый рэйд 5 (mdadm) из 4-х винтов по 3ТБ каждый и XFS на весь рэйд. В основном файлопомойка. Служил без проблем. На днях один из винтов умер. Мне на это пришло уведомление, но сами данные были доступны и в общем все работало. Оно и понятно, что так и должно было быть, ведь это raid5. На выходных, т.е. сегодня, я решил что надо посмотреть какой именно винт сдох и не нашел ничего умнее, чем отключив демона mdadm вырубить сервер и попробовать физически отключать по одному винты, запускать потом и смотреть какие sdX «исчезли» (монитор к нему не подключен, все делал через ssh). Думаю логика понятна. Но в процессе, как я понял, выпендрился BIOS - порядок дисков поменялся и когда я вернул как было, то raid показывался как неактивный с 3 винтами с меткой (S) у каждого.

В общем после гугления я сделал так:

mdadm --stop /dev/md0
mdadm --assemble --scan -v

После такого raid вроде ожил. Но после перезагрузки системы снова был неактивным. Я пробовал заменять в /etc/mdadm.conf на выхлоп mdadm --examine --scan, но с ним почему-то не определялось в /dev/md0. В общем в итоге со старым /etc/mdadm.conf оно завелось и решил, что проблема решена, надо только замонтировать разделы. Тут я вспомнил, что все экперименты по восстановлению рейда делал не закоментировав монтирование в /etc/fstab, но по идее это не должно было приводить к проблемам, ведь все это время монтирование не должно было проходить. Возможно я ошибался. Когда я попробовал замонтировать вручную, то получил такое:

# mount /dev/md0 /files
mount: mount /dev/md0 on /files failed: Structure needs cleaning

Гугление оптимизма не добавило. Вот что выдал xfs_repair /dev/md0:

Phase 1 - find and verify superblock...
        - reporting progress in intervals of 15 minutes
Phase 2 - using internal log
        - zero log...
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed.  Mount the filesystem to replay the log, and unmount it before
re-running xfs_repair.  If you are unable to mount the filesystem, then use
the -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.

Я боюсь использовать -L. Я пытался нагуглить что именно в данном случае означает очистка журнала. Если пропадут последние изменения допустим за несколько часов, то пофиг. Терять данные очень не хочется.

Кстати монтирование read only с norecovery тоже не вышло - пишет туже ошибку.

Винт на замену еще не купил, но судя по симптомам это может не помочь.

Приведу /proc/mdstat на момент сбоя, но когда все работало

Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath] 
md0 : active raid5 sdc1[0](F) sdb1[4] sde1[3] sda1[1]
      8790792192 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [_UUU]
      
unused devices: <none>
и на текущий
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] [linear] [multipath] 
md0 : active raid5 sdb1[0] sdd1[3] sda1[1]
      8790792192 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      
unused devices: <none>

Еще от mdadm на текущий момент:

# mdadm --examine --scan
ARRAY /dev/md0 UUID=45944250:b5a10965:72b3103c:136c2f80
ARRAY /dev/md/data  metadata=1.2 UUID=0b86cf4c:34ccaddd:0a50085a:384810a3 name=dark-river:data
# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=dark-river:data UUID=0b86cf4c:34ccaddd:0a50085a:384810a3
И из /etc/mdadm.conf:
ARRAY /dev/md0 metadata=1.2 name=dark-river:data UUID=0b86cf4c:34ccaddd:0a50085a:384810a3

Меня здесь смущает, что у mdadm --examine --scan два ARRAY с разными UUID и если эти две строки скопировать в /etc/mdadm.conf заместо той, что выше, то /dev/md0 нет, а только md127 (точно номер не помню) как автоматически определенный и в режиме только на чтение.

А так mdadm рапортует, что у него все отлично, ну кроме того, что одного устройства не хватает (DegradedArray). Могу показать другие выхлопы, просто и так очень много текста вышло. Честно говоря не понимаю почему такое произошло.

 , ,

Vark
()

kernel module testing

Здравствуйте господа.

Такой вопрос: есть ли на просторах интернета какой-то готовый фреймворк для тестирования собственноручно написанных модулей для линукс ядра? Ну или отработанная технология. Ну т.е. вот пишем мы модуль и хотим покрыть его юнит тестами. Гугление ничего вразумительного мне на дало. Возможно плохо гуглил.

Vark
()

ZFS или RAID5+LVM2: что лучшего для домашнего NAS?

У меня дилемма что выбрать в качестве эм ... способа хранения данных на нескольких винтах для собственного NAS. Хотелось бы услышать мнения людей, на практике использующих такие вещи как ZFS и/или RAID5+LVM2. Вообще еще есть BTRFS, но что-то мне "сыкотно" использовать ее на текущий момент для данных, которые не хочу терять.

Итак выбор у меня сейчас такой: 1) OpenSolaris(NexentaCore)/ZFS 2) Linux/RAID5+LVM2

Хочется иметь следующее: хранилище данных, устойчивое более-менее к вылету одного из физических носителей (попросту винчестеров): или a) чтобы можно было заменить на другой и продолжить работу или b) хотя бы чтобы при вылете одного девайса я не терял ВСЕ данные, как например будет при "чистом" LVM2. Второй вариант потери данных все же менее желателен. При этом очень хотелось бы иметь возможность наращивания объема данных с приемлемой потерей полезного объема физических носителей. Т.е. допустим у меня 3 винта по 1ТБ на RAID5, т.е. я буду иметь "чистых" 2ТБ в использовании и 1ТБ "теряю", но купив еще 2 по 1ТБ и добавив их к массиву, я буду иметь уже 4ТБ чистыми и 1ТБ в потере. Это как я понял принцип работы RAID5. Также хотелось бы иметь возможность делать снапшоты и было бы неплохо не зависеть от размера физических носителей, т.е. чтобы можно было прицепить например винт на 1,5ТБ.

Такие вот хотелки. С RAID5+LVM2 не реализуемо последняя хотелка и меня насторожили рассказы о долгих часах ребилда массива. А, еще слышал про большой оверхед от LVM2 по части производительности. Про ZFS пока мало прочел, но утверждается, что тамошний RAIDZ нельзя расширить, можно только добавить еще один в пул, а это больно жирно будет мне кажется для дома, а делать обычные зеркала тоже жирновато.

Я знаю, что RAID5 не отменяет бэкапов и не надо рассказывать про mhddfs.

И пожалуйста без фанатизма, мне линукс и ближе и понятней, но я готов "героически осилить" OpenSolaris, если надо будет.

Vark
()

RSS подписка на новые темы