Jest to stosunkowo częsty problem, gdy coś idzie nie tak w sieci SAN dla ext3, aby wykryć błędy zapisu na dysku i zamontować system plików tylko do odczytu. To wszystko dobrze i dobrze, tylko gdy SAN jest naprawiony, nie mogę wymyślić, jak ponownie zamontować system plików do odczytu i zapisu bez ponownego uruchamiania.
Ujrzeć:
[root@localhost ~]# multipath -ll
mpath0 (36001f93000a310000299000200000000) dm-2 XIOTECH,ISE1400
[size=1.1T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 1:0:0:1 sdb 8:16 [active][ready]
\_ 2:0:0:1 sdc 8:32 [active][ready]
[root@localhost ~]# mount /dev/mapper/mpath0 /mnt/foo
[root@localhost ~]# touch /mnt/foo/blah
Wszystko dobrze, teraz wyciągam spod niej jednostkę LUN.
[root@localhost ~]# touch /mnt/foo/blah
[root@localhost ~]# touch /mnt/foo/blah
touch: cannot touch `/mnt/foo/blah': Read-only file system
[root@localhost ~]# tail /var/log/messages
Mar 18 13:17:33 localhost multipathd: sdb: tur checker reports path is down
Mar 18 13:17:34 localhost multipathd: sdc: tur checker reports path is down
Mar 18 13:17:35 localhost kernel: Aborting journal on device dm-2.
Mar 18 13:17:35 localhost kernel: Buffer I/O error on device dm-2, logical block 1545
Mar 18 13:17:35 localhost kernel: lost page write due to I/O error on dm-2
Mar 18 13:17:36 localhost kernel: ext3_abort called.
Mar 18 13:17:36 localhost kernel: EXT3-fs error (device dm-2): ext3_journal_start_sb: Detected aborted journal
Mar 18 13:17:36 localhost kernel: Remounting filesystem read-only
Myśli tylko, że jest tylko do odczytu, w rzeczywistości nawet jej nie ma.
[root@localhost ~]# multipath -ll
sdb: checker msg is "tur checker reports path is down"
sdc: checker msg is "tur checker reports path is down"
mpath0 (36001f93000a310000299000200000000) dm-2 XIOTECH,ISE1400
[size=1.1T][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=0][enabled]
\_ 1:0:0:1 sdb 8:16 [failed][faulty]
\_ 2:0:0:1 sdc 8:32 [failed][faulty]
[root@localhost ~]# ll /mnt/foo/
ls: reading directory /mnt/foo/: Input/output error
total 20
-rw-r--r-- 1 root root 0 Mar 18 13:11 bar
Jak to wciąż pamięta, że plik „paska” jest tam… tajemnica, ale teraz nie jest ważna. Teraz ponownie przedstawiam LUN:
[root@localhost ~]# tail /var/log/messages
Mar 18 13:23:58 localhost multipathd: sdb: tur checker reports path is up
Mar 18 13:23:58 localhost multipathd: 8:16: reinstated
Mar 18 13:23:58 localhost multipathd: mpath0: queue_if_no_path enabled
Mar 18 13:23:58 localhost multipathd: mpath0: Recovered to normal mode
Mar 18 13:23:58 localhost multipathd: mpath0: remaining active paths: 1
Mar 18 13:23:58 localhost multipathd: dm-2: add map (uevent)
Mar 18 13:23:58 localhost multipathd: dm-2: devmap already registered
Mar 18 13:23:59 localhost multipathd: sdc: tur checker reports path is up
Mar 18 13:23:59 localhost multipathd: 8:32: reinstated
Mar 18 13:23:59 localhost multipathd: mpath0: remaining active paths: 2
Mar 18 13:23:59 localhost multipathd: dm-2: add map (uevent)
Mar 18 13:23:59 localhost multipathd: dm-2: devmap already registered
[root@localhost ~]# multipath -ll
mpath0 (36001f93000a310000299000200000000) dm-2 XIOTECH,ISE1400
[size=1.1T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][enabled]
\_ 1:0:0:1 sdb 8:16 [active][ready]
\_ 2:0:0:1 sdc 8:32 [active][ready]
Świetnie prawda? Tutaj jest napisane [rw]. Nie tak szybko:
[root@localhost ~]# touch /mnt/foo/blah
touch: cannot touch `/mnt/foo/blah': Read-only file system
OK, nie rób tego automatycznie, po prostu trochę go popchnę:
[root@localhost ~]# mount -o remount /mnt/foo
mount: block device /dev/mapper/mpath0 is write-protected, mounting read-only
Do diabła jesteś:
[root@localhost ~]# mount -o remount,rw /mnt/foo
mount: block device /dev/mapper/mpath0 is write-protected, mounting read-only
Nieeeeeeee.
Próbowałem różnego rodzaju poleceń mount / tune2fs / dmsetup i nie mogę wymyślić, jak to zrobić, aby odznaczyć urządzenie blokowe jako chronione przed zapisem. Ponowne uruchomienie naprawi to, ale wolałbym zrobić to online. Godzina googlingu nigdzie mnie też nie doprowadziła. Save me ServerFault.
Odpowiedzi:
Niedawno natknąłem się na ten problem i rozwiązałem go poprzez ponowne uruchomienie, ale po dalszych badaniach wydaje się, że wydanie następującego polecenia może go naprawić.
Myślę, że możesz zajrzeć do rozdziału 25.14.4: Zmiana stanu odczytu / zapisu jednostki logicznej online w tym dokumencie , jednak zalecam ponowne uruchomienie.
źródło
Spróbuj użyć:
źródło
mount -rw /mnt/foo
to najbardziej odpowiednie dla mnie.Jestem fanem zapobiegania temu problemowi. Większość pudełkowych systemów UNIX ponownie spróbuje wykonać operacje na systemie plików tak jak zawsze. Jako administrator musisz odrobić pracę domową przed dostrojeniem konfiguracji MPIO. Jeśli aplikacja powinna poczekać, aż urządzenie powróci do stanu używalności, oto rozwiązanie. W pliku /etc/multipath.conf upewnij się, że typ urządzenia, na którym Ci zależy, ma ustawienie „no_path_retry” ustawione na „kolejka”. Ustawienie tego spowoduje, że nieudane operacje we / wy ustawią się w kolejce do momentu uzyskania prawidłowej ścieżki. Zrobiliśmy to, aby nasze skrzynki EMC Symmtrix / DMX działały na czkawkę w określonych warunkach awarie / odzyskiwanie dysku / kontrolera / srdf.
Takie podejście pozwoliło nam zaoszczędzić wiele lat i jest naszym standardem dla setek urządzeń w sieci SAN z wieloma kabinami / wieloma dostawcami z replikacją do odzyskiwania po awarii.
Pomyślałem, że mogę się z wami wszystkimi podzielić. Dbać.
źródło
Miałem jakiś problem, który rozwiązałem za pomocą hdparm z
-r
opcją na subdrivach logicznych urządzeń wielościeżkowych.źródło
Czy uważasz, że jest to związane z sekcją tego dokumentu zatytułowaną Dlaczego systemy plików ext3 w mojej sieci pamięci masowej (SAN) wielokrotnie stają się tylko do odczytu ?
To dość stary artykuł, który mówi o kanale światłowodowym, ale może być związany z twoim problemem.
źródło
Uszkodzenie systemu plików? Próbować:
Jeśli wyczyścisz z błędami, musisz zeskanować i wyczyścić.
źródło
Linux po prostu nie radzi sobie wystarczająco dobrze z sieciami SAN średniej wielkości. MUSISZ poświęcić trochę uwagi i dostroić limity czasu we / wy i obsługę limitów czasu dla wielu ścieżek, wszystkie są w przybliżeniu ustawione domyślnie na komputer.
(Pamiętasz „odrzucanie IO do martwego urządzenia”?)
źródło