Pull to refresh
11
0
Дмитрий @kruftik

SRE

Send message

Xiaomi Mi Thermometer 2 не только Bluetooth, но и ZigBee

Level of difficultyMedium
Reading time4 min
Views73K

TL;DR: Да, можно программно изменить датчик для работы в сети Zigbee, достаточно по воздуху перезаписать прошивку.

Многим пользователям умного дома известен квадратный датчик температуры и влажности от Xiaomi LYWSD03MMC. Его очевидные плюсы — это LCD экран, подключение к системе умного дома MiHome и конечно же цена. Его без преувеличения можно назвать если не самым, то точно одним из самых дешевых "умных" датчиков, которые имеют интерфесы для подключения к умному дому. В данном случае это популярный bluetooth, который позволяет подключиться к датчику со смартфона и увидеть показания. Поэтому он завоевал своё место в сердцах строителей умных домов как дешевое и надёжное решение.

Читать далее
Total votes 91: ↑91 and ↓0+91
Comments153

Настраиваем DRBD для репликации хранилища на два CentOS 7 сервера

Reading time7 min
Views26K
Перевод статьи подготовлен в преддверии старта курса «Администратор Linux. Виртуализация и кластеризация».




DRBD (Distributed Replicated Block Device — распределённое реплицируемое блочное устройство) представляет собой распределенное, гибкое и универсально реплицируемое решение хранения данных для Linux. Оно отражает содержимое блочных устройств, таких как жесткие диски, разделы, логические тома и т.д. между серверами. Оно создает копии данных на двух устройствах хранения для того, чтобы в случае сбоя одного из них можно было использовать данные на втором.

Можно сказать, что это нечто вроде сетевой конфигурации RAID 1 с дисками, отражаемыми на разные сервера. Однако оно работает совсем не так, как RAID (даже сетевой).
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments8

Активация discard (TRIM) на Linux для SSD

Reading time6 min
Views80K

Современные накопители данных такие как SSD нуждаются в команде TRIM интерфейса ATA и для этого в ОС построенных на базе ядра Linux предусмотрено два метода управления на уровне файловых систем:


  • discard — устанавливается как опция монтировании файловой системы. Позволяет ядру Linux сразу отправлять команду TRIM на устройство, как только об этом сообщит файловая система.
  • fstrim — утилита которая запускается вручную или по расписанию как сервис ОС, отправляет список удаленных блоков с ФС для зачистки их на устройстве.

Для включения fstrim достаточно активировать сервис fstrim.service в systemd, но лучше вместо сервиса, который будет висеть в памяти, использовать таймер fstrim.timer который будет запускать еженедельный TRIM.


Пример включения сервиса:


# Включение, старт и вывод статуса сервиса:
systemctl enable fstrim.service && \
systemctl start fstrim.service && \
systemctl status fstrim.service

Но этих мер недостаточно, если у вас файловые системы располагаются на томах LVM, а LVM в LUKS игла в яйце, яйцо в утке, утка в зайце:



Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments15

SQL миграции в Postgres. Часть 1

Level of difficultyMedium
Reading time15 min
Views30K

Как обновить значение атрибута для всех записей таблицы? Как добавить первичный или уникальный ключ в таблицу? Как разбить таблицу на две? Как ... 

Если приложение может быть недоступно какое-то время для проведения миграций, то ответы на эти вопросы не представляют сложности. А что делать, если миграции нужно проводить на горячую – не останавливая базу данных и не мешая другим с ней работать?

На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments17

DevOps придумали разработчики, чтобы админы больше работали

Reading time9 min
Views42K

Еще 4 года назад использование контейнеров в production было экзотикой, но сейчас это уже норма как для маленьких компаний, так и для больших корпораций. Давайте попробуем посмотреть на всю эту историю с devops/контейнерами/микросервисами ретроспективно, взглянуть еще раз свежим взглядом на то, какие задачи мы изначально пытались решить, какие решения у нас есть сейчас и чего не хватает для полного счастья?


Я буду в большей степени рассуждать про production окружение, так как основную массу нерешенных проблем я вижу именно там.

Читать дальше →
Total votes 95: ↑91 and ↓4+87
Comments62

Механизмы контейнеризации: cgroups

