Mdadm — полезные команды
mdadm — полезные команды
Соберу в одном месте список полезных команд для mdadm.
mdadm — утилита для управления программными RAID-массивами в Linux.
С помощью mdadm можно выполнять следующие операции:
- mdadm —create, C Создать новый массив на основе указанных устройств. Использовать суперблоки размещённые на каждом устройстве.
- mdadm —assemble, -A Собрать компоненты ранее созданного массива в массив. Компоненты можно указывать явно, но можно и не указывать — тогда выполняется их поиск по суперблокам.
- mdadm —build, -B Собрать массив из компонентов, у которых нет суперблоков. Не выполняются никакие проверки, создание и сборка массива в принципе ничем не отличаются.
- mdadm —manage Разнообразные операции по управлению массивом, такие как замена диска и пометка как сбойного.
- mdadm —misc Действия, которые не относятся ни к одному из других режимов работы.
- mdadm —grow, G Расширение или уменьшение массива, включаются или удаляются новые диски.
- mdadm —incremental, I Добавление диска в массив.
- mdadm —monitor, —follow, -F Следить за изменением состояния устройств. Для RAID0 этот режим не имеет смысла.
И другие: mdadm —help.
Создание массива
Для создания массива нужно использовать не смонтированные разделы. Убедитесь в этом, при необходимости демонтируйте и уберите из fstab.
Пример создания RAID5 массива из трёх дисков:
- /dev/nvme0n1
- /dev/nvme1n1
- /dev/nvme2n1
Я использую NVMe диски, у вас названия дисков будут другие.
Желательно изменить тип разделов на FD (Linux RAID autodetect). Это можно сделать с помощью fdisk (t).
Занулить суперблоки дисков:
Стереть подпись и метаданные:
С помощью ключа —create создать RAID5 массив:
- /dev/md0 — массив, который мы создаём;
- —level 5 — уровень RAID;
- —raid-devices=3 — количество дисков, из которых собирается массив;
- /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1 — диски.
Для примера RAID1 из двух дисков /dev/sdb и /dev/sdc можно создать так:
- /dev/md2 — массив, который мы создаём;
- -l 5 — уровень RAID;
- -n 2 — количество дисков, из которых собирается массив;
- /dev/sd — диски sdb и sdc.
Состояние массива
Посмотреть инициализацию массива и текущее состояние можно с помощью команды:
Подробный статус выбранного массива
Список массивов
Создание файловой системы
Файловую систему в массиве можно создать с помощью mkfs, например:
Для лучшей производительности файловой системы имеет смысл указывать при её создании количество дисков в рейде и количество блоков файловой системы, которое может поместиться в один страйп (chunk), это касается массивов уровня RAID0, RAID5 ,RAID6 ,RAID10. Для RAID1 (mirror) это не имеет значения так как запись идет всегда на один device, a в других типах массивов данные записываются последовательно на разные диски порциями, соответствующими размеру stripe. Например, если мы используем RAID5 из 3 дисков с дефолтным размером страйпа в 64К и файловую систему ext3 с размером блока в 4К то можно вызывать команду mkfs.ext3 так:
stripe-width обычно рассчитывается как
где N — это диски с данными в массиве, например, в RAID5 два диска с данными и один parity для контрольных сумм. Для файловой системы XFS нужно указывать не количество блоков файловой системы, соответствующих размеру stripe в массиве, а размер самого страйпа:
Создание mdadm.conf
Операционная система не запоминает какие RAID-массивы ей нужно создать и какие диски в них входят. Эта информация содержится в файле mdadm.conf.
В интернете советуют применять команду mdadm —detail —scan —verbose, но я не рекомендую, т.к. она пишет в конфигурационный файл названия разделов, а они в некоторых случаях могут измениться, тогда RAID-массив не соберётся. А mdadm —detail —scan записывает UUID разделов, которые не изменятся.
Проверка целостности массива
Есть ли ошибки в процессе проверки программного RAID-массива по команде check или repair:
Работа с дисками
Диск в массиве можно условно сделать сбойным с помощью ключа —fail (-f):
Удалить из массива отказавший диск:
Добавить в массив заменённый диск:
Сборка существующего массива
Собрать существующий массив можно с помощью mdadm —assemble:
Расширение массива
Расширить массив можно с помощью ключа —grow (-G). Сначала добавляется диск, а потом массив расширяется:
Проверяем, что диск добавился:
Если диск добавился, расширяем массив:
Опция —raid-devices указывает новое количество дисков в массиве с учётом добавленного. Рекомендуется задать файл бэкапа на случай прерывания перестроения массива, например, добавить опцию:
При необходимости, можно регулировать скорость процесса расширения массива, указав нужное значение в файлах:
- /proc/sys/dev/raid/speed_limit_min
- /proc/sys/dev/raid/speed_limit_max
Убедитесь, что массив расширился:
Нужно обновить конфигурационный файл с учётом сделанных изменений:
Возобновление отложенной синхронизации resync=PENDING
Если синхронизации массива отложена, состояние массива resync=PENDING, то синхронизацию можно возобновить:
Глохнет, не едет, детонирует: что такое датчик положения коленчатого вала и как его проверить?
Почему-то мне хорошо запомнилось, как на заре появления инжекторных моторов в России датчиком положения коленвала пугали фанатов карбюраторов. Мол, вот отвалится один датчик (а он обязательно отвалится, потому что «электрический»), и встанешь ты на своём «ынжекторе» посреди дороги. И мотор потом не запустишь. Прошли уже не годы, а целые десятилетия, но этот датчик так и не стал главной головной болью владельцев инжекторных машин. Что же получается, зря пугали? И да, и нет. Обездвижить машину ДПКВ иногда действительно может, но делает это очень редко. Потому что ломаться там, если честно, нечему. Почти нечему.
Так точно!
Для чего нужен датчик положения коленвала? Ответ кроется в его названии: определять положение коленвала. Вот так просто, да. Но кроме этого тот же датчик определяет ещё одну важную деталь – момент прохождения поршнями верхних и нижних мёртвых точек. Делает он это, конечно, не сам – всё считает ЭБУ. Но без него получать эти данные просто невозможно. На всякий случай скажем несколько слов о том, зачем блоку управления эти данные нужны и как он их использует.
Несмотря на кажущуюся скудность информации, которую передаёт ДПКВ, она крайне необходима для регулировки блоком сразу нескольких параметров. Во-первых, это, конечно же, время подачи топлива. Кстати, тут как раз важно определить момент прохождения мёртвых точек. Во-вторых, это угол опережения зажигания. В-третьих, не без участия ДПКВ определяется количество поданного топлива. И, наконец, этот датчик нужен для синхронизации работы коленвала и распредвалов и для нормального функционирования адсорбера (если быть точнее – его клапана). Если всё суммировать, то датчик положения коленвала – один из основных датчиков, сигнал с которого требуется ЭБУ для корректного управления зажиганием. Конечно же, им одним дело не ограничивается, без него мотор нормально работать тоже не может. А иногда – и вообще просто работать, хотя бы как-то. Ведь если ЭБУ не знает, в какой момент ему следует подать напряжение на свечи зажигания или велеть форсункам впрыснуть очередную дозу топлива, куда деваться мотору? Только глохнуть.
Собственно, обычно так и происходит. Дело осложняется тем, что ДПКВ практически не умеет «глючить» в силу своей простоты. Так что если он умирает, то делает это полностью. Одно из наименее тяжёлых последствий – это появляющаяся ошибка фаз (например, Р0016). Разумеется, при этой ошибке в первую очередь возникает желание проверить механизм газораспределения (может быть, растянулась цепь, перескочил ремень ГРМ или что-то не так с натяжителем или успокоителем цепи или с демпфером шкива коленвала). Но эту ошибку вполне может зажечь и ДПКВ.
В один момент ЭБУ видит, что сигнал с датчика расположения распредвала не совпадает с сигналом датчика положения коленвала. При нормальной работе пики на осциллограмме должны совпадать через раз, так как за два оборота коленвала распредвал сделает только один оборот. Если же при наложении двух сигналов замечается рассинхронизация, появляется ошибка фаз. Таким образом, ЭБУ не только управляет зажиганием и впрыском, но и проводит своеобразную самодиагностику, проверяя синхронизацию фаз. И ДПКВ – один из элементов, который в ходе этой самодиагностики проходит постоянную проверку. Каким-то образом искажать или переносить сигнал во времени этот датчик не может, и единственная его неисправность – полное отсутствие сигнала.
Свет, магнит и Холл
Существует три типа ДПКВ: оптический, индукционный (магнитный) и датчик, основанный на эффекте Холла (иногда его так и называют – датчик Холла). Для работы каждому датчику нужна ещё одна деталь – задающий (или реперный) диск, который стоит либо на шкиве коленвала, либо прямо на его носке. Задача реперного диска: вращаться с той же скоростью, что и коленвал, и подавать сигналы о каждом обороте датчику.
Оптический датчик используется реже остальных. Он состоит из двух частей: из источника света и его приёмника. Обычно это светодиод и фотодиод соответственно. При вращении задающий диск в определённый момент перекрывает светодиод, и фотодиод фиксирует изменение сигнала. Недостаток этого типа датчика очевиден: если он покроется пылью или грязью, то работать не будет. Намного проще и надёжнее работает индукционный датчик.
Это всего лишь катушка с магнитным сердечником и обмоткой. В момент прохождения метки реперного диска рядом с датчиком, около сердечника, изменяется магнитное поле, а в обмотке появляется ток. Ну, а ток – это и есть тот сигнал, которого так ждёт ЭБУ. Индукционные датчики – наиболее популярные. Они надёжные, простые, недорогие и почти безотказные.
Датчик Холла – он и есть датчик Холла. В корпусе с магнитопроводами стоят микросхемы, а реперный диск для такого датчика отличается намагниченными зубцами. Дальше всё понятно: намагниченный зубец проходит около датчика, возникает ток, ЭБУ получает сигнал. Теоретически это наиболее продвинутый датчик, хотя и более сложный. Хотя бы по одной причине: ему нужно питание, а значит, и проводов к нему идёт больше. Зато он очень точный.
Думаю, надо сказать несколько слов и о задающих дисках. Обычно это простой зубчатый диск, у которого отсутствует пара зубчиков. Обычно общее количество зубцов – 60. Таким образом, каждый зубец отмеряет 6 градусов вращения (6х60=360, полный оборот). Такие диски называют дисками типа 60-2 (без двух зубчиков). Но иногда встречаются диски, у которых нет ещё двух зубов на противоположенной стороне (через 180 градусов). Их называют тип 60-2-2.
Если с материалом для оптических и индукционных датчиков обычно не заморачиваются (их часто отливают из стали вместе со шкивом коленвала), то диски для датчика Холла немного сложнее из-за необходимости ставить в зубцы магниты. Поэтому они обычно пластмассовые.
Дёргается, не едет, не запускается
На всякий случай опишем симптомы выхода из строя ДПКВ. Как я уже говорил, машина не будет нормально ехать или пуск мотора может быть вообще невозможен. Кроме того, это тот редкий случай, когда мотор может глохнуть прямо на ходу без видимых причин.
Так как неработающий ДПКВ вносит изменения в работу системы зажигания, то возможна детонация (особенно под нагрузкой). На холостых мотор может работать неустойчиво, могут плавать обороты. Одним словом, букет последствий большой и неприятный. И вряд ли получится разобраться со всем этим набором без диагностики. Но у ДПКВ есть одна приятная особенность: часто его можно очень легко снять, а вместо него поставить новый. Чаще всего даже не придётся стирать ошибки или совершать другие действия со сканером: если мотор заработал, дело в этом датчике. Это, конечно, хорошо, но вряд ли у кого-то дома лежит запас ДПКВ. Может, есть способ проверить его без замены? И даже без сканера? Да, такой способ есть.
Малой кровью
Пальцем, конечно, ДПКВ не проверишь, понадобится хотя бы мультиметр. И проверить так можно только наиболее распространённый индукционный датчик. Способ очень простой: выставляем мультиметр в режим омметра и проверяем сопротивление катушки. Оно у датчиков бывает разным, но приблизительное значение сопротивления катушки – от 500 Ом до 1 кОм. Само собой, перед замером желательно найти точное значение того датчика, который стоит на конкретном автомобиле. Но в целом можно ориентироваться на эти значения – 0,5-1 кОм.
К сожалению, этот способ не даёт стопроцентного результата. То есть отсутствие сопротивления – это гарантия выхода из строя датчика, а вот его наличие – ещё не гарантия его нормальной работы. И в нормальных сервисах ДПКВ проверяют ещё двумя способами. Но для первого нужен как минимум измеритель индуктивности, для второго – осциллограф. Ни того, ни другого дома просто так не держат, так что описывать эти методы не буду.
Печально, но датчик Холла обычным мультиметром вообще проверить невозможно, так что тут потребуется либо дорогое оборудование, либо (что намного проще и эффективнее) новый датчик. Вообще, замена подозрительного датчика на заведомо исправный – лучший способ диагностики.
К счастью, ДПКВ сам по себе ломается крайне редко. Внутри него ничего не движется и не изнашивается, так что механически износиться у него не получается. Повреждают его обычно при криворуком ремонте, так что если есть подозрение, что ДПКВ начал дурить после посещения «дяди Васи», это подозрение может быть вполне обосновано.
Прежде чем искать на мультиметре режим омметра и думать, куда в датчик засунуть два щупа прибора, нужно обязательно осмотреть его снаружи. Каким бы простым он ни был, если его нечаянно ушатали молотком, он может и погибнуть. Чаще он умирает от попадания грязи между ним и задающим диском. Расстояние между ними небольшое (в среднем 0,5-1,5 мм), так что даже небольшой камешек, неудачно прилипший к грязи, способен принести много горя.
Кроме того, как и любая электрическая деталь, датчик может отказываться работать из-за неисправной или окислившейся проводки. Поэтому нужно проверить его разъёмы, и если они грязные или окисленные, почистить. Может так получится, что проблема именно в них, а не в датчике.
И последнее: трясущийся и глохнущий мотор вместе с горящим Check Engine и ошибками Р0016 (равно как и Р0335 или Р0336) не всегда указывают на неисправность ДПКВ однозначно. Да, есть ошибки, которые более-менее точно указывают на отсутствие сигнала с датчика, и хороший диагност увидит это сразу. Лучше всего не заниматься «самолечением» и обратиться к профессионалу.
Кому подойдет Notion?
- Каждому для личных дел: чтобы составлять повседневные списки, не пропускать важные встречи, ставить долгосрочные и краткосрочные цели.
- Редакторам: чтобы собирать контент для выпуска, распределять задачи между авторами и фотографами, отслеживать статус и сроки сдачи материалов.
- Дизайнерам и разработчикам: чтобы собирать брифы, референсы, файлы и все этапы проекта, ставить задачи и контролировать сроки.
- HR-специалистам: чтобы собирать резюме, портфолио и тестовые задания от соискателей, раскладывать их по этапам, составлять график собеседований, следить за размещением объявлений и вакансиях.
- SMM: чтобы составлять контент-планы и графики выхода постов, ставить задачи подрядчикам и анализировать охваты публикаций.
- Студентам и преподавателям: чтобы выкладывать учебные материалы и лекции, следить за расписанием, назначать встречи и вебинары, отправлять работы на проверку.
При разработке нативного приложения Android для ТСД, в котором присутствует функционал отображения задач кладовщикам, созданных в 1С, возникла необходимость отправлять push-уведомления о появлении новых задач. Для отправки таких уведомлений было решено использовать сервис Firebase Cloud Messaging (FCM). Так как для 1С, в отличии от других языков программирования, не существует готовых библиотек, что вполне логично, то очевидным способом отправки является использование протокола HTTP. Однако, существующая информация в интернете в части 1С содержит только сведений об отправке push-уведомлений через этот сервис с использованием устаревшего протокола HTTP Firebase Cloud Messaging. Сам Google не рекомендует использовать данный протокол и настоятельно склоняет к переходу на новый протокол FCM HTTP v1 API. Что ж, пришлось разбираться самостоятельно.
1 стартмани
24.03.2021 7007 13 ltfriend 12