9

Системные администраторы в моей компании говорят, что Linux склонен к сбоям в работе из-за отключения электроэнергии. Они говорят, что машины Windows всегда переживают перебои с питанием, но Linux-блоки часто становятся невосстановимыми (то есть вы больше не можете загружать машины). Это произошло из-за того, что они сказали мне, что энергокомпания отключает электропитание в наших офисах на длительный период времени, поэтому администраторы хотели, чтобы я отключил все блоки Linux, к которым у меня есть доступ, до отключения.

Я думал, что Linux должен быть надежным?
Мой вопрос: есть ли какой-то процесс, который я должен запустить, чтобы избежать попадания ядерных программ в Linux из-за сбоя питания?

4 ответа4

11

Является ли Linux более хрупким, чем Windows?
Ответ: это зависит.

Когда кто-то говорит "невозможно загрузить" в этой ситуации, я перевожу его на "Повреждение файловой системы", и ответ "Да" или "Нет" на исходный вопрос зависит от того, какую файловую систему вы используете.

Windows не дает вам полного выбора файловых систем, который позволяет Linux. Вы почти никогда не видите не Windows NTFS системы. NTFS имеет встроенные функции, помогающие в случае потери питания, такие как журналирование и файловые транзакции, которые могут откатиться в случае сбоя.

Коробка Linux могла иметь это, и не могла. Все зависит от того, как был настроен сервер. Если сервер использует ext2 1, вы можете быть очень подвержены повреждению файла в случае сбоя питания. Сравните это с системой, которая использует что-то вроде Btrfs, которая имеет больше функций целостности данных, чем NTFS.

Так что если системный администратор, с которым вы общаетесь, когда-либо работал, когда-либо работал с системами ext2, он вполне мог бы быть прав, но если вы использовали другую файловую систему, он мог ошибаться.


1: Ext2 долгое время был по умолчанию для Debian и Red Hat Linux. В настоящее время он заменен в основном на Ext3, который больше походит на NTFS для функций для обеспечения целостности данных.

3

Нет, Linux по своей природе не менее надежен, чем Windows, когда речь идет о внезапных отключениях электроэнергии. Что может произойти - в случае любой ОС - это то, что материал записывается в файловую систему на жестком диске в тот момент, когда теряется питание, и (исторически) это может повредить файловую систему.

Решением этой проблемы является использование журналируемой файловой системы, которая защищена от этой проблемы в зависимости от способа записи информации. Большинство новых файловых систем - включая Ext3 и ExT4 (наиболее распространенные файловые системы для Linux), как, я полагаю, и NTFS. Поэтому, пока вы используете журналируемую файловую систему, у вас не возникнет этой проблемы.

Позже в процессе загрузки, если у вас есть база данных (я смотрю на MYSQL, Postgres не страдает от этого), у вас могут возникнуть аналогичные проблемы с базой данных MYSQL - MYSQL часто не особенно надежен (соответствие Google ACID MYSQL для Эта тема). Вы можете обойти эту проблему, принудительно проверив индексы при перезагрузке, если ваша установка MySQL не совместима с ACID.

Другое (отчасти измученное и, возможно, несправедливое по отношению к Windows) представление может быть таким - блоки Linux более надежны, чем блоки Windows (что измеряется с помощью Uptime и необходимости делать перезагрузки) - таким образом, возможно, что при сбое при перезагрузке блоков Linux это аппаратные проблемы из-за старости, а не из-за проблем с программным обеспечением - в то время как сбойный блок Windows может быть обнаружен раньше из-за более частых перезагрузок)

1

В зависимости от дистрибутива и того, какая у вас файловая система, она может быть более или менее уязвимой. Если вы знаете о запланированном отключении электроэнергии, вам определенно следует вручную отключиться (и использовать время для обслуживания, например, для очистки систем или, возможно, для повторного подключения ... Для таких незапланированных перебоев с питанием приобретите системы ИБП с программным обеспечением отключения Linux, чтобы вам не пришлось беспокоиться. Вы должны запустить это в любом случае. Существует файл APCUPSD, доступный для большинства дистрибутивов Linux, если нет, то узнайте у своего дистрибутива, что уже находится внутри него или доступно для него. Убедитесь, что он полностью отключит ваши системы, прежде чем полагаться на него.

-8

Я провел некоторое исследование по этому вопросу и обнаружил, что то, что говорит мой ИТ-отдел, по существу правильно, Linux более уязвим, чем Windows, в случае отключения электроэнергии. Причина в том, как таблица inode работает в Linux/ Unix. Поскольку это неупорядоченный список и он постоянно изменяется, нет разделения между важными статическими файлами, такими как двоичные файлы ядра, и бесполезными файлами, такими как временные файлы. Это означает, что записи inode для критических системных файлов постоянно переписываются, очевидно, очень плохой дизайн. Фактически, критические системные файлы на самом деле с большей вероятностью будут иметь свои записи inode в любой момент времени, чем несущественные файлы. Когда питание отключается, оно стремится сдуть любую часть таблицы inode, которая была записана, которая, вероятно, не содержит указателей на системные файлы. Сами системные файлы в порядке и исправны, но каталог для их поиска поврежден. Ситуация усугубляется кэшированием диска, что приводит к увеличению размера поврежденных областей таблицы inode.

В Windows даже старая файловая система FAT более надежна, чем эта. У FAT тоже есть таблица, но это упорядоченная таблица, поэтому системные файлы не смешиваются с временными файлами. Обычно системные файлы находятся в одной области каталога вместе, и вряд ли эта область будет записываться очень часто. Кроме того, в FAT есть каталог резервных копий, поэтому, даже если каталог поврежден, он просто возвращается к резервной копии. Это означает, что при использовании FAT пользователь вряд ли потеряет ссылки на файлы в случае сбоя питания, даже временные файлы. Однако в Linux, поскольку таблица inode постоянно записывается, пользователь практически гарантированно теряет доступ к файлам при сбое питания.

Единственное, что можно сделать, чтобы смягчить это, - отключить кеширование диска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .