Я знаю, что монтирование одного и того же диска с файловой системой ext4 с двух разных серверов (это iSCSI vloume) может повредить данные на диске. Мой вопрос: будет ли какая-то разница, если один из серверов будет монтировать диск только для чтения, а другой - монтировать его на чтение и запись?
Я знаю, что для этого можно использовать OCFS2 или что-то подобное, и я мог бы экспортировать диск с NFS, чтобы он был доступен для другого сервера, но я хотел бы знать, сработает ли предложенная мной установка.
Ответы:
Нет. Это не даст согласованных результатов на клиенте только для чтения из-за кэширования. Это определенно не предназначено для этого. Вы можете ожидать появления ошибок ввода-вывода в приложениях. Вероятно, в коде все еще есть некоторые упущения, которые могут привести к сбою ядра или повреждению памяти, используемой любым процессом.
Но самое главное, ext4 воспроизводит журнал даже при монтировании только для чтения. Таким образом, монтируемое только для чтения монтирование будет по-прежнему выполнять запись в базовое блочное устройство. Было бы небезопасно, даже если оба крепления были только для чтения :).
источник
blockdev --setro /dev/sda1
.sudo mount -t ext4 -o ro,loop,noload /dev/vda /mnt/
digital-forensics.sans.org/blog/2011/06/14/...Это позволит избежать повреждения данных, но, вероятно, не будет тем, что вы хотите сделать. Я никогда не замечал проблем с монтированием тома только для чтения на другом узле. Даже если что-то не совпадает на узле ro, обычно это просто вызывает «неожиданный свободный инод, пожалуйста, запустите e2fsck» или тому подобное в / var / log / messages. Если что-то ужасно неожиданно для некритической файловой системы ("/ opt / mySpecialmount"), обычно Linux просто монтирует том только для чтения (что, эй, мы уже там). Если вас очень волнует, как кеширует эффект, вы можете попробовать запустить какой-нибудь режим drop_caches / vfs_cache_pressure.
Чтобы избежать повторного воспроизведения журнала, добавьте «noload» к аргументам монтирования, сделайте это вместе с ошибками = remount-ro (просто для того, чтобы ошибиться из-за осторожности).
Тем не менее, есть вероятность, что если вы в порядке с монтированием только для чтения, это, вероятно, просто как ссылка на другой узел, и в этом случае NFS или smbfs решит проблему и рассчитан на немного больший параллелизм, чем ext3 / 4 будет. Если вам нужна производительность, то вы можете изучить кластерную файловую систему (немного больше административных затрат, но она есть, если производительность действительно нужна).
источник
man mount
. Я могу себе представить, что есть приложения, которые обнаруживают и / или допускают несогласованность данных в своих файлах, но вы еще не упомянули ни одного подобного предостережения :).