ext4 na mdadm przywraca dane


5

Mam problem z konfiguracją serwera macierzystego. Problem polega na tym, że czasami, ale bardzo rzadko, powraca (z braku lepszego terminu) wszystkie moje dane z powrotem do wcześniejszego stanu (gdzieś między miesiącami a tygodniami wcześniej).

Konfiguracja to 4 TB ext4 na oprogramowaniu RAID 5 z 3 dyskami działającymi na Ubuntu 12.04 (Linux 3.2). Samba obsługuje pliki tej partycji.

/proc/mdstat mówi mi, że tablica jest zdrowa smartclt -H /dev/sdX mówi PASSED dla wszystkich urządzeń. Próbowałem znaleźć coś w dziennikach, ale nie mogłem znaleźć niczego podejrzanego.

Ostatnim razem, gdy wystąpił błąd, ponownie uruchomiłem serwer podczas korzystania z plików na ścinaniu fsck nie znalazłem żadnych błędów.

Natura błędu zdumiewa mnie. Ponieważ ext nie jest kopią zapisanego systemu plików, założyłbym, że coś takiego jest niemożliwe. Jeśli możesz pomyśleć o jakiejkolwiek diagnostyce, którą mogę uruchomić, nie wahaj się.

Chyba pytanie brzmi: co stało się z moimi danymi i jak mogę powstrzymać je przed ponownym działaniem?

-- edytować --

OK znalazłem błąd: Problem nie miał nic wspólnego z ext4. Problemem był sposób, w jaki zamontowałem urządzenie.

Mam raid 5 dla moich danych i raid 0 z kopią zapasową. Ale sposób, w jaki zamontowałem to na starcie, nie był w 100% stabilny; czasami kopia zapasowa była montowana jako główna.

Z /etc/fstab:

# main RAID array
/dev/md126p1 /media/Main        ext4    defaults        0       0

Z /etc/mdadm/mdadm.conf:

# definitions of existing MD arrays
ARRAY /dev/md/Main metadata=1.2 UUID=c2ccbd00:ce414404:0ee05911:eebe2832
ARRAY /dev/md/Backup metadata=1.2 UUID=b4973c41:e735e1c0:29e8be4b:4fe7c007 name=:Backup

Ktokolwiek może mi odpowiedzieć na to małe pytanie, dostaje nagrodę: Jaki jest najlepszy sposób na zainstalowanie kopii zapasowej i głównej w gwarantowany stabilny sposób.

--edytować--

/ dev / md / Backup:

    Version : 1.2
Creation Time : Sun Jun 19 15:45:35 2011
 Raid Level : raid0
 Array Size : 3907021824 (3726.03 GiB 4000.79 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Sun Jun 19 15:45:35 2011
      State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

 Chunk Size : 512K

       Name : :Backup
       UUID : b4973c41:e735e1c0:29e8be4b:4fe7c007
     Events : 0

 Number   Major   Minor   RaidDevice State
   0       8       33        0      active sync   /dev/sdc1
   1       8       81        1      active sync   /dev/sdf1

/ dev / md / Main:

    Version : 1.2
Creation Time : Sun Jun 12 02:13:25 2011
 Raid Level : raid5
 Array Size : 3907021568 (3726.03 GiB 4000.79 GB)
Used Dev Size : 1953510784 (1863.01 GiB 2000.40 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Mon Jan 28 19:00:45 2013
      State : active
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

     Layout : left-symmetric
 Chunk Size : 128K

       Name : :Neue RAID-Anordnung
       UUID : c2ccbd00:ce414404:0ee05911:eebe2832
     Events : 17846

 Number   Major   Minor   RaidDevice State
   0       8       49        0      active sync   /dev/sdd1
   1       8        1        1      active sync   /dev/sda1
   3       8       65        2      active sync   /dev/sde1

Czy możesz używać migawek lub narzędzia do tworzenia kopii zapasowych, które przywraca dane?
— Martin Schröder

@ MartinSchröder Dziękujemy za powtórkę. Nie ma uruchomionego narzędzia do tworzenia kopii zapasowych (robię teraz kopie zapasowe ręcznie). AFAIK ext4 nie obsługuje migawek (nie używam lvm).
— JustMaximumPower

Czy możesz podać swój mdadm --detail dla powyższych RAID? Dlaczego po prostu nie montujesz w / etc / fstab / dev / md / Main i amp; / dev / md / Backup?
— slm

nieużywany /dev/md/* był dokładnie błędem. Wierzę, że /dev/md* etykiety są nadawane pierwszemu superblokowi. Więc zgadzasz się, że używasz /dev/md/* etykiety działają zgodnie z oczekiwaniami?
— JustMaximumPower

Zawsze korzystałem z etykiet / dev / md * podczas montażu RAID. Jedyną inną różnicą, jaką widzę, jest to, że używam LVM na górze mojego / dev / md *. Ale to nie jest obowiązkowe.
— slm

Odpowiedzi:


3

Najlepszym sposobem jest zamontowanie za pomocą identyfikatorów UUID w swoim fstab:

UUID=c2ccbd00:ce414404:0ee05911:eebe2832 /media/Main ext4 defaults 0 0
UUID=b4973c41:e735e1c0:29e8be4b:4fe7c007 /media/Backup ext4 defaults 0 0

Jak wskazuje @Floyd, używanie etykiet jest również miłe, ponieważ możesz utworzyć nowe urządzenie z tymi samymi danymi i tą samą etykietą, jeśli chcesz coś zmienić. Więc możesz to zrobić

tune2fs -L RAIDMain /dev/disk/by-uuid/c2ccbd00:ce414404:0ee05911:eebe2832
tune2fs -L RAIDBackup /dev/disk/by-uuid/b4973c41:e735e1c0:29e8be4b:4fe7c007

a potem w twoim fstab:

LABEL=RAIDMain /media/Main ext4 defaults 0 0
LABEL=RAIDBackup /media/Backup ext4 defaults 0 0

1
UUID jest zdecydowanie najlepszym rozwiązaniem, chyba że chcesz podać nazwy partycji.
— Floyd

Musiałem użyć identyfikatora UUID systemu plików, a nie tablicy. Ale poza tym nie żyje. użyłem sudo blkid aby znaleźć UUID partycji.
— JustMaximumPower

1

Jak powiedziałem w moim komentarzu do OP, wszystko, co musisz zrobić, to po prostu użyć ścieżek zadeklarowanych w /etc/mdadm.conf plik. Możesz użyć UUID lub ETYKIETA , tak jak @ Stefan Seidel wspomniane, ale tak naprawdę nie są konieczne.

Przykład /etc/mdadm.conf

ARRAY   /dev/md0  level=raid1  num-devices=2  UUID=37d3cabc:42393031:23c133e6:3b879f08
ARRAY   /dev/md1  level=raid5  num-devices=3  UUID=47d4cabd:42393031:23c133e6:3b879f99
MAILADDR root@krycek,root@byers,root@frohike

Przykład / etc / fstab

/dev/md0      /export/raid1           ext3    defaults        1 2
/dev/md1      /export/raid2           ext4    defaults        1 2
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.