Skip to content

Instantly share code, notes, and snippets.

View patsevanton's full-sized avatar

Anton Patsev patsevanton

View GitHub Profile
Виталий На Заборе:
А. Ни фига себе. Нашёл кто спёр иопсы. Это ext4
С fdatasync нормально. Но блин. noatime включен...
Точнее как сказать нормально - с fdatasync тоже - начинает 650 иопс, а потом просаживается до 330
Прикольно. lazytime помогает.
noatime не помогает, а lazytime помогает. А, ну логично, mtime же...
Let Eat Bee:
Вот как оно в жизни,а не в стерильной лаборатории: https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7790
Виталий Кухарик:
Ну в общем-то здесь ничего криминального нет, обычный рабочий процесс.
В GitLab наткнулись на инфраструктурные проблемы.
Итак, что я понял из этого issue:
GitLab испытывает проблему периодического НЕ аварийного переключения, т.е. ложного (когда мастер, по сути, был ещё жив).
TASK [network_plugin/contiv : Contiv | Workaround https://github.com/contiv/netplugin/issues/1152] ***********************************************************************************************************
Thursday 19 September 2019 17:05:32 +0600 (0:00:00.241) 0:17:04.810 ****
TASK [network_plugin/contiv : Contiv | Set necessary facts] **************************************************************************************************************************************************
Thursday 19 September 2019 17:05:33 +0600 (0:00:00.274) 0:17:05.085 ****
TASK [network_plugin/contiv : Contiv | Add another manifest if contiv_enable_api_proxy is true] **************************************************************************************************************
Thursday 19 September 2019 17:05:33 +0600 (0:00:00.130) 0:17:05.215 ****
TASK [network_plugin/contiv : Contiv | Create /var/contiv] **************************************************************************************************
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 80 }
там есть npm version, который инкрементирует необходимое значение (patch, minor, major) в package.json
вопрос был "указать версию, минуя package.json", а этого npm не может
@patsevanton
patsevanton / Тестирование ролей ansible.txt
Created September 24, 2019 07:02
Тестирование ролей ansible
Lev Goncharov:
люди добрые. расскажите кто как тестирует свои роли в ansible?
Я пробовал разные подходы
- при тестирование развертывания SDS (software-defined storage): gitlab / vagrant / ruby / docker / bash / ansible / serverspec / virtualbox ~60 фактически на интеграционные тесты развертывания.
- test Ansible roles: ansible / hyper-v / jenkins / testkitchen / inspec ~40-70 минут для 25-35 ролей.
- test Ansible roles: ansible / docker / jenkins / molecule / testinfa ~20-25 минут для 50-55 ролей.
С моей колокльни это все медленно. И пришел к пирамиде тестирования инфраструктуры
static - shellcheck/ansible lint
классика с двумя схд на zfs в режиме active/passive.
Если объёмы небольшие, то я бы задеплоил отказоустойчивый NFS поверх DRBD. Будет работать быстрее всяких гластеров - это точно.
Если всё это делается только ради High Availability, а кдиент всего один то можно сразу Linstor юзать и блочное устройство смаунтить на клиенте.
Если нужен параллельный доступ - это сложнее, но тоже можно. Дальше всё зависит от степени вашей упоротости (в хорошем смысле этого слова):
Если не хотите сильно вникать в тонкости стороджа лучше взять что-то популярное, например cephfs или gluster. Но сразу скажу, что под Ceph желательно иметь много нод, чем больше тем лучше, чем меньше - тем медленнее и опаснее. Ну и своих тонкостей там тоже хватает.
Гластер по определению медленный - но очень простой, установить его и попробовать дело считанных минут.
Dmitry Tigrov:
у нас прометея база за 7 дней 60 гигов, виктория метрикс за пол года гдето 40 с копейками. Но меня больше всего напрягает у прометея даже не сколько он места жрет, а сколько памяти, потому что переиодически он кушает все что есть, виктория метрикс при этом стабильнее в разы по потреблению памяти
Денис Устинов:
А какой рейт? У меня с рейтом 30к и ретеншеном 14 дней постоянно оюдирается памятью пром
Dmitry Tigrov:
рейт около 40к
и то я кучу метрик с высокой кардинальностью от сиадвизора выпиливаю, грубо говоря самая топ метрика сейчас с кардинальностью 30к а потом все 3к и ниже.
Sergey Vronskiy:
Zfs поверх linstor/drdb кто нибудь собирал? Не пойму с чего начать.
kvaps:
Привет, а зачем zfs поверх drbd?
Sergey Vronskiy:
В неймспейсе кубера много подов, хочу их положить на zfs, наделать клонов и смонтировать в новые неймспейсы кубера, получу с десяток тестовых сред
Клоны делаются моментально, соответственно тестовая среда через ci-cd поднимется за пару минут
> А про сравнить с люстрой кто-то что-то сказать может?
Это не аналог люстры и не предназначено для больших кластеров. Это объектный сторейдж. Есть у вас до фига каких-то данных в виде множества мелких сущностей и ваши приложения с этим работают. Вы хотите их хранить распределенно, чтобы отказоустойчиво и быстро, при этом по возможности подешевле - вот это то, что нужно. А если ваш софт уже умеет S3 (многое из коробки умеет; если это что-то свое, то дописать совсем несложно, благо реализации S3 есть почти для всего и они достаточно удобные в использовании), то обойдетесь минимум изменений.
Альтернативный вариант: вы уже используете S3 в амазоне, храните до фига, вам стало дорого. Хотите локально хранить и обрабатывать, и чтобы вышло дешевле.
Из плюсов: оно достаточно просто (но логично) устроено и из-за этого надежно. Данные хранятся в append-only файлах, которые не побьются логически при проблемах с питанием, старые данные не перезапишутся от проблем файловой системы и т.п. Формат там элементарный, любой п