Reading time11 min
Views104K
механизмы контейнеризации

Продолжаем цикл статей о механизмах контейнеризации. В прошлый раз мы говорили об изоляции процессов с помощью механизма «пространств имён» (namespaces). Но для контейнеризации одной лишь изоляции ресурсов недостаточно. Если мы запускаем какое-либо приложение в изолированном окружении, мы должны быть уверены в том, что этому приложению выделено достаточно ресурсов и что оно не будет потреблять лишние ресурсы, нарушая тем самым работу остальной системы. Для решения этой задачи в ядре Linux имеется специальный механизм — cgroups (сокращение от control groups, контрольные группы). О нём мы расскажем в сегодняшней статье.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments4

PostgreSQL Antipatterns: обновляем большую таблицу под нагрузкой

Reading time6 min
Views27K
Как стоит поступить (а как точно не надо), если в «многомиллионной» активно используемой таблице PostgreSQL нужно обновить большое количество записей — проинициализировать значение нового поля или скорректировать ошибки в существующих записях? А при этом сохранить свое время и не потерять деньги компании из-за простоя.


Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments8

PostgreSQL Antipatterns: сражаемся с ордами «мертвецов»

Reading time3 min
Views17K
Особенности работы внутренних механизмов PostgreSQL позволяют ему быть очень быстрым в одних ситуация и «не очень» в других. Сегодня остановимся на классическом примере конфликта между тем, как работает СУБД и тем, что делает с ней разработчик — UPDATE vs принципы MVCC.

Кратко сюжет из отличной статьи:
Когда строка изменяется командой UPDATE, фактически выполняются две операции: DELETE и INSERT. В текущей версии строки устанавливается xmax, равный номеру транзакции, выполнившей UPDATE. Затем создается новая версия той же строки; значение xmin у нее совпадает с значением xmax предыдущей версии.
Через какое-то время после завершения этой транзакции старая или новая версии, в зависимости от COMMIT/ROOLBACK, будут признаны «мертвыми» (dead tuples) при проходе VACUUM по таблице и зачищены.



Но это произойдет далеко не сразу, а вот проблемы с «мертвецами» можно нажить очень быстро — при многократном или массовом обновлении записей в большой таблице, а чуть позже столкнуться с ситуацией, что и VACUUM не сможет помочь.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments15

Как дебажить переменные окружения в Linux

Reading time4 min
Views28K
Часто бывает так, что приходишь на машину и обнаруживаешь какой-то скрипт, запущенный под системным пользователем неделю назад. Кто его запустил? Где искать этот run.php? Или добавляешь запись в /etc/crontab, а скрипт там падает с ошибкой «command not found». Почему? И что делать? 

У меня есть ответы на эти вопросы.

Читать дальше →
Total votes 88: ↑86 and ↓2+84
Comments22

Екатеринбург, 14 августа — митап Atlassian User Group

Reading time1 min
Views1.3K
Привет!

Продукты Atlassian в Альфа-Банке широко используются не только разработчиками, но и бизнес-подразделениями. При этом центром сопровождения является Екатеринбург, где регулярно проводятся встречи местного сообщества. Анонсируем нашу очередную встречу:



Екатеринбург, 14 августа, 19:00
Коворкинг «Комбинат», ул. 8 Марта, 32А

Вход бесплатный, но надо зарегистрироваться заранее.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments0

Последние изменения в IO-стеке Linux с точки зрения DBA

Reading time15 min
Views20K
Главные вопросы работы с базой данных связаны с особенностями устройства операционной системы, на которой работает база. Сейчас Linux — основная операционная система для баз данных. Solaris, Microsoft и даже HPUX все еще применяются в энтерпрайзе, но первое место им больше никогда не занять, даже вместе взятым. Linux уверенно завоевывает позиции, потому что open source баз данных все больше. Поэтому вопрос взаимодействия БД с ОС, очевидно, о базах данных в Linux. На это накладывается вечная проблема БД — производительность IO. Хорошо, что в Linux последние годы идет капитальный ремонт IO-стека и есть надежда на просветление.


