благодарю за комментарий, bit flip следует понимать широко — т.е. много битых битов тоже считаем bit flip;
если не возражаете, два вопроса:
1) с формулировкой (выше) «слегка битые» файлы следует понимать как файлы, содержимое которых было изменено флэшкой без Вашего участия/намерения, и которые считывались совершенно безотказно, но частично не совпадали с тем, что было изначально записано?
2) можно ли с уверенностью утверждать, что в Вашем случае отключение флэшки от хоста было сделано корректно (Eject Removable Media), и файловая система не была нарушена в результате пропущенной таким образом отложенной записи?
3) какой был тип (расширение) у испорченных файлов и чем обнаружилась порча?
чаще всего одиночный канал, который (как минимум) без намека на SLA; это лечится вторым каналом, но не всегда.
еще варианты из серии отключения электричества, при котором сервер при старте ухитряется обогнать оборудование связи; да, подождать канал тоже не проблема.
еще надежность того самого сервера в интернете; да, пара серверов тут должна помочь.
т.е. это все вроде бы лечится, но по совокупности факторов embedded-загрузчик проще и дешевле, да и для моей задачи (NAS) я не увидел готового решения, загружаемого по PXE; выточить такой тоже реально (я умею), но жалко время
моя конструкция, кстати, как раз на постоянной связи с облаком, и возможно, я даже когда-нибудь расскажу и про это, но пока я отвожу своим облачным системам роли второго плана (полу-оффлайн); потребительский роутер периодически заклинивает на VPN-соединении, и вылечить это удасться только его заменой; оффтоп: присматриваюсь к изделиям Mikrotik, ибо имеем слишком хилый WiFi, и у заказчика маячит вторая площадка…
я всю старую механику и блок питания отправил на отдых сразу; туда же и мать пришлось отправить
для FreeNAS лучше памяти не менее 2Гб, хотя у меня работает на 1Гб; диски — только с ERC
про корпусную инженериию скоро будет короткий и немного ироничный пост;)
Я бы сказал, что «твердая» память позволяет избавиться от очень неудобной в ряде случаев дополнительной пары «шпинделей» для самой системы (в случае с жесткой эксплуатацией или просто очень компактным дизайном).
В случае с СХД (и не только) операционный выигрыш в использовании образов ОС как firmware, отдельно от хранимых данных (by design меньше гемора при эксплуатации, FreeNAS избавляет от многих аспектов администрирования ОС). Единственный подводный камень — у многих есть ошибочная презумпция того, что данная система предназначена для сборки из хлама. С таким соотношением ёмкость/скорость, как сейчас, это уже не так, вот тут habrahabr.ru/post/214707 я обосную этот довод.
Но я там же сразу говорю про фирменные решения: есть деньги — покупайте, не мучайтесь:) На рынок выпущены доступные продукты для дома и малого бизнеса.
Вы правильно поступили со swap и /var, да и Transcend совсем неплохой бренд. На малой нагрузке, возможно, ArchLinux не теребит диск понапрасну.
Но самое главное то, что объем Вашей флэшки может означать как раз технологию SLC, у которой большой ресурс записи (100,000 циклов). Т.е. по микросхемам NAND это легко может оказаться «гражданский» вариант промышленного изделия TS2GUFM-V, о котором я писал. Предполагаю, что у Вашей флэшки попроще математика — вероятно, медленнее (скорость на уровне 5-10Мб/с) и с более примитивной контрольной суммой. Cейчас в обычном магазине непросто найти флэшку Transcend на 4Гб, но это хороший вариант для embedded систем именно из-за SLC.
очень полезный комментарий. Я думаю, именно поэтому FreeNAS не пишет непрерывно, а раз в час (именно однократно!) закладывает всю статистику в сжатом виде (файл TGZ) — целиком и одним махом. Наверное, это не прозвучало в статье достаточно четко, я поправлю.
Embedded-системы — это чаще всего суровые воины-одиночки, выживающие в сложных условиях плохого питания, ударов, вибрации, радиации и еще черт знает чего. Поэтому их же удобно применять в сольных инсталляциях малых офисов, где нет толком ни инфраструктуры, ни сисадмина (но хоть не бьют и не облучают).
А в красивых и чистых ЦОДах, где есть много работающих серверов адекватная инфраструктура с резервированием питания и того же PXE можно, конечно, и за счет сети все решить:)
Не embedded вариант любой ОС (особенно с СУБД) может относительно быстро износить любую флэшку, даже промышленную. Тут уже я бы рекомендовал SSD использовать, либо разделять (как xpenology). Да и то SSD решает проблему износа скорее количественно, чем качественно.
Поведение FreeNAS 9 я постарался изложить в этом посте, см. заголовок (FreeNAS || NAS4free) && NAND.
Если чего-то не хватает, могу дополнить по Вашей рекомендации.
Подозреваю, что в Вашем комментарии речь о проекте FreeNAS 0.7, который теперь зовется NAS4free, краткая историческая справка в том же моем посте habrahabr.ru/post/214707. У этой системы (NAS4free) действительно есть два варианта, а вот у современного FreeNAS (версия 8, 9 и далее) выбора при установке embedded или не embedded нет, как нет и варианта swap-на-флэшке (это почти инженерный абсурд).
Построение как раз такой системы на хламе я изложил в прошлом посте http://habrahabr.ru/post/214707/
Приходится принимать сложные решения, в основном из-за очень сильного перекоса в сторону ёмкости накопителей относительно скорости.
В моем случае наиболее проблемная точка — PCI, посмотрите, сколько занимает реконструкция зеркала, и комментарии скептиков по поводу полной синхронизации gmirror имеют под собой основания. Поэтому и появилась такая штука, как ZFS, но она требует уважения и на откровенном хламе, как у меня, практически не живет.
И очень Вам желаю, чтобы CompactFlash оказался профессиональным или промышленным, а переходник CF-IDE не глючил.
Обычные системы (не embedded типа) быстро изнашивают флэш-память, так что простой Ubuntu, как я понимаю, это только для тестов.
+1, жаль, что у меня плюсомет однозарядный, не жаль и половину обоймы потратить на Ваш ответ:)
моя история про XML совсем не относится к NAS'ам:) Это другие продукты, а отказ питания с потерей XML — просто эпизод из истории их эксплуатации.
и это был не один раз, а несколько, и все эпизоды заканчивались в точности тем же — нулями вместо данных.
ясен день, что системы разные, но в моем случае код был под две системы Windows и Linux. Значит, сильно велики шансы иметь общие корни open source библиотек. И не исключено, что тут те же…
Rimlyanin, раз спросили, найдите отличия между двумя embedded-вариантами:
[root@freenas] ~# mount
/dev/ufs/FreeNASs1a on / (ufs, local, read-only)
devfs on /dev (devfs, local, multilabel)
/dev/md0 on /etc (ufs, local)
/dev/md1 on /mnt (ufs, local)
/dev/md2 on /var (ufs, local)
/dev/ufs/FreeNASs4 on /data (ufs, local, noatime, soft-updates)
NAS4free ставил в варианте №2
nas4free: ~ # mount
/dev/md0 on / (ufs, local)
devfs on /dev (devfs, local, multilabel)
procfs on /proc (procfs, local)
/dev/md1 on /var (ufs, local)
/dev/ada0s1a on /cf (ufs, local, read-only)
Причина, по которой я выбрал FreeNAS
отдельная файловая система для хранения настроек
/dev/ufs/FreeNASs4 on /data (ufs, local, noatime, soft-updates)
NAS4free для сохранения настроек должен каждый раз перемонтировать «корень» со всеми вытекающими, и я обоснованно считаю это позором недостатком проекта в 2014г. Оттуда же и перезагрузки берутся в некоторых случаях.
Я уже не говорю про то, что NAS4free предлагает (спасибо, что хоть ненавязчиво) создать еще и swap на флэшке.
Коллега, либо объясните прямо сейчас, в чем плюс хранения настроек XML прямо на корневой файловой системе read-only, либо давайте закроем эту тему и уйдем в личку. Пляски с бубном симлинками, конечно, допускаются, но учтите входной порог квалификации для их применения.
PS
У FreeNAS есть свои тараканы, можете не беспокоиться, и некоторых я планирую вывести на свет божий в следующем посте.
по крону можно действительно положить на системный том (во FreeNAS 9.2.1.1 появилось понятие «системный том», не смейтесь; но можно и не несистемный тоже), либо отправить на email администратора (Вам рекомендую, «на коленке» через base64 или более научным способом), либо по SSH/SCP на другой сервер, дальше сами можете продолжить;)
про стачивание флэшек планирую отдельный пост, следите, если интересно
PS
моя история про XML совсем не относится к NAS'ам:) Это другие продукты, а отказ питания с потерей XML — просто эпизод из истории их эксплуатации.
Rimlyanin, ладно, уговорили, FreeNAS предок NAS4free :)) Последний, у меня, кстати, тоже завелся с полпинка, и даже порадовал более управляемым, что-ли, процессом создания томов. Т.е. у NAS4free IMHO больше чисто юниксовых вещей вытащено в GUI, там еще есть файл-менеджер и прочие фишки, и системные требования вроде были скромнее. Но мне все это не пригодилось.
re: XML
у меня (правда, совсем в другом проекте) файл XML просто погибал у некоторых заказчиков при абсолютно исправной дисковой системе, в результате отказа питания. Я как представлю себе все эти DOMы c SAXами и чтение-запись всех настроек только одним махом… И с другой стороны «РСУБД-внедренка» SQLite, с журналом и доступом на уровне одиночных записей. Да, найти на разбитой в хлам файловой системе обломки XML и затем склеить их, конечно, реально. Но лично я вывел у себя условный рефлекс: поменял настройку — сразу забэкапил. Пара жестов мышью и все.
Кстати, можно еще /data бэкапить куда-нибудь, запросто настраивается по Cron_Jobs. По-моему, сходная техника прокатит и для NAS4free, только там раздел по-другому называется.
Rimlyanin, отличный вопрос; я рассказываю про FreeNAS версии 9, основанный на тех кодах, которые на момент написания статьи уже переименованы в NAS4free, хотя изначально именно те, старые коды назывались FreeNAS. Там был развод и раздел имущества. Но при этом NAS4free тоже на месте не стоит и, чтобы потом не заниматься казуистикой, я так и написал про NAS4free «предок-бранч».
Предложите лучшее обозначение для столь нетривиальных родственных связей. Можете еще добавить к семейному древу проект OMV, который один из членов команды FreeNAS / NAS4free перетащил на Debian. По крайней мере, на морде в графическом интерфейсе OMV семейные черты читаются отчетливо.
Смотря какие изменения
Я не говорю, что NAS4free — плохой продукт, коллега. Но беглое прохождение по интерфейсу NAS4free летом 2013г. показало, что те вещи, которые я с ходу вкатывал во FreeNAS 9, у NAS4free требовали перезагрузки. Я думаю, что NAS4free рано или поздно уйдет и от этой практики, и от хранения настроек в плоском XML. И вообще желаю ребятам всяческих успехов.
хоть и не очень актуально, но настроение себе поднимете, особенно мне нравится невозмутимость главного героя, несмотря на советы слегка нетрезвых веселых героев второго плана. Поколение сервера G5 я определял на глаз, мог ошибиться.
если не возражаете, два вопроса:
1) с формулировкой (выше) «слегка битые» файлы следует понимать как файлы, содержимое которых было изменено флэшкой без Вашего участия/намерения, и которые считывались совершенно безотказно, но частично не совпадали с тем, что было изначально записано?
2) можно ли с уверенностью утверждать, что в Вашем случае отключение флэшки от хоста было сделано корректно (Eject Removable Media), и файловая система не была нарушена в результате пропущенной таким образом отложенной записи?
3) какой был тип (расширение) у испорченных файлов и чем обнаружилась порча?
еще варианты из серии отключения электричества, при котором сервер при старте ухитряется обогнать оборудование связи; да, подождать канал тоже не проблема.
еще надежность того самого сервера в интернете; да, пара серверов тут должна помочь.
т.е. это все вроде бы лечится, но по совокупности факторов embedded-загрузчик проще и дешевле, да и для моей задачи (NAS) я не увидел готового решения, загружаемого по PXE; выточить такой тоже реально (я умею), но жалко время
моя конструкция, кстати, как раз на постоянной связи с облаком, и возможно, я даже когда-нибудь расскажу и про это, но пока я отвожу своим облачным системам роли второго плана (полу-оффлайн); потребительский роутер периодически заклинивает на VPN-соединении, и вылечить это удасться только его заменой; оффтоп: присматриваюсь к изделиям Mikrotik, ибо имеем слишком хилый WiFi, и у заказчика маячит вторая площадка…
для FreeNAS лучше памяти не менее 2Гб, хотя у меня работает на 1Гб; диски — только с ERC
про корпусную инженериию скоро будет короткий и немного ироничный пост;)
В случае с СХД (и не только) операционный выигрыш в использовании образов ОС как firmware, отдельно от хранимых данных (by design меньше гемора при эксплуатации, FreeNAS избавляет от многих аспектов администрирования ОС). Единственный подводный камень — у многих есть ошибочная презумпция того, что данная система предназначена для сборки из хлама. С таким соотношением ёмкость/скорость, как сейчас, это уже не так, вот тут habrahabr.ru/post/214707 я обосную этот довод.
Но я там же сразу говорю про фирменные решения: есть деньги — покупайте, не мучайтесь:) На рынок выпущены доступные продукты для дома и малого бизнеса.
Но самое главное то, что объем Вашей флэшки может означать как раз технологию SLC, у которой большой ресурс записи (100,000 циклов). Т.е. по микросхемам NAND это легко может оказаться «гражданский» вариант промышленного изделия TS2GUFM-V, о котором я писал. Предполагаю, что у Вашей флэшки попроще математика — вероятно, медленнее (скорость на уровне 5-10Мб/с) и с более примитивной контрольной суммой. Cейчас в обычном магазине непросто найти флэшку Transcend на 4Гб, но это хороший вариант для embedded систем именно из-за SLC.
SMART'ом, конечно же, мониторите состояние Вашей 6-летней двадцатки? Ибо осталось ей уже немного.
А в красивых и чистых ЦОДах, где есть
много работающих серверовадекватная инфраструктура с резервированием питания и того же PXE можно, конечно, и за счет сети все решить:)Поведение FreeNAS 9 я постарался изложить в этом посте, см. заголовок (FreeNAS || NAS4free) && NAND.
Если чего-то не хватает, могу дополнить по Вашей рекомендации.
Подозреваю, что в Вашем комментарии речь о проекте FreeNAS 0.7, который теперь зовется NAS4free, краткая историческая справка в том же моем посте habrahabr.ru/post/214707. У этой системы (NAS4free) действительно есть два варианта, а вот у современного FreeNAS (версия 8, 9 и далее) выбора при установке embedded или не embedded нет, как нет и варианта swap-на-флэшке (это почти инженерный абсурд).
Приходится принимать сложные решения, в основном из-за очень сильного перекоса в сторону ёмкости накопителей относительно скорости.
В моем случае наиболее проблемная точка — PCI, посмотрите, сколько занимает реконструкция зеркала, и комментарии скептиков по поводу полной синхронизации gmirror имеют под собой основания. Поэтому и появилась такая штука, как ZFS, но она требует уважения и на откровенном хламе, как у меня, практически не живет.
И очень Вам желаю, чтобы CompactFlash оказался профессиональным или промышленным, а переходник CF-IDE не глючил.
Обычные системы (не embedded типа) быстро изнашивают флэш-память, так что простой Ubuntu, как я понимаю, это только для тестов.
Удачи, коллега
и это был не один раз, а несколько, и все эпизоды заканчивались в точности тем же — нулями вместо данных.
ясен день, что системы разные, но в моем случае код был под две системы Windows и Linux. Значит, сильно велики шансы иметь общие корни open source библиотек. И не исключено, что тут те же…
Ответ: думаю, что понимаю (см. комментарий выше).
А вот сюда:
все, молчу, молчу, уважаемый гуру:)) вижу, бэкапы Вы и без моих рекомендаций умеете лихо делать:)
NAS4free ставил в варианте №2
NAS4free для сохранения настроек должен каждый раз перемонтировать «корень» со всеми вытекающими, и я обоснованно считаю это
позоромнедостатком проекта в 2014г. Оттуда же и перезагрузки берутся в некоторых случаях.Я уже не говорю про то, что NAS4free предлагает (спасибо, что хоть ненавязчиво) создать еще и swap на флэшке.
Коллега, либо объясните прямо сейчас, в чем плюс хранения настроек XML прямо на корневой файловой системе read-only, либо давайте закроем эту тему и уйдем в личку. Пляски с
бубномсимлинками, конечно, допускаются, но учтите входной порог квалификации для их применения.PS
У FreeNAS есть свои тараканы, можете не беспокоиться, и некоторых я планирую вывести на свет божий в следующем посте.
по крону можно действительно положить на системный том (во FreeNAS 9.2.1.1 появилось понятие «системный том», не смейтесь; но можно и не несистемный тоже), либо отправить на email администратора (Вам рекомендую, «на коленке» через base64 или более научным способом), либо по SSH/SCP на другой сервер, дальше сами можете продолжить;)
про стачивание флэшек планирую отдельный пост, следите, если интересно
PS
моя история про XML совсем не относится к NAS'ам:) Это другие продукты, а отказ питания с потерей XML — просто эпизод из истории их эксплуатации.
re: XML
у меня (правда, совсем в другом проекте) файл XML просто погибал у некоторых заказчиков при абсолютно исправной дисковой системе, в результате отказа питания. Я как представлю себе все эти DOMы c SAXами и чтение-запись всех настроек только одним махом… И с другой стороны «РСУБД-внедренка» SQLite, с журналом и доступом на уровне одиночных записей. Да, найти на разбитой в хлам файловой системе обломки XML и затем склеить их, конечно, реально. Но лично я вывел у себя условный рефлекс: поменял настройку — сразу забэкапил. Пара жестов мышью и все.
Кстати, можно еще /data бэкапить куда-нибудь, запросто настраивается по Cron_Jobs. По-моему, сходная техника прокатит и для NAS4free, только там раздел по-другому называется.
Предложите лучшее обозначение для столь нетривиальных родственных связей. Можете еще добавить к семейному древу проект OMV, который один из членов команды FreeNAS / NAS4free перетащил на Debian. По крайней мере,
на мордев графическом интерфейсе OMV семейные черты читаются отчетливо.Я не говорю, что NAS4free — плохой продукт, коллега. Но беглое прохождение по интерфейсу NAS4free летом 2013г. показало, что те вещи, которые я с ходу вкатывал во FreeNAS 9, у NAS4free требовали перезагрузки. Я думаю, что NAS4free рано или поздно уйдет и от этой практики, и от хранения настроек в плоском XML. И вообще желаю ребятам всяческих успехов.
хоть и не очень актуально, но настроение себе поднимете, особенно мне нравится невозмутимость главного героя, несмотря на советы
слегка нетрезвыхвеселых героев второго плана. Поколение сервера G5 я определял на глаз, мог ошибиться.на всякий случай прямая ссылка на видео youtu.be/Yo14QTHQukc