Wiem, że podłączenie tego samego dysku z systemem plików ext4 z dwóch różnych serwerów (jest to wersja iSCSI vloume) prawdopodobnie uszkodzi dane na dysku. Moje pytanie brzmi: czy to zrobi różnicę, jeśli jeden z serwerów zamontuje dysk tylko do odczytu, a drugi zamontuje go do odczytu i zapisu?
Wiem, że do tego można użyć OCFS2 lub polubień i że mogę wyeksportować dysk z NFS, aby był dostępny dla innego serwera, ale chciałbym wiedzieć, czy proponowana konfiguracja będzie działać.
Odpowiedzi:
Nie. Nie da spójnych wyników na kliencie tylko do odczytu z powodu buforowania. Zdecydowanie nie jest do tego przeznaczony. Można oczekiwać, że błędy we / wy zostaną zwrócone do aplikacji. W kodzie prawdopodobnie znajduje się pewna liczba niedopatrzeń, które mogą spowodować awarię jądra lub uszkodzenie pamięci używanej przez dowolny proces.
Ale co najważniejsze, ext4 odtwarza dziennik nawet przy montowaniu tylko do odczytu. Zatem montowanie tylko do odczytu będzie nadal zapisywać na bazowym urządzeniu blokowym. Byłoby to niebezpieczne, nawet gdyby oba wierzchowce były tylko do odczytu :).
źródło
blockdev --setro /dev/sda1
.sudo mount -t ext4 -o ro,loop,noload /dev/vda /mnt/
digital-forensics.sans.org/blog/2011/06/14/…Pozwoli to uniknąć uszkodzenia danych, ale prawdopodobnie nie będzie to, co chcesz zrobić. Nigdy nie zauważyłem żadnych problemów z montowaniem woluminu tylko do odczytu w innym węźle. Nawet jeśli coś nie pasuje do węzła ro, co zwykle rzuca „nieoczekiwany darmowy i-węzeł, uruchom e2fsck” lub podobny w / var / log / messages. Jeśli coś jest nieoczekiwanie nieoczekiwane w niekrytycznym systemie plików („/ opt / mySpecialmount”), zwykle Linux po prostu zamontuje wolumin tylko do odczytu (hej, już tam jesteśmy). Jeśli bardzo martwisz się efektem buforowania, możesz spróbować uruchomić jakiś system drop_caches / vfs_cache_pressure.
Aby uniknąć ponownego odtwarzania dziennika, dodaj „noload” do argumentów montowania, zrób to wraz z błędami = remount-ro (tylko po to, aby zachować ostrożność).
To powiedziawszy, są szanse, że jeśli nie masz nic przeciwko zamontowaniu go tylko do odczytu, prawdopodobnie jest to tylko odniesienie dla drugiego węzła, w którym to przypadku NFS lub smbfs rozwiązałoby problem i jest zaprojektowany dla nieco większej współbieżności niż ext3 / 4 byłoby. Jeśli potrzebujesz wydajności, możesz przyjrzeć się klastrowanemu systemowi plików (nieco więcej kosztów administracyjnych, ale jest tam, jeśli wydajność naprawdę jest czymś, czego potrzebujesz).
źródło
man mount
. Mogę sobie wyobrazić, że istnieją aplikacje, które wykrywają i / lub tolerują niespójne dane w swoich plikach, ale jak dotąd nie wspomniałeś o żadnym takim zastrzeżeniu :).