что такое osd в мышке
Что собой представляет OSD – меню и зачем оно нужно?
Рис. 1 Что собой представляет OSD – меню.
Рис.2 Видеодимофон Kocom KCV-A374
Потенциометры и выключатели, установленные на телевизорах ХХ века, имели аналоговое управление. Сейчас их можно встретить только в портативных черно – белых телевизорах. Но технический прогресс не стоит на месте и все меняется. Сегодня цифровой техникой можно управлять с помощью пульта дистанционного управления. В самом начале для вывода образа или текста предлагали использовать дополнительный дисплей (VFD, LCD или LED). Но такая доработка способствовала сильному увеличению стоимости техники, и стало очевидно, что добавление OSD – меню было намного дешевле, чем добавление второго дисплея.
Рис.3 Корпусная камера Covi Security FB-260S
Благодаря OSD-меню, на экране телевизора можно уместить гораздо больше информации, чем на втором дисплее. Отображение меню осуществляется за счет синхронизации телевизионного сигнала с видеопамятью OSDmenu, что позволяет наложить графическую информацию поверх видео изображения.
Общая проблема при использовании экранного меню, это невозможность производить диагностику в случае поломки телевизора. Для определения неисправности необходимо подключать дополнительный дисплей и непосредственно вскрывать корпус. К тому же некоторые современные гаджеты (DVD – плеерили HDD – плеер), тяжело настроить без дисплея.
FPV OSD для квадрокоптера, что это и как выбрать
В этой статье мы раскроем вопрос о OSD FPV квадрокоптера, зачем оно нужно, как выбрать и как установить. На сегодня OSD является неотъемлемой частью системы даже в гоночных квадрокоптерах.
Что такое OSD?
OSD — это On Screen Display, что в переводе с английского — информация на экране. Простыми словами, OSD — это информация, которая накладывается на видеопоток, и вы это все видите на экране шлема или в очках.
Пример того, какую информацию можно выводить на экран:
OSD fpv может быть как встроенным в оборудование квадрокоптера, так и представлять собой отдельную внешнюю плату, которую вы подключите к полетному контроллеру и к камере. Благодаря этой функции вы сможете контролировать различные параметры дрона в режиме реального времени и в полете.
Пример внешней платы OSD
Пример встроенного в полетный контроллер OSD
Пример OSD в камере FPV
На экран шлема или очков вы сможете выводить любую информацию, которую может получить ваш квадрокоптер, например, напряжение аккумулятора, высота; если есть GPS, то сможете видеть скорость и в каком направлении летит ваш дрон.
Конечно, OSD не обязателен для полетов по FPV, но это очень полезный инструмент, чтобы всегда быть в курсе состояния квадрокоптера и избежать различных проблем — например, вы всегда будете в курсе напряжения аккумулятора и сможете вовремя совершить посадку.
Какие данные показывает OSD на экране?
OSD может выводить различную информацию, какую именно, опишем ниже.
Напряжение аккумулятора (Battery Voltage)
Одна из самых важных и нужных функций, в основном это решающая функция, ради которой многие пилоты устанавливают платы OSD на гоночные дроны. Эта функция есть во всех ОСД и отображает текущее напряжение аккумулятора на экране очков или шлема.
При резком газе у аккумулятора также резко падает и напряжение, из-за чего вы будете видеть предупреждение на экране о низком напряжении и необходимости посадки, но после того, как вы убавите газ, напряжение стабилизируется.
Таймер (Timer)
Во многих OSD есть два таймера — время полета и время во включенном состоянии. Таймер полета привязан к режимам полета — как только вы переключаетесь в АКРО, стабилизацию, горизонт и т. д., включается таймер полета. Полезная функция для расчета примерного времени полета.
Датчик тока (Current sensor)
Многие путают его с напряжением аккумулятора (Battery Voltage), но этот параметр показывает, сколько потребляется тока на данный момент и сколько в общем потреблено mAh. Поэтому этот параметр является более точным индикатором того, сколько в аккумуляторе осталось заряда.
Отображает мощность сигнала в процентах. Полезная функция для съемочных самосборных дронов и дальнолетов. Чем дальше будете лететь, тем слабее будет уровень сигнала.
Предупреждения (Warning)
Многие OSD имеют функцию предупреждения на экране, например, сигнализирующую о низком заряде или низком проценте RSSI. Это очень удобно, если вы залетались и не заметили, как заряд приблизился к критическому порогу. Если вы настроите сигнализацию на экране при достижении определенного порога, вам на экране в середине (или там, где вы расположите) будет появляться надпись о низком заряде и необходимости посадки или другое предупреждение, в зависимости от настроек.
Режим полета (Flight Mode)
Отображает на экране, если, конечно, вы это настроите, текущий режим полета. Удобно для новичков или для тех, кто летает в 3 и более режимах, в основном это у съемочных квадрокоптеров. Также нужная функция, чтобы не было такой ситуации: вы забыли, что включили режим АКРО, но думаете, что летите в режиме стабилизации — сделали крен вправо, а дрон не выравнился и начинает падать.
Нужная функция для дальнолетов и съемочных дронов. Как правило, на гоночные дроны GPS не ставят по причине коротких дистанций полетов. Функция GPS будет работать только при наличии на вашем дроне этого датчика. Функция показывает такие данные, как: координаты дрона, скорость, высота (хотя высота будет точнее при использовании датчика барометра или сонара) и направление движения по отношению к точке взлета — вам будет показывать стрелка в направлении, где вы находитесь.
Линия горизонта (Artificial Horizon)
Все, наверное, видели из фильмов и документалок из кабины пилотов линии на экране, которые меняли положение в зависимости от положения самолета? Эта функция делает то же самое. В середине экрана вы будете видеть линию горизонта, которая будет помогать вам выравнивать дрон, опираясь на положение линии. Данные берутся с акселерометра
Выглядит это вот так:
Какое бывает OSD?
По типу соединения:
Внешняя плата OSD
Внешние OSD платы подразделяются на:
Независимые представляют из себя отдельную внешнюю плату, которая не подключается к полетному контроллеру, а подсоединяется только к камере и видеопередатчику. Как правило, такие платы могут подключаться к GPS и другим датчикам. Хорошими независимыми OSD считаются бренды Skylark и Super Simple OSD.
Зависимые — берут всю информацию у полетного контроллера через последовательный порт RX\TX и просто накладывают ее на видеопоток, сами ничего не обрабатывают.
В качестве хорошей платы приведем пример minimOSD от компании HobbyKing. Все данные эта плата берет у полетного контроллера, что расширяет возможности вывода различной информации, ведь ПК обрабатывает все данные, которые может получить от компонентов дрона.
Гибридные OSD можно подключать к полетному контроллеру, а можно не подключать. Если не сделаете этого, то, например, там будут данные о RSSI и напряжении, а если подключите к ПК, то будут доступны все данные, которые может обработать полетный контроллер, например, GPS. Преимущества очевидны.
Примеры подключения внешней платы OSD
Подключение внешней независимой платы OSD
Простой пример подключения внешней платы OSD. В пример взята плата OSD Hobbyking Super Simple. Подключение в цепь с FPV камерой, видеопередатчиком и аккумулятором 3S LiPo. Есть возможность принимать значение напряжения второго аккумулятора с помощью порта Bat2:
Подключение внешней гибридной платы OSD
Здесь для примера плата MinimOSD, которая отображает и считывает сама уровень сигнала RSSI и напряжение аккумулятора. Но, если вы подключите к ней еще и полетный контроллер (он изображен уже подключенным слева, красный), то данных будет больше. Например, если к ПК подключен датчик GPS, то данные с датчика вы сможете выводить на экран.
Встроенное в полетный контроллер OSD
Такое OSD в основном есть в полетных контроллерах Betaflight, но на сегодня все больше производителей тоже начинают интегрировать эту плату в свои ПК:
Встроенное в FPV камеру OSD
Такое ОСД отличается скудным набором функций, обычно оно ограничивается таймером и датчиком напряжения аккумулятора, хотя для гоночного дрона этого вполне хватит.
Никаких настроек не требуется, все будет работать при стандартном подключении камеры:
Какое OSD я использовал
Betaflight OSD
Встроенное OSD Betaflight очень удобное. Правда, использоваться должна прошивка Betaflight. Отсутствие необходимости прокладки проводов и что-то паять дает много плюсов в пользу этого выбора.
MinimOSD
MinimOSD (не путать с микро) — классная и мощная внешняя плата OSD, с помощью которой можно выводить практически любую информацию. Эта плата была лучшим моим выбором, пока не вышел полетный контроллер с встроенным OSD Betaflight. Плата поддерживает работу с различными ПК, например, Naze32, CC3D, Multiwii, APM и PixHaw. Требуется прошивка с помощью программатора ардуино.
MinimOSD Micro
Маленькая плата, которая умеет накладывать на видеопоток любую информацию с датчиков, которую предоставит полетный контроллер. Для прошивки тоже требуется программатор ардуино. Питается от 5V, поэтому не перепутайте контакты при подключении.
3 OSD выше — самые популярные у пилотов СНГ, их легко купить на Алиэкспресс или Банггуд. Ниже в пример приведем еще несколько для общего развития, но их купить сложнее и популярностью они не пользуются.
BrainFPV
BrainFPV — это полетный контроллер, у которого есть встроенное OSD. Хороший выбор для тех, кто не хочет заморачиваться с прошивкой платы и проводами. Всю настройку можно произвести из интерфейса управления полетным контроллером.
Skylark OSD
Skylark OSD — внешняя плата OSD с датчиком GPS. Умеет благодаря этому показывать координаты и прочую информацию с GPS, напряжение аккумулятора и таймер.
Это была моя первая плата OSD, тогда я искал такую, которую не нужно было подключать к полетному контроллеру, но, чтобы было GPS. Тогда эта плата отлично справлялась со своими задачами и всем меня устраивала. Плата идет в комплекте с модулем GPS и датчиком тока. Единственный минус — плата слишком большая для использования на гоночных дронах.
Super Simple OSD
Как следует из названия, это простейшая плата с OSD. Умеет показывать только таймер и напряжение аккумулятора. Работает с аккумуляторами до 4S.
Hobbyking E-OSD
Тоже простейшая плата OSD, умеет показывать только напряжение и таймер и работает только с аккумуляторами 2-3S. Ее можно прошить и тогда, используя 2 порт BAT2 (выход на второй аккумулятор), можно выводить данные RSSI.
Где купить OSD?
Как и все компоненты для сборки дронов, покупать OSD рекомендуем на Aliexpress и Banggood.
RivaTuner Statistics Server — что это такое и как им пользоваться
RivaTuner Statistics Server (RTSS) — программа, которая изначально разрабатывалась как небольшое дополнение к софту видеокарт для отображения частоты кадров в 3D Приложениях. Сегодня же RTSS является частью программы MSI Afterburner и устанавливается вместе с ней. В этой статье мы рассмотрим, как пользоваться RivaTuner Statistics Server, а также разберем, какие настройки за что отвечают.
Что такое OSD, и при чем здесь RivaTuner
OSD — сокращенно от On Screen Display, что дословно можно перевести как наэкранный дисплей. На нем отображаются различные счетчики. Среди таких счетчиков частота кадров, температура процессора и видеоядра, частоты памяти, процессора и многое другое. За графическое отображение OSD в 3D приложениях как раз и отвечает RivaTuner.
Устанавливать отдельно RivaTuner не имеет особого смысла. Потенциал этой программы раскрывается в полной мере только в связке с использованием MSI Afterburner. Если установить его отдельно, вам будет доступно только отображение частоты кадров в 3D приложениях, и на этом все.
Если у вас еще не установлен MSI Afterburner, скачать его можно по этой ссылке с официального сайта: MSI Afterburner
Настройка RivaTuner Statistics Server
После установки найдите в пуске ярлык RivaTuner Statistics Server и запустите его. После запуска, как правило ничего не произойдет, но зато в системном трее появится такой значок:
Кликните на него, и откроется программа RivaTuner. Первым делом можно сразу сменить язык программы на русский. Для этого нажмите на синюю кнопку Setup в самом низу:
Откроются настройки, где нужно перейти на вкладку User Interface. Тут в пункте «Language» необходимо выбрать русский язык:
Нажимаем ОК, и теперь все настройки и подсказки по всем пунктам меню будут на русском языке. Единственное, что останется на английском языке — это главное окно программы.
Все настройки программы снабжены подробными подсказками. Просто наводите курсор мыши на любой пункт настроек, и будет появляться подробное описание каждой настройки.
Важные настройки RivaTuner
Есть несколько важных настроек, назначение которых просто необходимо знать:
Параметр Start with Windows отвечает за автоматический запуск приложения при запуске операционной системы. Если вы используете RivaTuner в связке с другой программой, например MSI Afterburner, этот параметр можно оставить отключенным. MSI Afterburner самостоятельно будет управлять RivaTuner, используя его библиотеки и настройки, и при надобности запуская его. Достаточно лишь один раз настроить RivaTuner, и все, нет смысла постоянно держать его в принудительной автозагрузке.
Параметр Show On-Screen Display отвечает за включение или отключения OSD поверх 3D приложений. Как нетрудно догадаться, этот параметр должен быть включен, иначе счетчик показываться просто не будет. Опять же, если вы используете MSI Afterburner, можно настроить горячие клавиши на включение и выключение OSD. О том как это сделать, написано в этой статье: «Как использовать MSI Afterburner в играх».
Теперь перейдем к еще одним не менее важным настройкам:
Application detection level лучше ставить в режим Low. В противном случае могут быть ситуации, когда OSD появляется не совсем там, где надо. Если что-то не работает, можно попробовать покрутить этот параметр. В остальных случаях его нужно оставить на «Low«.
Stealth mode крайне полезный режим, который пригодится тем, кто играет в онлайн-игры, использующие античит систему. Дело в том, что иногда античит-системы могут срабатывать на внедрение экрана OSD в игру. Включение этого параметра делает обнаружение OSD системами античита более сложным.
Настройка внешнего вида OSD RivaTuner
На скриншоте ниже красным выделен блок, отвечающий за настройку внешнего вида OSD в игре:
Кнопка «Raster 3D» отвечает за выбор шрифта и его размера. Кнопки Viewport и Framebuffer трогать без особой надобности не стоит. Они пригодятся, если есть какие-нибудь проблемы с правильным определением местоположения OSD программой.
Кнопка Vector 3D включает векторное отображение шрифтов вместо растрового. Использовать не рекомендую, так как такие шрифты читать совсем не удобно. Лучше всего включить Raster 3D, и настроить шрифт по своему вкусу.
Переключатель On-Screen Display shadow включает или выключает тени шрифтов. Лучше этот пункт оставить включенным. Он улучшает восприятие шрифтов, делая их более контрастным по отношению к фону.
Переключатель On-Screen Display fill включает и выключает фоновый цвет для еще большей контрастности. Выглядит это как темная полупрозрачная подложка:
Цвет и прозрачность подложки тоже можно сменить. Для этого нажмите на правую точку On-Screen Display palette:
Остальные 2 точки ни на что не влияют. Они работают только тогда, когда вы используете RivaTuner как самостоятельное приложение. В связке с какой-нибудь программой, типа MSI Afterburner они не работают.
Ползунок On-Screen Display zoom отвечает за масштабирование размеров счетчиков. Если они вам кажутся слишком мелкими или слишком крупными, отрегулируйте их размер.
На скриншоте ниже отрегулирован цвет и прозрачность подложки, а также масштабирование интерфейса:
Перенос OSD в другое место экрана
Можно указать другое место, где отображать информацию счетчиков. Левый верхний угол установлен по умолчанию, и эту настройку мы тоже можем сменить. Обратите внимание на окно предосмотра в самом низу:
Сейчас там отмечен верхний левый угол как точка начала координат (включенный угол светится синим). Ниже вы видите координаты, сейчас там стоит 1 и 1.
Если хотите сменить угол, в котором будет отображаться счетчик, просто щелкайте по этому углу. После выбора угла, он должен стать синим. Можно также задать координаты для расположения OSD просто перетаскивая его мышкой.
Программа постоянно развивается, и некоторые функции могут работать уже не так, как написано в статье. Поэтому, если вы нашли неверное описание каких-то функций, напишите в комментариях, будем исправлять 🙂
Надеюсь, статья для вас оказалась полезной, и теперь вы знаете, как пользоваться RivaTuner Statistics Server 🙂
Эксплуатация Ceph: флаги для управления естественными состояниями OSD
Этой статьёй мы начинаем серию материалов об эксплуатации Ceph и проблемах, которые могут возникать в процессе. Сегодня расскажем о флагах, с помощью которых можно контролировать состояние кластера: noup, nodown, noin, noout. Объясним, что такое «флаппинг OSD» и как его можно остановить.
Статья подготовлена на основе лекции Александра Руденко, ведущего инженера в группе разработки «Облака КРОК». Лекция доступна в рамках курса по Ceph в «Слёрме».
Естественные состояния OSD в Ceph
Для начала разберём, какие состояния OSD есть в Ceph.
Посмотрим на примере нашего стенда.
Глобальная строка состояния OSD разделена на две части. В первой части отражено состояние процессов OSD, во второй — состояние данных на OSD.
Процессы могут быть в состоянии up или down. Данные — в состоянии in или out.
up и down — это два базовых естественных состояния процессов OSD. OSD запускается и переходит в up, выключается — переходит в down.
in и out — это состояние данных на OSD, а точнее, отношение кластера или других участников кластера к данным на этой OSD. При включении OSD входит в состояние in, при выключении и долгом отсутствии — выходит в out.
Важно понять разницу между состояниями up/down и in/out.
Если OSD в состоянии up, это не означает, что кластер использует её данные. И наоборот, если OSD в состоянии down, кластер всё ещё может полагаться на эти данные.
Если OSD в состоянии in, это значит, что она «в обойме»: на неё реплицируются данные, для некоторых данных она является первичной OSD и т. д. То есть она включена в процесс обмена данными.
Если OSD в состоянии out — данные с неё выводятся.
Посмотрим на примере. В нашем кластере 9 OSD — все up, все in.
Останавливаем OSD 0.
В состоянии up находится 8 OSD, но в состоянии in по-прежнему 9.
Посмотрим все OSD в состоянии down.
В состоянии down находится одна OSD.
То есть состояние процесса перешло в down, но у кластера есть уверенность, что данные в ближайшее время подъедут, поэтому он оставляет OSD в статусе in.
Дефолтный таймаут — 20 минут. В течение этого времени placement groups с ушедшей в down OSD находятся в состоянии degraded, так как у них не хватает одной копии. Но пока кластер считает её in, он не начинает процесс восстановления. Через 20 минут кластер автоматически переведёт данные OSD в состояние out.
Надеемся, теперь разница между состояниями up/down и in/out понятна.
Флаги-блокаторы естественных состояний
up, down, in, out — это ручки, которые Ceph крутит сам. Но у администратора кластера есть возможность вклиниваться в процесс.
Если вы считаете, что нужно скорректировать естественное поведение кластера (например, заблокировать выключение OSD), то вы можете воспользоваться блокаторами естественных состояний.
Блокаторы естественных состояний OSD — это флаги noup/nodown и noin/noout.
Команда установки флага:
Команда снятия флага:
Теперь рассмотрим работу каждого флага на примере нашего стенда.
Флаг noup
Ранее мы перевели OSD в down.
Установим флаг noup — он не позволит OSD перейти в состояние up (будьте осторожны, применение флага вне эксперимента может быть опасным).
Пробуем запустить OSD.
Из-за установленного флага OSD не может перейти в состояние up. И это при том, что она запущена и работает.
Что происходит: когда OSD джойнится в кластер, она получает карту OSD, где видит, что ей сказали «noup». OSD запускается, но не может перейти в первое инфраструктурное состояние, в состояние up.
Флаг опасен, потому что если произойдёт сбой, при котором OSD кратковременно уйдут в down или кто-то рестартанёт OSD, то они не смогут подключиться и перейти в состояние up, а значит, не смогут в свои данные вернуть кластер.
На самом деле сложно представить, когда может понадобиться флаг noup. Ведь если вы не хотите, чтобы данные конкретных OSD включались в кластер, вы можете поставить noin (о нём ниже). Процессы OSD запустятся (они сами по себе безвредны), но данные с этих OSD использоваться не будут. Впрочем, во время обучения главное понять, как что работает, а кейсы, возможно, появятся.
Сейчас у нас есть OSD в состоянии down.
Но по-прежнему 9 OSD в состоянии in.
Приведём эту OSD в состояние out командой:
В результате на одну in стало меньше:
Это произошло бы автоматически, если бы Ceph выждал 20 минут.
Теперь Ceph относится к этим данным как к потерянным. Запустилось recovery io — placement groups восстанавливаются на других OSD.
Все OSD в состоянии up.
При этом одна OSD в состоянии out.
Мы поменяли ситуацию: все OSD находятся в состоянии up, но одна находится в состоянии out. То есть на её данные мы больше не полагаемся.
Остановим её ещё раз.
Теперь применим принудительное in, которое говорит кластеру: «Всё-таки считай, что эти данные доступны, что они скоро подъедут».
Мы смоделировали ситуацию, когда OSD выключилась (например, из-за проблем с питанием), но кластер всё ещё полагается на эти данные.
Перейдём к следующему флагу.
Флаг noin
Предположим, из-за каких-то проблем OSD перешла в down (для эксперимента мы остановим её принудительно).
Спустя время Ceph отправил её в out (опять же, мы сделаем это сами).
В результате получаем кластер, в котором 8 up, 8 in.
Данные, которые были на проблемных OSD, находятся в состоянии degraded, так как одна из их копий недоступна.
Мы предполагаем, что не будем использовать проблемные диски, но нам хотелось бы их поднять и применить для восстановления кластера.
Иными словами, нам нужно, чтобы проблемная OSD участвовала в процессе бакфиллинга (backfilling) и восстановления placement group.
В такой ситуации можно поставить флаг noin и после запустить OSD. Тем самым мы оставим OSD в out, то есть не будем доверять её данным, но при этом задействуем в процессе восстановления.
Ситуация радикально поменялась.
Напомним, пока OSD была выключена и пребывала в состоянии out, placement groups были в состоянии degraded. То есть количества копий одной placement group было недостаточно и новые placement groups создавались из оставшихся копий.
Как только мы её подняли, но при этом оставили в состоянии out, данные стали перемещаться — перешли в состояние misplaced.
Мы вернули количество копий, которые были в кластере изначально, поэтому теперь нет ни одной placement group в состоянии degraded.
Важно! После того, как мы вернули OSD, но оставили её в out, её можно вернуть в состояние in командой:
В отличие от состояния in, команды для принудительного возврата в состояние up нет.
Мы не можем заставить OSD перейти в up, потому что это состояние, в которое она переходит естественным образом при включении.
Флаг noout
С флагом noout всё проще.
Он нужен, когда вы на длительное время выключаете OSD и не хотите, чтобы Ceph отрешался от этих данных и запускал rebalancing, а хотите, чтобы он просто ждал, пока OSD вернутся. По сути это то же самое, что maintenance.
Ставится и снимается так же, как все другие флаги.
Флаг nodown и флаппинг OSD
Флаг nodown блокирует переход OSD в состояние down. Он принудительно держит OSD во всех картах в состоянии up, навязывая участникам кластера продолжать попытки с ней взаимодействовать: «да, OSD недоступна, но подождём».
Просто так делать nodown нет смысла. Если вы выключаете сервер на обслуживание, то правильно разрешать сервисам OSD переходить в down, потому что это их естественное состояние. Поэтому для обслуживания этот флаг практически не применим, хотя его нередко прописывают в регламентных операциях (обоснование для этого найти сложно).
Но есть одна ситуация, когда использование флага nodown оправдано. Она называется «флаппинг OSD» (flapping OSD’s).
Прежде чем перейти к описанию флаппинга, надо сказать, как OSD переходит в down. Есть два варианта: OSD сама сообщает о переходе в down или другие участники кластера говорят, что какая-то OSD долго не отвечает, а значит, перешла в down.
В первом случае при выключении OSD вы можете увидеть в логе монитора, как он пишет, что OSD сама себя пометила как down. Это нормальный процесс завершения, монитор помечает OSD как down и всем рассылает эту информацию с помощью апдейта карты OSD.
Во втором случае о недоступности процессов OSD сообщают другие OSD. Надо понимать, что все OSD мониторят друг друга. Каждая OSD условно пингует другую и тем самым мониторит её доступность. Когда монитор получает два репорта (или больше — параметр настраивается) о том, что некая OSD недоступна, он помечает её как down. После этого все участники сети считают, что OSD down, и кластер начинает перестраиваться.
Здесь и кроется проблема.
Из-за архитектурных особенностей Ceph одна OSD может получить большую нагрузку, чем соседняя. Поэтому возможны ситуации, когда одна или несколько OSD не успевают ответить тем OSD, которые её пингуют. Это может быть из-за высокой нагрузки, из-за того, что OSD ротирует свою RocksDB большого размера, из-за то, что прилетело много реквестов или на ответ банально не хватает CPU.
Монитор получает сообщения, что OSD недоступна, и помечает её как недоступную — можно сказать, помечает ложно, ведь по сути OSD работает. После этого кластер начинает перестраиваться, нагрузка перераспределяются на другие OSD, выбирается другая primary OSD.
На выбранной взамен ложно упавшей OSD начинается похожий процесс: она тоже не отвечает, тоже помечается как down — и так далее. В случае высокой нагрузки или больших проблем с железом всё может начать рушиться как карточный домик. Одна OSD перешла в фейковый down, вторая, третья… Первая ещё не успела восстановиться, а тут ещё парочка перешла.
Этот процесс в Ceph-комьюнити и называют «флаппинг». В результате флаппинга кластер может просто развалиться. Чтобы это предотвратить, можно воспользоваться флагом down.
После установки флага кластер не будет перестраиваться на каждый репорт от других OSD и по идее это должно сохранить его стабильность.
Конечно, производительность в таком кластере будет очень низкой, потому что если OSD «залипает» и не может ответить на heart beat, какая бы причина у неё не была, запросы пользователей будут страдать.
Запомните: nodown не поможет выровнять производительность кластера, не спасёт ситуацию и не сделает всех счастливыми, но по крайней мере кластер не будет закапывать сам себя.
В следующей статье поговорим о глобальных флагах для управления Ceph: nobackfill, norecover, norebalance и pause.