Yet another senior pomidor (by @gmelikov) – Telegram
Yet another senior pomidor (by @gmelikov)
175 subscribers
44 photos
6 videos
46 links
Околоайтишные страсти с уклоном в инфровую разработку и sci-fi.
Ведёт @gmelikov
Download Telegram
В мире локальных стораджей наметилась очень интересная тенденция складывать всё в S3,
AWS у себя в FSx (где они используют zfs) ловко сделали псевдо-tiering и сгружают данные сразу в S3:
This change is in use by FSx in production today for FSx Intelligent Tiering file systems, which use S3 storage-backed vdevs.

А пару лет назад Delphix передумал выкладывать object-based vdev в апстрим.

Интересный кейс, выгода решает.
3👍2👌1
Давно думали выступить? Самое время! Если переживаете или боитесь - можете приходить в комментарии-личку, как член программного комитета помогу подготовить заявку:

🔥 Saint HighLoad++ 2025 ждёт твой доклад!

Если у тебя есть опыт работы с высоконагруженными системами, большими данными, машинным обучением, инфраструктурой, DevOps или безопасностью, самое время подать заявку на выступление!

🎤 Выступать не страшно – мы помогаем с подготовкой, оплачиваем дорогу и даём бесплатный билет.

🚀 Присоединяйся к сильному сообществу разработчиков и делись своим опытом!


📌 Подача докладов открыта до 23 февраля: cfp.highload.ru
2👌21
Уважаемые хардкорщики, приглашаем вас на чисто технический оффлайн митап (+ есть онлайн), приходите! Увидимся!
VK Tech приглашает на InfraDevMeetup, посвященный разработке и эксплуатации инфраструктурных платформ, от разработчиков инфраструктурных сервисов.

Поговорим про устройство среднестатистических SDS и их выбор/разработку, в чём проблема «отношений» RabbitMQ и SDN Neutron, как можно спасти данные из аварийного Ceph и как построить датацентр для авто-тестов.

Спикеры:
☁️Василий Степанов, руководитель команды разработки Storage, VK Cloud.
☁️Артемий Капитула, техлид группы разработки систем хранения, Wildberries.
☁️Александр Шишебаров, ведущий разработчик, Selectel.
☁️Александр Крымов, старший разработчик, Kaspersky.
Подробнее о докладах читайте на странице мероприятия.

Когда: 26 марта, с 18:00 до 23:00
Где: Москва, Ленинградский 70, БЦ Алкон, офис VK Tech

Приходите на встречу или участвуйте онлайн.
Зарегистрироваться.
🔥31👍1
Считаю, что только в таких крутых позах и надо рассказывать зачем нужны оверлейные сети в датацентрах 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣8💯3😁21
Капитанства пост - забудьте про md5, используйте xxh3 если вам не нужна криптостойкость, приемлемый дефолт - sha256.

Наивный тест на скорость "дефолтных" хешей из питона, по 10МБ рандома, псевдо-методика тут . Да, если не можете притащить сторонние либы - sha256 наше всё.
👀53💅1
🤝31😁1😢1🥴1
Попробуем формат мини-постмортемов.

Вчера на полдня ложился Интернет Google Cloud (GCP):
the issue occurred due to an invalid automated quota update to our API management system which was distributed globally, causing external API requests to be rejected. To recover we bypassed the offending quota check, which allowed recovery in most regions within 2 hours. However, the quota policy database in us-central1 became overloaded, resulting in much longer recovery in that region. Several products had moderate residual impact (e.g. backlogs) for up to an hour after the primary issue was mitigated and a small number recovering after that.

Давайте попробуем порассуждать что же произошло на основе публичных данных:
- Первопричина - в quota api гугла прилетели некорректные данные (извне/изнутри/при обновлении), которые по цепочке вниз разломали всё остальное.
- В любой инфраструктуре есть "фасад" с IAMом, квотами и другими "бизнесовыми" сервисами. Обычно аварии, связанные с ними должны иметь аффект только на этот самый "фасад", и аффектить максимум controlplane, т.е. возможность управлять сущностями.
- Но, судя по аффекту, некорректные метаданные всё же добрались до dataplane и успешно сломали и сами инфраструктурные сервисы (минимум их часть)

Сами Google сделали такие выводы:
- Prevent our API management platform from failing due to invalid or corrupt data.
- Prevent metadata from propagating globally without appropriate protection, testing and monitoring in place.
- Improve system error handling and comprehensive testing for handling of invalid data.

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

