29
Опыт миграции между дата-центрами Сергей Бурладян и Михаил Тюрин HighLoad++, 2016

Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

  • Upload
    ontico

  • View
    213

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Опыт миграции между дата-центрамиСергей Бурладян и Михаил Тюрин

HighLoad++, 2016

Page 2: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Что нового вы узнаете?

2

Page 3: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

3

Page 4: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

• законодательные инициативы затрагивают техническую платформу

• переезд большого нагруженного кластера между дата-центрами по интернету возможен (за конечное время)

• и с небольшим даунтаймом

4

Page 5: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

• можно достаточно точно оценить необходимую пропускную полосу при переезде

• существуют ярко выраженные особенности шейпинга выделенного интернет маршрута

5

Page 6: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

• при этом скорее всего вы будете вынуждены работать на новом оборудовании / окружении

• существуют неожиданные особенности systemd

• результаты некоторых нагрузочных тестов

• закон Мура у кого-то всё ещё может работать

6

Page 7: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Переезд “базы” — часть сложного процесса миграции всей площадки:

• приложение • картинки • индексы • другие базы • dwh • crons • …

30 SubTasks и 30 Dependent - 6 месяцев

7

Page 8: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Тестировали дата-центр боем: отдаём картинки из Москвы

> 50% трафика площадки

8

Page 9: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

— Подлежит ли откату процесс переезда?

— Нет, очень сложно.

9

Page 10: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Интуитивное решение о применении репликации —

правильно!

10

Page 11: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Как перенести базы с минимальным downtime?

Репликация!

• физическая — streaming, WAL архив // x2

• логическая — londiste // x2

• rpc — pgq + xrpcd.py // x2

11

Page 12: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Mbit/s, оценка необходимой пропускной способности

12

Page 13: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Оценка необходимой пропускной способности

• 12 серверов WAL ~ 100 — 150 Mbit

• 3 сервера londiste + rpc < 50 Mbit

• c учётом возможного роста до двух раз (переезд — 6 месяцев)

• кластера от 10 GB до 3 TB

13

Page 14: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Два первых варианта

NFS через интернет слишком круто

+ ? проблема версий (4 vs. 3) NFS

Сейчас просто включим стриминг в Москву и всё!

14

Page 15: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Схема в лоб

15

Page 16: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Проблемы

• lag сети —> потеря WAL / взрыв WAL

• однопоточность —> потеря WAL / взрыв WAL

• streaming —> нет архива в Москве

Вывод: не надо потреблять с мастера!

*pg 9.2

16

Page 17: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Вариант два

• WAL архив (pbzip2):send-wals.sh + rsync

archive_command и т.п.: https://pgconf.ru/2016/89927*

*Сергей Бурладян “Администрирование PostgreSQL в Avito

17

Page 18: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Схема два

18

Page 19: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Оказывается

• Канал 2 Gbit

• Но на одну TCP сессию почему-то 2 Mbit

2 Gbit —> 2 Mbit

19

Page 20: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Вариант три

• send-wals.sh + parallel-rsync.sh send-wals.sh:

parallel-rsync.sh:

20

Page 21: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Реализованная схема

21

Page 22: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Новая среда и оборудованиеПроблема нового Debian • pgbench Debian 6 vs Debian 7: в 2-3 раза!

• ===8.2 (jessie) | 3.16.7-ckt11-1+deb8u6 | AMD Opteron(tm) Processor 6136 • $ pgbench -SNn -r- -f test.sql -p 6432 -U postgres -c 10 -T $((5 * 60)) avito_test • tps = 7528.535949 (excluding connections establishing)

• === 6.0.3 (squeeze) | 2.6.32-5-amd64 | AMD Opteron(tm) Processor 6136 • $ pgbench -SNn -r- -f test.sql -p 6432 -U postgres -c 10 -T $((5 * 60)) avito_test • tps = 9284.494020 (excluding connections establishing)

• Debian 6 быстрее Debian 8 на ~ 20%22

Page 23: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Новая среда и оборудование

• === 6.0.3 (squeeze) | 2.6.32-5-amd64 | AMD Opteron(tm) Processor 6136 2399.891 MHz | 9.2.13-1.pgdg60+1

• tps = 8212.192504 (excluding connections establishing)

• ===8.2 (jessie) | 3.16.7-ckt20-1+deb8u6 | Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz | 9.2.14-1.pgdg80+1

• tps = 19067.844979(excluding connections establishing)

• mbw23

Page 24: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Диаграмма бенчмарка

24

Page 25: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Особенности systemd• /etc/systemd/logind.confRemoveIPC=nohttps://www.postgresql.org/message-id/[email protected]

• KillMode=noneSendSIGKILL=nohttps://bugzilla.suse.com/show_bug.cgi?id=906900 sudo pg_ctlcluster 9.2 main stop -- -m f sudo -u postgres pg_ctlcluster 9.2 main stop -m f

25

Page 26: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Особенности systemd

• cgroups puppet.service 20233 /usr/bin/ruby /usr/bin/puppet agent 26718 /usr/sbin/pgbouncer -R -d /etc/pgbouncer/pgbouncer-server.ini

26

Page 27: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Закон Мура всё ещё работает

27

Page 28: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Не принятые варианты

• NFS

• текущий архив

• сеть (2 Mbit)

• ? производительность железа

28

Успешно реализованное

• тестирование площадки

• pgq логическая репликация

• принципиальная схема PITR

• ! производительность железа

Page 29: Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)

Спасибо за внимание! Вопросы?

Сергей Бурладян - [email protected] Михаил Тюрин - [email protected]

HighLoad++, 2016

AvitoTech