Pull to refresh
0
0
Савинов Артем @saamich

системный администратор, deployment инженер

Send message

Как я мучился, поднимая LTSP со сторонним TFTP-сервером

Reading time2 min
Views13K
image

Совсем не давно на Хабрахабре появилась развернутая статья про поднятие терминального сервера на Linux. Она очень привлекает своим содержимым и показывает простоту настройки такого решения.

В нашей сети уже есть схожее решение основанное на Windows Server 2008 R2 с отдельным TFTP-сервером. И в этом то и была моя проблема. Ниже приведу кусок конфига от PXE. По этому прошу пот кат.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments3

Что нам стоит LVM построить (принцип работы, производительность, Thin Provision)

Reading time4 min
Views32K
Не смотря на наличие нескольких статей на Хабре, про LVM2 и производительность Thin Provisioning, решил провести своё исследование, так как имеющиеся показались мне поверхностными.

Кому интересно, добро пожаловать под кат.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments7

Docker: Окружение для тестирования

Reading time13 min
Views83K


Последние пять лет принесли в нашу жизнь огромное количество технологий, с помощью которых можно быстро создавать изолированные окружения для разработки и тестирования. Но не смотря на это, организовать стабильное окружение для тестирования — далеко не самая простая задача. А если нужно тестировать сетевые взаимодействия компонентов и анализировать предельный уровень нагрузки на них, то задача становится еще сложнее. Добавив возможность быстрого развертывания окружения и гибкой настройки отдельных компонентов, мы сможем получить небольшой интересный проект.
В этой статье мы подробно расскажем о создании окружения на базе Docker контейнеров для тестирования нашего клиент-серверного приложения. При этом, если смотреть глобально, то данная статья будет хорошей иллюстрацией использования Docker и его ближайшей экосистемы.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments3

Docker compose и объединение проектов с помощью mixer-a

Reading time10 min
Views26K
Одна из проблем, с которыми приходится столкиваться, занимаясь настройкой окружения для разработчиков, с использованием Docker и Docker-compose, это вопрос о том, как сводить вместе несколько различных проектов. При условии, что все проекты, конечно же, имеют docker-compose.yml файл.



Причин, по которым становится необходимо делать это, может быть несколько:
  • Разработка низко связанных компонентов огромной системы. Где каждый проект, по сути, может являться отдельным самостоятельным приложением
  • Подключение отдельных компонентов для тестирования. Вынесение mock-сервисов и тестов в отдельные контейнеры со своей логикой линковки и взаимодействия
  • Внешнии, по отношению к проекту, системы, которые тем не менее 'живут' в docker среде

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

LTSP: Терминальный сервер на Linux

Reading time11 min
Views189K


Сейчас я расскажу вам о том, как можно сэкономить немалое количество времени и денег на вашей IT-инфраструктуре.
Как централизованно админить большое количество linux рабочих станций не разводя при этом хаос в вашей экосистеме.
И так, что же такое LTSP?


LTSP — Это терминальное решение на Linux.
Говоря "терминальное", я в первую очередь имею в виду не подключение к удаленному рабочему столу как в Windows. Я подразумеваю гораздо более гибкую и продвинутую систему доставки ПО, конфигов, домашенего каталога, да и самой операционной системы на клиентские рабочие станции с вашего терминального сервера.


В частности, LTSP — это совокупность преднастроенных программ и скриптов которые позволят вам без особого труда превратить вашу свежеустановленную Ubuntu, или другой дистрибутив, в полностью готовое к работе терминальное окружение. Которое будет загружаться на любых компьютерах в вашей сети и предоставлять пользователю полноценный интерфейс.


У LTSP есть несколько режимов работы:


  • тонкий клиент
  • толстый клиент
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments28

Как перезагрузить сервер?

Reading time6 min
Views132K
Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.

В этой статье: что мешает серверу перезагрузиться и как ему помочь.

Начнём с теории ребута.

При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Читать дальше →
Total votes 93: ↑86 and ↓7+79
Comments82

