Как стать автором
Обновить
1
0
Александр Копейцев @Crazypill

Пользователь

Отправить сообщение

Админские байки: в погоне за фрагментацией туннелей в оверлейной сети

Время на прочтение10 мин
Количество просмотров21K

Лирическое вступление


Когда администраторы сталкиваются с неожиданной проблемой (раньше работало, и, вдруг, после обновления, перестало), у них существует два возможных алгоритма поведения: fight or flight. То есть либо разбиратся в проблеме до победного конца, либо убежать от проблемы не вникая в её суть. В контексте обновления ПО — откатиться назад.

Откатиться после неудачного апгрейда — это, можно сказать, печальная best practice. Существуют целые руководства как готовиться к откату, как их проводить, и что делать, если откатиться не удалось. Целая индустрия трусливого поведения.

Альтернативный путь — разбираться до последнего. Это очень тяжёлый путь, в котором никто не обещает успеха, объём затраченных усилий будет несравним с результатом, а на выходе будет лишь чуть большее понимание произошедшего.

Завязка драмы


Облако «Instant Servers» Webzillа. Рутинное обновление хоста nova-compute. Новый live image (у нас используется PXE-загрузка), отработавший шеф. Всё хорошо. Внезапно, жалоба от клиента: «одна из виртуалок странно работает, вроде работает, но как начинается реальная нагрузка, так всё замирает». Инстансы клиента переносим на другую ноду, проблема клиента решена. Начинается наша проблема. Запускаем инстанс на этой ноде. Картинка: логин по ssh на Cirros успешен, на Ubuntu — зависает. ssh -v показывает, что всё останавливается на этапе «debug1: SSH2_MSG_KEXINIT sent».

Все возможные внешние методы отладки работают — метаданные получаются, DHCP-аренда инстансом обновляется. Возникает подозрение, что инстанс не получает опцию DHCP с MTU. Tcpdump показывает, что опция отправляется, но не известно, принимает ли её инстанс.

Нам очень хочется попасть на инстанс, но на Cirros, куда мы можем попасть, MTU правильный, а на Ubuntu, в отношении которой есть подозрение о проблеме MTU, мы как раз попасть не можем. Но очень хотим.

Если это проблема с MTU, то у нас есть внезапный помощник. Это IPv6. При том, что «белые» IPv6 мы не выделяем (извините, оно пока что не production-ready в openstack), link-local IPv6 работают.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии35

Правильное увеличение размера диска в виртуальной машине

Время на прочтение3 мин
Количество просмотров145K
Не претендуя на полноту, все же считаю, что это может пригодиться системным администраторам.

Увеличение размера диска в виртуальной машине происходило при следующих вводных: формат файла виртуалки qcow2, виртуальная машина использует lvm и ext4, root partition находится в extended partition. Действо обычно происходит ночью, когда нагрузка минимальна и даунтайм не сильно давит на нервы. Хотя при работе с highload-проектами адреналина всё равно выделяется достаточно, чтобы 10 раз подумать, перед тем, как что-либо делать. Поэтому перед началом процесса, лучше отключить систему оповещения по СМС, чтобы не пугать коллег сообщениями типа «Server down» среди ночи.
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии57

Лекции Технопарка. 1 семестр. С/С++

Время на прочтение6 мин
Количество просмотров110K
Мы продолжаем наши еженедельные публикации учебных материалов Технопарка. Предыдущие лекции были посвящены web-технологиям в целом, а также алгоритмам и структурам данных. В третьем блоке лекций рассказывается о языках С и С++.

Лекция 1. Язык С. Основы организации и использования оперативной и сверхоперативной памяти


Лекция начинается с введения в язык С: рассказывается об истории его появления, особенностях, преимуществах и недостатках, о сферах применения. Описываются основы препроцессорной обработки, рассматриваются вопросы управления памятью (модели управления памятью, области видимости объектов хранения) и производительность программ на языке С. Обсуждается связывание объектов хранения и их инициализация. Затем рассказывается о классах памяти в языке С. Следующая часть лекции посвящена проблематике указателей, а также работе с одномерными массивами. В заключение рассматривается стандарт POSIX и вопросы переносимости.


