Особенности архитектуры распределённого хранилища в...

85
Особенности архитектуры распределённого хранилища в Dropbox Слава Бахмутов — Dropbox SRE 1

Upload: ontico

Post on 06-Jan-2017

169 views

Category:

Engineering


9 download

TRANSCRIPT

Page 1: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Особенности архитектуры распределённого хранилища в DropboxСлава Бахмутов — Dropbox SRE

1

Page 2: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Автор доклада• Слава Бахмутов• Site reliability engineer в Dropbox

• Евангелист Go, соведущий golangshow.com

• twitter: m0sth8• email: [email protected]

2

Page 3: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Dropbox

500 млн пользователей

более 1.2 млрд новых файлов каждый день

3

200 000 бизнесов

Page 4: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Инфраструктура

MetaData ServersMetaData

ServersMetaData Servers

DataBaseDataBase

DataBaseDataBase

MetadataServers

MetaData ServersMetaData

ServersMetaData ServersBlock

StorageServers

Amazon S3

2011

4

Page 5: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Блочное хранилище

2015MetaData ServersMetaData

ServersMetaData ServersBlock StorageServers

Amazon S3

DataBDataBDataBMP Go + Rust

5

Page 6: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Magic pocket

6

Page 7: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Magic pocket

7

Page 8: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Magic pocket

8

Page 9: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Magic pocket

• Inside the Magic Pocket• Pocket watch: Verifying exabytes of data

https://blogs.dropbox.com/tech/9

Page 10: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Availability Durability

10

Page 11: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Availability (доступность)

MTBF - mean time between failure

MTTR - mean time to repair

MTTR = "time to detect" + "time to remediate"

https://www.vividcortex.com/blog/the-factors-that-impact-availability-visualized11

Page 12: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Durability (сохранность)

12

Page 13: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Durability

fsync!

13

Page 14: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Durability

MTTF / AFR ?

14

Page 15: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

https://www.backblaze.com/blog/hard-drive-reliability-stats-q1-2016/15

Page 16: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Durability

16

Page 17: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

DurabilityRAID!

17

Page 18: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Durability

18

Page 19: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

DurabilityMultisite

replication!

19

Page 20: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Durability

27 девяток!

20

Page 21: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция (Isolation)

Защита (Protection)

Контроль (Verification)

Автоматизация (Automation)

21

Page 22: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция (Isolation)

Защита (Protection)

Контроль (Verification)

Автоматизация (Automation)

22

Page 23: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция

• Физическая• Логическая• Эксплуатационная

23

Page 24: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция

• Физическая• Логическая• Эксплуатационная

24

Page 25: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Физическая изоляция1. Диск

2. Сервер

3. Стойка (rack)

4. Ряд (row)

5. Источник питания (power feed)

6. Кластер

7. Датацентр

8. Регион

25

Page 26: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Физическая изоляция

• Производители оборудования• Версии оборудования/прошивки

• Внешние бекапы

26

Page 27: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция

• Физическая• Логическая• Эксплуатационная

27

Page 28: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Логическая изоляция