Очень шустрый блог на WordPress при помощи связки nginx + PHP-FPM + MariaDB + Varnish

Reading time13 min
Views92K
В данной статье я расскажу о том, как я заставил свой блог на WordPress летать за счёт грамотного кэширования, сжатия и другой оптимизации серверной и клиентской сторон. На момент написания статьи характеристики VDS следующие:
CPU: 1 x 2GHz
HDD: 10Gb
RAM: 512Mb
OS: Debian 8 x64

Схема работы системы выглядит следующим образом:

image
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments49

Redis — что быстрее, UNIX-сокет или TCP? Что стабильнее? + pconnect

Reading time3 min
Views29K
image

Мы в PushAll обрабатываем несколько тысяч запросов в секунду для получения статистики доставки и открытия уведомлений и для передачи контента оповещений. Обычная БД вроде MySQL не справляется с таким потоком запросов и не может так быстро отвечать.

Стараясь все больше операций перенести на быстрые NoSQL хранилища вроде Redis, мы хотим знать как эффективнее его использовать и не будет ли у нас проблем с большим количеством соединений.
Также для работы мы используем форки PHP и нам было интересно, а как поведет себя Redis, если мы будем делать несколько тысяч соединений в одновременно в нескольких потоках. Мы решили поделиться с сообществом нашими тестами.
Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments43

Методы оптимизации приема/передачи в сетях Wi-Fi

Reading time7 min
Views46K


Одной из ключевых технологий для развития беспроводных сетей (например, Wi-Fi) в последние годы является технология MIMO. MIMO — это множественная передача информации с нескольких передатчиков и её получение, а также обработка на нескольких приемниках. Основные задачи MIMO – повысить пропускную способность беспроводного канала и качество связи.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments10

Контейнеры: Поиски «магического фреймворка» и почему им стал Kubernetes

Reading time7 min
Views26K


Мы в «Латере» занимаемся созданием биллинга для операторов связи. В блоге на Хабре мы не только рассказываем об особенностях нашей системы и деталях ее разработки (например, обеспечении отказоустойчивости), но и публикуем материалы о работе с инфраструктурой в целом. Инженер проекта Haleby.se написал в блоге материал, в котором рассказал о причинах выбора в качестве инструмента оркестрации Docker-контейнеров технологии Kubernetes. Мы представляем вашему вниманию основные мысли этой заметки.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments10

Наш опыт знакомства с Docker

Reading time34 min
Views47K

Вместо предисловия





Сегодня приснился сон, как-будто меня ужали до размера нескольких
килобайт, засунули в какой-то сокет и запустили в контейнере.
Выделили транспорт в оверлейной сети и пустили
тестировать сервисы в других контейнерах…
Пока не сделали docker rm


Не так давно мне посчастливилось стать членом очень крутой команды
Centos-admin.ru, в которой я познакомился с такими же, как я: единомышленниками со страстью к новым технологиям, энтузиастами и просто отличными парнями. И вот, уже на второй рабочий день меня с коллегой посадили работать над одним проектом, в котором требовалось «докерировать всё, что можно докеризировать» и было критически важно обеспечить высокую доступность сервисов.

Скажу сразу, что до этого я был обычным комнатным Linux-админом: мерился аптаймами, апт-гет-инсталлил пакеты, правил конфиги, перезапускал сервисы, тайлил логи. В общем, не имел особо выдающихся практических навыков, совершенно ничего не знал о концепции The Pets vs. Cattle, практически не был знаком с Docker и вообще очень слабо представлял, какие широкие возможности он скрывает. А из инструментов автоматизации использовал лишь ansible для настройки серверов и различные bash-скрипты.

Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments63

Ansible и reverse-proxy сервера

Reading time6 min
Views15K


Примерно полгода назад, пришлось разработать схему обратного проксирования сайтов, с многих нод (n>20) на несколько (n<=3) боевых серверов. Недавно столкнулся в аналогичным запросом от коллеги. Поэтому решил поделиться, и все собрать в статью.

Уровень статьи — для начинающих.

Как результат, был необходим простой инструмент для добавления новых нод и обновления перечня доменов. Профит от такого решения должен быть, при использовании кеширования на сервере, и DNS с геолокацией.
Подробности реализации под катом
Total votes 11: ↑10 and ↓1+9
Comments3

Объясняя необъяснимое. Часть 4

Reading time8 min
Views22K
Конференция PG Day’16 с каждым днем всё ближе, а мы продолжаем публиковать серию статей Hubert Lubaczewski об анализе explain и его основных операциях.

В этом, надеюсь, предпоследнем посте серии я расскажу об оставшихся наиболее распространенных операциях, которые вы можете встретить в выводе explain.


Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments4

Универсальный скрипт переключения 2-х каналов интернета Mikrotik

Reading time8 min
Views66K
Около 2,5 лет назад писал статью на тему автоматического переключения канала Интернет на резервный. Скрипт, конечно, и по сей день работает «на отлично», но его внешний вид и некоторые нюансы…

Итак, встала задача улучшить скрипт, максимально устранив побочные эффекты. Что ж, приступим.

image
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments34

CodingFuture + Puppet. Часть I: сеть и сетевой фильтр (cfnetwork + cffirehol)

Reading time14 min
Views10K

Вкратце:


  1. cfnetworkPuppet API для полной настройки сети и фильтра через ресурсы Puppet. Идеально дружит с Hiera и потенциально другими "data providers" в концепции Puppet.
  2. cffirehol — "meta-provider" конкретной реализации настройки фильтра для cfnetwork на базе замечательного генератора FireHOL
  3. Пока поддерживаются только Debian 8+ (Jessie и выше) и Ubuntu 14.04+ (Trusty и выше)

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

Настройка rsyslog для сбора логов по сети через шифрованное соединение

Reading time6 min
Views20K
На Хабре есть несколько статей по rsyslog, но не нашлось ни одной, описывающей, как настроить взаимодействие клиента и сервера через защищенное соединение. Попробую исправить этот момент.

Допустим, у нас есть несколько серверов, имеющих доступ в интернет и не имеющих какой-то приватной сети между собой. В один прекрасный момент нам надоедает лазать на каждый их них по очереди и мы решаем настроить централизованный сервер логов. Так как данные будут передаваться через интернет, необходимо их защитить, передавая их через TLS.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments0

Multi-source репликация в MySQL5.7

Reading time7 min
Views22K
Сегодня мой рассказ будет о такой захватывающей штуке, как репликация баз данных в MySQL из нескольких источников. Отмечу, что данная статья не претендует на звание «истины в последней инстанции» и призвана осветить особенности данной технологии в разрезе возникшей у меня проблемы. Итак, приступим. Однажды в далёкой-далёкой галактике...

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

Резервное копирование: Кейс Google

Reading time2 min
Views47K
Сегодня мы разберем профильную тему на основе кейса Google Tech Talks, которым поделился один из инженеров компании, а тематических журнал High Scalability проанализировал рассказ ИТ-специалиста Google.

Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments4

Работа с Ansible — задачи с несколькими неизвестными

Reading time5 min
Views18K
Гуглил информацию по Ansible, наткнулся на статью на Хабре. Прочитал и сильно удивился: ведь можно сделать красивее! Если вы заинтересованы — добро пожаловать под кат!
Углубиться
Total votes 14: ↑13 and ↓1+12
Comments6

Заметка по ansible. Server reboot

Reading time2 min
Views18K
image

Столкнулись с задачей: полностью пустой сервер, настраивать полностью через ansible, «так что бы даже обезьяна» справилась", — дословная цитата клиента.
Исходные данные: есть сервер, с ОС СentOS 7, внешним IP и паролем root.
Задача: установить на него все обновления, ПО по списку и ни разу к нему не подключиться консолью. Весь процесс описывать нет смысла, но есть два интересных момента о которых я и расскажу. А именно, как с помощью ansible настроить ansible и как перезагрузить сервер, а потом продолжить выполнять palybook.

Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments9

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity