рдкреЛрд╕реНрдЯ рдХрд░рдиреЗрд╡рд╛рд▓реЗ:
Piotr SiwczakрдУрд▓реЗрдЧ рдЬреЗрд▓рдмреБрдЦ рдХреЗ
рдЖрдЦрд┐рд░реА рд▓реЗрдЦ рдиреЗ рдУрдкрдирд╕реНрдЯреИрдХ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рд▓реБрдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рд╕рднреА рдУрдкрдирд╕реНрдЯреИрдХ рдШрдЯрдХреЛрдВ рдХреЛ рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдордВрдЪ рдмрд╛рд╣рд░реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рдгрд╛рд▓реАред рдФрд░ рдЗрди рдмрд╛рд╣реНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдкрдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЪрд┐рдВрддрд╛ рд╣реИред
рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдУрдкрдирд╕реНрдЯреИрдХ рдХреЗ рд╕рднреА рд╕реНрдЯреЗрдЯрдлреБрд▓ рд╕рдВрд╕рд╛рдзрди рдореИрд╕реЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдиреНрдп рд╕рднреА рдШрдЯрдХ рд░рд╛рдЬреНрдп рдХреА рдЬрд╛рдирдХрд╛рд░реА (рдЭрд▓рдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЛ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдореИрд╕реЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдУрдкрдирд╕реНрдЯреИрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреА рдХреБрдВрдЬреА рд╣реИред рдЬрдмрдХрд┐ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХрдИ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рдФрд░ рдирдИ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рддреЗ рд╕рдордп рдпреЗ рджреЛрдиреЛрдВ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, RabbitMQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ MySQL рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдЬрд╛рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░, рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рд╡реЗ рдмрдбрд╝реЗ рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдореЗрдВ рднреА рдкреИрдорд╛рдиреЗ рдкрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, SQLAlchemy рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореИрд╕реЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП RabbitMQ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЦреЛрдЬрдирд╛ рдХрдард┐рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдУрдкрдирд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП
ZeroMQ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдХреИрд╕реЗ OpenStack рдореИрд╕реЗрдЬрд┐рдВрдЧ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рдЖрдЗрдП OpenStack рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдореИрд╕реЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рд╢реБрд░реВ рдХрд░реЗрдВред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛: рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЛрд╡рд╛-рдПрдкреАрдЖрдИ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реБрдП, рдУрдкрдирд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдиреЛрд╡рд╛-рдПрдкреАрдЖрдИ рдиреЛрд╡рд╛-рдХрдВрдкреНрдпреВрдЯ рдПрдкреАрдЖрдИ рд╕реЗ create_instance рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ: (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рд╡реАрдПрдо рдЫрд╡рд┐, рд╡рд┐рд╡рд┐рдзрддрд╛, рдиреЗрдЯрд╡рд░реНрдХ рдореМрдЬреВрдж рд╣реИ)ред рдпрджрд┐ рд╡реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╡рд┐рдзрддрд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ)ред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред
- рдЙрд╕рдХреЗ рдмрд╛рдж, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЪреЗрдХ рдиреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рджрд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддрд╛ рд╣реИ (create_db_entry_for_new_instance рдлрд╝рдВрдХреНрд╢рди)ред
- рдлрд╝рдВрдХреНрд╢рди _schedule_run_instance рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдз рдХреЛ AMQP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЛрд╡рд╛-рд╢реЗрдбреНрдпреВрд▓рд░ рдШрдЯрдХ рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ:
request_spec = {
'рдЫрд╡рд┐': jsonutils.to_primitive (рдЫрд╡рд┐),
'inst_properties': base_options,
'inst_type': inst_type,
'num_instances': num_instances,
'block_device_mapping': block_device_mapping,
'рд╕реБрд░рдХреНрд╖рд╛_рдЧреНрд░реБрдк': рд╕реБрд░рдХреНрд╖рд╛_рдЧреНрд░реБрдк,
}
_Schedule_run_instance рдлрд╝рдВрдХреНрд╢рди рд╢реЗрдбреНрдпреВрд▓рд░_rpcapi.run_instance рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд╕рд╛рде AMQP рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИред
рдЕрдм рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛рдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдиреЛрдб рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░, рдЗрд╕рдХреЗ рдФрд░ рдЗрд╕рдХреА рдпреЛрдЬрдирд╛ рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдиреЛрдб рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдиреЛрд╡рд╛-рд╢реЗрдбреНрдпреВрд▓рд░ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдПрдХ рдЕрдВрд╢ рд╣реИ (рдпрд╣рд╛рдБ
FilterScheduler рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):
рдореЗрдЬрдмрд╛рди рдлрд╝рд┐рд▓реНрдЯрд░ ubuntu (pid = 15493) рд╕реЗ рдкрд╛рд╕_рдлрд┐рд▓реНрдЯрд░ / рд╕реНрдЯреЙрдк/stack/nova/nova/scheduler/host_manager.py:163
рдлрд╝рд┐рд▓реНрдЯрд░реНрдб [рд╣реЛрд╕реНрдЯ 'ubuntu': free_ram_mb: 1501 free_disk_mb: 5120] рд╕реЗ (pid = 15493) _schedule /opt/stack/nova/nova/scheduler-filter_scheduler.py:199
рд╡рд╣ рд╕рдмрд╕реЗ рдХрдо рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдиреЛрдб рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рд╡рдЬрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рдЬрди рдСрдкрд░реЗрд╢рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ):
рднрд╛рд░рд┐рдд рднрд╛рд░реЛрддреНрддреЛрд▓рдХ рдореЗрдЬрдмрд╛рди: ubuntu from (pid = 15493) _schedule /opt /stack/nova/nova/scheduler/filter_scheduler.py:209
рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдиреЛрдб рдЬрд┐рд╕ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреЗ рдмрд╛рдж рдЙрджрд╛рд╣рд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢реЗрдбреНрдпреВрд▓рд░ рдиреЗ cast_to_compute_host рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛, рдЬреЛ:
- рдиреЛрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдиреЛрдб рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИ (рдиреЛрдб = рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдиреЛрдб рдЬрд┐рд╕ рдкрд░ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛) рдФрд░
- рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдиреЛрдб рдкрд░ рдиреЛрд╡рд╛-рдХрдВрдкреНрдпреВрдЯ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП AMQP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП UUID рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЕрдЧрд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛рдиреА рд╣реИ, рд╡рд╣ рд╣реИ: run_instanceред
рдЬрд╡рд╛рдм рдореЗрдВ, рдЪрдпрдирд┐рдд рдиреЛрдб рдкрд░ рдиреЛрд╡рд╛-рдХрдВрдкреНрдпреВрдЯ рд╕реЗрд╡рд╛ _run_instance рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЖрд╡реГрддреНрддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ (UUID рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдФрд░ рдЙрдкрдпреБрдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╡реГрддреНрддрд┐ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕реЗрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди, nova-compute рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП nov-network рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде AMQP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рднреА рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ IP рдкрддрд╛ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдФрд░ DHCP рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ)ред рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рд╕реНрдерд┐рддрд┐ _ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ _instance_update рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд░реНрдЬ рдХреА рдЬрд╛рддреА рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдУрдкрдирд╕реНрдЯреИрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдПрдордХреНрдпреВрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (рд╡реАрдПрдо) рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХрдИ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдЦреЛ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдУрдкрдирд╕реНрдЯреИрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрд▓реНрд▓рдВрдШрди рдХрд░реЗрдВрдЧреЗ:
- RabbitMQ рдХреЗ рдЦреЛ рдЬрд╛рдиреЗ рд╕реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд╕рдВрд╕рд╛рдзрди (рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рддреИрдирд╛рдд рд╡реАрдПрдо) рдЕрд╕рдВрддреБрд╖реНрдЯ рд░рд╣реЗрдВрдЧреЗред
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рдФрд░ рднреА рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдкрд░рд┐рдгрд╛рдо рд╣реЛрдВрдЧреЗ: рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХрд┐рд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХреМрди рд╕рд╛ рдиреЛрдб рдорд┐рд▓рд╛ рдпрд╛ рдЙрдирдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рдХреНрдпрд╛ рд╣реИред рдЖрдкрдХреЗ рдХреНрд▓рд╛рдЙрдб (рд╢рд╛рдпрдж рдХрдИ рд╣рдЬрд╛рд░) рдореЗрдВ рдХрд┐рддрдиреЗ рд╡реАрдПрдо рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрдерд┐рддрд┐ рддрдп рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╣рд╛ рд╕рдорд╛рдзрд╛рди
рдЖрдк рдбреЗрдЯрд╛ рдХреЗ рдмреИрдХрдЕрдк рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд░реИрд╢ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред MySQL рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, MySQL рдХреНрд▓рд╕реНрдЯрд░ (MySQL рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рд╕реЗрдЯ), MMM (рдХрдИ рдореБрдЦреНрдп рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг) рдФрд░ Percona рдХреЗ рд╕рд╛рде XtraDB рд╕рд╣рд┐рдд рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред
MySQL рдХреНрд▓рд╕реНрдЯрд░
MySQL рдХреНрд▓рд╕реНрдЯрд░ NDB (рдиреЗрдЯрд╡рд░реНрдХ рдбрд╛рдЯрд╛рдмреЗрд╕) рдирд╛рдордХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрдЬрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрдВрдЬрди "рдбреЗрдЯрд╛ рдиреЛрдб" рдирд╛рдордХ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ, рдЬрд┐рд╕реЗ "рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдб" рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЦрдВрдбрд┐рдд рдФрд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдпреВрдирд┐рдЯ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рджреЛ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИрдВред рд╕рднреА рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛ рдиреЛрдбреНрд╕ рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВред рдбреЗрдЯрд╛ рдиреЛрдбреНрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░, рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдореЗрдВ NDB рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдПрдХ MySQL рд╕рд░реНрд╡рд░ рдлрд╝рд╛рд░реНрдо рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Mysqld рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЗ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкрдврд╝рд╛ / рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рджрдХреНрд╖рддрд╛ рдФрд░ рдирд┐рд░рдВрддрд░рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