• Failures cascade =(• Bugs propagate =(

28

Page 29: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Логическая изоляция

• Слабая связанность!

29

Page 30: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Логическая изоляция

• Zookeeper =(• Database =(

30

Page 31: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Логическая изоляцияDropbox West Dropbox East

put

getzone zone

31

Page 32: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Логическая изоляцияDropbox West Dropbox East

simple

☺ complicated!

☹complicated!

32

Page 33: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция

• Физическая• Логическая• Эксплуатационная

33

Page 34: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Эксплуатационная изоляция

• Релиз процесс• Инструменты

• Контроль доступа

34

Page 35: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Эксплуатационная изоляция

testingtestingtestingtesting staging zone 1 zone 2,3

1 неделя 1 неделянедели

Релиз процесс

35

Page 36: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция (Isolation)

Защита (Protection)

Контроль (Verification)

Автоматизация (Automation)

36

Page 37: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Защита

• Валидация операций• Восстановление

• Тестирование

37

Page 38: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Защита

• Валидация операций• Восстановление

• Тестирование

38

Page 39: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• Самый большой риск для системы - это оператор (Вы)

39

Page 40: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• gsh --group memcache lifecycle=reinstall upgrade.sh

40

Page 41: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• gsh --group memcache lifecycle=reinstall upgrade.sh

41

Page 42: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• gsh --group "memcache lifecycle=reinstall" upgrade.sh

42

Page 43: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• gsh --group memcache lifecycle=reinstall upgrade.sh

43

Page 44: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• Оператор не виноват. Если что-то можно поломать - это будет поломано.

• Поменять синтаксис команды (gsh)

• Запретить перезагружать живые хосты (DB, memcache, storage)• Автоматизируем

44

Page 45: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• gsh --group memcache lifecycle=reinstall -- upgrade.sh

45

Page 46: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• sqlalchemy.sql.expression.update(table, whereclause=None, values=None, inline=False, ..., **kwargs)

46

Page 47: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Валидация операций

• ProxySQL:• запрет операций (DROP TABLE, ALTER, updates без where)

• throttling

47

Page 48: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Защита

• Валидация операций• Восстановление• Тестирование

48

Page 49: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Восстановление

• Создание бекапов• Постоянное восстановление из бекапов.

https://code.facebook.com/posts/1007323976059780/continuous-mysql-backup-validation-restoring-backups49

Page 50: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Восстановление

50

Page 51: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Тестирование

MTBF - mean time between failure

MTTR - mean time to repair = 0MTTR = "time to detect" + "time to remediate"

51

Page 52: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция (Isolation)

Защита (Protection)

Контроль (Verification)

Автоматизация (Automation)

52

Page 53: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Контроль

• Кто-то всегда напортачит, возможно даже вы

• Нужно уметь определять, когда что-то пошло не так

53

Page 54: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

ВерификацияScanner Purpose

Cross-zone Verifier Application-level walker that verifies all data is in storage system and appropriate storage regions

Storage Watcher Sampled black-box check that retrieves puts after a minute, hour, day, week, etc.

Metadata Scanner Verify all data in the index is on the correct storage nodes

Trash Inspector Verifies all deleted extents contain only blocks that are deleted or have been moved to other storage nodes.

Disk Scrubber Verify data on disk is readable and conforms to checksums

54

Page 55: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Верификация

• Не протестированные верификаторы не верифицируют ничего

55

Page 56: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

ВерификацияDRT - Disaster Recovery Testing

1. Зачем?

1. Ловим проблемы

2. Доказываем суждения

3. Спокойствие для дежурных

2. Регулярно и в продакшене

Hope is not a strategy- Ben Treynor (Google)

56

Page 57: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция (Isolation)

Защита (Protection)

Контроль (Verification)

Автоматизация (Automation)

57

Page 58: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Availability (доступность)

MTBF - mean time between failure

MTTR - mean time to repair

MTTR = "time to detect" + "time to remediate"

https://www.vividcortex.com/blog/the-factors-that-impact-availability-visualized58

Page 59: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Автоматизация

Ahumanoperatormustauthorizeexecutionhere,unlessthePrescriptionwasinstantiated

withrun_automatically=True+++

IssuesIssuePrescription+IssuePullPluginIssuePullPlugin--------*--------->DiagnosePlugin-------------+>RemediatePlugin---->verifiesthatthe------|^^^^+^^issueisnolonger^||||||aproblem|

HooksHooksHooksHooksHooksHooksHooks

Hookshavetheabilitytopostponeexecutionoreventocompletelydenyit

Параноидальная автоматизация

59

Page 60: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

Alerting

60

Page 61: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

61

Page 62: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

AlertingDiagnose

Plugin

62

Page 63: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

1. Проверить что ssh работает

2. Подключиться по IPMI

A. Нет ответа - Перезагрузка

B. Зависло в initramfs - Деаллокация машины

C. CPU soft lockup - Перезагрузка

63

Page 64: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

Alerting Diagnose Plugin

Remediate Plugin

Авторизация оператором

64

Page 65: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

65

Page 66: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

Alerting Diagnose Plugin

Remediate Plugin

Авторизация оператором

Hooks

66

Page 67: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

67

Page 68: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

Alerting Diagnose Plugin

Remediate Plugin

Авторизация оператором

Hooks

68

Page 69: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

69

Page 70: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Naoru

Alerting Diagnose Plugin

Remediate Plugin

Авторизация оператором

HooksHooks

70

Page 71: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Другие решенияOpen-source:• https://github.com/StackStorm

• http://riemann.io/

• https://www.opsgenie.com/

• FBAR (facebook auto-remediation)

• Nurse (linkedin)

71

Page 72: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Автоматизация

• Сложная и долгая автоматизация• Обновление ядра или версии БД

• Перемещение серверов из одной стойки в другую

• http://bitly.com/stm-dropbox <- пример

72

Page 73: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

73

Page 74: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

74

Page 75: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

75

Page 76: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

76

Page 77: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

77

Page 78: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

78

Page 79: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

79

Page 80: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

80

Page 81: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

81

Page 82: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Wheelhouse

• Только один маленький блок• Переиспользуем в других проектах

82

Page 83: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Изоляция (Isolation)

Защита (Protection)

Контроль (Verification)

Автоматизация (Automation)

83

Page 84: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

Вопросы?

• Слава Бахмутов• Site reliability engineer в Dropbox

• twitter: m0sth8• email: [email protected]

84

Page 85: Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов (Dropbox)

85