
рднрд╛рдЧ 1 рд╣рдо рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ 1 рдирдВрдЧреЗ рдзрд╛рддреБ (рдбреЗрдмрд┐рдпрди) рдкрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╣рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рд╣реЗрд▓реЛ, рд╣реЗрдмрд░ рдХреЗ рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ!
рдкрд┐рдЫрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдмрд╛рдд рдХреА рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдлреЗрд▓рдУрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЪреВрд▓реНрд╣рд╛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рдЗрд╕реЗ рдЦреЛрдирд╛ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╛рдЙрдб рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рд╣рдореЗрдВ Google, рдЕрдореЗрдЬрд╝реЕрди рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╡реЙрд▓реНрдпреВрдо рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд, рдкреНрд░рд╛рдкреНрдд рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдлрд▓реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рдЬрдм рд╣рдо рдирдВрдЧреЗ рдзрд╛рддреБ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рддреЛ рдЪреАрдЬреЗрдВ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрддреА рд╣реИрдВред рдЖрдЬ рдореИрдВ ceph рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛:
- рдХреИрд╕реЗ ceph рд╡рд┐рддрд░рд┐рдд рднрдВрдбрд╛рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕реЗрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
рдкрд░рд┐рдЪрдп
рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрди рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдерд╛ред рджреВрд╕рд░реЗ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдПрдХ рд╕рд┐рдл рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ, рдореИрдВ рдХрд┐рд╕реА рднреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдореИрдВ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдореИрдВ "рдЯреНрдпреВрдирд┐рдВрдЧ" рдФрд░ рдЧрд╣рд░реА рдЯреНрдпреВрдирд┐рдВрдЧ рдореЗрдВ рддрд▓реНрд▓реАрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрдИ рдкреНрд░рдХрд╛рд╢рди рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╣рдмрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓реЗрдЦ рдПрдХ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдкреНрд░рдХреГрддрд┐ рдХрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛ рд╕рдХреЗрдВред
- рдореЗрдЬрдмрд╛рдиреЛрдВ, рдореЗрдЬрдмрд╛рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ, рдУрдПрд╕ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА
- рд╕реЗрдлрд╣ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд░рдЪрдирд╛
- рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
- рд╕реЗрдлрд╝-рддреИрдирд╛рддреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
- рд╕реАрдл рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛
- рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк
- рд╕реЗрдлрд╝ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
- рдореЙрдирд┐рдЯрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЖрд░рдВрднреАрдХрд░рдг
- OSD рдЬреЛрдбрд╝рдирд╛
- рд╕реЗрдлрд╝ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
- рдПрдХ рдбреЗрдЯрд╛ рдкреВрд▓ рдмрдирд╛рдирд╛
- рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЧреБрдкреНрдд рдмрдирд╛рдирд╛
- рд╕реАрдПрдлрдПрдЪ рдЖрд░рдмреАрдбреА рдкреНрд░рд╛рд╡рдзрд╛рдирдХ рддреИрдирд╛рдд рдХрд░реЗрдВ
- рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рдмрдирд╛рдирд╛
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ + рд╕реЗрдлрд╝ рд▓рд┐рдЧрд╛рдореЗрдВрдЯ рдЯреЗрд╕реНрдЯ
- рд▓реЗрдЦ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА
рд╣реЛрд╕реНрдЯ рд╕реВрдЪреА рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ
рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдореИрдВ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдбреЗрдмрд┐рдпрди 9.5 рдУрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпреЗ рдкрд░реАрдХреНрд╖рдг рдорд╢реАрди рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рджреЛ рдбрд┐рд╕реНрдХ рд╣реИрдВ, рдкрд╣рд▓рд╛ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдУрдПрд╕рдбреА рд╕реАрдл рдХреЗ рд▓рд┐рдПред
рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╕рд┐рдл-рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреИрдирд╛рдд рдХрд░реВрдВрдЧрд╛ред рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рдореЛрдб рдореЗрдВ рдПрдХ ceph рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рдмрддрд╛рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рддрдиреА рдЬрд▓реНрджреА ceph рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ kubernetes рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реАрдлрд╝рдПрдЪ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдЬреНрдЬрд╛рдЬрдирдХ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реИрдоред рдЕрдЪреНрдЫреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП, ssd рдбреНрд░рд╛рдЗрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред
рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ ceph рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред
рд╕реЗрдлрд╣ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд░рдЪрдирд╛
рд╕реЛрдо
рдПрдХ рдореЙрдирд┐рдЯрд░ рдПрдХ рдбреЗрдорди рд╣реИ рдЬреЛ рд╕рдордиреНрд╡рдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдореЙрдирд┐рдЯрд░ рд╣реЛрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рдл рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛрддрд╛ рд╣реИред рдореЙрдирд┐рдЯрд░ рдЕрдиреНрдп рдореЙрдирд┐рдЯрд░ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдбреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЧреНрд░рд╛рд╣рдХ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдирд┐рдЯрд░ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдУрдПрд╕рдбреА рдХреЛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ / рдкрдврд╝рдирд╛ рд╣реИред рдЬрдм рдЖрдк рдПрдХ рдирдпрд╛ рд╕рдВрдЧреНрд░рд╣рдг рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рдПрдХ рдореЙрдирд┐рдЯрд░ (рдпрд╛ рдХрдИ) рдмрдирд╛рддреЗ рд╣реИрдВред рдХреНрд▓рд╕реНрдЯрд░ рдПрдХ рдореЙрдирд┐рдЯрд░ рдкрд░ рд░рд╣ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХрд▓ рдореЙрдирд┐рдЯрд░ рдХреЗ рдЧрд┐рд░рдиреЗ рд╕реЗ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЧрд┐рд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП 3 рдпрд╛ 5 рдореЙрдирд┐рдЯрд░ рдмрдирд╛рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рднрд╛рдЬрд┐рдд рдорд╕реНрддрд┐рд╖реНрдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореЙрдирд┐рдЯрд░ рдПрдХ рдХреЛрд░рдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рдореЙрдирд┐рдЯрд░ рдЧрд┐рд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓рд╕реНрдЯрд░ рдбреЗрдЯрд╛ рдЕрд╕рдВрдЧрддрддрд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдПрдордЬреАрдЖрд░
рд╕реАрдПрдлрдПрдЪ рдкреНрд░рдмрдВрдзрдХ рдбреЗрдореЙрди рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдирд┐рдЯрд░ рдбреЗрдореЙрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рдВрд╕реНрдХрд░рдг 12.x рдХреЗ рдмрд╛рдж рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реЗрдл-рдореЙрд░реНрдЧ рдбреЗрдореЙрди рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЕрдЧрд░ рдореЙрд░ рдбреЗрдореЙрди рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЦреЗрдВрдЧреЗред
рдУрдПрд╕рдбреА (рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕)
рдУрдПрд╕рдбреА рдПрдХ рд╕реНрдЯреЛрд░реЗрдЬ рдпреВрдирд┐рдЯ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдпрдВ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдУрдПрд╕рдбреА рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдбрд┐рд╕реНрдХ рд╣реИред рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдУрдПрд╕рдбреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдУрдПрд╕рдбреА рдбреЗрдореЙрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдорд╢реАрди рдкрд░ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрди рдкрд░ рддреАрдиреЛрдВ рдбреЗрдореЙрди рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рддрджрдиреБрд╕рд╛рд░, рдореЙрдирд┐рдЯрд░ рдФрд░ рдореИрдиреЗрдЬрд░ рдбреЗрдореЛрдВрд╕ рдХреЛ рд╣рдорд╛рд░реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рдПрдХ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдФрд░ рдУрдПрд╕рдбреА рдбреЗрдореЙрди рдХреЗ рд░реВрдк рдореЗрдВред
рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
Ceph рдкреНрд░рд▓реЗрдЦрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ:

рдореИрдВ ceph01-рдкрд░реАрдХреНрд╖рдг рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдкрд╣рд▓реЗ рдиреЛрдб рд╕реЗ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛, рдпрд╣ рдПрдбрдорд┐рди рдиреЛрдб рд╣реЛрдЧрд╛, рдЗрд╕рдореЗрдВ ceph-рддреИрдирд╛рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рднреА рд╣реЛрдВрдЧреАред рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ceph рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдиреЛрдб рдиреЛрдб рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдиреЛрдб рдХреЗ рд╕рд╛рде ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдирд╛рдореЛрдВ рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛
10.73.88.52 ceph01-test 10.73.88.53 ceph02-test 10.73.88.54 ceph03-tset
рдФрд░ рдЕрдиреНрдп рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ рдХреЙрдкреА рдХрд░реЗрдВред рд╕рднреА рдЖрдЬреНрдЮрд╛рдУрдВ рдХреЛ рдореИрдВ рдореВрд▓ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реВрдВрдЧрд╛ред
ssh-copy-id ceph02-test ssh-copy-id ceph03-test
рд╕реЗрдЯрдЕрдк рдкреНрд░рд▓реЗрдЦрди
Ceph рддреИрдирд╛рддреАрд╕реЗрдлрд╝-рддреИрдирд╛рддреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдкрд╣рд▓рд╛ рдХрджрдо ceph01-test рдорд╢реАрди рдкрд░ ceph-рддреИрдирд╛рдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╡рд╣ рд░рд┐рд▓реАрдЬрд╝ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдк рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореБрд╢реНрдХрд┐рд▓реЗрдВ рд╣реИрдВ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбреЗрдмрд┐рдпрди рдУрдПрд╕ рдХреЗ рд▓рд┐рдП ceph рдХреЗрд╡рд▓ рдЪрдордХрджрд╛рд░ рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рджрд░реНрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
https://mirror.croit.io/debian-mimic/dists/
рд╕рднреА рддреАрди рдиреЛрдбреНрд╕ рдкрд░ рдирдХрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рднрдВрдбрд╛рд░ рдЬреЛрдбрд╝реЗрдВ
apt install curl apt-transport-https -y curl https://mirror.croit.io/keys/release.gpg > /usr/share/keyrings/croit-signing-key.gpg echo 'deb [signed-by=/usr/share/keyrings/croit-signing-key.gpg] https://mirror.croit.io/debian-mimic/ stretch main' > /etc/apt/sources.list.d/croit-ceph.list apt update apt install ceph-deploy
рдпрджрд┐ рдЪрдордХрджрд╛рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рддреЛ рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list apt-transport-https apt update apt install ceph-deploy
рд╣рдо рддреАрдиреЛрдВ рдиреЛрдбреНрд╕ рдкрд░ NTP рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЪреВрдБрдХрд┐ рдпрд╣ рд╕рд┐рдлрд╛рд░рд┐рд╢ ceph рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╣реИрд╣рдо рдШрдбрд╝реА рдХреЗ рдмрд╣рд╛рд╡ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореБрджреНрджреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрдлрдПрдЪ рдиреЛрдбреНрд╕ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реЗрдл рдореЙрдирд┐рдЯрд░ рдиреЛрдбреНрд╕) рдкрд░ рдПрдирдЯреАрдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред
apt install ntp
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк NTP рд╕реЗрд╡рд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕рд┐рдл рдиреЛрдб рдЙрд╕реА NTP рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
рд╕реАрдл рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ ceph- рддреИрдирд╛рддреА
mkdir my-cluster cd my-cluster
рдЖрдЗрдП рдПрдХ рдирдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдмрдирд╛рддреЗ рд╕рдордп рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рддреАрди рдореЙрдирд┐рдЯрд░ рд╣реЛрдВрдЧреЗ
ceph-deploy new ceph01-test ceph02-test ceph03-test
рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк
рдЕрдм рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ, рдпрд╣ ceph рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╕рд┐рдл рджреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдЖрд░реЗрдЦ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░ рд╣реИ, рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╣ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрди рджреЛрдиреЛрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдмреЗрд╣рдж рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдкреАрдб рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрдо рд╕реЗ рдХрдо 10 Gb рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред
рдмреЗрд╢рдХ, рдЖрдк рдПрдХ рд╣реА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕рдм рдХреБрдЫ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рднрд░рд╛ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рд╣реА рдУрдПрд╕рдбреА рдХреЗ рдмреАрдЪ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдирдП рдУрдПрд╕рдбреА (рдбрд┐рд╕реНрдХ) рдЧрд┐рд░ рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдиреЗрдЯрд╡рд░реНрдХ рд▓реЛрдб рдмрд╣реБрдд рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдЧрддрд┐ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ ceph рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрд╣реБрдд рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрд░реЗ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд┐рдЫрд▓реА рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдерд╛ред
/my-cluster# cat ceph.conf [global] fsid = 2e0d92b0-e803-475e-9060-0871b63b6e7f mon_initial_members = ceph01-test, ceph02-test, ceph03-test mon_host = 10.73.88.52,10.73.88.53,10.73.88.54 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, cef рддреИрдирд╛рдд рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ = {public-network / netmask} рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдореЗрд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ резреж. myрей.реж.реж/резрем рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛
[global] fsid = 2e0d92b0-e803-475e-9060-0871b63b6e7f mon_initial_members = ceph01-test, ceph02-test, ceph03-test mon_host = 10.73.88.52,10.73.88.53,10.73.88.54 public network = 10.73.0.0/16 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx
рдпрджрд┐ рдЖрдк рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЬреЛрдбрд╝реЗрдВ = {рдХреНрд▓рд╕реНрдЯрд░-рдиреЗрдЯрд╡рд░реНрдХ / рдиреЗрдЯрдорд╛рд╕реНрдХ}
рдЖрдк рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реЗрдлрд╝ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
Ceph- рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЙрди рд╕рднреА ceph рд╕рдВрдХреБрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЕрдкрдиреЗ рддреАрди рдиреЛрдбреНрд╕ рдкрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ceph01-test рдкрд░, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдирдХрд▓ рдХреА рдЬрд╛рддреА рд╣реИ
ceph-deploy install --release mimic ceph01-test ceph02-test ceph03-test
рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдг рдЪрдордХрджрд╛рд░ рд╣реИ рддреЛ
ceph-deploy install --release luminous ceph01-test ceph02-test ceph03-test
рдФрд░ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
рдореЙрдирд┐рдЯрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЖрд░рдВрднреАрдХрд░рдг
рд╕рднреА рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдореЙрдирд┐рдЯрд░ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
C ceph01-test рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
ceph-deploy mon create-initial
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореЙрдирд┐рдЯрд░ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ, рдбреЗрдореЙрди рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рд╕реЗрдл-рддреИрдирд╛рддреА рдХреЛрд░рдо рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ред
рдЕрдм рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рддрд┐рддрд░ рдмрд┐рддрд░ рдХрд░реЗрдВред
ceph-deploy admin ceph01-test ceph02-test ceph03-test
рдФрд░ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕реНрдерд┐рддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
HEALTH_OK
~/my-cluster# ceph status cluster: id: 2e0d92b0-e803-475e-9060-0871b63b6e7f health: HEALTH_OK services: mon: 3 daemons, quorum ceph01-test,ceph02-test,ceph03-test mgr: no daemons active osd: 0 osds: 0 up, 0 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 0 B used, 0 B / 0 B avail pgs:
Mgr рдмрдирд╛рдПрдБ
ceph-deploy mgr create ceph01-test ceph02-test ceph03-test
рдФрд░ рд╕реНрдЯреЗрдЯрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ
ceph -s
рдПрдХ рдкрдВрдХреНрддрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП
mgr: ceph01-test(active), standbys: ceph02-test, ceph03-test
рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ
ceph-deploy admin ceph01-test ceph02-test ceph03-test
OSD рдЬреЛрдбрд╝рдирд╛
рдлрд┐рд▓рд╣рд╛рд▓ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрднреА рддрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ (рд╕реЗрдлрд╝ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдУрдПрд╕рдбреА) рдирд╣реАрдВ рд╣реИред
OSD рдХреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб (рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп) рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
ceph-deploy osd create --data {device} {ceph-node}
рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, osd рдХреЗ рддрд╣рдд рдбрд┐рд╕реНрдХ / dev / sdb рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдорд╛рдВрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдВрдЧреА
ceph-deploy osd create --data /dev/sdb ceph01-test ceph-deploy osd create --data /dev/sdb ceph02-test ceph-deploy osd create --data /dev/sdb ceph03-test
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рднреА рдУрдПрд╕рдбреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
ceph -s
рдирд┐рд╖реНрдХрд░реНрд╖
cluster: id: 2e0d92b0-e803-475e-9060-0871b63b6e7f health: HEALTH_OK services: mon: 3 daemons, quorum ceph01-test,ceph02-test,ceph03-test mgr: ceph01-test(active) osd: 3 osds: 3 up, 3 in
рдЖрдк рдУрдПрд╕рдбреА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрдорд╛рдВрдб рднреА рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред
ceph osd df ID CLASS WEIGHT REWEIGHT SIZE USE AVAIL %USE VAR PGS 0 hdd 0.00490 1.00000 5.0 GiB 1.0 GiB 4.0 GiB 20.05 1.00 0 1 hdd 0.00490 1.00000 5.0 GiB 1.0 GiB 4.0 GiB 20.05 1.00 0 2 hdd 0.00490 1.00000 5.0 GiB 1.0 GiB 4.0 GiB 20.05 1.00 0 TOTAL 15 GiB 3.0 GiB 12 GiB 20.05
рдФрд░
ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.01469 root default -3 0.00490 host ceph01-test 0 hdd 0.00490 osd.0 up 1.00000 1.00000 -5 0.00490 host ceph02-test 1 hdd 0.00490 osd.1 up 1.00000 1.00000 -7 0.00490 host ceph03-test 2 hdd 0.00490 osd.2 up 1.00000 1.00000
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реАрдл рдХреНрд▓рд╕реНрдЯрд░ рд╣реИред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕реАрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕реЗрдлрд╝ рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдПрдХ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдбреЗрдЯрд╛ рдХреЗ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░реЗрдЬ рдХреНрд▓рд╛рд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреЛрд░реЗрдЬ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЕрдкрдирд╛ рдПрдХ рдкреНрд░рд╛рд╡рдзрд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдбреНрд░рд╛рдЗрд╡рд░" рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реВрдЪреА рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреВрд░реА рд╕реВрдЪреА рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдкрд╛рд╕ рднреА рдЖрд░рдмреАрдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░ рдЫрд╡рд┐ рдореЗрдВ рдХреЛрдИ рдЖрд░рдмреАрдбреА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ rbd рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╡реЙрд▓реНрдпреВрдо (рдкреАрд╡реАрд╕реА) рдХреЗрд╡рд▓ ReadWriteOnce (RWO) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдмрдирд╛рдП рдЧрдП рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдЪреВрд▓реНрд╣рд╛ рдкрд░ рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╕реЗрдл рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
рдПрдХ рд╕рд┐рдл рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ:
- ceph рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдкреВрд▓ рдмрдирд╛рдПрдБ
- рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдмрдирд╛рдПрдБ рдФрд░ рдбреЗрдЯрд╛ рдкреВрд▓ рдореЗрдВ рдкрд╣реБрдБрдЪ рдХреБрдВрдЬреА
- Ceph рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд░рд╣рд╕реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╕реЗрдл рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
рдПрдХ рд╕рд┐рдл рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ:
- ceph рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдкреВрд▓ рдмрдирд╛рдПрдБ
- рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдмрдирд╛рдПрдБ рдФрд░ рдбреЗрдЯрд╛ рдкреВрд▓ рдореЗрдВ рдкрд╣реБрдБрдЪ рдХреБрдВрдЬреА
- Ceph рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд░рд╣рд╕реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдореВрд╣ рдореЗрдВ:
- ceph admin secret рдФрд░ ceph рдХреНрд▓рд╛рдЗрдВрдЯ рдХреБрдВрдЬреА рдмрдирд╛рдПрдВ
- ceph rbd рдЙрдкрдпреЛрдХреНрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдпрд╛ rbd рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЫрд╡рд┐ рдореЗрдВ kube-рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдЫрд╡рд┐ рдмрджрд▓реЗрдВ
- ceph рдХреНрд▓рд╛рдЗрдВрдЯ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЧреБрдкреНрдд рдмрдирд╛рдПрдВ
- рд╕рдВрдЧреНрд░рд╣рдг рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдЯреЛрдВ рдкрд░ рд╕реЗрдл-рдХреЙрдорди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдПрдХ рдбреЗрдЯрд╛ рдкреВрд▓ рдмрдирд╛рдирд╛
Ceph рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ, kubernetes рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд▓ рдмрдирд╛рдПрдВ
ceph osd pool create kube 8 8
рдпрд╣рд╛рдБ рдореИрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реВрдБрдЧрд╛, рд╕рдВрдЦреНрдпрд╛ 8 8 рдЕрдВрдд рдореЗрдВ pg рдФрд░ pgs рдХреА рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВред рдпреЗ рдорд╛рди рдЖрдкрдХреЗ ceph рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╣реИрдВ рдЬреЛ рдкреАрдЬреА рдФрд░ рдкреАрдЬреАрдПрд╕ рдХреА рдорд╛рддреНрд░рд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдл рд╕реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рд░рд╛рд╢рд┐ рдмрдврд╝рд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдЗрд╕реЗ рдХреЗрд╡рд▓ рдиреЙрдЯрд┐рд▓рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдбреЗрдЯрд╛ рдкреВрд▓ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдирд╛
рдирдП рдкреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдПрдВ
ceph auth add client.kube mon 'allow r' osd 'allow rwx pool=kube'
рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдореЗрдВ рдПрдХ рдЧреБрдкреНрдд рдХреБрдмреЗрд░рдиреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
ceph auth get-key client.kube AQDd5aldka5KJRAAkpWTQYUMQi+5dfGDqSyxkg==
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
ceph auth get client.admin 2>&1 |grep "key = " |awk '{print $3'} AQAv+Itdx4DwKBAAKVhWRS3+eEPqV3Xrnlg9KA==
Ceph рдХреНрд▓рд╕реНрдЯрд░ рдкрд░, рд╕рднреА рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдм рд╣рдореЗрдВ рдПрдХ рдорд╢реАрди рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ
рдореИрдВ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рддреИрдирд╛рдд рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдорд╛рд╕реНрдЯрд░-рдЯреЗрд╕реНрдЯ (10.73.71.25) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред
рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЧреБрдкреНрдд рдмрдирд╛рдирд╛
рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ (рдЗрд╕реЗ рдЕрдкрдиреЗ рдЯреЛрдХрди рд╕реЗ рдмрджрд▓рдирд╛ рди рднреВрд▓реЗрдВ)
echo AQDd5aldka5KJRAAkpWTQYUMQi+5dfGDqSyxkg== > /tmp/key.client
рдФрд░ рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛рдПрдВ рдЬрд┐рд╕реЗ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
kubectl create secret generic ceph-secret --from-file=/tmp/key.client --namespace=kube-system --type=kubernetes.io/rbd
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЧреБрдкреНрдд рдмрдирд╛рдПрдБ
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ (рдЗрд╕реЗ рдЕрдкрдиреЗ рдЯреЛрдХрди рд╕реЗ рдмрджрд▓рдирд╛ рди рднреВрд▓реЗрдВ)
echo AQAv+Itdx4DwKBAAKVhWRS3+eEPqV3Xrnlg9KA== > /tmp/key.admin
рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдПрдбрдорд┐рди рд╕реАрдХреНрд░реЗрдЯ рдмрдирд╛рдПрдВ
kubectl create secret generic ceph-admin-secret --from-file=/tmp/key.admin --namespace=kube-system --type=kubernetes.io/rbd
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд░рд╣рд╕реНрдп рдмрдирд╛рдП рдЧрдП рд╣реИрдВ
kubectl get secret -n kube-system | grep ceph ceph-admin-secret kubernetes.io/rbd 1 8m31s ceph-secret kubernetes.io/rbd 1 7m32s
рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ ceph rbd рдкреНрд░реЛрд╡рд┐рдЬрд╝рдирд░ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ
рд╣рдо рдХреБрддреБрд░реНрдиреЗрдЯреНрд╕-рдЗрдирдХреНрдпреВрдмреЗрдЯрд░ / рдПрдХреНрд╕рде-рд╕реНрдЯреЛрд░реЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреАрдердм рд╕реЗ рдХреНрд▓реЛрди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╡рд╣ рд╕рдмрдХреБрдЫ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рджреЛрд╕реНрддреЛрдВ рдХреЛ рд╕реАрдлрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
git clone https://github.com/kubernetes-incubator/external-storage.git cd external-storage/ceph/rbd/deploy/ NAMESPACE=kube-system sed -r -i "s/namespace: [^ ]+/namespace: $NAMESPACE/g" ./rbac/clusterrolebinding.yaml ./rbac/rolebinding.yaml
kubectl -n $NAMESPACE apply -f ./rbac
рдирд┐рд╖реНрдХрд░реНрд╖
clusterrole.rbac.authorization.k8s.io/rbd-provisioner created clusterrolebinding.rbac.authorization.k8s.io/rbd-provisioner created deployment.extensions/rbd-provisioner created role.rbac.authorization.k8s.io/rbd-provisioner created rolebinding.rbac.authorization.k8s.io/rbd-provisioner created serviceaccount/rbd-provisioner created
рд╡рд┐рдзрд┐ рджреЛ: рдХреНрдпреВрдм-рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдЫрд╡рд┐ рдХреЛ рдмрджрд▓реЗрдВ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрдпреВрдм-рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдЫрд╡рд┐ рдореЗрдВ рдХреЛрдИ рдЖрд░рдмреАрдбреА рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ-рдкреНрд░рдмрдВрдзрдХ рдЫрд╡рд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдХреБрдмреЗрд░рдиреЗрдЯ рд╡рд┐рдЬрд╛рд░реНрдб рдкрд░, рдЖрдкрдХреЛ рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░.рдЗрдорд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ gcr.io/google_containers/hyperkube:v1.1.1.2 рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЫрд╡рд┐ рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
vim /etc/kubernetes/manifests/kube-controller-manager.yaml
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛
ubectl get pods -A | grep manager kube-system kube-controller-manager-master01-test 1/1 Running 0 5m54s kube-system kube-controller-manager-master02-test 1/1 Running 0 5m54s kube-system kube-controller-manager-master03-test 1/1 Running 9111 103d
рдлрд▓реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдЯрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
kubectl delete pod -n kube-system kube-controller-manager-master01-test kubectl delete pod -n kube-system kube-controller-manager-master02-test kubectl delete pod -n kube-system kube-controller-manager-master03-test
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ
kubectl describe pod -n kube-system kube-controller-manager-master02-test | grep Image: Image: gcr.io/google_containers/hyperkube:v1.15.2
-
рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рдмрдирд╛рдирд╛
рд╡рд┐рдзрд┐ рдПрдХ - рдпрджрд┐ рдЖрдкрдиреЗ рдкреНрд░рд╛рд╡рдзрд╛рди ceph.com/rbd рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рд╕рдВрдЧреНрд░рд╣рдг рд╡рд░реНрдЧ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдпрдорд▓ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреАрдЪреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ ceph рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдореЗрд░реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ
cat <<EOF >./storage-class.yaml kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: ceph-rbd provisioner: ceph.com/rbd parameters: monitors: 10.73.88.52:6789, 10.73.88.53:6789, 10.73.88.54:6789 pool: kube adminId: admin adminSecretNamespace: kube-system adminSecretName: ceph-admin-secret userId: kube userSecretNamespace: kube-system userSecretName: ceph-secret imageFormat: "2" imageFeatures: layering EOF
рдФрд░ рдЙрд╕реЗ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ
kubectl apply -f storage-class.yaml
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ
kubectl get sc NAME PROVISIONER AGE ceph-rbd ceph.com/rbd 7s
рд╡рд┐рдзрд┐ рджреЛ - рдпрджрд┐ рдЖрдкрдиреЗ рдкреНрд░рд╛рд╡рдзрд╛рди kubernetes.io/rbd рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ
рд╕реНрдЯреЛрд░реЗрдЬ-рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ
cat <<EOF >./storage-class-hyperkube.yaml kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: ceph-rbd provisioner: kubernetes.io/rbd allowVolumeExpansion: true parameters: monitors: 10.73.88.52:6789, 10.73.88.53:6789, 10.73.88.54:6789 pool: kube adminId: admin adminSecretNamespace: kube-system adminSecretName: ceph-admin-secret userId: kube userSecretNamespace: kube-system userSecretName: ceph-secret imageFormat: "2" imageFeatures: layering EOF
рдФрд░ рдЙрд╕реЗ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ
kubectl apply -f storage-class-hyperkube.yaml storageclass.storage.k8s.io/ceph-rbd created
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ
kubectl get sc NAME PROVISIONER AGE ceph-rbd kubernetes.io/rbd 107s
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ + рд╕реЗрдлрд╝ рд▓рд┐рдЧрд╛рдореЗрдВрдЯ рдЯреЗрд╕реНрдЯ
Ceph + kubernetes рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ EVERY рд╡рд░реНрдХрдХреЛрдб рдкрд░ ceph-common рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
apt install curl apt-transport-https -y curl https://mirror.croit.io/keys/release.gpg > /usr/share/keyrings/croit-signing-key.gpg echo 'deb [signed-by=/usr/share/keyrings/croit-signing-key.gpg] https://mirror.croit.io/debian-mimic/ stretch main' > /etc/apt/sources.list.d/croit-ceph.list apt update apt install ceph-common
рдПрдХ yaml рдлрд╝рд╛рдЗрд▓ PersistentVolumeClaim рдмрдирд╛рдПрдБ
cat <<EOF >./claim.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: claim1 spec: accessModes: - ReadWriteOnce storageClassName: ceph-rbd resources: requests: storage: 1Gi EOF
рдЙрд╕реЗ рдорд╛рд░ рдбрд╛рд▓реЛ
kubectl apply -f claim.yaml
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ PersistentVolumeClaim рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
bectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE claim1 Bound pvc-d1e47825-289c-4201-acb8-033e62a3fe81 1Gi RWO ceph-rbd 44m
рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ PersistentVolume рднреА рдмрдирд╛рдпрд╛ред
kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-d1e47825-289c-4201-acb8-033e62a3fe81 1Gi RWO Delete Bound default/claim1 ceph-rbd 37m
рдЪрд▓реЛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреЙрдб рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдирд┐рд░реНрдорд┐рдд рдкреАрд╡реАрд╕реА рдХреЛ / mnt рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред "Hello World!" рдкрд╛рда рдХреЗ рд╕рд╛рде рдЗрд╕ рдлрд╝рд╛рдЗрд▓ /mnt/test.txt рдХреЛ рдЪрд▓рд╛рдПрдВред
cat <<EOF >./create-file-pod.yaml kind: Pod apiVersion: v1 metadata: name: create-file-pod spec: containers: - name: test-pod image: gcr.io/google_containers/busybox:1.24 command: - "/bin/sh" args: - "-c" - "echo Hello world! > /mnt/test.txt && exit 0 || exit 1" volumeMounts: - name: pvc mountPath: "/mnt" restartPolicy: "Never" volumes: - name: pvc persistentVolumeClaim: claimName: claim1 EOF
рд╣рдо рдЙрд╕реЗ рдорд╛рд░ рджреЗрдВрдЧреЗ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЙрд╕рдиреЗ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ
kubectl apply -f create-file-pod.yaml kubectl get pods -w
рдЪрд▓реЛ рд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
create-file-pod 0/1 Completed 0 16s
рдЪрд▓реЛ рдПрдХ рдФрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реА рдорд╛рддреНрд░рд╛ рдХреЛ рдЙрд╕рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА / mnt / рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд╣рд▓реА рдорд╛рддреНрд░рд╛ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдЬрдЧрд╣ рдореЗрдВ рд╣реИ
cat <<EOF >./test-pod.yaml kind: Pod apiVersion: v1 metadata: name: test-pod spec: containers: - name: test-pod image: gcr.io/google_containers/busybox:1.24 command: - "/bin/sh" args: - "-c" - "sleep 600" volumeMounts: - name: pvc mountPath: "/mnt/test" restartPolicy: "Never" volumes: - name: pvc persistentVolumeClaim: claimName: claim1 EOF
рд░рди рдХреБрдмреЗрдХреЗрд▓ рдкреЛ -w рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдкреЙрдб рдЪрд▓рдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЪрд▓реЛ рдЙрд╕ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╡реЙрд▓реНрдпреВрдо рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ / mnt / рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИ
kubectl exec test-pod -ti sh cat /mnt/test/test.txt Helo world!
рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред
рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрджреЗрд╢ рдпрд╛ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдЬреЛ рдореЗрд░реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдЕрдЧрд▓реЗ рдЫреЛрдЯреЗ рдкреНрд░рдХрд╛рд╢рди рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдмрдирд╛рдП рдЧрдП рд╕реАрдл рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрд╕ 3 рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рдХреИрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдлрд┐рд░ рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред
рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА