{"id":268301,"date":"2015-11-16T16:48:06","date_gmt":"2015-11-16T13:48:06","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=268301"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=268301","title":{"rendered":"\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 OpenNebula, \u0441 Ceph, MariaDB Galera Cluster \u0438 OpenvSwitch"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1b8\/185\/6c4\/1b81856c42da42ba903e85e1653969e4.png\"\/><\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0439 \u0441\u0430\u0431\u0436, \u0432 \u0447\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0447\u0442\u043e \u0431\u044b \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0435, \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0435\u0430\u0432\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 OpenNebula. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:<\/p>\n<ul>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#ceph\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Ceph, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430<\/a><\/b>. <i>(\u042f \u0431\u0443\u0434\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0434\u0432\u0443\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0441 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u043f\u0443\u043b\u043e\u043c \u0438\u0437 SSD-\u0434\u0438\u0441\u043a\u043e\u0432)<\/i><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#galera\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 MySQL, Galera \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441 \u043c\u0430\u0441\u0442\u0435\u0440-\u043c\u0430\u0441\u0442\u0435\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#openvswitch\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0444\u0442-\u0441\u0432\u0438\u0447\u0430 OpenvSwitch<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#opennebula\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u043e\u0439 OpenNebula<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#pacemaker\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0435\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#configuration\">\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/a><\/b><\/li>\n<\/ul>\n<p>  \u0422\u0435\u043c\u044b \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0446\u0435\u043b\u044c, \u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u0430\u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430. \u041c\u0438\u043b\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u0434 \u043a\u0430\u0442. <\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e40\/61c\/7f7\/e4061c7f76c18a3953e5953be17fb612.png\" alt=\"image\"\/><\/p>\n<h1>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h1>\n<h2>\u0418 \u0442\u0430\u043a, \u0447\u0442\u043e \u0436\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432 \u0438\u0442\u043e\u0433\u0435?<\/h2>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0432\u043e\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0433\u0438\u0431\u043a\u043e\u0435, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0435 \u0438 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 OpenNebula. \u0427\u0442\u043e \u0436\u0435 \u0437\u043d\u0430\u0447\u0430\u0442 \u044d\u0442\u0438 \u0441\u043b\u043e\u0432\u0430? \u2014 \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c:<\/p>\n<ul>\n<li><b>\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0435<\/b> \u2014 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u043f\u0440\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438. \u0412 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u043e\u0431\u043b\u0430\u043a\u0435, \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0438 \u0432 \u043f\u0443\u043b ceph. \u0415\u0449\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043d\u043e\u0434\u0443 \u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u0435\u0435 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438.\n<\/li>\n<li><b>\u0413\u0438\u0431\u043a\u043e\u0435<\/b> \u2014 \u0434\u0435\u0432\u0438\u0437 OpenNebula \u0442\u0430\u043a \u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u00abFlexible Enterprise Cloud Made Simple\u00bb. OpenNebula \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438 \u0438 \u043a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u0433\u0438\u0431\u043a\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u0412\u0430\u043c \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0442\u0440\u0443\u0434\u0430 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0435\u0439, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0435 \u0441\u0432\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c, \u0442.\u043a. \u0432\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u0441\u0442\u043e\u0435\u043d\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e \u0431\u044b \u0431\u044b\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439.\n<\/li>\n<li><b>\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0435\u0432\u043e\u0435<\/b> \u2014 \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0441\u0442\u0440\u043e\u044f \u0436\u0435\u0441\u0442\u043a\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430, \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441\u0430\u043c \u043f\u0435\u0440\u0435\u0441\u0442\u043e\u0440\u0438\u0442\u0441\u044f \u0442\u0430\u043a, \u0447\u0442\u043e \u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0435\u043f\u043b\u0438\u043a \u0432\u0430\u0448\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u0441\u0442\u0440\u043e\u044f \u043e\u0434\u043d\u043e\u0439 \u043d\u043e\u0434\u044b, \u0432\u044b \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0430 \u043e\u0431\u043b\u0430\u043a\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432\u0430\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/290\/bda\/89c\/290bda89c44b48438c999d651dd305e0.png\" alt=\"image\"\/>   <\/p>\n<h2>\u0427\u0442\u043e \u043d\u0430\u043c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u0434\u043e?<\/h2>\n<ul>\n<li>\u042f \u0431\u0443\u0434\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043d\u0430 <b>3 \u043d\u043e\u0434\u044b<\/b>, \u043d\u043e \u0432 \u0432\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e.<br \/>  \u0412\u044b \u0442\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c OpenNebula \u043d\u0430 \u043e\u0434\u043d\u0443 \u043d\u043e\u0434\u0443, \u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0435\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u0430 \u0432\u0441\u044f \u0432\u0430\u0448\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u043e \u044d\u0442\u043e\u043c\u0443 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443 \u0441\u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u0430\u043c\u043e\u0439 OpenNebula, \u0438 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, OpenvSwitch.<br \/>  <i>\u041a\u0441\u0442\u0430\u0442\u0438, \u0435\u0449\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c CentOS \u043d\u0430 ZFS, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0432 \u043c\u043e\u044e <a href=\"http:\/\/habrahabr.ru\/post\/268711\/\"> \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a> (\u043d\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0430) \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c OpenNebula \u043d\u0430 ZFS, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043c\u043d\u043e\u0439 <a href=\"https:\/\/github.com\/kvaps\/opennebula-addon-zfs\">ZFS-\u0434\u0440\u0430\u0439\u0432\u0435\u0440<\/a><br \/>  <\/i>  <\/li>\n<li>\u0422\u0430\u043a \u0436\u0435, \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u043d\u0438\u044f Ceph, \u043a\u0440\u0430\u0439\u043d\u0435 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u0430 <b>10g \u0441\u0435\u0442\u044c<\/b>. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432\u0430\u043c \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u044d\u0448-\u043f\u0443\u043b, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u0432\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438 \u0431\u0443\u0434\u0443\u0442 \u0434\u0430\u0436\u0435 \u043d\u0438\u0436\u0435, \u0447\u0435\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 \u043f\u0443\u043b \u0438\u0437 \u043e\u0434\u043d\u0438\u0445 \u0442\u043e\u043b\u044c\u043a\u043e HDD.\n<\/li>\n<li>\u041d\u0430 \u0432\u0441\u0435\u0445 \u043d\u043e\u0434\u0430\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <b>CentOS 7<\/b>.\n<\/li>\n<li>\u0422\u0430\u043a \u0436\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u043d\u043e\u0434\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442:<br \/> \n<ul>\n<li>2SSD \u043f\u043e 256GB \u2014 \u0434\u043b\u044f \u043a\u044d\u0448-\u043f\u0443\u043b\u0430<\/li>\n<li>3HDD \u043f\u043e 6TB \u2014 \u0434\u043b\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0443\u043b\u0430<\/li>\n<li>\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0439 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Ceph (1GB \u041e\u0417\u0423 \u043d\u0430 1TB \u0434\u0430\u043d\u043d\u044b\u0445)<\/li>\n<li>\u041d\u0443 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u0431\u043b\u0430\u043a\u0430, CPU \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d<\/li>\n<\/ul>\n<p>  <\/li>\n<li>\u0415\u0449\u0435 \u0445\u043e\u0442\u0435\u043b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e <b>SELINUX<\/b>. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0430 \u0432\u0441\u0435\u0445 \u0442\u0440\u0435\u0445 \u043d\u043e\u0434\u0430\u0445 \u043e\u043d \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d:\n<pre><code class=\"bash\">sed -i s\/SELINUX=enforcing\/SELINUX=disabled\/g \/etc\/selinux\/config setenforce 0 <\/code><\/pre>\n<p>  <\/li>\n<li>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <a href=\"https:\/\/fedoraproject.org\/wiki\/EPEL\">EPEL<\/a>-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439:\n<pre><code class=\"bash\">yum install epel-release <\/code><\/pre>\n<\/li>\n<\/ul>\n<h2>\u0421\u0445\u0435\u043c\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/h2>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e, \u0432\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0431\u0443\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/11e\/50e\/404\/11e50e40492855b7ab40f6dd0b4d93b0.png\" alt=\"image\"\/><\/p>\n<p>  \u0418 \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0430 \u0441 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430\u043c\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u044b:  <\/p>\n<table>\n<tbody>\n<tr>\n<th><b>Hostname<\/b><\/th>\n<th>kvm1<\/th>\n<th>kvm2<\/th>\n<th>kvm3<\/th>\n<\/tr>\n<tr>\n<td><b>Network Interface<\/b><\/td>\n<td>enp1<\/td>\n<td>enp1<\/td>\n<td>enp1<\/td>\n<\/tr>\n<tr>\n<td><b>IP address<\/b><\/td>\n<td>192.168.100.201<\/td>\n<td>192.168.100.202<\/td>\n<td>192.168.100.203<\/td>\n<\/tr>\n<tr>\n<td><b>HDD<\/b><\/td>\n<td>sdb<\/td>\n<td>sdb<\/td>\n<td>sdb<\/td>\n<\/tr>\n<tr>\n<td><b>HDD<\/b><\/td>\n<td>sdc<\/td>\n<td>sdc<\/td>\n<td>sdc<\/td>\n<\/tr>\n<tr>\n<td><b>HDD<\/b><\/td>\n<td>sdd<\/td>\n<td>sdd<\/td>\n<td>sdd<\/td>\n<\/tr>\n<tr>\n<td><b>SSD<\/b><\/td>\n<td>sde<\/td>\n<td>sde<\/td>\n<td>sde<\/td>\n<\/tr>\n<tr>\n<td><b>SSD<\/b><\/td>\n<td>sdf<\/td>\n<td>sdf<\/td>\n<td>sdf<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>  \u0412\u0441\u0435, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435! \u0418 \u043d\u0430\u0447\u043d\u0435\u043c \u043c\u044b \u043f\u043e\u0436\u0430\u043b\u0443\u0439 \u0441 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430.<\/p>\n<hr\/>\n<p>  <a name=\"ceph\"><\/a><\/p>\n<h1>Ceph<\/h1>\n<p>  \u041f\u0440\u043e ceph \u043d\u0430 \u0445\u0430\u0431\u0440\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0440\u0430\u0437 \u043f\u0438\u0441\u0430\u043b\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440  <a href=\"http:\/\/habrahabr.ru\/users\/teraflops\/\" class=\"user_link\">teraflops<\/a> \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043b \u0435\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 <a href=\"http:\/\/habrahabr.ru\/company\/performix\/blog\/218065\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u043e \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e.<\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0436\u0435 \u043e\u043f\u0438\u0448\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 ceph \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 RBD (RADOS Block Device) \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u044d\u0448-\u043f\u0443\u043b\u0430 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u043d\u0435\u043c.<\/p>\n<p>  \u0418\u0442\u0430\u043a \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0442\u0440\u0438 \u043d\u043e\u0434\u044b kvm1, kvm2, kvm3. \u041a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 \u0438\u043c\u0435\u0435\u0442 2 SSD \u0434\u0438\u0441\u043a\u0430 \u0438 3 HDD. \u041d\u0430 \u044d\u0442\u0438\u0445 \u0434\u0438\u0441\u043a\u0430\u0445 \u043c\u044b \u0438 \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u043c \u0434\u0432\u0430 \u043f\u0443\u043b\u0430, \u043e\u0434\u0438\u043d \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043d\u0430 HDD, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043d\u0430 SSD. \u0412 \u043e\u0431\u0449\u0435\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443 \u043d\u0430\u0441 \u0434\u043e\u043b\u0436\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0435:<br \/>  <img decoding=\"async\" src=\"http:\/\/sebastien-han.fr\/images\/colocation-ssd-sata.png\" alt=\"image\"\/><\/p>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h2>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ceph-deploy, \u0430 \u043e\u043d\u0430 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<br \/>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c ceph-depoy \u0438 ssh-\u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u043e\u0434 <b>kvm1<\/b>.<\/p>\n<p>  \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f ceph, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0435\u043c\u0443 \u0431\u0435\u0437\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e \u0445\u043e\u0434\u0438\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0447\u0435\u0440\u0435\u0437 sudo \u0442\u0430\u043a \u0436\u0435 \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f.<\/p>\n<p>  <b>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c:<\/b><\/p>\n<pre><code class=\"bash\">sudo useradd -d \/home\/ceph -m ceph sudo passwd ceph sudo echo &quot;ceph ALL = (root) NOPASSWD:ALL&quot; | sudo tee \/etc\/sudoers.d\/ceph sudo chmod 0440 \/etc\/sudoers.d\/ceph <\/code><\/pre>\n<p>  <b>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 kvm1.<\/b><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u044e\u0447 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b  <\/p>\n<pre><code class=\"bash\">sudo ssh-keygen -f \/home\/ceph\/.ssh\/id_rsa sudo cat \/home\/ceph\/.ssh\/id_rsa.pub &gt;&gt; \/home\/ceph\/.ssh\/authorized_keys sudo chown -R ceph:users \/home\/ceph\/.ssh for i in 2 3; do     scp \/home\/ceph\/.ssh\/* ceph@kvm$i:\/home\/ceph\/.ssh\/ done <\/code><\/pre>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h2>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u044e\u0447, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 ceph \u0438 ceph-depoy \u0438\u0437 \u043d\u0435\u0433\u043e:<\/p>\n<pre><code class=\"bash\">sudo rpm --import 'https:\/\/download.ceph.com\/keys\/release.asc' sudo yum -y localinstall http:\/\/download.ceph.com\/rpm\/el7\/noarch\/ceph-release-1-1.el7.noarch.rpm sudo yum install -y ceph-deploy <\/code><\/pre>\n<p>  \u041e\u043a, \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0437\u0430 \u044e\u0437\u0435\u0440\u0430 ceph \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0438 \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f ceph.  <\/p>\n<pre><code class=\"bash\">sudo su - ceph mkdir ceph-admin cd ceph-admin <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c ceph \u043d\u0430 \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u043d\u043e\u0434\u044b:  <\/p>\n<pre><code class=\"bash\">ceph-deploy install kvm{1,2,3} <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440  <\/p>\n<pre><code class=\"bash\">ceph-deploy new kvm{1,2,3} <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043a\u043b\u044e\u0447\u0438:  <\/p>\n<pre><code class=\"bash\">ceph-deploy mon create kvm{1,2,3} ceph-deploy gatherkeys kvm{1,2,3} <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043d\u0430\u0448\u0435\u0439 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043d\u0430\u0448\u0438 \u0434\u0438\u0441\u043a\u0438, \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c OSD-\u0434\u0435\u043c\u043e\u043d\u044b:  <\/p>\n<pre><code class=\"bash\"># Flush disks ceph-deploy disk zap kvm{1,2,3}:sd{b,c,d,e,f}  # SSD-disks ceph-deploy osd create kvm{1,2,3}:sd{e,f} # HDD-disks ceph-deploy osd create kvm{1,2,3}:sd{b,c,d} <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:  <\/p>\n<pre><code class=\"bash\">ceph osd tree <\/code><\/pre>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0432\u044b\u0432\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">ID WEIGHT  TYPE NAME     UP\/DOWN REWEIGHT PRIMARY-AFFINITY  -1 3.00000 root default                                     -2 1.00000     host kvm1                                                   0 1.00000         osd.0                 up  1.00000          1.00000     1 1.00000         osd.1                 up  1.00000          1.00000     6 1.00000         osd.6                 up  1.00000          1.00000     7 1.00000         osd.7                 up  1.00000          1.00000     8 1.00000         osd.8                 up  1.00000          1.00000  -3 1.00000     host kvm2                                               2 1.00000         osd.2                 up  1.00000          1.00000     3 1.00000         osd.3                 up  1.00000          1.00000     9 1.00000         osd.9                 up  1.00000          1.00000    10 1.00000         osd.10                up  1.00000          1.00000    11 1.00000         osd.11                up  1.00000          1.00000  -4 1.00000     host kvm3                                         4 1.00000         osd.4                 up  1.00000          1.00000     5 1.00000         osd.5                 up  1.00000          1.00000    12 1.00000         osd.12                up  1.00000          1.00000    13 1.00000         osd.13                up  1.00000          1.00000    14 1.00000         osd.14                up  1.00000          1.00000  <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430:  <\/p>\n<pre><code class=\"bash\">ceph -s <\/code><\/pre>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u044d\u0448-\u043f\u0443\u043b\u0430<\/h2>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/567\/3df\/738\/5673df7385ffa00e9ff5c46e34dd340c.jpg\" alt=\"image\"\/><br \/>  \u0418\u0442\u0430\u043a \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 ceph-\u043a\u043b\u0430\u0441\u0442\u0435\u0440.<br \/>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435-\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043f\u0443\u043b, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u044b CRUSH \u0447\u0442\u043e \u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435. \u0427\u0442\u043e \u0431\u044b \u043d\u0430\u0448 \u043a\u044d\u0448-\u043f\u0443\u043b \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 SSD-\u0434\u0438\u0441\u043a\u0430\u0445, \u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0443\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 HDD.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c ceph \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0434\u043e\u043f\u0438\u0448\u0435\u043c \u0432 ceph.conf   <\/p>\n<pre><code class=\"bash\">osd_crush_update_on_start = false <\/code><\/pre>\n<p>  \u0418 \u043e\u0431\u043d\u043e\u0432\u0438\u043c \u0435\u0433\u043e \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u043d\u043e\u0434\u0430\u0445:  <\/p>\n<pre><code class=\"bash\">ceph-deploy admin kvm{1,2,3} <\/code><\/pre>\n<p>  \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u043d\u0430\u0448\u0443 \u043d\u044b\u043d\u0435\u0448\u043d\u044e\u044e \u043a\u0430\u0440\u0442\u0443 \u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043c \u0435\u0435 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442:  <\/p>\n<pre><code class=\"bash\">ceph osd getcrushmap -o map.running crushtool -d map.running -o map.decompile <\/code><\/pre>\n<p>  \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0435\u0435 \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u0432\u0438\u0434\u0443:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">map.decompile<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"># begin crush map tunable choose_local_tries 0 tunable choose_local_fallback_tries 0 tunable choose_total_tries 50 tunable chooseleaf_descend_once 1 tunable straw_calc_version 1  # devices device 0 osd.0 device 1 osd.1 device 2 osd.2 device 3 osd.3 device 4 osd.4 device 5 osd.5 device 6 osd.6 device 7 osd.7 device 8 osd.8 device 9 osd.9 device 10 osd.10 device 11 osd.11 device 12 osd.12 device 13 osd.13 device 14 osd.14  # types type 0 osd type 1 host type 2 chassis type 3 rack type 4 row type 5 pdu type 6 pod type 7 room type 8 datacenter type 9 region type 10 root  # buckets host kvm1-ssd-cache { \tid -2\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1         item osd.0 weight 1.000         item osd.1 weight 1.000 } host kvm2-ssd-cache { \tid -3\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1         item osd.2 weight 1.000         item osd.3 weight 1.000 } host kvm3-ssd-cache { \tid -4\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1         item osd.4 weight 1.000         item osd.5 weight 1.000 } host kvm1-hdd { \tid -102\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1         item osd.6 weight 1.000         item osd.7 weight 1.000         item osd.8 weight 1.000 } host kvm2-hdd { \tid -103\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1         item osd.9 weight 1.000         item osd.10 weight 1.000         item osd.11 weight 1.000 } host kvm3-hdd { \tid -104\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1         item osd.12 weight 1.000         item osd.13 weight 1.000         item osd.14 weight 1.000 } root ssd-cache { \tid -1\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1 \titem kvm1-ssd-cache weight 1.000 \titem kvm2-ssd-cache weight 1.000 \titem kvm3-ssd-cache weight 1.000 } root hdd { \tid -100\t\t# do not change unnecessarily \t# weight 0.000 \talg straw \thash 0\t# rjenkins1 \titem kvm1-hdd weight 1.000 \titem kvm2-hdd weight 1.000 \titem kvm3-hdd weight 1.000 }  # rules rule ssd-cache { \truleset 0 \ttype replicated \tmin_size 1 \tmax_size 10 \tstep take ssd-cache \tstep chooseleaf firstn 0 type host \tstep emit }  rule hdd { \truleset 1 \ttype replicated \tmin_size 1 \tmax_size 10 \tstep take hdd \tstep chooseleaf firstn 0 type host \tstep emit }# end crush map <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0434\u043d\u043e\u0433\u043e root \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0434\u0432\u0430, \u0434\u043b\u044f hdd \u0438 ssd, \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0441 rule \u0438 \u043a\u0430\u0436\u0434\u044b\u043c host.<br \/>  \u041f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u0430\u0440\u0442\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0431\u0443\u0434\u0442\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u044c\u043d\u043e \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b \u0438 \u043d\u0435 \u0437\u0430\u043f\u0443\u0442\u0430\u0439\u0442\u0435\u0441\u044c \u0432 id&#8217;\u0448\u043d\u0438\u043a\u0430\u0445!<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u0435\u0435:  <\/p>\n<pre><code class=\"bash\">crushtool -c map.decompile -o map.new ceph osd setcrushmap -i map.new <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:  <\/p>\n<pre><code class=\"bash\">ceph osd tree <\/code><\/pre>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0432\u044b\u0432\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">ID   WEIGHT  TYPE NAME                UP\/DOWN REWEIGHT PRIMARY-AFFINITY  -100 3.00000 root hdd                                                    -102 1.00000     host kvm1-hdd                                             6 1.00000         osd.6                 up  1.00000          1.00000     7 1.00000         osd.7                 up  1.00000          1.00000     8 1.00000         osd.8                 up  1.00000          1.00000  -103 1.00000     host kvm2-hdd                                             9 1.00000         osd.9                 up  1.00000          1.00000    10 1.00000         osd.10                up  1.00000          1.00000    11 1.00000         osd.11                up  1.00000          1.00000  -104 1.00000     host kvm3-hdd                                            12 1.00000         osd.12                up  1.00000          1.00000    13 1.00000         osd.13                up  1.00000          1.00000    14 1.00000         osd.14                up  1.00000          1.00000    -1 3.00000 root ssd-cache                                                -2 1.00000     host kvm1-ssd-cache                                       0 1.00000         osd.0                 up  1.00000          1.00000     1 1.00000         osd.1                 up  1.00000          1.00000    -3 1.00000     host kvm2-ssd-cache                                       2 1.00000         osd.2                 up  1.00000          1.00000     3 1.00000         osd.3                 up  1.00000          1.00000    -4 1.00000     host kvm3-ssd-cache                                       4 1.00000         osd.4                 up  1.00000          1.00000     5 1.00000         osd.5                 up  1.00000          1.00000  <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043f\u0438\u0448\u0435\u043c \u043d\u0430\u0448\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 ceph.conf, \u0430 \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430\u0445 \u0438 osd.<\/p>\n<p>  \u0423 \u043c\u0435\u043d\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">ceph.conf<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">[global] fsid = 586df1be-40c5-4389-99ab-342bd78566c3 mon_initial_members = kvm1, kvm2, kvm3 mon_host = 192.168.100.201,192.168.100.202,192.168.100.203 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx filestore_xattr_use_omap = true osd_crush_update_on_start = false  [mon.kvm1] host = kvm1 mon_addr = 192.168.100.201:6789 mon-clock-drift-allowed = 0.5  [mon.kvm2] host = kvm2 mon_addr = 192.168.100.202:6789 mon-clock-drift-allowed = 0.5  [mon.kvm3] host = kvm3 mon_addr = 192.168.100.203:6789 mon-clock-drift-allowed = 0.5  [client.admin] keyring = \/etc\/ceph\/ceph.client.admin.keyring  [osd.0] host = kvm1  [osd.1] host = kvm1  [osd.2] host = kvm2  [osd.3] host = kvm2  [osd.4] host = kvm3  [osd.5] host = kvm3  [osd.6] host = kvm1  [osd.7] host = kvm1  [osd.8] host = kvm1  [osd.9] host = kvm2  [osd.10] host = kvm2  [osd.11] host = kvm2  [osd.12] host = kvm3  [osd.13] host = kvm3  [osd.14] host = kvm3 <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0418 \u0440\u0430\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0433\u043e \u043d\u0430\u0448\u0438\u043c \u0445\u043e\u0441\u0442\u0430\u043c:  <\/p>\n<pre><code class=\"bash\">ceph-deploy admin kvm{1,2,3} <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430:  <\/p>\n<pre><code class=\"bash\">ceph -s <\/code><\/pre>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0443\u043b\u043e\u0432<\/h2>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4b8\/17a\/1ad\/4b817a1ad64116113df9ceae7c6e07d0.png\" alt=\"image\"\/><br \/>  \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0443\u043b\u043e\u0432, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e pg (Placment Group), \u043e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 CRUSH. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0442\u0430\u043a\u0430\u044f:  <\/p>\n<pre><code class=\"bash\">            (OSDs * 100) Total PGs = ------------               Replicas <\/code><\/pre>\n<p>\u0438 \u043e\u043a\u0440\u0443\u043b\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0440\u0445, \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0447\u0438\u0441\u043b\u0430 2<\/p>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0438\u043c\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u0443\u043b \u043d\u0430 SSD \u0438 \u043e\u0434\u0438\u043d \u043f\u0443\u043b \u043d\u0430 HDD \u0441 \u0440\u0435\u043f\u043b\u0438\u043a\u043e\u0439 2, \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f:  <\/p>\n<pre><code class=\"bash\">HDD pool pg = 9*100\/2 = 450[\u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c] = 512 SSD pool pg = 6*100\/2 = 300[\u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c] = 512 <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0443\u043b\u043e\u0432 \u043d\u0430 \u043d\u0430\u0448 root \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u0430 \u043a\u043e\u043b-\u0432\u043e \u043f\u0443\u043b\u043e\u0432<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0443\u043b\u044b, \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u0438\u043c size 2 \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0438, \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0438\u0441\u043a\u0430\u0445, \u0438 min_size 1 \u2014 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0435\u043f\u043b\u0438\u043a \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0447\u0442\u043e \u0431\u044b \u00ab\u043e\u0442\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00bb \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e \u0437\u0430\u043f\u0438\u0441\u0438.<\/p>\n<pre><code class=\"bash\">ceph osd pool create ssd-cache 512 ceph osd pool set ssd-cache min_size 1 ceph osd pool set ssd-cache size 2 ceph osd pool create one 512 ceph osd pool set one min_size 1 ceph osd pool set one size 2 <\/code><\/pre>\n<p>\u041f\u0443\u043b one \u2014 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u0434\u0435\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 OpenNebula<\/p>\n<p>  \u041d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043d\u0430\u0448\u0438\u043c \u043f\u0443\u043b\u0430\u043c:  <\/p>\n<pre><code class=\"bash\">ceph osd pool set ssd-cache crush_ruleset 0 ceph osd pool set one crush_ruleset 1 <\/code><\/pre>\n<p>  \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043f\u0443\u043b one \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0430\u0448 \u043a\u044d\u0448-\u043f\u0443\u043b:  <\/p>\n<pre><code class=\"bash\">ceph osd tier add one ssd-cache ceph osd tier cache-mode ssd-cache writeback ceph osd tier set-overlay one ssd-cache <\/code><\/pre>\n<p>  Ceph \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 2 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0447\u0438\u0449\u0435\u043d\u0438\u044f \u043a\u044d\u0448\u0430:  <\/p>\n<ul>\n<li>Flushing (\u043f\u0440\u043e\u043c\u044b\u0432\u043a\u0430): \u0430\u0433\u0435\u043d\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043e\u0441\u0442\u044b\u0432\u0448\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u043f\u0443\u043b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/li>\n<li>Evicting (\u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u0435): \u0430\u0433\u0435\u043d\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0435\u043e\u0441\u0442\u044b\u0432\u0448\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0441\u0430\u043c\u044b\u0445 \u0441\u0442\u0430\u0440\u044b\u0445, \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0445 \u0432 \u043f\u0443\u043b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<p>  \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u00ab\u0433\u043e\u0440\u044f\u0447\u0438\u0445\u00bb \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80_%D0%91%D0%BB%D1%83%D0%BC%D0%B0\">\u0424\u0438\u043b\u044c\u0442\u0440 \u0411\u043b\u0443\u043c\u0430<\/a>.<\/p>\n<p>  \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u044d\u0448\u0430:  <\/p>\n<pre><code class=\"bash\"># \u0412\u043a\u043b\u044e\u0447\u0435\u043c \u0444\u0438\u043b\u044c\u0442\u0440 bloom ceph osd pool set ssd-cache hit_set_type bloom # \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0447\u0442\u043e \u0431\u044b \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u043b\u0441\u044f \u0433\u043e\u0440\u044f\u0447\u0438\u043c ceph osd pool set ssd-cache hit_set_count 4 # \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0433\u043e\u0440\u044f\u0447\u0438\u043c ceph osd pool set ssd-cache hit_set_period 1200 <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c  <\/p>\n<pre><code class=\"bash\"># \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043a\u044d\u0448\u0430 ceph osd pool set ssd-cache target_max_bytes 200000000000 # \u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u043c\u044b\u0432\u0430\u043d\u0438\u044f ceph osd pool set ssd-cache cache_target_dirty_ratio 0.4 # \u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u044b\u0441\u0435\u043b\u0435\u043d\u0438\u044f ceph osd pool set ssd-cache cache_target_full_ratio 0.8  # \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043c\u044b\u0442 ceph osd pool set ssd-cache cache_min_flush_age 300  # \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0441\u0435\u043b\u0435\u043d ceph osd pool set ssd-cache cache_min_evict_age 300  <\/code><\/pre>\n<h2>\u041a\u043b\u044e\u0447\u0438<\/h2>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f one \u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043a\u043b\u044e\u0447  <\/p>\n<pre><code class=\"bash\">ceph auth get-or-create client.one mon 'allow r' osd 'allow rw pool=ssd-cache' -o \/etc\/ceph\/ceph.client.one.keyring <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0443\u043b, \u0432\u044b\u0434\u0430\u0434\u0438\u043c \u0435\u043c\u0443 \u043f\u0440\u0430\u0432\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 ssd-cache \u043f\u0443\u043b.<\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 Ceph \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0439.<\/p>\n<hr\/>\n<p>  <a name=\"galera\"><\/a><\/p>\n<h1>MariaDB Galera Cluster<\/h1>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d7b\/e5b\/e9e\/d7be5be9ee84eb2b0d0bb35125a80b47.png\" alt=\"image\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0443\u044e MySQL \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u043d\u043e\u0434\u0430\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0430\u0442\u0430 \u0446\u0435\u043d\u0442\u0440\u0430. <br \/>  MariaDB Galera Cluster \u2014 \u044d\u0442\u043e MariaDB \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441 \u043c\u0430\u0441\u0442\u0435\u0440-\u043c\u0430\u0441\u0442\u0435\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0439 \u0434\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 <a href=\"http:\/\/galeracluster.com\/products\/technology\/\">galera<\/a>-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443.<br \/>  \u041f\u043b\u044e\u0441 \u043a\u043e \u0432\u0441\u0435\u043c\u0443 \u043e\u043d \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435:<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h2>\n<p>  <b>\u041d\u0430 \u0432\u0441\u0435\u0445 \u043d\u043e\u0434\u0430\u0445<\/b> <br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439:  <\/p>\n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; \/etc\/yum.repos.d\/mariadb.repo [mariadb] name = MariaDB baseurl = http:\/\/yum.mariadb.org\/10.0\/centos7-amd64 gpgkey=https:\/\/yum.mariadb.org\/RPM-GPG-KEY-MariaDB gpgcheck=1 EOT <\/code><\/pre>\n<p>  \u0418 \u0441\u0430\u043c \u0441\u0435\u0440\u0432\u0435\u0440:  <\/p>\n<pre><code class=\"bash\">yum install MariaDB-Galera-server MariaDB-client rsync galera <\/code><\/pre>\n<p>  \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0434\u0435\u043c\u043e\u043d, \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443:  <\/p>\n<pre><code class=\"bash\">service mysql start chkconfig mysql on mysql_secure_installation <\/code><\/pre>\n<h2>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440:<\/h2>\n<p>  \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438:  <\/p>\n<pre><code class=\"bash\">mysql -p GRANT USAGE ON *.* to sst_user@'%' IDENTIFIED BY 'PASS'; GRANT ALL PRIVILEGES on *.* to sst_user@'%'; FLUSH PRIVILEGES; exit service mysql stop <\/code><\/pre>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \/etc\/my.cnf \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0432\u0438\u0434\u0443:<br \/>  \u0414\u043b\u044f kvm1:  <\/p>\n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; \/etc\/my.cnf collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8 binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 datadir=\/var\/lib\/mysql innodb_log_file_size=100M innodb_file_per_table innodb_flush_log_at_trx_commit=2 wsrep_provider=\/usr\/lib64\/galera\/libgalera_smm.so wsrep_cluster_address=&quot;gcomm:\/\/192.168.100.202,192.168.100.203&quot; wsrep_cluster_name='galera_cluster' wsrep_node_address='192.168.100.201' # setup real node ip wsrep_node_name='kvm1' #  setup real node name wsrep_sst_method=rsync wsrep_sst_auth=sst_user:PASS EOT <\/code><\/pre>\n<p>  \u041f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 kvm1 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u043e\u0434:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f kvm2<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; \/etc\/my.cnf collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8 binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 datadir=\/var\/lib\/mysql innodb_log_file_size=100M innodb_file_per_table innodb_flush_log_at_trx_commit=2 wsrep_provider=\/usr\/lib64\/galera\/libgalera_smm.so wsrep_cluster_address=&quot;gcomm:\/\/192.168.100.201,192.168.100.203&quot; wsrep_cluster_name='galera_cluster' wsrep_node_address='192.168.100.202' # setup real node ip wsrep_node_name='kvm2' #  setup real node name wsrep_sst_method=rsync wsrep_sst_auth=sst_user:PASS EOT <\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f kvm3<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; \/etc\/my.cnf collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8 binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 datadir=\/var\/lib\/mysql innodb_log_file_size=100M innodb_file_per_table innodb_flush_log_at_trx_commit=2 wsrep_provider=\/usr\/lib64\/galera\/libgalera_smm.so wsrep_cluster_address=&quot;gcomm:\/\/192.168.100.201,192.168.100.202&quot; wsrep_cluster_name='galera_cluster' wsrep_node_address='192.168.100.203' # setup real node ip wsrep_node_name='kvm3' #  setup real node name wsrep_sst_method=rsync wsrep_sst_auth=sst_user:PASS EOT <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0413\u043e\u0442\u043e\u0432\u043e, \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u043d\u043e\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c:  <\/p>\n<pre><code class=\"bash\">\/etc\/init.d\/mysql start --wsrep-new-cluster <\/code><\/pre>\n<p>  \u041d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u043e\u0434\u0430\u0445:  <\/p>\n<pre><code class=\"bash\">\/etc\/init.d\/mysql start <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c:  <\/p>\n<pre><code class=\"bash\">mysql -p SHOW STATUS LIKE 'wsrep%'; <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0432\u043e\u0434\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">+------------------------------+----------------------------------------------------------------+ | Variable_name                | Value                                                          | +------------------------------+----------------------------------------------------------------+ | wsrep_local_state_uuid       | 5b32cb2c-39df-11e5-b26b-6e85dd52910e                           | | wsrep_protocol_version       | 7                                                              | | wsrep_last_committed         | 4200745                                                        | | wsrep_replicated             | 978815                                                         | | wsrep_replicated_bytes       | 4842987031                                                     | | wsrep_repl_keys              | 3294690                                                        | | wsrep_repl_keys_bytes        | 48870270                                                       | | wsrep_repl_data_bytes        | 4717590703                                                     | | wsrep_repl_other_bytes       | 0                                                              | | wsrep_received               | 7785                                                           | | wsrep_received_bytes         | 62814                                                          | | wsrep_local_commits          | 978814                                                         | | wsrep_local_cert_failures    | 0                                                              | | wsrep_local_replays          | 0                                                              | | wsrep_local_send_queue       | 0                                                              | | wsrep_local_send_queue_max   | 2                                                              | | wsrep_local_send_queue_min   | 0                                                              | | wsrep_local_send_queue_avg   | 0.002781                                                       | | wsrep_local_recv_queue       | 0                                                              | | wsrep_local_recv_queue_max   | 2                                                              | | wsrep_local_recv_queue_min   | 0                                                              | | wsrep_local_recv_queue_avg   | 0.002954                                                       | | wsrep_local_cached_downto    | 4174040                                                        | | wsrep_flow_control_paused_ns | 0                                                              | | wsrep_flow_control_paused    | 0.000000                                                       | | wsrep_flow_control_sent      | 0                                                              | | wsrep_flow_control_recv      | 0                                                              | | wsrep_cert_deps_distance     | 40.254320                                                      | | wsrep_apply_oooe             | 0.004932                                                       | | wsrep_apply_oool             | 0.000000                                                       | | wsrep_apply_window           | 1.004932                                                       | | wsrep_commit_oooe            | 0.000000                                                       | | wsrep_commit_oool            | 0.000000                                                       | | wsrep_commit_window          | 1.000000                                                       | | wsrep_local_state            | 4                                                              | | wsrep_local_state_comment    | Synced                                                         | | wsrep_cert_index_size        | 43                                                             | | wsrep_causal_reads           | 0                                                              | | wsrep_cert_interval          | 0.023937                                                       | | wsrep_incoming_addresses     | 192.168.100.202:3306,192.168.100.201:3306,192.168.100.203:3306 | | wsrep_evs_delayed            |                                                                | | wsrep_evs_evict_list         |                                                                | | wsrep_evs_repl_latency       | 0\/0\/0\/0\/0                                                      | | wsrep_evs_state              | OPERATIONAL                                                    | | wsrep_gcomm_uuid             | 91e4b4f9-62cc-11e5-9422-2b8fd270e336                           | | wsrep_cluster_conf_id        | 0                                                              | | wsrep_cluster_size           | 3                                                              | | wsrep_cluster_state_uuid     | 5b32cb2c-39df-11e5-b26b-6e85dd52910e                           | | wsrep_cluster_status         | Primary                                                        | | wsrep_connected              | ON                                                             | | wsrep_local_bf_aborts        | 0                                                              | | wsrep_local_index            | 1                                                              | | wsrep_provider_name          | Galera                                                         | | wsrep_provider_vendor        | Codership Oy &lt;info@codership.com&gt;                              | | wsrep_provider_version       | 25.3.9(r3387)                                                  | | wsrep_ready                  | ON                                                             | | wsrep_thread_count           | 2                                                              | +------------------------------+----------------------------------------------------------------+ <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0412\u043e\u0442 \u0438 \u0432\u0441\u0435. \u041f\u0440\u043e\u0441\u0442\u043e \u2013 \u043d\u0435 \u043f\u0440\u0430\u0432\u0434\u0430 \u043b\u0438?<\/p>\n<p>  <b>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435:<\/b> \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u043d\u043e\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b \u0432 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e\u0436\u0435 \u0432\u0440\u0435\u043c\u044f, MySQL \u043d\u0435 \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u0442\u0441\u044f \u0441\u0430\u043c, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u043e\u0434\u0443, \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u0435\u043c\u043e\u043d \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 <b>&#8212;wsrep-new-cluster<\/b>, \u0447\u0442\u043e \u0431\u044b \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043f\u0440\u043e\u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043d\u0435\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.  <\/p>\n<hr\/>\n<p>  <a name=\"openvswitch\"><\/a><\/p>\n<h1>OpenvSwitch<\/h1>\n<p>  \u041f\u0440\u043e OpenvSwitch  <a href=\"http:\/\/habrahabr.ru\/users\/ls1\/\" class=\"user_link\">ls1<\/a> \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043a\u043b\u0430\u0441\u0441\u043d\u0443\u044e <a href=\"http:\/\/habrahabr.ru\/post\/242741\/\">\u0441\u0442\u0430\u0442\u044c\u044e<\/a>, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e.<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h2>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a OpenvSwitch \u043d\u0435\u0442 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u0432 CentOS \u043c\u044b \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0435\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:  <\/p>\n<pre><code class=\"bash\">yum -y install wget openssl-devel gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 OpenvSwitch \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f ovs \u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f \u043f\u043e\u0434 \u043d\u0438\u043c, \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u0442 \u0435\u0433\u043e \u0438\u043c\u0435\u043d\u0438.  <\/p>\n<pre><code class=\"bash\">adduser ovs su - ovs <\/code><\/pre>\n<p>  \u0421\u043a\u0430\u0447\u0430\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438, \u043f\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 <a href=\"https:\/\/n40lab.wordpress.com\/2015\/06\/28\/centos-7-installing-openvswitch-2-3-2-lts\/\">n40lab<\/a> \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043c openvswitch-kmod, \u0438 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u0438\u0445.  <\/p>\n<pre><code class=\"bash\">mkdir -p ~\/rpmbuild\/SOURCES wget http:\/\/openvswitch.org\/releases\/openvswitch-2.3.2.tar.gz cp openvswitch-2.3.2.tar.gz ~\/rpmbuild\/SOURCES\/ tar xfz openvswitch-2.3.2.tar.gz sed 's\/openvswitch-kmod, \/\/g' openvswitch-2.3.2\/rhel\/openvswitch.spec &gt; openvswitch-2.3.2\/rhel\/openvswitch_no_kmod.spec rpmbuild -bb --nocheck ~\/openvswitch-2.3.2\/rhel\/openvswitch_no_kmod.spec exit <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432  <\/p>\n<pre><code class=\"bash\">mkdir \/etc\/openvswitch <\/code><\/pre>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 RPM-\u043f\u0430\u043a\u0435\u0442  <\/p>\n<pre><code class=\"bash\">yum localinstall \/home\/ovs\/rpmbuild\/RPMS\/x86_64\/openvswitch-2.3.2-1.x86_64.rpm <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0434\u0435\u043c\u043e\u043d:  <\/p>\n<pre><code class=\"bash\">systemctl start openvswitch.service chkconfig openvswitch on <\/code><\/pre>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0440\u0438\u0434\u0436\u0430<\/h2>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0431\u0440\u0438\u0434\u0436 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0440\u0442\u044b<\/p>\n<pre><code class=\"bash\">ovs-vsctl add-br ovs-br0 ovs-vsctl add-port ovs-br0 enp1 <\/code><\/pre>\n<p>  \u041f\u043e\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043d\u0430\u0448\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430:<\/p>\n<p>  \/etc\/sysconfig\/network-scripts\/ifcfg-enp1  <\/p>\n<pre><code class=\"bash\">DEVICE=&quot;enp1&quot; NM_CONTROLLED=&quot;yes&quot; ONBOOT=&quot;yes&quot; IPV6INIT=no TYPE=&quot;OVSPort&quot; DEVICETYPE=&quot;OVSIntPort&quot; OVS_BRIDGE=ovs-br0 <\/code><\/pre>\n<p>  \/etc\/sysconfig\/network-scripts\/ifcfg-ovs-br0<\/p>\n<p>  \u0414\u043b\u044f kvm1:  <\/p>\n<pre><code class=\"bash\">DEVICE=&quot;ovs-br0&quot; NM_CONTROLLED=&quot;no&quot; ONBOOT=&quot;yes&quot; TYPE=&quot;OVSBridge&quot; BOOTPROTO=&quot;static&quot; IPADDR=&quot;192.168.100.201&quot; NETMASK=&quot;255.255.255.0&quot; HOTPLUG=&quot;no&quot; <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f kvm2<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">DEVICE=&quot;ovs-br0&quot; NM_CONTROLLED=&quot;no&quot; ONBOOT=&quot;yes&quot; TYPE=&quot;OVSBridge&quot; BOOTPROTO=&quot;static&quot; IPADDR=&quot;192.168.100.202&quot; NETMASK=&quot;255.255.255.0&quot; HOTPLUG=&quot;no&quot; <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f kvm3<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">DEVICE=&quot;ovs-br0&quot; NM_CONTROLLED=&quot;no&quot; ONBOOT=&quot;yes&quot; TYPE=&quot;OVSBridge&quot; BOOTPROTO=&quot;static&quot; IPADDR=&quot;192.168.100.203&quot; NETMASK=&quot;255.255.255.0&quot; HOTPLUG=&quot;no&quot; <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0435\u0442\u044c, \u0432\u0441\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u0432\u0435\u0441\u0442\u0438\u0441\u044c:  <\/p>\n<pre><code class=\"bash\">systemctl restart network <\/code><\/pre>\n<hr\/>\n<p>  <a name=\"opennebula\"><\/a><\/p>\n<h1>OpenNebula<\/h1>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h2>\n<p>  \u0412\u043e\u0442 \u0438 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c OpenNebula<\/p>\n<p>  <b>\u041d\u0430 \u0432\u0441\u0435\u0445 \u043d\u043e\u0434\u0430\u0445:<\/b><\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 OpenNebula:  <\/p>\n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; \/etc\/yum.repos.d\/opennebula.repo [opennebula] name=opennebula baseurl=http:\/\/downloads.opennebula.org\/repo\/4.14\/CentOS\/7\/x86_64\/ enabled=1 gpgcheck=0 EOT <\/code><\/pre>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440 OpenNebula, web-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a \u043d\u0435\u043c\u0443 Sunstone \u0438 \u043d\u043e\u0434\u0443  <\/p>\n<pre><code class=\"bash\">yum install -y opennebula-server opennebula-sunstone opennebula-node-kvm  <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0432 \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 gems:  <\/p>\n<pre><code class=\"bash\"> \/usr\/share\/one\/install_gems <\/code><\/pre>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u043e\u0434<\/h2>\n<p>  \u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c one, \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0435\u043c\u0443 \u0431\u0435\u0437\u043f\u0430\u0440\u043e\u043b\u044c\u043d\u043e \u0445\u043e\u0434\u0438\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0447\u0435\u0440\u0435\u0437 sudo \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f, \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u043c\u044b \u0438 \u0434\u0435\u043b\u0430\u043b\u0438 \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c ceph.<\/p>\n<p>  <b>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c:<\/b><\/p>\n<pre><code class=\"bash\">passwd oneadmin sudo echo &quot;ceph ALL = (root) NOPASSWD:ALL&quot; | sudo tee \/etc\/sudoers.d\/one sudo chmod 0440 \/etc\/sudoers.d\/one <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u044b Libvirt \u0438 MessageBus:  <\/p>\n<pre><code class=\"bash\">systemctl start messagebus.service libvirtd.service systemctl enable messagebus.service libvirtd.service <\/code><\/pre>\n<p>  <b>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 kvm1<\/b><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u044e\u0447 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b:  <\/p>\n<pre><code class=\"bash\">sudo ssh-keygen -f \/home\/ceph\/.ssh\/id_rsa sudo cat \/var\/lib\/one\/.ssh\/id_rsa.pub &gt;&gt; \/var\/lib\/one\/.ssh\/authorized_keys sudo chown -R oneadmin: \/var\/lib\/one\/.ssh for i in 2 3; do     scp \/var\/lib\/one\/.ssh\/* one@kvm$i:\/var\/lib\/one\/.ssh\/ done <\/code><\/pre>\n<p>  <b>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c:<\/b><\/p>\n<p>  \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u043c Sunstone \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 IP, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439:  <\/p>\n<pre><code class=\"bash\">sed -i 's\/host:\\ 127\\.0\\.0\\.1\/host:\\ 0\\.0\\.0\\.0\/g' \/etc\/one\/sunstone-server.conf <\/code><\/pre>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0411\u0414<\/h2>\n<p>  <b>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 kvm1.<\/b><\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f OpenNebula:  <\/p>\n<pre><code class=\"bash\">mysql -p create database opennebula; GRANT USAGE ON opennebula.* to oneadmin@'%' IDENTIFIED BY 'PASS'; GRANT ALL PRIVILEGES on opennebula.* to oneadmin@'%'; FLUSH PRIVILEGES; <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 sqlite \u0432 mysql:<\/p>\n<p>  \u0421\u043a\u0430\u0447\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 sqlite3-to-mysql.py:  <\/p>\n<pre><code class=\"bash\">curl -O http:\/\/www.redmine.org\/attachments\/download\/6239\/sqlite3-to-mysql.py <\/code><\/pre>\n<p>  \u0421\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0430\u0448\u0443 \u0431\u0430\u0437\u0443:  <\/p>\n<pre><code class=\"bash\">sqlite3 \/var\/lib\/one\/one.db .dump | .\/sqlite3-to-mysql.py &gt; mysql.sql    mysql -u oneadmin -pPASS &lt; mysql.sql <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u0430\u0436\u0435\u043c OpenNebula \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u0439 \u0431\u0434, \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \/etc\/one\/oned.conf:<\/p>\n<p>  \u0417\u0430\u043c\u0435\u043d\u0438\u043c   <\/p>\n<pre><code class=\"bash\">DB = [ backend = &quot;sqlite&quot; ] <\/code><\/pre>\n<p>  \u043d\u0430  <\/p>\n<pre><code class=\"bash\">DB = [ backend = &quot;mysql&quot;,      server  = &quot;localhost&quot;,      port    = 0,      user    = &quot;oneadmin&quot;,      passwd  = &quot;PASS&quot;,      db_name = &quot;opennebula&quot; ] <\/code><\/pre>\n<p>  \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b:  <\/p>\n<pre><code class=\"bash\">for i in 2 3; do     scp \/etc\/one\/oned.conf one@kvm$i:\/etc\/one\/oned.conf done <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u0436\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 oneadmin \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u0441\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c OpenNebula \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u043d\u0438\u043c.  <\/p>\n<pre><code class=\"bash\">for i in 2 3; do     scp \/var\/lib\/one\/.one\/one_auth one@kvm$i:\/var\/lib\/one\/.one\/one_auth done <\/code><\/pre>\n<h2>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/h2>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0440\u0438\u0432\u0438\u0441 OpenNebula \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043d \u0438\u043b\u0438 \u043d\u0435\u0442:<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c  <\/p>\n<pre><code class=\"bash\">systemctl start opennebula opennebula-sunstone <\/code><\/pre>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c: <code>http:\/\/node:9869<\/code><\/li>\n<li>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043b\u043e\u0433\u0438 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 (<code>\/var\/log\/one\/oned.log \/var\/log\/one\/sched.log \/var\/log\/one\/sunstone.log<\/code>).<\/li>\n<\/ul>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c:  <\/p>\n<pre><code class=\"bash\">systemctl stop opennebula opennebula-sunstone <\/code><\/pre>\n<hr\/>\n<p>  <a name=\"pacemaker\"><\/a><\/p>\n<h1>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0435\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/h1>\n<p>  \u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c HA-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 OpenNebula<br \/>  \u041f\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c pcs \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0443\u0435\u0442 \u0441 OpenNebula. \u041f\u043e \u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c pacemaker, corosync and crmsh.<\/p>\n<p>  <b>\u041d\u0430 \u0432\u0441\u0435\u0445 \u043d\u043e\u0434\u0430\u0445:<\/b><\/p>\n<p>  \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u043c \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a \u0434\u0435\u043c\u043e\u043d\u043e\u0432 OpenNebula  <\/p>\n<pre><code class=\"bash\">systemctl disable opennebula opennebula-sunstone opennebula-novnc <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439:  <\/p>\n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; \/etc\/yum.repos.d\/network\\:ha-clustering\\:Stable.repo [network_ha-clustering_Stable] name=Stable High Availability\/Clustering packages (CentOS_CentOS-7) type=rpm-md baseurl=http:\/\/download.opensuse.org\/repositories\/network:\/ha-clustering:\/Stable\/CentOS_CentOS-7\/ gpgcheck=1 gpgkey=http:\/\/download.opensuse.org\/repositories\/network:\/ha-clustering:\/Stable\/CentOS_CentOS-7\/repodata\/repomd.xml.key enabled=1 EOT <\/code><\/pre>\n<p>  \u0423\u0441\u0442\u0432\u043d\u043e\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:  <\/p>\n<pre><code class=\"bash\">yum install corosync pacemaker crmsh resource-agents -y <\/code><\/pre>\n<p>  <b>\u041d\u0430 kvm1:<\/b><\/p>\n<p>  \u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \/etc\/corosync\/corosync.conf, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0435\u0433\u043e \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u0432\u0438\u0434\u0443:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">corosync.conf<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">totem {         version: 2         crypto_cipher: none         crypto_hash: none         interface {                 ringnumber: 0                 bindnetaddr: 192.168.100.0                 mcastaddr: 226.94.1.1                 mcastport: 4000                 ttl: 1         } } logging {         fileline: off         to_stderr: no         to_logfile: yes         logfile: \/var\/log\/cluster\/corosync.log         to_syslog: yes         debug: off         timestamp: on         logger_subsys {                 subsys: QUORUM                 debug: off         } } quorum {         provider: corosync_votequorum } service { name: pacemaker ver: 1 } nodelist {         node {                 ring0_addr: kvm1                 nodeid: 1         }         node {                 ring0_addr: kvm2                 nodeid: 2         }         node {                 ring0_addr: kvm3                 nodeid: 3         } } <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u044e\u0447\u0438:  <\/p>\n<pre><code class=\"bash\">cd \/etc\/corosync corosync-keygen <\/code><\/pre>\n<p>  \u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u0438 \u043a\u043b\u044e\u0447\u0438 \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b:  <\/p>\n<pre><code class=\"bash\">for i in 2 3; do     scp \/etc\/corosync\/{corosync.conf,authkey} one@kvm$i:\/etc\/corosync ls  done <\/code><\/pre>\n<p>  \u0418 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c HA-\u0441\u0435\u0440\u0432\u0438\u0441\u044b:  <\/p>\n<pre><code class=\"bash\">systemctl start pacemaker corosync systemctl enable pacemaker corosync <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c:  <\/p>\n<pre><code class=\"bash\">crm status <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u044b\u0432\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">Last updated: Mon Nov 16 15:02:03 2015 Last change: Fri Sep 25 16:36:31 2015 Stack: corosync Current DC: kvm1 (1) - partition with quorum Version: 1.1.12-a14efad 3 Nodes configured 0 Resources configured Online: [ kvm1 kvm2 kvm3 ] <\/code><\/pre>\n<\/div>\n<\/div>\n<p>  \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u043c STONITH (\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u043e\u0431\u0438\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0439 \u043d\u043e\u0434\u044b)  <\/p>\n<pre><code class=\"bash\">crm configure property stonith-enabled=false <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0435 \u043d\u043e\u0434\u044b \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u043a\u0432\u043e\u0440\u0443\u043c, \u0432\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u0438 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Split-brain_%28computing%29\">splitbrain<\/a>-\u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438  <\/p>\n<pre><code class=\"bash\">crm configure property no-quorum-policy=stop <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b:  <\/p>\n<pre><code class=\"bash\">crm configure primitive ClusterIP ocf:heartbeat:IPaddr2 params ip=&quot;192.168.100.200&quot; cidr_netmask=&quot;24&quot; op monitor interval=&quot;30s&quot; primitive opennebula_p systemd:opennebula \\ op monitor interval=60s timeout=20s \\ op start interval=&quot;0&quot; timeout=&quot;120s&quot; \\ op stop  interval=&quot;0&quot; timeout=&quot;120s&quot;  primitive opennebula-sunstone_p systemd:opennebula-sunstone \\ op monitor interval=60s timeout=20s \\ op start interval=&quot;0&quot; timeout=&quot;120s&quot; \\ op stop  interval=&quot;0&quot; timeout=&quot;120s&quot;  primitive opennebula-novnc_p systemd:opennebula-novnc \\ op monitor interval=60s timeout=20s \\ op start interval=&quot;0&quot; timeout=&quot;120s&quot; \\ op stop  interval=&quot;0&quot; timeout=&quot;120s&quot;  group Opennebula_HA ClusterIP opennebula_p opennebula-sunstone_p  opennebula-novnc_p exit <\/code><\/pre>\n<p>  \u042d\u0442\u0438\u043c\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 IP (192.168.100.200), \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0442\u0440\u0438 \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0432 HA-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043b\u0438 \u0438\u0445 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 Opennebula_HA.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c:  <\/p>\n<pre><code class=\"bash\">crm status <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u044b\u0432\u043e\u0434<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">Last updated: Mon Nov 16 15:02:03 2015 Last change: Fri Sep 25 16:36:31 2015 Stack: corosync Current DC: kvm1 (1) - partition with quorum Version: 1.1.12-a14efad 3 Nodes configured 4 Resources configured   Online: [ kvm1 kvm2 kvm3 ]   Resource Group: Opennebula_HA      ClusterIP\t(ocf::heartbeat:IPaddr2):\tStarted kvm1       opennebula_p\t(systemd:opennebula):\tStarted kvm1       opennebula-sunstone_p\t(systemd:opennebula-sunstone):\tStarted kvm1       opennebula-novnc_p\t(systemd:opennebula-novnc):\tStarted kvm1 <\/code><\/pre>\n<\/div>\n<\/div>\n<hr\/>\n<p>  <a name=\"configuration\"><\/a><\/p>\n<h1>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 OpenNebula<\/h1>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0431\u0432\u0430\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u043d\u043e\u0434\u044b, \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440.<\/p>\n<p>  \u0412\u0435\u0431 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 <code>http:\/\/192.168.100.200:9869<\/code><br \/>  <b>\u043b\u043e\u0433\u0438\u043d<\/b>: oneadmin<br \/>  <b>\u043f\u0430\u0440\u043e\u043b\u044c<\/b> \u0432 \/var\/lib\/one\/.one\/one_auth<\/p>\n<ul>\n<li>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u043e\u0434\u044b<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432\u0430\u0448\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0435\u0442\u044c:<br \/> \n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; ovs.net NAME=&quot;main&quot; BRIDGE=&quot;ovs-br0&quot; DNS=&quot;192.168.100.1&quot; GATEWAY=&quot;192.168.100.1&quot; NETWORK_ADDRESS=&quot;192.168.100.0&quot; NETWORK_MASK=&quot;255.255.255.0&quot; VLAN=&quot;NO&quot; VLAN_ID=&quot;&quot; EOT  onevnet create ovs.net <\/code><\/pre>\n<p>  <\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432\u0430\u0448\u0435 Ceph \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435:<br \/> \n<pre><code class=\"bash\">cat &lt;&lt; EOT &gt; rbd.conf NAME = &quot;cephds&quot; DS_MAD = ceph TM_MAD = ceph DISK_TYPE = RBD POOL_NAME = one BRIDGE_LIST =&quot;192.168.100.201 192.168.100.202 192.168.100.203&quot; CEPH_HOST =&quot;192.168.100.201:6789 192.168.100.202:6789 192.168.100.203:6789&quot; CEPH_SECRET =&quot;cfb34c4b-d95c-4abc-a4cc-f8a2ae532cb5&quot; #uuid key, looked at libvirt authentication for ceph CEPH_USER = oneadmin  onedatastore create rbd.conf<\/code><\/pre>\n<p>  <\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u043e\u0434\u044b, \u0441\u0435\u0442\u0438, \u0432\u0430\u0448\u0438 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/li>\n<\/ul>\n<h2>HA VM<\/h2>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c High Avability(\u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c) \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u0441\u043b\u0435\u0434\u0443\u044f \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 <a href=\"http:\/\/docs.opennebula.org\/4.12\/advanced_administration\/high_availability\/ftguide.html\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a> \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \/etc\/one\/oned.conf  <\/p>\n<pre><code class=\"bash\">HOST_HOOK = [     name      = &quot;error&quot;,     on        = &quot;ERROR&quot;,     command   = &quot;ft\/host_error.rb&quot;,     arguments = &quot;$ID -m -p 5&quot;,     remote    = &quot;no&quot; ] <\/code><\/pre>\n<p>  \u0418 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0435\u0433\u043e \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b:  <\/p>\n<pre><code class=\"bash\">for i in 2 3; do     scp \/etc\/one\/oned.conf one@kvm$i:\/etc\/one\/oned.conf done <\/code><\/pre>\n<hr\/>\n<p>  <\/p>\n<h1>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438<\/h1>\n<p>  <\/p>\n<ul>\n<li><a href=\"http:\/\/docs.ceph.com\/docs\/\">Ceph Documentation<\/a><\/li>\n<li><a href=\"http:\/\/opennebula.org\/documentation\/\">OpenNebula Documentation<\/a><\/li>\n<li><a href=\"http:\/\/opennebula.org\/installation-of-ha-opennebula-on-centos-7-with-ceph-as-a-datastore-and-ipoib-as-backend-network\/\">Alexey Vyrodov \u2014 Installation of HA OpenNebula on CentOS 7 with Ceph as a datastore and IPoIB as backend network <\/a><\/li>\n<li><a href=\"https:\/\/n40lab.wordpress.com\/2015\/06\/28\/centos-7-installing-openvswitch-2-3-2-lts\/\">N40LAB \u2014 CentOS 7 \u2013 Installing Openvswitch 2.3.2 LTS<\/a><\/li>\n<li><a href=\"https:\/\/code44free.files.wordpress.com\/2014\/03\/proxmox_ceph_v0-11.pdf\">\u0421\u043c\u043e\u0432\u0436 \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u2014 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 Proxmox + Ceph<\/a><\/li>\n<li><a href=\"http:\/\/www.sebastien-han.fr\/blog\/2014\/08\/25\/ceph-mix-sata-and-ssd-within-the-same-box\/\">S\u00e9bastien Han \u2014 Ceph: Mix SATA and SSD Within the Same Box<\/a><\/li>\n<li><a href=\"http:\/\/onreader.mdl.ru\/LearningCeph\/content\/Ch10.html\">\u041a\u0430\u0440\u0430\u043d \u0421\u0438\u043d\u0433\u0445 \u2014 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 Ceph \u0438 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"https:\/\/software.intel.com\/en-us\/blogs\/2015\/03\/03\/ceph-cache-tiering-introduction\">Zhiqiang W. (Intel) \u2014 Ceph cache tiering introduction<\/a><\/li>\n<\/ul>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/270187\/\"> http:\/\/habrahabr.ru\/post\/270187\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1b8\/185\/6c4\/1b81856c42da42ba903e85e1653969e4.png\"\/><\/p>\n<p>  \u041d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0435\u0439 \u0441\u0430\u0431\u0436, \u0432 \u0447\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0447\u0442\u043e \u0431\u044b \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0435, \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0435\u0430\u0432\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 OpenNebula. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:<\/p>\n<ul>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#ceph\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Ceph, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430<\/a><\/b>. <i>(\u042f \u0431\u0443\u0434\u0443 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0434\u0432\u0443\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0441 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u043f\u0443\u043b\u043e\u043c \u0438\u0437 SSD-\u0434\u0438\u0441\u043a\u043e\u0432)<\/i><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#galera\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 MySQL, Galera \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0441 \u043c\u0430\u0441\u0442\u0435\u0440-\u043c\u0430\u0441\u0442\u0435\u0440 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#openvswitch\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0444\u0442-\u0441\u0432\u0438\u0447\u0430 OpenvSwitch<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#opennebula\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u043e\u0439 OpenNebula<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#pacemaker\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0435\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430<\/a><\/b><\/li>\n<li><b><a href=\"http:\/\/habrahabr.ru\/post\/270187\/#configuration\">\u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/a><\/b><\/li>\n<\/ul>\n<p>  \u0422\u0435\u043c\u044b \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0430\u0441 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u0430\u044f \u0446\u0435\u043b\u044c, \u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u0430\u043a\u043e\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430. \u041c\u0438\u043b\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0448\u0443 \u043f\u043e\u0434 \u043a\u0430\u0442. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-268301","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/268301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=268301"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/268301\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=268301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=268301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=268301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}