MySQL рдХреНрд▓рд╕реНрдЯрд░
рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рддрдВрддреНрд░ рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рджреЛрд╖ рд╣реИред рдЕрдиреНрдп рднрдВрдбрд╛рд░рдг рдЗрдВрдЬрдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕рдХреА рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ (рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд▓реЛрдХрди рдЗрд╕
рд▓рд┐рдВрдХ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ)ред
XtraDB рдХреНрд▓рд╕реНрдЯрд░
рдпрд╣ рдЙрджреНрдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдкреЗрд░рдХреЛрдирд╛ рд╕реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред XtraDB рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЛрдбреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдРрдб-рдСрди рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде Percona XtraDB рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рддрд╛ рд╣реИред рдРрдб-рдСрди рдореЗрдВ InnoDB рднрдВрдбрд╛рд░рдг рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ
WSREP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рд╡рд╛рд▓реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

Percona рд╕реЗ рдРрдб-рдСрди рдХреЗ рд╕рд╛рде рдПрдХ mysqld рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдкреВрд░реА рдкреНрд░рддрд┐ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред MySQL рдХреНрд▓рд╕реНрдЯрд░ рдХреА рддрд░рд╣, XtraDB рдХреНрд▓рд╕реНрдЯрд░ рдХреА
рдпрд╣рд╛рдБ рдХреБрдЫ рд╕реАрдорд╛рдПрдБ
рд╣реИрдВ ред
MMM
рдорд▓реНрдЯреАрдорд╛рд╕реНрдЯрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдмрдВрдзрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рдВрдкрд░рд┐рдХ рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ MySQL рд╕рд░реНрд╡рд░ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рдореБрдЦреНрдп рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЕрдзреАрдирд╕реНрде рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИрдВ, рд╕рд╛рде рд╣реА рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдирд┐рдЧрд░рд╛рдиреА рдиреЛрдб рднреА рд╣реЛрддрд╛ рд╣реИред рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХреЗ рдКрдкрд░, рдЖрдИрдкреА рдкрддреЛрдВ рдХрд╛ рдПрдХ рдкреВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ MMM рдЙрдирдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╣реЛрд╕реНрдЯ рд╕реЗ рд╣реЛрд╕реНрдЯ рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрди рдкрддреЗ рдХреЗ рджреЛ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
- "рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ": рдЧреНрд░рд╛рд╣рдХ рдЗрд╕ рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ (рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдиреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
- "рдкрдврд╝рдирд╛": рдЧреНрд░рд╛рд╣рдХ рдЗрд╕ рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдЬреБрдбрд╝рдХрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ (рд░реАрдбрд┐рдВрдЧ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд░реАрдбрд┐рдВрдЧ рдиреЛрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдиреЛрдб MySQL рд╕рд░реНрд╡рд░ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ "рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ" рдФрд░ "рд░реАрдбрд┐рдВрдЧ" рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред рдЪреЗрдХ рдХрд╛ рд╕реЗрдЯ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реИ: рдЗрд╕рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛, рд╣реЛрд╕реНрдЯ рдкрд░ mysqld рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢рд╛рдЦрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рд▓реЙрдЧ рдХрд╛ рдЖрдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИред "рд░реАрдбрд┐рдВрдЧ" рдЖрдИрдкреА рдкрддреЛрдВ рдХреЗ рдмреАрдЪ рдкрдврд╝рдиреЗ рдкрд░ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣ HAProxy рдпрд╛ DNS рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

MMM рдкрд╛рд░рдВрдкрд░рд┐рдХ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рдореМрдХрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд╕рдордп, рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкреАрдЫреЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрд╡рд╛рдореА рд╣реЛрддреЗ рд╣реИрдВред рдЕрдм, рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдХреНрд╕рд░ рдмрд╣реБ-рдХреЛрд░ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓реЗрди-рджреЗрди рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд▓рдВрдмреЗ рд▓реЗрдЦрди рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ MySQL рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ
рдмрд╛рдЗрдирд░реА рд▓реЙрдЧ (рдмрд┐рдирд▓реЙрдЧ) рдФрд░ рд╣рд╛ рдирд┐рд░рдВрддрд░рддрд╛
рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ
рд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ
рдХрд░рддрд╛ рд╣реИ ред
MySQL рдЕрдкрдЯрд╛рдЗрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ OpenStack рдХреА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, Alessandro Tagliapietra рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдХреЗрд╡рд▓ OpenStack рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ) MySQL рдХреЛ рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА
рдкреЗрд░рдХреЛрдирд╛ рдХреЗ рдкреЗрд╕рдореЗрдХрд░ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдкреЗрд╕рдореЗрдХрд░ рднреА ред
рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ (рдПрдЪрдП) рдХреА рдирд┐рд░рдВрддрд░рддрд╛
рдЙрдирдХреЗ рд╕реНрд╡рднрд╛рд╡ рд╕реЗ, RabbitMQ рдбреЗрдЯрд╛ рдмрд╣реБрдд рдмрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдФрд░ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд╕рднреА рд╕рдВрджреЗрд╢ рд░реИрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдиреЗ рдХрддрд╛рд░реЛрдВ рдХреЛ "рд╕реНрдерд┐рд░" рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, RabbitMQ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрджреЗрд╢ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ OpenStack рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ nova.conf рдореЗрдВ rabbit_durable_queues = True рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╕рдВрджреЗрд╢ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдпрджрд┐ RabbitMQ рд╕рд░реНрд╡рд░ рдХреНрд░реИрд╢ рдпрд╛ рд░рд┐рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрдмрд╛рдз рд╕рдВрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ:
- RabbitMQ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдбрд┐рд╕реНрдХ рдкрд░ fsync рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╕рд░реНрд╡рд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдлрд░ рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдирд╣реАрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕рдВрджреЗрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж, рд╡реЗ рдЦреЛ рдЬрд╛рдПрдВрдЧреЗред
- RabbitMQ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб рдкрд░ рд╕реНрдерд┐рдд рд╣реИред
рдЖрдк RabbitMQ
рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдХреБрд▓ RabbitMQ рдХреЛ "рдкреНрд░реЙрдХреНрд╕реА" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд░рдВрддрд░рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрд╡рдпрдВ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХрд░рдирд╛ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреА рдПрдХ рдмрдбрд╝реА рдЦрд╛рдореА рд╣реИ - рдпрд╣ рд╕рднреА рд╡рд░реНрдЪреБрдЕрд▓ рдиреЛрдбреНрд╕, рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕, рдпреВрдЬрд░реНрд╕ рдХреЛ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░реЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред рдЗрд╕ рдЦрд╛рдореА рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдорд┐рд░рд░рд┐рдВрдЧ рдХрддрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдмреНрд░реЛрдХрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХрддрд╛рд░ рдХреЗ рдорд┐рд░рд░рд┐рдВрдЧ рдХреЛ, RabbitMQ рдХреЗ рдкреВрд░реНрдг рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреЗрд╕рдореЗрдХрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ
рд╕рдорд╛рдзрд╛рди рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдПрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдореЛрдб рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реАрдзреЗ рдУрдкрдирд╕реНрдЯреИрдХ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ; рдлрд┐рд░ рднреА, рдорд┐рд░рд╛рдВрдЯрд┐рд╕ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдлреА рдЕрдиреБрднрд╡ рд╣реИ (рдиреАрдЪреЗ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ)ред
рдорд┐рд░рд╛рдВрдЯрд┐рд╕ рдореЗрдВ рддреИрдирд╛рддреА рдХрд╛ рдЕрдиреБрднрд╡
рдорд┐рд░рд╛рдВрдЯрд┐рд╕ рдХрдИ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП MMM (рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рдХрдИ рдХреЛрд░ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрддреНрдпрдзрд┐рдХ рдЙрдкрд▓рдмреНрдз MySQL рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдСрдирд▓рд╛рдЗрди рдЪрд░реНрдЪрд╛ рдореЗрдВ рдПрдордПрдордПрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рд╡реНрдпрдХреНрдд рдХреА рд╣реИ, рд╣рдорд╛рд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ рд╣рдордиреЗ рдЗрд╕ рдЯреВрд▓ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рдФрд░ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдорд╛рдирддреЗ рд╣реИрдВред рдлрд┐рд░ рднреА, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реА
рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдм рд╣рдо рдбрдмреНрд▓реНрдпреВрдПрд╕рдЖрд░рдИрдкреА рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрд╕рд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) ,
рдЧрд▓реЗрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ ,
рдПрдХреНрд╕реНрдЯреНрд░рд╛рдмрд░реНрдб рдХреНрд▓рд╕реНрдЯрд░ )ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд OpenStack рдХреА рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдП рдЧрдП рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдПрдХ рдЪрд┐рддреНрд░рдг рд╣реИ:

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдПрдордПрдордПрдо рджреНрд╡рд╛рд░рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ: рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ рдПрдХ рдореБрдЦреНрдп рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд╕рд╛рде рдорд╛рд╕реНрдЯрд░-рдорд╛рд╕реНрдЯрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ (рдХреЗрд╡рд▓ рд╕рдХреНрд░рд┐рдп рдкреНрд░рддрд┐рдХреГрддрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ, рдФрд░ рджреЛрдиреЛрдВ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ "рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ" рдЖрдИрдкреА рдкрддрд╛ рдФрд░ рджреЛ "рд░реАрдбрд┐рдВрдЧ" рд╣реИрдВ)ред Mmm_monitor рдореЙрдбреНрдпреВрд▓ рджреЛрдиреЛрдВ рдорд╛рд╕реНрдЯрд░реНрд╕ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░ "рдкрдарди" рдФрд░ "рд▓реЗрдЦрди" рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдорд┐рд▓рд╛рддрд╛ рд╣реИред
MMM рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ Haproxy рджреЛрдиреЛрдВ IP рдкрддреЛрдВ рдХреЗ рдмреАрдЪ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреЛ рдкрдврд╝рдХрд░ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЕрдзрд┐рдХ рдорд╛рдкрдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рдХрдИ рдЕрдзреАрдирд╕реНрде рдиреЛрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдмрдХрд┐ HAproxy рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрд╡рдпрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдмрд╛рдз рд╕рдВрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдФрд░ HAproxy рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЗрд╕рдореЗрдХрд░ рдореЗрдВ рджреЛрдиреЛрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ HAproxy proxies рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдкреЗрд╕рдореЗрдХрд░ IP рдкрддреЗ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп "рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рд░реНрд╡рд░" рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ "рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ" рдЖрдИрдкреА рдкрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд▓реЛрдб рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реАрдзреЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рд░реНрдо рдореЗрдВ рдЕрдзрд┐рдХ рджрд╛рд╕реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде HAproxy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднрд╛рд░ рд╕рдВрддреБрд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреА рдорд╛рдкрдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдкреЗрд╕рдореЗрдХрд░ (Haproxy рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдкреНрд▓рд╕ MMM (рдбреЗрдЯрд╛рдмреЗрд╕ рдиреЛрдб рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред
RabbitMQ HA рдФрд░ OpenStack рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, Mirantis рдиреЗ рдХрддрд╛рд░ рдорд┐рд░рд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдиреЛрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ
рдРрдб-рдСрди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдРрдб-рдСрди nova.conf рдореЗрдВ рджреЛ рдирдП рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рддрд╛ рд╣реИ:
-Brbit_ha_queues = рдЯреНрд░реВ рдорд┐рд░рд░рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА / рдЧрд▓рдд -ред
-rabbit_hosts = ["rabbit_host1", "rabbit_host2"] - рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ RabbitMQ HA рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдХреБрд▓ рдЬреЛрдбрд╝реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ: рдиреЛрд╡рд╛, рдПрдХреНрд╕-рд╣рд╛-рдкреЙрд▓рд┐рд╕реА рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреНрдпреВ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЙрд▓: рд╕рднреА рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░рд╛рдЙрдВрдбреНрд░реЛрдмрд┐рди рдХреНрд▓рд╕реНрдЯрд░ рд▓реЙрдЬрд┐рдХ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред RabbitMQ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
рдореИрдВрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╕рдВрджреЗрд╢ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд┐рдПред рдиреАрдЪреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдзрд┐рдХ рд╢реЛрдз рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИред
http://wiki.openstack.org/HAforNovaDB/: рдУрдкрдирд╕реНрдЯреИрдХ рдбреАрдмреА рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░рддрд╛
http://wiki.openstack.org/RabbitmqHA: рдирд┐рд░реНрдмрд╛рдз рдХрддрд╛рд░ рдкреНрд░рдгрд╛рд▓реА
http://www.hastexo.com/blogs/florian/2012/03/21/high-avolution-openstack: рдУрдкрдирд╕реНрдЯреИрдХ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рд▓реБрдУрдВ рдкрд░ рд▓реЗрдЦ
http://docs.openstack.org/developer/nova/devref/rpc.html: рдУрдкрдирд╕реНрдЯреИрдХ рдореИрд╕реЗрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
http://www.laurentluce.com/posts/openstack-nova-internals-of-instance-launching/: рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдЪрд░рдгреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╡рд░рдг
https://lists.launchpad.net/openstack/pdfGiNwMEtUBJ.pdf: рдиреЛрд╡рд╛ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдкрд░ рдкреНрд░рд╕реНрддреБрддрд┐
http://openlife.cc/blogs/2011/may/different-ways-doing-ha-mysql/: рд╢реАрд░реНрд╖рдХ рд╕рдм рдХреБрдЫ рд╕рдордЭрд╛рддрд╛ рд╣реИ
http://www.linuxjournal.com/article/10718: MySQL рдкреНрд░рддрд┐рдХреГрддрд┐ рд▓реЗрдЦ
http://www.mysqlperformanceblog.com/2010/10/20/mysql-limitation-part-1-single-threaded-replication/: рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
https://github.com/jayjanssen/Percona-Pacemaker-Resource-Agents/blob/master/doc/PRM-setup-guide.rst: MySQL рдкреНрд░рддрд┐рдХреГрддрд┐ рд▓реЗрдЦ: рдкрд░реНрдХреЙрди рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдмрдВрдзрдХ рд▓реЗрдЦ
http://www.rabbitmq.com/clustering.html: RabbitMQ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ
http://www.rabbitmq.com/ha.html: RabbitMQ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд┐рдпрд╛
рдореВрд▓ рд▓реЗрдЦ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