Давненько я не писал сюда... так всё хорошо было...
Всё началось 31 октября. Хостер, у которого находится основной фронтэнд, сказал что у него проблемы с провайдерами и будет технические работы. Некоторое время он просто лежал. Потом отрубился ipv6 (а по нему у меня общается фронтэнд и бэкэнд). Заметил я это похоже только через несколько часов. Как заметил - переключил их на ipv4 и реактор, наконец, заработал. Но по вечерам загрузка картинок реально тормозила. Хостер сказал, что починит всё "очень быстро" - за пару недель.
8го октября мы решили "Хватит это терпеть!". И я пошёл искать где бы ещё арендовать сервер в европе, тянущий 10Гбит и прокачивающий 0.5Пб трафика в месяц за копейки. Нашлось только 2 предложения:
- одно от достаточно хорошей компании Swiftway, но в 2 раза дороже и жёсткое ограничение по трафику - превышение 0.5Пб было дорогим. Хотя можно было подоговариваться по поводу превышения трафика.
- второе от британской redstation. Там предлагался безлимитный 1.5Гбит по цене моего сервера. У меня в среднем трафик 1.8Гбит и 95% burstable - 2.5 Гбит. Поэтому два сервера должны были вполне уместиться по трафику и иметь запас. Но дальше я начал расспрашивать их как они считают трафик и оказалось, что они жёстко шейпят на 1.5Гбит. А у реактора бывают кратковременные (и не очень) всплески сильно выше среднего. Поэтому тоже не очень
- третье предложение было от нашего же хостера. У него датацентров много. Проблемы только в одном. Почему бы не попробовать другие? Это и было принято за рабочее решение.
Оказалось, что в двух нормальных ДЦ - Вене и Праге - у него мест нет. Есть только в Злине - деревушке на востоке Чехии. Ну делать нечего - попробуем его. Оплатил. Всё поставили. Ipv6, как всегда, заработал с 3ьего раза у них. Попинговал разные места - по одному из маршрутов был небольшой пакетлост. Написал им - ответ мы скажем своему провайдеру, чтобы они увеличили канал в том месте, но когда они это сделают не знаем. Ладно, наверное что-то немного лагающее будет лучше чем сильно лагающее. Переключил реактор на сервер в Злине и начался пиздец. По вечерам пакетлост по всем направлениям, ещё хуже чем в лагающем Амстердаме.
А тут ещё и подходит время оплаты амстердамского сервера (который по прошестии 12 дней всё ещё тормозил). Пишу хостеру письмо, что нах вас всех, возвращайте деньги. После долгих бесед и валерьянки в форме коньяка, они мне подарили неделю амстердамсого сервера бесплатно, заверили что в течении этой недели всё починится, Злинский сервер отменили и вернули полностью деньги на внутренний счёт.
После такой недели у меня была только одна мысль - "Придётся это терпеть".
Протрезвев через пару дней ко мне пришла ещё одна мысль. Бэкэнды у реактора стоят у другого хостера. Там с каналами всё достаточно плохо, зато сервера дешёвые. И недавно они обновили линейку своих серверов. И теперь за 50 евро можно взять лучший сервер, чем у меня стоят за 60 евро. Только надо установочный платёж в размере 50евро заплатить. Вот я и решил - через 5 месяцев этот апгрейд всё равно окупится. Давай сделаю сейчас, на некоторое время старые всё ещё будут работать, а новые настрою на отдачу картинок. Тогда хотя бы немного разгружу амстердам и часть картинок будет отдаваться быстро. За неделю я не успею выбраться за лимиты трафика.
Сказано - сделано. Сделал всё это. Пару дней оно проработало в этом режиме и потом Амстердам починили, наконец. Вернее, основные лаги там пропали, но остались ещё небольшие по ipv4 и полностью не рабочий ipv6. Но это решаемо (сейчас вот решаю потихоньку).
И тут наступает другая проблема - перенос старых серверов на новые. Перенос я делал в попыхах (чтобы меньше платить за старые сервера) и в результате не все данные в свифте перенеслись. Заметили это только когда сервера уже забрали. В результате потерялись порядка 1-2% картинок. Из хороших новостей, что у меня одна и та же картинка хранится в куче разных вариантов - увеличенная, уменьшенная, с вотермарками и т.д. Сейчас восстанавливаю что возможно.
Вторую проблему вчера решал. Новые сервера нещадно жрали проц. Это при том, что он там на 2 поколения лучше, чем на старых. До полуночи дебажил всё это. Оказалось, что в libmemcached в последней версии сломали ipv6. Причём там был такой код:
#if 0
hints.ai_family= AF_INET;
#endif
Он никогда не работал. Но какой-то умный человек решил, что это наверное ошибка и удалил If/endif. Из-за этого строчка начала работать, а она запрещает использование ipv6. Ну сегодня нашёл предыдущую версию, накатил её на все серера, нагрузка сразу спала. Уф, хоть одна хорошая новость.
Надеюсь в следующей части я расскажу как сделал CDN, ибо уже давно жду, когда мне поставят 2ой фронтэнд в Нью-Йорке.
ой, началось всё не 31 октября, а 30 сентября.
Интересно, позновательно. Но почему здесь? те, кого это реально интересует, те кто может понять так много буков, мог бы прочитать это на профильных ресурсах. на том же хабре. я на джое видел несколько статей, содранных с хабра
because we can. Если тебе не нравится, то можешь просто заблокировать тег.
спасибо!
Я так понял ты пакетами не пользуешься - все сам собираешь?
И что-то не слышно жалоб на свифт - таки понравился?
И что-то не слышно жалоб на свифт - таки понравился?
как раз пакетами пользуюсь. Более того, даже не пакетами, а репозиториями. Всё ставится через yum. Под это у меня локальный репозиторий есть, куда я складываю те пакеты, которых нет в стандартных.
Да, свифт всем нравится. Тут проблема была больше в моём туплении и желании побыстрее перенести. Ну и то, что переносилось сразу 3 сервера. А хранится всё в 3 репликах. Вот часть данных, которая хранилась именно на этих 3 серверах не успела реплицироваться на новые сервера, а я не уследил за этим.
Да, свифт всем нравится. Тут проблема была больше в моём туплении и желании побыстрее перенести. Ну и то, что переносилось сразу 3 сервера. А хранится всё в 3 репликах. Вот часть данных, которая хранилась именно на этих 3 серверах не успела реплицироваться на новые сервера, а я не уследил за этим.
На счет серваков - переезжать тебе еще не раз, так что подумай на счет систем (авто)конфигурирования: puppet chef fabric
давно уже всё на Puppet. Конфигурирование нового сервера состоит в установке puppet, написание в конфиге паппета чего-то вроде:
node "serv20" inherits "base-joyreactor" {
}
и добавления его ипов в массив. После этого
puppet agent --test
и он сам всё настраивает =)
node "serv20" inherits "base-joyreactor" {
}
и добавления его ипов в массив. После этого
puppet agent --test
и он сам всё настраивает =)
дописать туда строчку, чтобы папет проверил как дела у свифта с состоянием синхронизации
Там всё интереснее. Когда-то до этого, когда серверов было мало, добавление нового сервера очень сильно влияло на производительность. Ибо свифт начинал очень жёстко рсинкать с одного сервера на другой и поэтому тот, с кого рсинкало начинал тормозить. Поэтому на время такого обновления я отрубил проверку работы демона object-replicator. И вручную его врубал на серверах по очереди. При этом, когда включал его - исключал его из nginx. Чтобы он спокойно занимался рсинком и его http-Запросами не мучали.
С тех пор много времени прошло и я забыл, что отключал эту автопроверку. Поэтому на новых серверах object-replicator не работал и из-за этого пошли проблемы.
А проверка, что все данные переносились я тоже проверял - там есть соотвествующая команда. Но она проверяет 1% от всех партиций. То есть, достаточно приблизительно говорит. Точной информации получить никак нельзя =)
С тех пор много времени прошло и я забыл, что отключал эту автопроверку. Поэтому на новых серверах object-replicator не работал и из-за этого пошли проблемы.
А проверка, что все данные переносились я тоже проверял - там есть соотвествующая команда. Но она проверяет 1% от всех партиций. То есть, достаточно приблизительно говорит. Точной информации получить никак нельзя =)
koka, что ты думаешь про docker? Хорошая замена puppet/vagrant/etc?
хз. Не слышал о нём. Вообще, паппет мне не очень нравится, но на нём уже столько скриптов написано, что переносить их на что-то другое - ещё более геморойное занятие.
почитал про docker немного. Как я понял, там больше идёт менеджмент и клонирование контейнеров. Мне это не сильно нужно. Да и возможности конфигурирования там явно хуже, чем в Puppet.
докер - это контейнеры с виртуализацией. Для хостинга самое оно. Для моносайта - вообще непонятно к чему об этом сказали.
Яндесовский кокаин на них построен и у редхата решение облачное на нем.
Яндесовский кокаин на них построен и у редхата решение облачное на нем.
Товарищ koka, а есть у вас какой бложик куда можно по rss подписаться чтобы не пропускать ваши охуительные истории?
рсс на теги пока не сделаны. А рсс на пользователя - есть. http://joyreactor.cc/rss/user/username/koka
но у меня там не много админских историй =)
но у меня там не много админских историй =)
зато они охуительны
интересны с технической точки зрения, скорее %)
То есть бложика у вас никаокго нет? Вам типа жоя хватает?
Беда печаль. Ну пилите, пилите рсс на теги. Проблем на пару часов то %)
Беда печаль. Ну пилите, пилите рсс на теги. Проблем на пару часов то %)
Ой ну что вы не стоило. Спасибочьки.
А за счет чего реактор окупается и приносит прибыль? я надеюсь, что все же приносит?
за счёт рекламы
как вообще появилась идея его создать?
понятно. ну а вообще много хлопот доставляет обслуживать реактор?
скажем, приходится постоянно его мониторить, ну и наверное продумывать какие-то шаги наперед?
скажем, приходится постоянно его мониторить, ну и наверное продумывать какие-то шаги наперед?
ну мониторинг происходит сам собой. Следить - приходится. Но бывает что неделями он работает и ничего не надо делать. Хотя бывает что-нибудь падает каждый день =).
зассал и выиграл xD
те "не зассал" xD
Я чето пропустил момент (или сам себе придумал) - когда ты был на хецнере у тебя ведь было больше двух серваков, а тут ты говоришь только про два :/
Так выгоднее? Или в чем профит?
Так выгоднее? Или в чем профит?
на хецнере у меня и сейчас 8 серверов =). У них есть минус - сильные ограничения по трафику:
1) На сервер порядка 30Тб бесплатно и дальше доплачивать
2) раньше можно было подключить 1Гбит на сервер и он вроде гарантировался. Сейчас у них подключения 1Гбит нет - все сервера идут с 1Гбит портом и 200Мбит гарантированной полосой.
3) один раз реактор ддосили тупо udp-пакетами. При этом даже полосу 1Гбит не выжрали. Хецнер отключил сервер от сети на время ддоса. Поэтому в любом случае надо ставить какой-то фронтэнд перед хецнером.
Тут я и выбираю сервера для фронтэнда. У них куча памяти, куча ссд для кэшей и 10Гбит канал. На них же происходит фильтрация ддосов. Вот вчера был мини-ддос из 250 ипов =)
1) На сервер порядка 30Тб бесплатно и дальше доплачивать
2) раньше можно было подключить 1Гбит на сервер и он вроде гарантировался. Сейчас у них подключения 1Гбит нет - все сервера идут с 1Гбит портом и 200Мбит гарантированной полосой.
3) один раз реактор ддосили тупо udp-пакетами. При этом даже полосу 1Гбит не выжрали. Хецнер отключил сервер от сети на время ддоса. Поэтому в любом случае надо ставить какой-то фронтэнд перед хецнером.
Тут я и выбираю сервера для фронтэнда. У них куча памяти, куча ссд для кэшей и 10Гбит канал. На них же происходит фильтрация ддосов. Вот вчера был мини-ддос из 250 ипов =)
Вот тут страшилки, про днс амплификейшн http://tech.yandex.ru/events/yac/2013/talks/1135/ 25гб+ ддос с 10 серверов
В снг заглядывал на колокейшен с толстыми каналами? Реально найти место с нормальным цена/трафик/полоса?
В снг заглядывал на колокейшен с толстыми каналами? Реально найти место с нормальным цена/трафик/полоса?
ну понятно, что завалить меня можно. Просто на это надо денег потратить кучу. Недавно вон хецнер валили. Он 2 дня с перебоями работал. Писали, что 200Гбит ддос.
в снг - только в россии. На украине канал разве что по UA-IX, зарубежка у них очень плохая. В россии - пытался. Вот одна из попыток - http://joyreactor.cc/post/725611
Всё же каналы в россии сильно дороже европейских.
в снг - только в россии. На украине канал разве что по UA-IX, зарубежка у них очень плохая. В россии - пытался. Вот одна из попыток - http://joyreactor.cc/post/725611
Всё же каналы в россии сильно дороже европейских.
>Просто на это надо денег потратить кучу.
приценивался? ;D
Ааа, да вспоминаю xD ту историю. Но то ведь был селектел, а не колокейшен - я его как шаред хостинг для продвинутых бы назвал.
А вообще, если бы довн линк у провов в рашке и украшке был приличный, то вообще вопросов бы не возникало
приценивался? ;D
Ааа, да вспоминаю xD ту историю. Но то ведь был селектел, а не колокейшен - я его как шаред хостинг для продвинутых бы назвал.
А вообще, если бы довн линк у провов в рашке и украшке был приличный, то вообще вопросов бы не возникало
ну примерные цены ботнетов то известны. Можно хоть свой ботнет купить =).
селектел - предоставляет и колокейшен тоже. Вообще, я цену 100 руб за 1 Мбит слышал в некоторых местах (+ возможность скидок за крупные выкупы)
селектел - предоставляет и колокейшен тоже. Вообще, я цену 100 руб за 1 Мбит слышал в некоторых местах (+ возможность скидок за крупные выкупы)
> некоторых местах
:D делись точками!
:D делись точками!
Чтобы написать коммент, необходимо залогиниться