Лично для меня вывод - защититься от такого гарантированно сложно, но если строить обработку ошибок не от частного (отдельные обработчики на каждую), а от общего (не важно какая ошибка произошла), и при этом уметь обработать ошибку по конкретной сущности отдельно - такого можно избегать. Пример - любая невалидная запись не важно по какой причине должна быть отброшена с громким ором об этом, не останавливая работу в целом. Вспоминаем любимый нами reconciliation loop. Ну и чёткое разделение control/data-plane.

Что интересно, GCP за собой положил и часть Cloudflare. Но разбор их проблемы оставим на десерт, если такой формат вам интересен.

#postmortem
👍71🔥1
Продолжим тему постмортемов, ч.2 аварии в GCP.

Оказалось, что один из ключевых компонентов Cloudflare хостится на GCP, который значительно пострадал.

Анализ на базе публично доступного:
- У CF есть публичный key-value распределённый сторадж - Workers KV
- CF придерживается политики "по максимуму используем свои же кубики", и Workers KV является основой также и для других сервисов CF (тут им респект - dogfooding это прекрасно)
- Workers KV is a data storage that allows you to store and retrieve data globally , звучит отлично
- На деле выяснилось, что хотя сервис и распределённый, и кеш у него распределённый, НО итоговый сторадж (он же - единая точка правды) - централизован
- Итог - "топология звезда, центр лёг - всему пизда"

Делаем выводы:
- Единая точка правды - нормальная практика, но стоит быть готовым к её полному уходу (что сложно)
- Как можно уменьшить аффект - стараться разделить read и write операции, read в таком случае можно хорошенько разгружать и делать распределённым
- Разумный компромисс - в случае аварии "в центре" переходить в read-only режим
- А это значит, что нужно стремиться делать подавляющее количество операций - только на чтение
- Ну и капитанское: моновендорность - это к проблемам. Хотите такое переживать - учитесь работать в парадигме мультиклауда, уход даже нескольких регионов разом - статистическая норма на долгосроке.

Сами CF говорят что уже планировали подобные работы:
Bringing forward our work to improve the redundancy within Workers KV’s storage infrastructure, removing the dependency on any single provider.


Можно конечно выбрать самого крупного вендора, и надеяться, что с его падением упадёт и весь остальной Интернет :)


#postmortem
👍6🔥31👀1
Уже начали! Открытая трансляция https://highload.ru/spb/2025/open-track#broadcast

Увидимся! #highload
🔥3👌1
После потрясного доклада Андрея Бородина о WAL-логах в Postgres в кулуарах мы вышли на очень интересную тему - распределённая БД упирается чаще не в диски, а в сеть! При чём даже не на непосредственно трафик самих запросов, а на служебные нужды - наливка новых реплик, бекап, и даже служебная информация (GIN индекс на небольшом изменении данных может очень значительно перестроиться).

Все эти байтики нужно очень быстро и успешно передать на другой инстанс БД, находящийся в другом ДЦ (будьте готовы к латенси 5+мс). Получается, что поток изменений, передаваемый по сети, примерно совпадает с данными, которые мы будем сбрасывать на диски в WAL. И основной вывод - что оптимизироваться, оказывается, надо именно на поточную передачу по сети!

Возвращаясь с Saint Highload 2025 в сапсане мне стало интересно покрутить тему и я полез в советы Oracle как стоит тюнить ZFS для их БД. И там я наткнулся на очень интересный совет - что, дескать, ранее мы советовали выставлять recordsize (размер логического блока на ФС) равным размеру блока файлов данных БД (обычно это 8-16К), А ТЕПЕРЬ стоит выставлять его равным среднему размеру IO по сети (32К для OLTP по их мнению, 128К для OLAP)!


Вот такие интересные реалии - нужно тюнить ФС под профиль нагрузки сети. Оп-ля!

#не_очевидное
👍10🤔3🔥21👀1
Тут из 1)многих 2)уважаемых 3)утюгов говорят про драму Bcachefs и его исключение из ядра в следующем релизе (о боги, хотят выкинуть самую прогрессивную ФС, как они посмели!), цитата от мистера Торвальдса в сторону мистера Оверстрита:
You made it very clear that I can't even question any bug-fixes and I
should just pull anything and everything.

Honestly, at that point, I don't really feel comfortable being
involved at all, and the only thing we both seemed to really
fundamentally agree on in that discussion was "we're done".


В драму играть не хочется, а вот надеть шапочку контрибьютора (не)последней ФС в этом мире OpenZFS очень даже хочется.

Преамбула:
OpenZFS в силу своей лицензии CDDL (словом, такой же опенсорсной, как и GPLv2) имеет ряд нюансов при распространении совместно с ядром, и исторически распространяется для Linux в виде отдельного модуля ядра через DKMS (поставка в виде исходного кода, сборка непосредственно при установке на конечной машине) или KMOD (бинарная поставка, но строго прибит по ABI к конкретному подрелизу ядра), вот их сравнение. И так мы живём уже минимум 10 лет (ого!).