Илья Космодемьянский (hydrobiont) работает в компании Data Egret, которая занимается консалтингом и поддержкой PostgreSQL, и про взаимодействие ОС и баз данных знает многое. В докладе на HighLoad++ Илья рассказал о взаимодействии IO и БД на примере PostgreSQL, но и показал, как с IO работают другие БД. Рассмотрел стек Linux IO, что нового и хорошего в нем появилось и почему все не так, как было пару лет назад. В качестве полезной памятки — контрольный список настроек PostgreSQL и Linux для максимальной производительности подсистемы IO в новых ядрах.
Total votes 48: ↑43 and ↓5+38
Comments9

Что внутри asyncio

Reading time15 min
Views22K

В этой статье я предлагаю читателю совершить со мной в меру увлекательное путешествие в недра asyncio, чтобы разобраться, как в ней реализовано асинхронное выполнение кода. Мы оседлаем коллбэки и промчимся по циклу событий сквозь пару ключевых абстракций прямо в корутину. Если на вашей карте питона еще нет этих достопримечательностей, добро пожаловать под кат.

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments3

Как мы учились эксплуатировать Java в Docker

Reading time13 min
Views45K
Под капотом hh.ru — большое количество Java-сервисов, запущенных в докер-контейнерах. За время их эксплуатации мы столкнулись с большим количеством нетривиальных проблем. Во многих случаях чтобы докопаться до решения приходилось долго гуглить, читать исходники OpenJDK и даже профилировать сервисы на продакшене. В этой статье я постараюсь передать квинтэссенцию полученного в процессе знания.


Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments24

6 занимательных системных багов при эксплуатации Kubernetes [и их решение]

Reading time10 min
Views17K


За годы эксплуатации Kubernetes в production у нас накопилось немало занимательных историй, как баги в различных системных компонентах приводили к неприятным и/или непонятным последствиям, влияющим на работу контейнеров и pod'ов. В этой статье мы сделали подборку некоторых наиболее частых или интересных из них. Даже если вам никогда не повезёт столкнуться с такими ситуациями, читать о подобных кратких детективах — тем более, «из первых рук» — всегда занятно, разве не так?..
Читать дальше →
Total votes 59: ↑58 and ↓1+57
Comments7

Изменение схемы таблиц PostgreSQL без долгих блокировок. Лекция Яндекса

Reading time10 min
Views23K
Если одновременно выполняется много операций по изменению схемы БД, сервис не может корректно работать на запись. Разработчик Владимир Колясинский объяснил, какие операции в PostgreSQL требуют длительных блокировок и как команда Яндекс.Коннекта обеспечивает почти стопроцентную доступность сервиса на запись во время выполнения подобных операций. Кроме того, вы узнаете о библиотеке для Django, которая призвана автоматизировать часть описанных процессов.


У нас большие нагрузки, тысячи RPS, и простой в несколько минут, не говоря о большем времени, недопустим. Нужно, чтобы миграции происходили незаметно для пользователя. А с такими нагрузками уже не получится встать в четыре часа ночи, что-то накатить, когда нет нагрузки, и снова лечь спать — потому что нагрузка идет круглые сутки.

Total votes 61: ↑61 and ↓0+61
Comments41

Аутентификация в Kubernetes с помощью GitHub OAuth и Dex

Reading time6 min
Views13K
Представляю вашему вниманию туториал для генерации доступов к Kubernetes-кластеру с помощью Dex, dex-k8s-authenticator и GitHub.

image

Локальный мем из русскоязычного чата Kubernetes в Telegram
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments11

Дважды подумайте, прежде чем использовать Helm

Reading time4 min
Views18K

Helm без хайпа. Трезвый взгляд


Helm — это менеджер пакетов для Kubernetes.


На первый взгляд, неплохо. Этот инструмент значительно упрощает процесс релиза, но порой может и хлопот доставить, ничего не попишешь!
image

Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments11

Открытая трансляция главного зала HighLoad++ 2018

Reading time5 min
Views9.2K
Конференция для разработчиков высоконагруженных сервисов HighLoad++ в этом году получилась просто гигантской. 8 и 9 ноября в СКОЛКОВО приедут 3000 гостей, чтобы вникнуть в тонкости архитектуры, узнать о нововведениях в базах данных, поговорить про микросервисы, облака, большие данные, нейронки и кто знает, в какие еще дебри могут зайти кулуарные разговоры всех этих первоклассных разработчиков.