Читать дальше →
Всего голосов 72: ↑70 и ↓2+68
Комментарии83

Стеганография в XXI веке. Цели. Практическое применение. Актуальность

Время на прочтение18 мин
Количество просмотров88K
Я думаю каждый хоть раз слышал о стеганографии. Стеганография (τεγανός — скрытый + γράφω — пишу, дословно «скрытопись») — это междисциплинарная наука и искусство передавать сокрытые данные, внутри других, не сокрытых данных. Скрываемые данные обычно называют стегосообщением, а данные, внутри которых находится стегосообщение называют контейнером.

На хабрахабре было много различных статей о конкретных алгоритмах информационной стеганографии, например DarkJPEG, «TCP стеганография», ну и конечно любимый всеми студентами во время курсового проектирования «алгоритм LSB» (например LSB стеганография, Стеганография в GIF, Котфускация исполняемого .net кода)

Стеганографических способов бесчисленное множество. На момент написания данной статьи в США уже опубликовано не менее 95 патентов по стеганографии, а в России не менее 29 патентов. Более всего мне понравился патент Kursh К. и Lav R. Varchney «Продовольственной стеганографии» («Food steganography», PDF)

Картинка из «пищевого» патента для привлечения внимания:


Тем не менее, прочитав приличное количество статей и работ, посвященных стеганографии, я захотел систематизировать свои идеи и знания в данной области. Данная статья сугубо теоретическая и я хотел бы обсудить следующие вопросы:
  1. Цели стеганографии — на самом деле их три, а не одна.
  2. Практическое применение стеганографии — я насчитал 15.
  3. Место стеганографии в XXI веке — я считаю, что с технической точки зрения современный мир уже подготовлен, но «социально» стеганография пока «запаздывает».


Я постарался обобщить мои исследования по данному вопросу. (Это значит, что текста много)
Надеюсь на разумную критику и советы со стороны хабросообщества.

Осторожно. Много текста.
Всего голосов 30: ↑29 и ↓1+28
Комментарии36

Сделаем код чище: Что можно исправить в ядре Linux

Время на прочтение5 мин
Количество просмотров37K
Наверняка многие хотели бы попробовать что-то изменить в ядре Linux к лучшему, но не знают с чего начать. Я хочу описать несколько проблем, исправить которые под силу каждому, и на примере показать путь от нахождения проблемы до опубликования её исправления в списке рассылки. По ходу повествования читатель познакомится с некоторыми вспомогательными утилитами.
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии29

Бюджетное SAN-хранилище на LSI Syncro, часть 1

Время на прочтение38 мин
Количество просмотров25K

Вторая часть

Итак, продолжу свои редкие статьи на тему «как не платить HP/EMC/IBM многие кило-(или даже мега-) доллары и собрать своё хранилище не хуже». Прошлый цикл я до победного конца не довёл, но 90% мыслей всё же оформил в текст.

Нашей сегодняшней целью будет отказоустойчивое «All-Flash» (то есть — только из SSD, без жестких дисков, хотя это и не принципиально) хранилище для нужд кластера vSphere, в несколько раз дешевле брендовых аналогов и с очень неплохой производительностью. Подключаться к нему мы будем по Fibre Channel, но никто не мешает сделать iSCSI, FCoE или даже, о ужас, Infiniband.

Syncro


Как ясно из названия, основой всей этой богодельни станет достаточно уникальный на рынке продукт под названием Syncro CS от компании LSI (ныне Avago).

Что же оно такое есть и чем примечательно?

По сути, это комплект из двух обычных контроллеров LSI 9286-8e (либо 9271-8i, если нужны внутренние порты) и двух суперконденсаторов для сохранения кеш-памяти на флешку контроллера в случае потери питания. Стоимость комплекта при этом в несколько раз выше цены аналогичного комплекта без HA-функционала. Но, если сравнивать с решениями на базе DRBD, то эта разница с лихвой компенсируется отсутствием необходимости иметь двойной набор накопителей.

Но самое интересное кроется в прошивке. Благодаря ей, эти контроллеры, будучи подключенными к одной SAS-сети (например, дисковой корзине с экспандерами) устанавливают через неё связь друг с другом и работают в режиме отказоустойчивого кластера.

