Назад | Перейти на главную страницу

сетевая файловая система переходит в средний поток только для чтения, ошибка ввода-вывода буфера с устройством сопоставления

В Linux 2.6 (на самом деле CentOS 5.3) у меня есть файловая система, которая нормально работает несколько минут, а затем переходит в режим только для чтения, пока я пытаюсь читать / записывать в него данные.

Это ext3 файловая система, ссылающаяся на удачи (cryptsetup) через устройство-сопоставитель. Устройство luks raw на самом деле петля устройство, и это устройство обратной связи ссылается на файл. Файл ссылается на файл в удаленной системе, отображаемый через sshfs. Да, много контейнеров. Это то, что я делаю, чтобы хранить безопасную резервную копию в облачной среде, которая немного менее безопасна, чем я предпочитаю.

В деталях:

  1. В удаленной системе есть папка backupFolder, содержащая предварительно выделенный файл backupFile размером 20 ГБ.
  2. Локальная система подключает backupFolder с помощью sshfs к локальной точке монтирования backupMapped.
  3. Локальная система создает устройство обратной связи (используя losetup), указывающее на backupMapped / backupFile.
  4. Локальная система применяет сопоставление устройств luks к устройству обратной связи с помощью cryptsetup luksOpen, что дает / dev / mapper / backup.
  5. Локальная система монтирует / dev / mapper / backup как устройство ext3 в другую локальную точку монтирования, скажем / root / rpg / d01

Тогда я могу использовать rsync для обновления данных в cleartextBackup / с моими исходными данными в локальной системе.

Это хорошо работает при тестировании с небольшими различиями, небольшими rsync. Однако для более крупных операций, примерно через пятнадцать минут явно успешных операций, rsync зависает на некоторое время, а затем продолжает работу, генерируя различные сообщения об ошибках до конца исходных файлов:

rsync: mkstemp "/root/rpg/d01/db_pgexports/dbdump.sql" не удалось: файловая система только для чтения (30)

и

rsync: невозможно указать место назначения "/ root / rpg / d01 / db_myexports /": ошибка ввода / вывода (5) ошибка rsync: ошибки при выборе файлов ввода / вывода, директории (код 3) в main.c (493) [получатель = 2.6 .8]

и

rsync: recv_generator: mkdir "/ root / rpg / d01 / vault / jjm" не удалось: файловая система только для чтения (30) rsync: stat "/ root / wpg / d01 / vault / jjm" не удалось: нет такого файла или каталога ( 2)

В dmesg вижу различные ошибки:

EXT3 FS on dm-12, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Buffer I/O error on device dm-12, logical block 119212
lost page write due to I/O error on dm-12
Buffer I/O error on device dm-12, logical block 119213
lost page write due to I/O error on dm-12
Buffer I/O error on device dm-12, logical block 119214
lost page write due to I/O error on dm-12
<snip>
Buffer I/O error on device dm-12, logical block 119221
lost page write due to I/O error on dm-12
Aborting journal on device dm-12.
ext3_abort called.
EXT3-fs error (device dm-12): ext3_journal_start_sb: Detected aborted journal
Remounting filesystem read-only
EXT3-fs error (device dm-12): ext3_get_inode_loc: unable to read inode block - inode=2480641, block=4980738
EXT3-fs error (device dm-12): ext3_get_inode_loc: unable to read inode block - inode=32641, block=65538
EXT3-fs error (device dm-12): ext3_find_entry: reading directory #65281 offset 0
EXT3-fs error (device dm-12): ext3_find_entry: reading directory #65281 offset 0
EXT3-fs error (device dm-12): ext3_find_entry: reading directory #65281 offset 0
<snip>

и в основном те же сообщения в / var / log / messages.

Думая, что это как-то связано с таймаутами (несмотря на то, что это должно быть интенсивное чтение-запись), я немного поэкспериментировал с параметрами конфигурации ssh, такими как

servraliveinterval 20

serveralivecountmax 4000

и используя sshfs -o reconnect, даже -o workaround = all.

Все без толку.

Может ли кто-нибудь пролить свет на то, что ломается, и где я могу заставить эту штуку надежно оставаться в режиме чтения-записи?

Спасибо, Стив Ла Рок