Linux уязвим к коррупции при отключении электроэнергии?

10

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

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

Тайлер Дурден
источник
2
Что ж, несмотря на различные проблемы с ОС, перебои в подаче электроэнергии влияют на любую машину, просто потому, что останавливается каждый запущенный процесс. Всегда лучше дать машине отключиться, потому что тогда все процессы могут нормально останавливаться.
Доктор Рейхард
Я знаю это. Вопрос в том, является ли Linux по какой-то причине более хрупким, чем Windows, и если да, то можно ли что-то сделать, чтобы повысить его надежность (например, например, заставить его более часто сбрасывать дисковый кэш).
Тайлер Дерден
2
Мой ответ «мас» означал быть общим и всеобъемлющим: независимо от того, что вы делаете, всегда есть риск чего-то потерпеть неудачу. Если Linux более хрупкий, я оставляю его тем, кто может конкретно ответить. Мой личный опыт (с Windows и с OSX) показал мне, что, если я не делаю что-то, о чем я заботился (например, симуляции), они легко приходили в норму. Может быть, вы должны добавить, как используются машины.
Доктор Рейхард
«Есть ли какой-нибудь процесс, который я должен запустить, чтобы мои Linux-системы не могли быть сброшены из-за отключения электроэнергии?» Проблема на аппаратном уровне, единственная команда, которую вы можете запустить здесь, которая может помочь, - это «выключить компьютер». Если вас это беспокоит, я рекомендую ИБП (хотя это быстро становится дорого, если у вас большое количество компьютеров)
Дэвид
7
Всегда большое слово, это также неверно. Windows может испортиться во время отключения питания. Почему у вас нет резервных копий батареи и не настроите систему на отключение? Я могу с уверенностью сказать, что любой, кто говорит «всегда», будет неправ в 99,9999% случаев.
Ramhound

Ответы:

14

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

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

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

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

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


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

Скотт Чемберлен
источник
Как насчет файловых систем с журналированием и файловыми транзакциями, которые не являются NTFS? Я не оспариваю отсутствие полной и полной мощности в Windows, которая может привести к большей стабильности, если что-то прервано.
Ramhound
3
Я упоминаю, что в моей заметке внизу Ext3 соответствует уровню NTFS. Я считаю, что системный администратор мог иметь опыт работы только с файловыми системами Ext2, и с его точки зрения он был бы прав. Это похоже на то, что если вы работали только с файловыми системами Fat32 и никогда не видели NTFS, вы чувствовали бы то же самое в отношении окон (версии Windows на Fat32 имели ужасную историю повреждения файлов при потере питания)
Скотт Чемберлен
Я полностью пропустил сноску :-(
Ramhound
+1 за ссылки на различные используемые файловые системы и ведение журнала.
Доктор Рейхард
Лучший ответ здесь +1
Pimp Juice IT
3

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

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

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

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

davidgo
источник
1

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

Blackbeagle
источник
-9

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

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

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

Тайлер Дурден
источник
2
-1. Пожалуйста, поддержите ваши претензии ссылками, статьями, источниками и т. Д., И я отзову свое понижение. На какую файловую систему Linux вы ссылаетесь?
Камиль Мачоровски
Тайлер - Ты прочитал ответ Скотта Чемберлена на свой вопрос, верно? Вы на 100% уверены, что способ, которым вы объясняете эти указатели хранения таблиц inode для файлов Linux, включая системные файлы ОС, - это способ, которым это работает для всех текущих файловых систем Linux, поскольку вы можете выбрать больше, чем только одну, как объяснено, и у некоторых есть такие Надежные элементы управления метаданными файловых данных inode / Journaling / Transaction, чем другие, в том числе более мощные, чем NTFS, как объяснено? Может быть, вы системный или тот, о котором вы написали, из-за использования более старой файловой системы Linux и, следовательно, разумного выбора?
Сок Pimp IT
Основная причина, по которой я нахожу этот ответ - и весь вопрос - шуткой, заключается в том, что Linux / Unix поддерживает Интернет, а не Windows. Если перебои в работе могут с легкостью сдуть системы Linux / Unix, Интернет не сможет функционировать. Кроме того, маршрутизаторы, использующие Linux, будут бесполезны, если они обычно быстро включаются и выключаются.
JakeGould
Этот ответ не просто плохой; это просто ерунда. Ни один из фактов, изложенных в этом ответе, даже отдаленно не точен.
сумерки -неактив-