Для нас это интересно вот чем:
  • Возможность создавать RAID-массивы, доступные сразу на двух серверах
  • Отказоустойчивость на уровне контроллеров: при смерти одного из них (или целиком сервера) второй продолжит работать и обслуживать I/O

Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии27

Выжимаем все соки из бесплатной версии Veeam Backup & Replication

Время на прочтение8 мин
Количество просмотров102K
Давайте сразу начистоту: никто не любит платить за софт много. И для некоторых «много» — это всё, что больше цены ежедневного обеда. Даже когда речь идёт о профессиональном ПО для профессионалов, если на горизонте возникает чуть менее платный конкурент с меньшим количеством функций, он сразу же привлекает к себе множество внимания, а в головах изумлённой публики возникает вопрос: «А может, в признанном лидере рынка действительно уже перебор этих самых функций, и платить за них нет никакой причины?». В качестве ответа, некоторые производители начинают искать новые, относительное честные методы отъёма денег у населения, и вводят подписочные сервисы, которые в первом приближении, позволяют платить за софт намного меньше.

Другой подход к проблеме — чёткое понимание, какой функционал нужен на уровне домашнего и/или лабораторного использования, а какой на уровне больших корпораций. И после того как дзен постигнут, весь “домашний” функционал становится бесплатным, а за остальное просят денежку.

Сегодня предлагаю вам рассмотреть именно вторую модель, выяснив, что же компания Veeam предлагает своим пользователям на безвозмездной основе и так ли этого мало для ежедневного личного использования. Пусть даже если из-под “личного” проглядывает небольшая купи-продай контора, или простихосподи, стартап, который считает, что «кровавый вендор» хочет слишком много денег за свои продукты.
Если сомневаетесь, что они дают действительно мощные инструменты, не прося ничего взамен и что вообще так бывает — добро пожаловать под кат.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии22

Bash Booster — SCM инструмент на чистом баше

Время на прочтение4 мин
Количество просмотров9.8K
Для управления серверами профессиональные администраторы давно используют такие SCM системы, как Chef, Ansible, SaltStack и т.п. Данные инструменты помогают централизованно администрировать большой парк серверов. Для управления же одним сервером трудозатраты на установку и настройку такого инструмента часто превышают выигрыш от его использования. В данном случае нередко применяется подход «да ну его, я быстрее скрипт на баше напишу». Подход достаточно популярный, а потому я хотел бы познакомить вас с легковесным SCM инструментом, который не требует ничего, кроме старого доброго баша, и может вполне успешно применяться для настройки одного сервера.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии32

Разворачиваем рабочий образ linux с минимальным интерактивом

Время на прочтение6 мин
Количество просмотров33K
Эта публикация может быть интересна тем ленивым системным администраторам, которые используют что-то из нижеперечисленнго:
  • Linux — based систему на машинах-клиентах;
  • Тонкие/толстые однотипные клиенты на различном железе;
  • Сетевое хранилище клиентских данных;
  • Предустановленный регламентированный софт;
  • Openvpn/rdp к серверам приложений.
  • Плюшевый (мягкий и пушистый) мониторинг linux клиентов типа Nagios.

Речь пойдет о том, как с минимальными усилиями со стороны пользователя или штатного «эникейщика» установить на компьютер пользователя готовую систему с набором софта, настроенными сетевыми службами, предопределенными конфигами и т.д. Статья ориентирована в первую очередь на энтузиастов и начинающих линуксоидов, но приемы и скрипты вполне могут использоваться в боевом развёртывании группы из десятков машин ежедневно.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии12

TLS в HTTP/2

Время на прочтение3 мин
Количество просмотров18K
image

Я написал обзор «http2 explained» и сделал несколько выступлений по поводу HTTP/2. После я получил много вопросов по поводу связки TLS и HTTP/2, поэтому я хотел бы ответить на некоторые из них в данной статье.

TLS не обязателен


В одобренной спецификации HTTP/2, которая скоро станет официальным RFC, нет ничего об обязательном использовании TLS. Наоборот, там рассказывается, как можно передавать данные открытым текстом TCP, и как – через TLS.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии23

Мигрируем на HTTPS