В расписании 138 докладов основной программы, 14 двухчасовых мастер-классов и несчетное количество митапов (в том смысле, что они будут добавляться по ходу дела, и посчитать мы их сможем только уже по факту). С одной стороны, это все значит, что каждый найдет себе темы по душе и сможет получить ответы на свои вопросы. А с другой — очень сложно выбрать.

Один из вариантов маршрута по конференции — пойти на все самые популярные доклады. Тем более что, работая над расписанием, мы опросили будущих слушателей и составили рейтинг ожиданий. Лидеры голосования выступят в Главном зале (Когресс-холле), который мы по хорошей традиции транслируем бесплатно.

Трансляция первого дня HighLoad++


Трансляция второго дня HighLoad++


Трансляция будет идти на нашем HighLoad Channel в youtube, чтобы не забыть и не пропустить можно подписаться на канал, на блог или на рассылку — а лучше на всё сразу, у нас все полезное :)
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments5

Способы диагностики PostgreSQL — Владимир Бородин и Ильдус Курбангалиев

Reading time14 min
Views29K
Одним из самых популярных докладов конференции PG Day в 2015 году стал рассказ Владимира Бородина и Ильдуса Курбангалиева о ситуациях, когда посгресовым базам становится плохо, надо их диагностировать и искать узкие места. Все примеры в докладе взяты из реальной практики Яндекса, сопровождаются иллюстрациями и подробным рассказом о поиске «боттлнека». Не смотря на то, что проблемы рассматривались в разрезе 9.4 и 9.5 версий базы данных, общая ценность и практическая применимость советов Владимира и Ильдуса остается неизменной. Рады предложить вам транскрипцию этого доклада.

Вступление Ильи Космодемьянского: сейчас у нас будет рассказ о том, как жить, если очень хочется иметь Oracle, а его нет. На самом деле, это полезный доклад, потому что одна из проблем, которую мы сейчас имеем – это проблема средств диагностики. Средства диагностики местами не достают, местами, вместо привычных средств диагностики нужно использовать довольно сложные тулзы, которые вообще предназначены для разработчиков Linux, а не для DBA. У DBA зубы начинают болеть, когда они смотрят на эти скрипты. И вот ребята из Яндекса и PG Pro расскажут о методах диагностики Postgres, которые они применяют, как ими пользоваться и немного расскажут о том, как они собираются улучшить этот мир.


Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments10

Отладка и устранение проблем в PostgreSQL Streaming Replication

Reading time27 min
Views48K
Потоковая репликация, которая появилась в 2010 году, стала одной из прорывных фич PostgreSQL и в настоящее время практически ни одна инсталляция не обходится без использования потоковой репликации. Она надежна, легка в настройке, нетребовательна к ресурсам. Однако при всех своих положительных качествах, при её эксплуатации могут возникать различные проблемы и неприятные ситуации.

Алексей Лесовский (@lesovsky) на Highload++ 2017 рассказал, как с помощью встроенных и сторонних инструментов, диагностировать различные типы проблем и как устранять их. Под катом расшифровка этого доклада, построенного по спиральному принципу: сначала мы перечислим все возможные средства диагностики, потом перейдем к перечислению типовых проблем и их диагностике, далее посмотрим, какие экстренные меры можно принять, и наконец как радикально справиться с задачей.


О спикере: Алексей Лесовский администратор баз данных в компании Data Egret. Одной из любимых тем Алексея в PostgreSQL является потоковая репликация и работа со статистикой, поэтому доклад на Highload++ 2017 был посвящен тому, как помощью статистики искать проблемы, и какие использовать методы для их устранения.

План


  1. Немного теории, или как работает репликация в PostgreSQL
  2. Troubleshooting tools или что есть у PostgreSQL и сообщества
  3. Troubleshooting cases:
    • проблемы: их симптомы и диагностика
    • решения
    • меры, которые нужно принимать, чтобы этих проблем не возникало.

Зачем всё это? Эта статья поможет вам лучше разбираться в потоковой репликации, научиться быстро находить и устранять проблемы, чтобы сократить время реакции на неприятные инциденты.
Total votes 37: ↑37 and ↓0+37
Comments2

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Works in
Date of birth
Registered
Activity