Фабула:
Как бы не был прекрасен или ужасен Bcachefs и его автор, но искренне считаю, что для него лично, так и для его проекта это может пойти на руку:
- делай что хочешь и когда хочешь (и никакой фин не помешает!)
- свой прозрачный релизный цикл, не надо гнаться и ждать следующего релиза ядра
- клиент может спокойно сидеть на LTS ядре и иметь bleeding edge версию ФС с багофиксами любой свежести

Да, теперь твоя ФС не поставляется просто так "из коробки" в любой утюг мира, и её надо доустановить. Но разве это кого-то останавливало от захвата мира? :)

PS: и как бы не звучал страшно DKMS - сборка на конечной машине работает годами и очень стабильно, юзай любое совместимое ядро и не горюй.

PPS: в комментариях @nbykov приложил must-have к прочтению ссылку на открытое письмо Ганса Райзера (того самого автора ReiserFS), качайте софты, коллеги, мы живём в социуме.

#скандалы_интриги_расследования
🤔6👍4👨‍💻2👀2
Этим дождливым летом в default-city продолжаем инфровые митапы, приходите, увидимся!
👌1👀1
Forwarded from Nastasya
Привет! VK Tech приглашает на DarkSideoftheCloud, специальный выпуск InfraDev Meetup про «теневую» сетевую сторону облачных сервисов.

Поговорим про то, где сети лежат в архитектуре BareMetal as a Service, какие технологии выбрать для виртуальной частной сети и как справиться с непростой задачей масштабирования межсетевых экранов.

Спикеры:
🕸Кирилл Фролов, эксперт в команде разработки платформы, VK Cloud, VK Tech.
🕸Влад Одинцов, Tech Lead и Product Owner сетевых сервисов, K2 Cloud.
🕸Юрий Дышлевой, инженер, Positive Technologies.
Подробнее о докладах читайте на странице мероприятия.

Когда: 16 июля, с 18:00 до 23:59
Где: Москва, Ленинградский 39, БЦ Skylight, офис VK

Приходите на встречу или участвуйте онлайн.
Зарегистрироваться.
🔥2👌1🤝1
👍5🌭4🌚1🤝1🦄1
Самый классный вариант что-то мерить - через физику.
Производительность одного потока можно свести к измерению задержек!

Собрал для вас пирамидку средних задержек с флёром облаков:
L1 cache                                    0.5ns
Branch mispredict 5 ns
L2 cache 7 ns
Mutex lock/unlock 25 ns
RAM 100 ns
Send 1K over 1 Gbps net 10,000 ns
Read 4K randomly from local fast NVME 20,000 ns
Read 4K randomly from local NVME (VM) 60,000 ns
Read 4K randomly from local SSD 150,000 ns
Read 1 MB sequentially from RAM 250,000 ns
Read 4K randomly from network NVME 500,000 ns
Round trip within same datacenter 500,000 ns
Read 1 MB sequentially from SSD 1,000,000 ns
HDD seek 10,000,000 ns
S3 response for 4k object up to 100,000,000 ns
Send packet CA->Netherlands->CA 150,000,000 ns

1 second 1,000,000,000 ns


Против физики не попрёшь!
#занимательное
🔥6🤝3🦄3
Интересный кейс подъехал: есть полезный сисколл copy_file_range, и если файловая система позволила принять через него запрос на копирование байтов больше, чем помещается в 32-битное число, то всё остальное будет забито нулями.

Если бы я хотел написать кликбейтный заголовок, то он бы выглядел так: "ZFS опять бьёт данные! Ну что за ненадёжная ФС!"

Вот только это баг в glibc, а ZFS (чуть ли не) единственная позволяет разом скопировать через данный сисколл сильно больше. К слову, фикс уже летит.

Будьте дети аккуратны с жирными операциями больше 32 бит.
6👻3🍌1🍓1👀1
Media is too big
VIEW IN TELEGRAM
Señoras y señores, переворачиваем календарь!
🔥8🗿2🍾1
В эту субботу 13 сентября будет бесплатная онлайн-конференция Highload++ Genesis о фундаментальных вещах для нашей сферы: базы, не-базы, сети, ml, облака, контейнеры, нагрузки.

На ней буду "великолепно капитанить" про облака. Регистрируйтесь, услышимся!

#conference
🔥5👀3👌1👨‍💻1
Перестрелка :)

А записи докладов уже публично доступны тут https://conf.ontico.ru/online/ghl2025 , буду использовать как хорошие вводные для новых сотрудников.
6👀3🔥2