Время на прочтение5 мин
Количество просмотров124K
В переводе этого документа описываются шаги, которые необходимо предпринять для перевода вашего сайта с HTTP на HTTPS. Шаги можно выполнять с любой скоростью – либо всё за день, либо один шаг за месяц. Главное, делать это последовательно.

Каждый шаг улучшает ваш сервер и важен сам по себе. Однако, сделать их все – обязательно для того, чтобы гарантировать безопасность вашим посетителям.
Читать дальше →
Всего голосов 57: ↑49 и ↓8+41
Комментарии16

Мощь Scapy

Время на прочтение7 мин
Количество просмотров103K
Scapy — инструмент создания и работы с сетевыми пакетами. Программа написана на языке python, автор Philippe Biondi. Познакомиться с основным функционалам можно здесь. Scapy — универсальный, поистине мощный инструмент для работы с сетью и проведения исследований в области информационной безопасности. В статье я попытаюсь заинтересовать Вас использовать scapy в своей работе/проектах. Думаю, что лучше всего этого можно добиться, показав на примерах основные преимущества scapy.
В качестве примеров я возьму простые и наглядные задачи, которые можно решить средствами scapy. Основным направлением будет формирование пакетов для реализации того или иного вида атак.
Подробности
Всего голосов 21: ↑20 и ↓1+19
Комментарии8

Закат эры иконок от FatCow (выборка по цветам, топ 30 и прочая арифметика)

Время на прочтение8 мин
Количество просмотров35K

Итоговый выпуск иконок




Пять лет тому назад мы начали рисовать набор пиксельных иконок. Мода была на Vista. К концу 2013 года набор FatCow дорос до 3926 иконок. Это на 356 иконок больше, чем у Fugue, который весной того же года остановился на цифре 3570 (размер: 16х16). 352 иконки из бонуса Fugue (32х32 и 24х24) не в счет (как повторы). Но дальнейшее развитие иконок FatCow заморожено. Увы, мы не увидим круглой цифры из 4000 иконок (работы осталось на месяц), не увидим выпуска для ретины дополнительных размеров уже существующих иконок, разработки прекращены из-за отсутствия бюджета. Успели сделать пробу для retina и только.

Да, это не мега-фото-реалистичные-3D еще-одни-никому-не-нужные-иконки, это старая пиксельная школа. Где в почете был маленький размер и ограничение цветовой гаммы. Пройдут еще 10 лет… и, мы искренне верим, пиксельные иконки так и останутся в ходу. И если Вы ценитель древних видов искусства, дней зарождения компьютерной графики, пожалуйста за ширмой!
Подробности
Всего голосов 66: ↑63 и ↓3+60
Комментарии52

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 5 из 6

Время на прочтение11 мин
Количество просмотров67K

Содержание основного курса




Улучшение кода






Official translation (with a bit of polishing) is available here.




Пришла пора веселья, давайте для начала смотреть размер текущего кода:
  • geometry.cpp+.h — 218 строк
  • model.cpp+.h — 139 строк
  • our_gl.cpp+.h — 102 строки
  • main.cpp — 66 строк


Итого 525 строк. Ровно то, что я обещал в самом начале курса. И заметьте, что отрисовкой мы занимаемся только в our_gl и main, а это всего 168 строк, и нигде мы не вызывали сторонних библиотек, вся отрисовка сделана нами с нуля!
Я напоминаю, что мой код нужен только для финального сравнения с вашим работающим кодом! По-хорошему, вы всё должны написать с нуля, если следуете этому циклу статей. Очень прошу, делайте самые безумные шейдеры и выкладывайте в комментарии картинки!!!


Читать дальше →
Всего голосов 103: ↑98 и ↓5+93
Комментарии41

Skyforge: технологии рендеринга

Время на прочтение16 мин
Количество просмотров104K


Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля.
Читать дальше →
Всего голосов 139: ↑132 и ↓7+125
Комментарии51

[интеллект-карта] 462 полезных вопроса на все случаи жизни

Время на прочтение1 мин
Количество просмотров18K
Вместо того, чтобы написать еще одну статью про мощные вопросы, допроектировали с slavapankratov программу, которую стартуем вот-вот. Как там говорится, что ни проектируй, все равно получится интеллект-карта. :) Вот и у нас она получилась:image[интеллект-карта] 462 вопроса на все случаи жизни (в форматах mm, mmind, xmind, mmap)Коммуникацией, как известно, управляет тот, кто задает вопросы. Поэтому последний месяц мы потратили на то, чтобы собрать полезные работающие вопросы по тому, с чем мы сталкиваемся в работе постоянно или можем столкнуться:
  • Конкретизация ситуаций и выход в конструктив
  • Прояснение целей
  • Встречи 1:1 с сотрудниками
  • Вход менеджера в команду
  • Собеседования
  • Работа с начальником
  • Работа с заказчиком
  • Совещания
  • Идеи
Понятное дело, что карта получилась огромная, поэтому мы провели бесплатный вебинар по тому, как ей пользоваться:
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии3

Как устроен наш код. Серверная архитектура одного проекта

Время на прочтение22 мин
Количество просмотров29K
Картинка для привлечения вниманияТак сложилось, что к тридцати годам я менял работу лишь единожды и не имел возможности на собственном опыте изучить, как в различных компаниях устроены веб-проекты, расчитанные на высокую скорость отклика и большое количество пользователей. <irony> Так что, дорогой хабраюзер, попавший в поле моего зрения в оффлайне, увидев меня, лучше беги, пока я не начал докучать тебе вопросами на тему обработки ошибок, логирования и процесса обновления на рабочих серверах&lt/irony&gt. Мне интересен не столько набор используемых технологий, сколько принципы, на которых построена кодовая база. Как код разбит на классы, как классы распределены по слоям, как бизнес-логика взаимодействует с инфраструктурой, каковы критерии по которым оценивается качество кода и как организован процесс разработки нового функционала. К сожалению, подобную информацию найти непросто, в лучшем случае всё ограничивается перечислением технологий и кратким описанием разработанных велосипедов, а хочется, конечно, более детализированной картинки. В этом топике я попытаюсь как можно более подробно описать, как устроен код в компании, где работаю я. Этот подход — мой суммарный опыт полученный за 10 лет разработки в разных компаниях.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии32

Как я искал идею для первого проекта на Arduino или Wake-on-LAN на Arduino

Время на прочтение4 мин
Количество просмотров98K


Предыстория


В свое время насмотревшись видео о том, как люди мастерят различные устройства вроде хексопадов, испытывал уважения к тем людям, кто это мастерил, с желанием научиться делать что-то подобное. Для себя лично по какой-то неведомой мне причине мог ощущать большую разницу в эмоциях от запрограммированного контроллера с банальным миганием светодиода в сравнении со сложным алгоритмом в софтовом продукте, причем выигрывал первый. Решив, что единственный доступный для меня способ достичь того состояния, когда из под моих рук сможет выйдет что-то подобное хексопаду — это начать программирование элементарных вещей. Выбор пал на Arduino в силу доступности самой платформы и избытка информации по ней.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии22

Зимний дайджест новостей игровой индустрии

Время на прочтение5 мин
Количество просмотров17K
Зима — идеальное время для геймеров и разработчиков. В холодные вечера игры становятся более привлекательными, а разработка — продуктивной. Давайте же узнаем, как обстояли дела в игровой индустрии в начале зимы.


Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии2

STM32 и FreeRTOS. 4. Шаг в сторону HAL

Время на прочтение5 мин
Количество просмотров84K
HAL 9000: I'm completely operational, and all my circuits are functioning perfectly.
или это должно быть первой статьей, но я почему-то всегда пишу подобное ближе к концу

Раньше было про потоки, про семафоры и очереди

Одним из основных препятствий для перехода на STM32 является обилие текстов, инструкций и мануалов, описывающих работу с контроллером. Виновником этого обилия стала сама STMicroelectronics, которая поначалу планомерно запутывала своих пользователей, а затем предлагала неверные варианты выхода.

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

Но не так давно ST поняла, в какую яму она угодила и начала усиленно из нее выбираться, привлекая новые силы. И именно благодаря этому сейчас время старта сократилось до несуразно маленьких величин. Как это выглядит на практике? Добро пожаловать под кат.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии18

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность