{"id":337132,"date":"2022-08-16T15:00:50","date_gmt":"2022-08-16T15:00:50","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=337132"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=337132","title":{"rendered":"<span>\u041f\u044f\u0442\u043d\u0438\u0447\u043d\u044b\u0439 \u0434\u0435\u0431\u0430\u0433: \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u0430 \u043a\u0440\u043e\u043b\u0438\u0447\u044c\u044f \u043d\u043e\u0440\u0430?<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/m7\/ui\/sb\/m7uisb7kffrr_axfblhyf9ezwqq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/m7\/ui\/sb\/m7uisb7kffrr_axfblhyf9ezwqq.png\"\/><\/div>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430, \u0438 \u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 <a href=\"https:\/\/slc.tl\/5bxz3\">\u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Selectel<\/a>. \u041a\u043e\u0433\u0434\u0430 \u043c\u0435\u043d\u044f \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442, \u0437\u0430 \u0447\u0442\u043e \u044f \u043b\u044e\u0431\u043b\u044e \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u0430 \u0443\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0449\u0435\u0439. \u041d\u043e \u043b\u0443\u0447\u0448\u0435\u0435 \u0432 \u0436\u0438\u0437\u043d\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430, \u043a\u0430\u043a \u043f\u043e \u043c\u043d\u0435, \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441 \u043d\u0435\u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u044b\u043c \u2014\u00a0\u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435\u043f\u043e\u043b\u0430\u0434\u043a\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043d\u0430 \u0433\u0440\u0430\u043d\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e. \u0418 \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432.<\/p>\n<p>  \u042d\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0439 \u043f\u0440\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e, \u0434\u0435\u0431\u0430\u0433 \u0438 \u0436\u0438\u0437\u043d\u044c \u0432 \u043e\u0431\u043d\u0438\u043c\u043a\u0443 \u0441 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e \u0438 \u043c\u0430\u043d\u0443\u0430\u043b\u043e\u043c. \u0418\u0441\u043a\u0443\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u043e\u043d\u0438 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0443\u0434\u0438\u0432\u044f\u0442, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u043c\u043e\u0433\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0435, \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0435 \u0438 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0435. \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u044d\u0442\u0430\u043f\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043f\u0435\u0440\u0435\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0439\u0442\u0438 \u0432\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u043e\u043c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043c\u043e\u0440\u0430\u043b\u044c. <\/p>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u0430\u044f, \u0447\u0435\u043c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f. \u041f\u0440\u043e \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043d\u0430\u0448\u0435\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0435, \u0430 \u043f\u043e\u0441\u043b\u0435 \u2013 \u0432 \u0441\u043e\u0444\u0442\u0435, \u0438 \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0432 \u0441\u043b\u043e\u0438 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439. \u0411\u044b\u0432\u0430\u043b\u043e \u0443 \u0432\u0430\u0441 \u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u043a\u0440\u043e\u043b\u0438\u0447\u044c\u0435\u0439 \u043d\u043e\u0440\u044b \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u0435\u0438\u0437\u043c\u0435\u0440\u0438\u043c\u043e\u0439? \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u043e \u044d\u0442\u043e.<br \/>  <a name=\"habracut\"><\/a><br \/>  <font color=\"#EB4247\"><\/p>\n<h2>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h2>\n<p><\/font><br \/>  \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u0445 \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438 \u0432\u0430\u0436\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442. \u0422\u0430\u043a\u043e\u0439, \u043c\u0438\u043c\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u043a\u043e\u0447\u0438\u0442 \u043d\u0438 \u043e\u0434\u0438\u043d \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0431\u0435\u0437 \u0447\u0435\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u0430. \u0417\u0432\u0443\u0447\u0438\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u043e? \u0412 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0440\u043e\u043b\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 Swift Account Server \u2013 API, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u043d\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445 \u0438 \u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445.<\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043d\u0430\u043c \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b \u2013 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0430\u043c\u0435\u043a\u043d\u0443\u043b, \u0447\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u041d\u0430\u0447\u0430\u043b\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0435: \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430 \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 \u0441\u0435\u0442\u044c, \u0430\u0434\u043c\u0438\u043d\u044b \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u041e\u0421, \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u043e\u0444\u0442 \u0438 \u043f\u0440\u043e\u0433\u043d\u0430\u043b\u0438 \u0442\u0435\u0441\u0442\u044b. \u0421 \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u044c \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c <a href=\"https:\/\/docs.openstack.org\/swift\/latest\/overview_ring.html\">\u043a\u043e\u043b\u044c\u0446\u0430<\/a>. <\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e\u0435 \u0434\u0435\u043b\u043e \u2013 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0439 \u0438 \u0441\u043b\u0435\u0434\u0438. \u0412 \u043f\u043b\u0430\u043d\u0430\u0445 \u043d\u0430 \u0432\u0435\u0447\u0435\u0440 \u043c\u0435\u043b\u044c\u043a\u0430\u0435\u0442 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0434\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u0440\u0443\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043a\u043a\u043e\u0440\u0434 \u0432 bash, \u0430 \u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0431\u043e\u0434\u0440\u043e \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0445\u043e\u0441\u0442\u044b. Grafana \u0440\u0430\u0441\u0446\u0432\u0435\u0442\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0438\u043a\u0430\u043c\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u043f\u043e\u0448\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u0432\u0435\u0449\u0430\u0435\u0442 \u0431\u0435\u0434\u044b. \u0412\u0441\u0435 \u0431\u044b\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u2013 \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0438 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u043d\u043e.<\/p>\n<p>  \u0412 \u044d\u0442\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043c\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u043d\u044b\u0445 \u0446\u0438\u043a\u043b\u043e\u0432 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u042d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u0442\u0430\u043a \u043a\u0430\u043a Swift Account Server \u0445\u0440\u0430\u043d\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 SQLite \u0438 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0438\u0445 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430. \u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0430 \u044d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0411\u0414 \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445).<\/p>\n<p>  \u0421\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0430\u043b\u0435\u0440\u0442 \u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u0412 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430-\u0442\u0440\u0438 \u0440\u0430\u0443\u043d\u0434\u0430 \u043f\u043e\u0441\u043b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043b\u0435\u0446 \u043e\u043d\u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u0447\u043d\u043e \u0431\u044b\u043b\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0412 \u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c:<\/p>\n<pre><code class=\"plaintext\">Apr 29 12:21:52 acsX account-replicator: ERROR Remote drive not mounted {'device': 'disk001', 'id': 43, 'ip': '10.0.0.41', 'meta': '', 'port': 6002, 'region': 1, 'replication_ip': '10.0.0.41', 'replication_port': 6002, 'weight': 100.0, 'zone': 11, 'index': 2}<\/code><\/pre>\n<p>  \u0421\u0442\u0440\u0430\u043d\u043d\u043e. \u041c\u0430\u0448\u0438\u043d\u044b \u0434\u0432\u0430\u0436\u0434\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043c\u043e\u043b\u0447\u0438\u0442, \u0432\u043e\u0442 \u0443\u0436 \u0447\u0435\u0433\u043e \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b\u0438.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0432 \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0438\u0441\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>df<\/code>, \u043c\u044b \u0443\u0431\u0435\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u0438 \u0443\u0432\u0435\u043b\u0438 \u0431\u043e\u0435\u0432\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441 \u044d\u0442\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0434\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u0441\u0442\u0440\u0430\u0434\u0430\u043b: \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u044d\u0442\u0438\u0445 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 \u043d\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0432 \u043a\u043e\u043b\u044c\u0446\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0442\u0440\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043f\u0438\u0438 \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. <\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u2013 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>dmesg<\/code>. \u041f\u043e \u0435\u0435 \u0432\u044b\u0432\u043e\u0434\u0443 \u0441\u0440\u0430\u0437\u0443 \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u043e \u0432 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 NVMe-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u2013 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0434\u0430\u043b\u0430\u0441\u044c:<\/p>\n<pre><code class=\"plaintext\">[Fri Apr 29 12:03:53 2022] XFS (nvme0n1p1): metadata I\/O error in \"xfs_trans_read_buf_map\" at daddr 0x18 len 8 error 5 [Fri Apr 29 12:03:53 2022] XFS (nvme0n1p1): xfs_do_force_shutdown(0x1) called from line 325 of file fs\/xfs\/xfs_trans_buf.c. Return address = 00000000c3501d18 [Fri Apr 29 12:03:53 2022] XFS (nvme0n1p1): I\/O Error Detected. Shutting down filesystem [Fri Apr 29 12:03:53 2022] XFS (nvme0n1p1): Please unmount the filesystem and rectify the problem(s)<\/code><\/pre>\n<p>  \u0417\u0430\u0431\u0435\u0433\u0430\u044f \u0432\u043f\u0435\u0440\u0435\u0434, \u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0445\u043e\u0440\u043e\u0448\u043e: \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0434\u0438\u0441\u043a\u0438 \u0438 \u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u044b \u043d\u0430\u043c \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0440\u0438\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0435\u0441\u0441-\u0442\u0435\u0441\u0442\u043e\u0432. \u041d\u0435\u043f\u043e\u043b\u0430\u0434\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u043e, \u043c\u0430\u0448\u0438\u043d\u044b \u0432 \u0441\u0442\u0440\u043e\u044e.<\/p>\n<p>  \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u2013 \u0445\u043e\u0440\u043e\u0448\u043e, \u0432\u0435\u0434\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u0437\u0430\u0434\u0430\u0447\u0430\u043c. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u2013 \u0440\u0443\u043a\u0430\u0432\u0430 \u0443\u0436\u0435 \u0437\u0430\u043a\u0430\u0442\u0430\u043d\u044b \u0432 \u043f\u0440\u0435\u0434\u0432\u043a\u0443\u0448\u0435\u043d\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0432\u0435\u0447\u0435\u0440\u0430, \u0430 \u0436\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u0431\u0430\u0433 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0441\u043b\u0443\u0447\u0438\u043b\u0441\u044f. <\/p>\n<p>  \u041d\u043e \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u043e\u043b\u0447\u0430\u043b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433?<\/h2>\n<p><\/font><br \/>  \u0414\u043b\u044f \u043d\u0430\u0441 \u043a\u0430\u043a \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0441\u0442\u0430\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u043e\u043b\u0447\u0430\u043d\u0438\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u043e\u043d \u043e\u0448\u0438\u0431\u043e\u043a \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u043e\u0439 \u0434\u0430\u0436\u0435 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0441\u043b\u0435\u0434\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u043a\u0440\u0443\u043f\u043d\u044b\u043c\u0438 \u0438\u043b\u0438 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0432\u0441\u043f\u043b\u0435\u0441\u043a\u0430\u043c\u0438. \u0414\u0440\u0443\u0433\u043e\u0435 \u0434\u0435\u043b\u043e \u2014 \u043f\u0440\u043e\u043f\u0430\u0436\u0430 \u0446\u0435\u043b\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430, \u043e \u0442\u0430\u043a\u043e\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435, \u0442\u0430\u043a\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u0434\u0430\u0432\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430 \u0438 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430.<\/p>\n<p>  \u041d\u0435\u0434\u043e\u043b\u0433\u043e \u0434\u0443\u043c\u0430\u044f, \u044f \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u0443\u044e \u0434\u0435\u0431\u0430\u0433\u0430 \u0441 \u0446\u0435\u043b\u044c\u044e \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c \u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e.<\/p>\n<h3>\u042d\u0442\u0430\u043f 1: \u043b\u0435\u0433\u043a\u0438\u0439 \u043f\u0443\u0442\u044c<\/h3>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430. \u041d\u0430\u0448\u0430 \u0442\u0438\u043f\u0438\u0447\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432 \u0434\u043b\u044f Account Server \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\u0412 \u0448\u0430\u0441\u0441\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e NVM\u0435-\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u0439.<\/li>\n<li>\u041a\u0430\u0436\u0434\u044b\u0439 \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 XFS \u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0443\u0442\u0438 <code>\/srv\/swift\/node\/disk&lt;N><\/code> (\u0433\u0434\u0435 N \u2013 \u043d\u043e\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430).<\/li>\n<li>\u0412 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Account Server \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2013 <code>\/srv\/swift\/node<\/code>.<\/li>\n<\/ul>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0434\u0438\u0441\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044f \u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u041c\u044b, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0435\u0435 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u2013 \u0441\u0442\u0440\u043e\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u043c \u0430\u043b\u0435\u0440\u0442\u044b. <\/p>\n<p>  \u0411\u0443\u0434\u0435\u043c \u0440\u0430\u0441\u043f\u0443\u0442\u044b\u0432\u0430\u0442\u044c \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0441 \u043a\u043e\u043d\u0446\u0430, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043a\u043e\u0434\u0435 \u0438\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u043c\u0438 \u0430\u0432\u0430\u0440\u0438\u044f\u043c\u0438 \u044d\u0442\u043e, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u043d\u0435 \u0442\u0430\u043a \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. <\/p>\n<p>  \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u0435\u043b\u043e \u043b\u0438\u0448\u044c \u0432 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043d\u0430 \u043f\u0443\u0442\u0438 \u0430\u043b\u0435\u0440\u0442\u0430 \u2014 AlertManager \u0438 \u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Telegram. <\/p>\n<p>  <u><\/p>\n<h4>\u0413\u0438\u043f\u043e\u0442\u0435\u0437\u0430 1: \u0430\u043b\u0435\u0440\u0442 \u0431\u044b\u043b, \u043d\u043e \u043d\u0435 \u0434\u043e\u0448\u0435\u043b \u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f<\/h4>\n<p><\/u><br \/>  \u041f\u043e\u0432\u043e\u0434\u043e\u0432 \u0441\u043e\u043c\u043d\u0435\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441\u0430\u043c\u043e\u0433\u043e AlertManager \u043d\u0435 \u0431\u044b\u043b\u043e, \u0432\u0435\u0434\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b \u0434\u043e\u0445\u043e\u0434\u0438\u043b\u0438 \u0434\u043e \u043d\u0430\u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0440\u0430\u0437\u0443 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u043d\u0430\u0437\u0430\u0434 \u0438 \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0441\u044f \u0432 Prometheus. \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0434\u043b\u044f \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0435 <code>ALERTS<\/code>:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/q3\/ca\/2x\/q3ca2xgsgytvsvp2iiqpupf8l2u.png\" data-src=\"https:\/\/habrastorage.org\/webt\/q3\/ca\/2x\/q3ca2xgsgytvsvp2iiqpupf8l2u.png\"\/><\/div>\n<p>  \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0433\u043e \u0430\u043b\u0435\u0440\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u0434\u0432\u0443\u0445 \u0434\u043d\u0435\u0439. \u041d\u043e, \u043c\u043e\u0436\u0435\u0442, \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d?<\/p>\n<p>  <u><\/p>\n<h4>\u0413\u0438\u043f\u043e\u0442\u0435\u0437\u0430 1.5 (\u043d\u0430\u0437\u043e\u0432\u0435\u043c \u044d\u0442\u043e \u0442\u0430\u043a): \u0430\u043b\u0435\u0440\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0430\u043b\u0435\u0440\u0442 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439<\/h4>\n<p><\/u><br \/>  \u041d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u0430\u043b\u0435\u0440\u0442 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 <code>acs_diskusage_mounted<\/code> \u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0443\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u041d\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043c \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0438\u0441\u043a\u0430\u0445, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u00ab\u043d\u0443\u043b\u0435\u0439\u00bb \u043d\u0435\u0442:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hl\/ua\/24\/hlua24g5skpwwivtolc7xwnxoam.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hl\/ua\/24\/hlua24g5skpwwivtolc7xwnxoam.png\"\/><\/div>\n<p>  <u>\u041e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u043b\u0442\u043e\u0440\u044b \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b \u0441 \u0442\u0440\u0435\u0441\u043a\u043e\u043c \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u0438\u0441\u044c<\/u>, \u0447\u0442\u043e \u043f\u043e-\u0441\u0432\u043e\u0435\u043c\u0443 \u0440\u0430\u0434\u0443\u0435\u0442: \u0433\u043b\u0443\u043f\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u0430\u043a\u043e\u043c \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u0435\u043b\u0435, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0430\u043b\u0435\u0440\u0442\u0430. \u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0437\u0430\u0434\u0430\u0447\u0430, \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044d\u0442\u0430 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u041a\u043e\u0440\u043e\u0447\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u0432\u0440\u0435\u043c\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434!<\/p>\n<p>  <a href=\"https:\/\/slc.tl\/0fl94\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/id\/i8\/sk\/idi8skb6s8xs9bbyfrmy8viwbpa.png\" data-src=\"https:\/\/habrastorage.org\/webt\/id\/i8\/sk\/idi8skb6s8xs9bbyfrmy8viwbpa.png\"\/><\/a><\/p>\n<h3>\u042d\u0442\u0430\u043f 2: \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u0441\u044f \u0432 \u043a\u0440\u043e\u043b\u0438\u0447\u044c\u044e \u043d\u043e\u0440\u0443<\/h3>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u043e \u0434\u0438\u0441\u043a\u0430\u043c Account Server \u0432 Prometheus, \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440. \u0422\u043e\u0442, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 <code>\/recon\/diskusage<\/code>. \u0412 \u043e\u0442\u0432\u0435\u0442\u0435 \u2013 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u043c\u0443 \u043c\u0435\u0441\u0442\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0434\u0438\u0441\u043a\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432.<\/p>\n<p>  \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043c\u0430\u0448\u0438\u043d:<\/p>\n<pre><code class=\"json\">[  {    \"device\": \"disk001\",    \"mounted\": true,    \"size\": 5356126208,    \"used\": 43917312,    \"avail\": 5312208896  },  {    \"device\": \"disk002\",    \"mounted\": true,    \"size\": 5356126208,    \"used\": 45215744,    \"avail\": 5310910464  } ]<\/code><\/pre>\n<p>  <u><\/p>\n<h4>\u0413\u0438\u043f\u043e\u0442\u0435\u0437\u0430 2: \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043a\u043e\u0434\u0435 \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0442\u043e\u043b\u043a\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a \u043d\u0435 \u0434\u0430\u044e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u044b<\/h4>\n<p><\/u><br \/>  \u041b\u043e\u0433\u0438\u0447\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043e\u043f\u0438\u0440\u0430\u0435\u043c\u0441\u044f, \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u043c. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0411\u0435\u0433\u043b\u044b\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043f\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u043a\u043e\u0434\u0443 \u0432 GitHub \u043d\u0430\u0439\u0434\u0435\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 <a href=\"https:\/\/github.com\/openstack\/swift\/blob\/master\/swift\/common\/middleware\/recon.py#L244\">\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/a>:<\/p>\n<pre><code class=\"python\">def get_diskusage(self):   \"\"\"get disk utilization statistics\"\"\"   devices = []   for entry in os.listdir(self.devices):       if not os.path.isdir(os.path.join(self.devices, entry)):           continue         try:           check_mount(self.devices, entry)       except OSError as err:           devices.append({'device': entry, 'mounted': str(err),                           'size': '', 'used': '', 'avail': ''})       except ValueError:           devices.append({'device': entry, 'mounted': False,                           'size': '', 'used': '', 'avail': ''})       else:           path = os.path.join(self.devices, entry)           disk = os.statvfs(path)           capacity = disk.f_bsize * disk.f_blocks           available = disk.f_bsize * disk.f_bavail           used = disk.f_bsize * (disk.f_blocks - disk.f_bavail)           devices.append({'device': entry, 'mounted': True,                           'size': capacity, 'used': used,                           'avail': available})     return devices<\/code><\/pre>\n<p>  \u041d\u0435\u0437\u0430\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u0442\u043e. \u0417\u0434\u0435\u0441\u044c <code>self.devices<\/code> \u2013 \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u0430\u043d \u043f\u0443\u0442\u044c \u043a \u0442\u043e\u0447\u043a\u0430\u043c \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u044d\u0442\u043e \/srv\/swift\/node. \u0423\u0441\u043b\u043e\u0432\u043d\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"bash\">root@acsX.test:~# df -h -t ext4 -t xfs Filesystem      Size  Used Avail Use% Mounted on \/dev\/sda1        19G  8.6G  9.4G  48% \/ \/dev\/sdb1       5.0G   42M  5.0G   1% \/srv\/swift\/node\/disk001 \/dev\/sdc1       5.0G   44M  5.0G   1% \/srv\/swift\/node\/disk002  root@acsX.test:~# ls -lah \/srv\/swift\/node total 32K drwxr-xr-x 10 swift swift 4.0K Jul 20  2020 . drwxr-xr-x  3 swift swift 4.0K Mar  1  2017 .. drwxr-xr-x  5 swift swift   51 Apr 29 19:35 disk001 drwxr-xr-x  5 swift swift   51 Apr 29 19:36 disk002<\/code><\/pre>\n<p>  \u041b\u043e\u0433\u0438\u043a\u0430 \u0443 \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f: \u043f\u0440\u043e\u0448\u043b\u0438\u0441\u044c \u043f\u043e \u0434\u0438\u0441\u043a\u0430\u043c, \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0430\u0440\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0438 \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443. <\/p>\n<p>  \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a \u2013 \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u043f\u043e\u043c\u0435\u0448\u0430\u044e\u0442 \u043d\u0430\u043c \u043d\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a <code>devices<\/code>, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u2013 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u043d\u0435 \u0434\u0430\u0434\u0443\u0442 \u0434\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u043e<code> return<\/code> \u0438 \u043f\u0440\u043e\u0441\u043a\u043e\u0447\u0430\u0442 \u0432\u044b\u0448\u0435 \u043f\u043e \u0441\u0442\u0435\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0438\u0437 <code>os.listdir(self.devices)<\/code> \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\u0438. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0430\u043a.<\/p>\n<p>  \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u043c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043c, \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f <code>mounted<\/code>. \u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>check_mount()<\/code> \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0435\u0440\u0442\u043a\u043e\u0439, \u0438, \u0441\u043f\u0443\u0441\u043a\u0430\u044f\u0441\u044c \u0433\u043b\u0443\u0431\u0436\u0435 \u043f\u043e \u0441\u0442\u0435\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432, \u043c\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u0434\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0434\u043e \u0441\u0443\u0442\u0438 \u2013 <code>ismount_raw()<\/code>:<\/p>\n<pre><code class=\"python\">def ismount_raw(path):    \"\"\"    Test whether a path is a mount point. Whereas ismount will catch    any exceptions and just return False, this raw version will not    catch exceptions.    This is code hijacked from C Python 2.6.8, adapted to remove the extra    lstat() system call.    \"\"\"    try:        s1 = os.lstat(path)    except os.error as err:        if err.errno == errno.ENOENT:            # It doesn't exist -- so not a mount point :-)            return False        raise      if stat.S_ISLNK(s1.st_mode):        # Some environments (like vagrant-swift-all-in-one) use a symlink at        # the device level but could still provide a stubfile in the target        # to indicate that it should be treated as a mount point for swift's        # purposes.        if os.path.isfile(os.path.join(path, \".ismount\")):            return True        # Otherwise, a symlink can never be a mount point        return False <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0437\u0430\u0434\u0430\u0447\u0430 \u2013 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441: \u00ab\u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0442\u043e\u0447\u043a\u043e\u0439 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f?\u00bb. \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u0448 \u0432\u044b\u0448\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0435\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 <code>\/srv\/swift\/node<\/code>, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 \u043f\u0443\u0442\u0438 \u043a \u043d\u0430\u0448\u0438\u043c \u0434\u0438\u0441\u043a\u0430\u043c, \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u043d\u0430\u043c \u0438 \u043d\u0443\u0436\u043d\u0430!<\/p>\n<p>  \u0412\u044b\u0448\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>lstat()<\/code> \u2013 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0438\u043c\u0435\u043d\u043d\u043e\u0433\u043e <a href=\"https:\/\/man7.org\/linux\/man-pages\/man2\/lstat.2.html\">\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430<\/a>. \u0417\u0434\u0435\u0441\u044c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0439 <code>stat()<\/code>, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438 \u043e\u043d \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u043e \u043d\u0435\u0439 \u0438 \u0432\u0435\u0440\u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a <code>lstat()<\/code> \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0432\u0435\u0440\u043d\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0430\u043c\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435. <\/p>\n<p>  \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043a\u043e\u0434:<\/p>\n<pre><code class=\"python\"> s2 = os.lstat(os.path.join(path, '..'))    dev1 = s1.st_dev    dev2 = s2.st_dev    if dev1 != dev2:        # path\/.. on a different device as path        return True      ino1 = s1.st_ino    ino2 = s2.st_ino    if ino1 == ino2:        # path\/.. is the same i-node as path        return True      # Device and inode checks are not properly working inside containerized    # environments, therefore using a workaround to check if there is a    # stubfile placed by an operator    if os.path.isfile(os.path.join(path, \".ismount\")):        return True      return False <\/code><\/pre>\n<p>  \u0418 \u0432\u043d\u043e\u0432\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e: \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u043e\u043c\u0435\u0440 \u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 inode \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0438 \u0435\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438-\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0443 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0424\u0421.<\/p>\n<blockquote><p><b>\u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u043e \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u043e\u0439<\/b><\/p>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0432 \u043a\u043e\u0434\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 inode? \u0416\u0434\u0435\u043c \u0432\u0430\u0448\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445<\/p><\/blockquote>\n<p>  \u0412 \u043a\u043e\u043d\u0446\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 <code>.ismount<\/code>, \u043d\u043e \u043a \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u044d\u0442\u043e \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f. \u0421 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u043e\u0448\u0438\u0431\u043e\u043a \u0437\u0434\u0435\u0441\u044c \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u2013 \u0435\u0441\u043b\u0438 \u0432\u044b\u0441\u043a\u043e\u0447\u0438\u0442 Exception, \u043c\u044b \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435 \u0434\u043e\u0439\u0434\u0435\u043c \u0434\u043e <code>return<\/code>. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043b\u043e\u0436\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c. \u0415\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u044f, \u043d\u043e \u043e\u043d\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u0430\u0431\u044b\u043c\u0438. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0433\u043b\u0430\u0441\u0438\u0442, \u0447\u0442\u043e \u043a\u043e\u0434 \u0431\u044b\u043b \u043f\u043e\u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d \u0432 CPython. \u041a\u0442\u043e \u043c\u044b \u0442\u0430\u043a\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0435\u043c\u0443?<\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u044f\u0432\u043d\u044b\u0445 \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432 \u0432 \u043a\u043e\u0434\u0435 \u043d\u0435 \u0432\u0438\u0434\u043d\u043e, \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0434\u0430\u043b\u044c\u0448\u0435. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0443 \u043b\u043e\u0433\u0438\u043a\u0443, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>stat<\/code>:<\/p>\n<pre><code class=\"bash\">root@acsX:~# stat --printf 'Path: %n \\nDevice: %d\\nInode: %i\\n' \/srv\/swift\/node  Path: \/srv\/swift\/node  Device: 66305 Inode: 2756791 root@acsX:~# stat --printf 'Path: %n \\nDevice: %d\\nInode: %i\\n' \/srv\/swift\/node\/disk001 Path: \/srv\/swift\/node\/disk001  Device: 66305 Inode: 2731952<\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439: \u0442\u0430\u043a \u043a\u0430\u043a \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 disk001 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0435 \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0440\u0430\u0437\u043d\u044b\u0435 inode. \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 <code>stat<\/code> \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0439 \u0424\u0421. <\/p>\n<p>  \u041f\u043e \u043b\u043e\u0433\u0438\u043a\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>ismount_raw()<\/code> \u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c True, \u043d\u043e \u0432\u0435\u0434\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043e\u043d\u0430 \u0438 \u0434\u0435\u043b\u0430\u0435\u0442! \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, <u>\u0432\u0442\u043e\u0440\u0430\u044f \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430 \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0430\u0441\u044c<\/u>. \u041a\u043e\u0434 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439, \u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u043e\u0442 \u043d\u0435\u0435 \u0436\u0434\u0435\u043c. <\/p>\n<p>  \u0412 \u0433\u043e\u043b\u043e\u0432\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u043c\u044b\u0441\u043b\u044c: \u044f \u044f\u0432\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u0443\u043f\u0443\u0441\u043a\u0430\u044e. \u0415\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0437\u043d\u044b\u0439, \u0437\u043d\u0430\u0447\u0438\u0442, \u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f. \u0412 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0442\u0435\u0441\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 Python, \u0438 \u0432\u0434\u0440\u0443\u0433 \u043d\u0430\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u0440\u043e\u0437\u0440\u0435\u043d\u0438\u0435 \u2013 \u043d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u043d\u0430\u0448\u0438 Account Server \u0443\u0435\u0445\u0430\u043b\u0438 \u0432 Docker. <\/p>\n<p>  \u0421\u0430\u043c\u043e \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Docker, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u00ab\u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c\u00bb \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u0438\u0441\u043a\u043e\u0432 \u0441 \u0445\u043e\u0441\u0442-\u043c\u0430\u0448\u0438\u043d\u044b, \u043d\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0439 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0424\u0421 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432 \u043a\u043e\u0434\u0435 \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u044b \u043d\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u0432\u0435\u0449\u0438 \u0443\u0440\u043e\u0432\u043d\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0410 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u2013 \u044d\u0442\u043e \u0432\u0435\u0434\u044c \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u0447\u0435\u0440\u043d\u044b\u0439 \u044f\u0449\u0438\u043a, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0432\u043e\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0433\u0440\u044b?<\/p>\n<p>  \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u043c \u0442\u0435 \u0436\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">root@acsX:~# docker exec account-server stat --printf 'Path: %n \\nDevice: %d\\nInode: %i\\n' \/srv\/swift\/node  Path: \/srv\/swift\/node  Device: 64768 Inode: 2756791 root@acsX:~# docker exec account-server stat --printf 'Path: %n \\nDevice: %d\\nInode: %i\\n' \/srv\/swift\/node\/disk001 stat: cannot statx '\/srv\/swift\/node\/disk001': Input\/output error<\/code><\/pre>\n<p>  \u0421\u0443\u0434\u044f \u043f\u043e \u043e\u0448\u0438\u0431\u043a\u0435, \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u043c\u0443 \u0434\u0438\u0441\u043a\u0443, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443? \u041a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0445\u043e\u0441\u0442\u0430? <\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u043a\u043e\u0434 \u0438 \u0437\u043d\u0430\u0435\u043c: \u0435\u0441\u043b\u0438 \u0431\u044b \u0432 \u0445\u043e\u0434\u0435 \u043e\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043c\u0435\u0442\u0440\u0438\u043a \u043f\u043e \u0434\u0438\u0441\u043a\u0430\u043c \u0432 Prometheus \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0431\u044b \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u2013 \u043d\u0438 \u043f\u043e \u00ab\u0445\u043e\u0440\u043e\u0448\u0438\u043c\u00bb, \u043d\u0438 \u043f\u043e \u00ab\u043f\u043b\u043e\u0445\u0438\u043c\u00bb. <\/p>\n<p>  \u041a\u0430\u043a\u0430\u044f-\u0442\u043e \u0447\u0435\u0440\u0435\u043f\u0430\u0448\u043a\u0430 \u043d\u0435\u0434\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u0441\u0435 \u043f\u043e\u0431\u043b\u0438\u0436\u0435.<\/p>\n<h4>\u042d\u0442\u0430\u043f 3: \u0414\u0440\u0443\u0436\u0438\u043c \u0441 mount namespaces<\/h4>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u2013 \u043d\u0438\u043a\u043e\u043c\u0443 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0410 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438 <a href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/namespaces.7.html\">linux namespaces<\/a>.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e, namespaces \u2013 \u044d\u0442\u043e \u0441\u043b\u043e\u0439 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438 \u0434\u043b\u044f <u>\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0445<\/u> \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u044f\u0434\u0440\u0430 (PID, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0442\u043e\u0447\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u0445 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438. \u041e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 <u>\u0438\u0441\u0447\u0438\u0441\u043b\u044f\u0435\u043c\u044b\u0439<\/u> \u0440\u0435\u0441\u0443\u0440\u0441 (CPU, RAM, \u0434\u0438\u0441\u043a, \u0441\u0435\u0442\u044c) \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a <a href=\"https:\/\/man7.org\/linux\/man-pages\/man7\/cgroups.7.html\">cgroups<\/a>.<\/p>\n<p>  \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u043d\u0443\u0442\u0440\u0438 Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 mount namespace, \u043f\u0440\u0438\u0447\u0435\u043c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0439 \u043e\u0442 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e. \u0412\u0441\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0441 \u043d\u0443\u043b\u044f\u00bb, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0441\u0431\u043e\u0440\u043a\u0438 <code>overlayfs<\/code> \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c volumes. <\/p>\n<p>  \u0423\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 mount namespace, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043c\u043e\u0436\u043d\u043e \u0432 \u043f\u0441\u0435\u0432\u0434\u043e\u0444\u0430\u0439\u043b\u0435 <code>\/proc\/mounts<\/code>. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0430\u0448\u0438 \u0434\u0438\u0441\u043a\u0438 \u043d\u0430 \u0445\u043e\u0441\u0442-\u043c\u0430\u0448\u0438\u043d\u0435 \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430:<\/p>\n<pre><code class=\"bash\">root@acsX:~# cat \/proc\/mounts | grep \/srv\/swift\/node \/dev\/nvme0n1p2 \/srv\/swift\/node\/disk002 xfs rw,noatime,nodiratime,attr2,discard,nobarrier,inode64,logbufs=8,noquota 0 0  root@acsX:~# docker exec account-server cat \/proc\/mounts | grep \/srv\/swift\/node \/dev\/nvme0n1p1 \/srv\/swift\/node\/disk001 xfs rw,noatime,nodiratime,attr2,discard,nobarrier,inode64,logbufs=8,noquota 0 0 \/dev\/nvme0n1p2 \/srv\/swift\/node\/disk002 xfs rw,noatime,nodiratime,attr2,discard,nobarrier,inode64,logbufs=8,noquota 0 0<\/code><\/pre>\n<p>  \u0418\u0437 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u201c\u0432\u043d\u0443\u0442\u0440\u0438\u201d \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0442\u043e\u0447\u043a\u0430 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435 \u0435\u0449\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u0438 \u043f\u0440\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 <code>\/dev\/nvme0n1p1<\/code>. \u042d\u0442\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440, \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0438, \u0430 \u043b\u0438\u0448\u044c \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043b\u044e\u0447\u0430 -v:<\/p>\n<pre><code class=\"bash\">root@acsX:~# docker run -v \/srv\/swift\/node\/disk001:\/srv\/swift\/node\/disk001:rw -v \/srv\/swift\/node\/disk002:\/srv\/swift\/node\/disk002:rw &lt;...><\/code><\/pre>\n<p>  <u><\/p>\n<h3>\u0413\u0438\u043f\u043e\u0442\u0435\u0437\u0430 3: \u0442\u0430\u043a \u043a\u0430\u043a \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0447\u0435\u043a \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0435\u043f\u043e\u043b\u0430\u0434\u043a\u0438 \u0432 \u0445\u043e\u0441\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0430 \u043d\u0435\u043c \u043d\u0435 \u043e\u0442\u0440\u0430\u0437\u0438\u043b\u0438\u0441\u044c \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u0434\u0438\u0441\u043a \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d<\/h3>\n<p><\/u><br \/>  \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e Docker \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0445\u043e\u0441\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u043d\u0443\u0442\u0440\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. <a href=\"https:\/\/docs.docker.com\/storage\/bind-mounts\/\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a> \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0448\u0438\u0440\u043e\u043a\u043e, \u043f\u0440\u044f\u043c\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u0432\u0430\u044f\u0441\u044c \u043d\u0430\u043c, \u0447\u0442\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0443\u043b\u0438\u0447\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0438, \u043b\u0438\u0448\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 Linux Bind Mounts. <\/p>\n<p>  \u0413\u043e\u0432\u043e\u0440\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c, bind mount \u2013 \u044d\u0442\u043e \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043e\u0434\u043d\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0432 \u0434\u0440\u0443\u0433\u0443\u044e. \u041e\u0431\u044a\u044f\u0441\u043d\u044e \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<p>  \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f <code>\/tmp\/data<\/code> \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439:<\/p>\n<pre><code class=\"bash\">root@test:~# mkdir -p \/tmp\/data\/{first,second,third} root@test:~# touch \/tmp\/data\/second\/file.jpg root@test:~# tree \/tmp\/data \/tmp\/data \u251c\u2500\u2500 first \u251c\u2500\u2500 second \u2502   \u2514\u2500\u2500 file.jpg \u2514\u2500\u2500 third  3 directories, 1 file<\/code><\/pre>\n<p>  \u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0424\u0421). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f bind mount:<\/p>\n<pre><code class=\"bash\">root@test:~# mkdir \/root\/data root@test:~# mount --bind \/tmp\/data \/root\/data root@test:~# tree \/root\/data\/ \/root\/data\/ \u251c\u2500\u2500 first \u251c\u2500\u2500 second \u2502   \u2514\u2500\u2500 file.jpg \u2514\u2500\u2500 third  3 directories, 1 file <\/code><\/pre>\n<p>  \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <code>\/tmp\/data<\/code> \u043e\u0442\u0440\u0430\u0437\u0438\u043b\u043e\u0441\u044c \u0432 <code>\/root\/data<\/code>. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0438 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u0438\u0434\u043d\u044b \u043f\u043e \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b:<\/p>\n<pre><code class=\"bash\">root@test:~# touch \/root\/data\/first\/file.avi root@test:~# tree \/tmp\/data\/ \/tmp\/data\/ \u251c\u2500\u2500 first \u2502   \u2514\u2500\u2500 file.avi \u251c\u2500\u2500 second \u2502   \u2514\u2500\u2500 file.jpg \u2514\u2500\u2500 third  3 directories, 2 files <\/code><\/pre>\n<p>  \u0421 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u043a\u0443\u0440\u0441\u0430 \u0432\u0441\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c, \u043d\u043e \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u0442\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c? \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043b\u0438 bind mount \u0438 \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c? \u041f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0439\u0434\u0435\u043c \u0441\u0435\u0431\u0435 \u0431\u043b\u043e\u0447\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e. \u0417\u0430 \u043d\u0435\u0438\u043c\u0435\u043d\u0438\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430:<\/p>\n<pre><code class=\"bash\"># \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1GB root@test:~# dd if=\/dev\/zero of=\/tmp\/1g_disk.img bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.42928 s, 167 MB\/s  # \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 XFS root@test:~# mkfs.xfs \/tmp\/1g_disk.img meta-data=\/tmp\/1g_disk.img       isize=512    agcount=4, agsize=65536 blks          =                       sectsz=512   attr=2, projid32bit=1          =                       crc=1        finobt=1, sparse=0 data     =                       bsize=4096   blocks=262144, imaxpct=25          =                       sunit=0      swidth=0 blks naming   =version 2              bsize=4096   ascii-ci=0 ftype=1 log      =internal log           bsize=4096   blocks=2560, version=2          =                       sectsz=512   sunit=0 blks, lazy-count=1 realtime =none                   extsz=4096   blocks=0, rtextents=0  # \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 &lt;a href=\"https:\/\/man7.org\/linux\/man-pages\/man4\/loop.4.html\">loop device&lt;\/a> \u043d\u0430 \u0431\u0430\u0437\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 root@test:~# modprobe loop &amp;&amp; losetup --find --show \/tmp\/1g_disk.img  \/dev\/loop0  # \u0421\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 root@test:~# mkdir \/mnt\/1g_disk root@test:~# mount \/dev\/loop0 \/mnt\/1g_disk root@test:~# cat \/proc\/mounts | grep \/mnt\/1g_disk \/dev\/loop0 \/mnt\/1g_disk xfs rw,relatime,attr2,inode64,noquota 0 0  # \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0441 bind mount root@test:~# mkdir \/root\/1g_disk root@test:~# mount --bind \/mnt\/1g_disk \/root\/1g_disk  # \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0444\u0430\u0439\u043b \u043f\u043e \u043d\u043e\u0432\u043e\u043c\u0443 \u043f\u0443\u0442\u0438 root@test:~# touch \/mnt\/1g_disk\/test  # \u0423\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u0448\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u043d\u044b \u043f\u043e \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0443\u0442\u0438 root@test:~# ls \/root\/1g_disk\/ test <\/code><\/pre>\n<p>  \u041c\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0431\u0435\u0438\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u0445. \u041d\u043e \u043a\u0430\u043a \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 bind mount \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c?<\/p>\n<pre><code class=\"bash\"># \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0442\u043e\u0447\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f root@test:~# cat \/proc\/self\/mountinfo | grep 1g_disk 137 27 7:0 \/ \/mnt\/1g_disk rw,relatime shared:91 - xfs \/dev\/loop0 rw,attr2,inode64,noquota 202 27 7:0 \/ \/root\/1g_disk rw,relatime shared:91 - xfs \/dev\/loop0 rw,attr2,inode64,noquota  # \u0420\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c root@test:~# umount \/mnt\/1g_disk  # \u0421\u043d\u043e\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0442\u043e\u0447\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f root@test:~# cat \/proc\/self\/mountinfo | grep \/mnt\/1g_disk 202 27 7:0 \/ \/root\/1g_disk rw,relatime shared:91 - xfs \/dev\/loop0 rw,attr2,inode64,noquota  # \u0423\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e \u043d\u043e\u0432\u043e\u043c\u0443 \u043f\u0443\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b root@test:~# ls \/root\/1g_disk\/ test<\/code><\/pre>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0432\u043e\u0442 \u0438 \u043d\u0430\u0448 \u043e\u0442\u0432\u0435\u0442: bind mount \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0430\u044f \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0420\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u043c\u044b \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0438 \u043d\u0430 bind mount, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0438 \u0432 \u0447\u0435\u043c \u043d\u0435 \u0431\u044b\u0432\u0430\u043b\u043e. <\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u043f\u043e\u043b\u043d\u0430\u044f \u0445\u0440\u043e\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u0430 \u0442\u0430\u043a:<\/p>\n<ol>\n<li>\u041f\u0440\u0438 \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0434\u0438\u0441\u043a.<\/li>\n<li>\u0412 \u0440\u0430\u0431\u043e\u0442\u0435 NVME-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430, \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0424\u0421 \u0441\u043f\u043e\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u0438 \u043f\u0440\u0438\u043d\u044f\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f.<\/li>\n<li>\u0422\u0430\u043a\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0432\u043d\u0435 namespaces, \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 \u0434\u0438\u0441\u043a \u0431\u044b\u043b \u0440\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0445\u043e\u0441\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043d\u0435 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0432 bind mount \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430.<\/li>\n<li>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b \u043e\u0442\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435, \u0438 \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u0430\u0436\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442.<\/li>\n<\/ol>\n<p>  \u0422\u0440\u0435\u0442\u044c\u044f \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432\u0435\u0440\u043d\u0430. \u0421\u043e\u0444\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u043d\u0435 \u00ab\u0432\u0438\u0434\u0438\u0442\u00bb \u0440\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u043a.<\/p>\n<p>  \u0418\u043b\u0438 \u043d\u0435\u0442?<\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/h2>\n<p><\/font><br \/>  \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0432\u044b\u0448\u043b\u043e, \u043d\u0435 \u043f\u0440\u0430\u0432\u0434\u0430 \u043b\u0438? \u0418 \u043a\u043e\u0434 \u043f\u043e\u0447\u0438\u0442\u0430\u043b\u0438, \u0438 man \u0438\u0437\u0443\u0447\u0438\u043b\u0438, \u0438 \u0434\u0430\u0436\u0435 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043f\u043e\u0438\u0433\u0440\u0430\u043b\u0438\u0441\u044c \u2013 \u0430\u0437\u0430\u0440\u0442\u043d\u043e \u0438 \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u041e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0432\u0440\u0435\u043c\u044f \u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u044f \u0447\u0442\u043e-\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043b \u043f\u0440\u043e \u043a\u0440\u043e\u043b\u0438\u0447\u044c\u044e \u043d\u043e\u0440\u0443?<\/p>\n<p>  \u0418\u043d\u043e\u0433\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0439 \u043f\u0443\u0442\u044c. \u0412\u043e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  \u042d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u0430\u043a \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u043e \u043c\u0435\u0440\u0435 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044f (\u0438, \u043f\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0431\u044b\u043b\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u043e \u0445\u043e\u0434\u0443 \u0434\u0435\u043b\u0430), \u043d\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0431\u044b\u043b \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d \u0443\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0432 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445. \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0431\u0435\u0437 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u2013 \u043e\u0448\u0438\u0431\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0438\u0437-\u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. <\/p>\n<p>  \u0427\u0442\u043e \u0443\u0436 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e \u0432\u044b\u0432\u043e\u0434\u044b. \u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c\u0438? \u0427\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442: \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438\u043b\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0445\u043e\u0436\u0438\u0439 \u0441 \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442? \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u043b\u0438 \u0434\u0435\u043b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u0438\u043b\u0438 \u043c\u044b \u043b\u0438\u0448\u044c \u0443\u0433\u043b\u0443\u0431\u0438\u043b\u0438\u0441\u044c \u0432 \u043f\u043e\u0442\u0435\u043c\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0437\u0430\u0431\u044b\u0432 \u043e\u0431 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435?<\/p>\n<p>  \u0420\u0430\u0434\u043e\u0441\u0442\u044c \u043e\u0442 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u0433\u0430, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0438 \u0441\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0435\u0440\u0435\u0434\u043a\u043e \u0437\u0430\u0442\u043c\u0435\u0432\u0430\u044e\u0442 \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435 \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0435 \u043c\u0435\u043b\u043e\u0447\u0438. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043f\u0440\u043e\u043c\u0435\u043b\u044c\u043a\u043d\u0443\u043b\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435, \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u044f \u0433\u0438\u043f\u043e\u0442\u0435\u0437.<\/p>\n<p>  \u0412 \u00ab\u0431\u043e\u043b\u044c\u0448\u0438\u0445\u00bb \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u043c\u044b \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0447\u0430\u043b\u0443 \u0438 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0432\u043e\u0438 \u0438\u0434\u0435\u0438, \u043d\u043e \u0438 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0418\u0445 \u043d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041e\u043f\u044b\u0442 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043b\u0438\u0448\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e. \u0422\u0430\u043a \u043a\u0430\u043a \u0436\u0435\u043b\u0435\u0437\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u044b\u043b\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0438 \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u0442\u0444\u0430\u043a\u0442\u0443\u043c, \u043c\u044b \u0440\u0430\u0441\u0441\u043b\u0430\u0431\u0438\u043b\u0438\u0441\u044c \u0438 \u043f\u043e\u043f\u0430\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u0443 \u043b\u043e\u0432\u0443\u0448\u043a\u0443.<\/p>\n<p>  \u0421\u0430\u043c\u044b\u0435 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u0437 \u0432\u0430\u0441 \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0432\u0430\u0436\u043d\u0443\u044e \u0434\u0435\u0442\u0430\u043b\u044c. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u00ab\u0447\u0438\u0441\u0442\u044b\u0435\u00bb \u043b\u043e\u0433\u0438 \u0431\u0435\u0437 \u0444\u043e\u043d\u043e\u0432\u043e\u0433\u043e \u0448\u0443\u043c\u0430, \u043d\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u043b\u0438 \u044d\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0444\u0430\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0437\u0443 \u043c\u043e\u0433 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0441 \u043a \u043e\u0442\u0432\u0435\u0442\u0430\u043c? <\/p>\n<p>  \u041f\u043e\u043c\u043d\u0438\u0442\u0435 \u043e\u0434\u043d\u0443 \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0433\u0438\u043f\u043e\u0442\u0435\u0437? \u0422\u0443 \u0441\u0430\u043c\u0443\u044e, \u0433\u0434\u0435 \u043c\u044b \u0435\u0449\u0435 \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043e \u0432\u0438\u043d\u0442\u0438\u043a\u0430\u043c \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043d\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0438 \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438:<\/p>\n<blockquote><p>\u041d\u0430\u0437\u043e\u0432\u0435\u043c \u044d\u0442\u043e \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u043e\u0439 1.5: \u0430\u043b\u0435\u0440\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0430\u043b\u0435\u0440\u0442 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439<\/p><\/blockquote>\n<p>  \u041e\u0442\u0432\u0435\u0442 \u0431\u044b\u043b \u0434\u0430\u043d \u0435\u0449\u0435 \u0442\u043e\u0433\u0434\u0430. \u041f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0447\u0435\u043c-\u0442\u043e \u044f \u0432\u0441\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b. <\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u041a\u0430\u043a \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435<\/h2>\n<p><\/font><br \/>  \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u044f \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0437 \u043b\u043e\u0433\u0430:<\/p>\n<pre><code class=\"plaintext\">Apr 29 12:21:52 acsX account-replicator: ERROR Remote drive not mounted {'device': 'disk001', 'id': 43, 'ip': '10.0.0.41', 'meta': '', 'port': 6002, 'region': 1, 'replication_ip': '10.0.0.41', 'replication_port': 6002, 'weight': 100.0, 'zone': 11, 'index': 2}<\/code><\/pre>\n<p>  \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0431\u044b\u043b\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0430\u043b\u0430 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0411\u0414 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u0430\u0445 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0433\u043e IO. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e-\u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430. <\/p>\n<p>  \u0421\u043e\u0444\u0442 \u0432\u0435\u0434\u044c \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u0438\u0441\u0430\u043b, \u0447\u0442\u043e \u0434\u0438\u0441\u043a \u043d\u0435 \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d. \u0422\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0441\u043e\u0444\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u043a\u0430\u043a \u0438 \u0442\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u0432\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a. \u042f \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0438 \u0441\u0434\u0435\u043b\u0430\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u043d\u043e\u0439 \u0432\u044b\u0432\u043e\u0434. \u0412\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0432 \u043a\u043e\u0434, \u044f \u0443\u0431\u0435\u0434\u0438\u043b\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0443 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0430 \u0436\u0435 \u0441\u0430\u043c\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u0432\u044b\u0437\u043e\u0432 <code>ismount_raw()<\/code>. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043a\u043e\u0434 \u043e\u0442\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0434\u0438\u0441\u043a\u0435, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u2013 \u043d\u0435\u0442? \u0418 \u044d\u0442\u043e \u043f\u0440\u0438\u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0434\u043e\u043a\u0430\u0437\u0430\u043b\u0438, \u0447\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0434\u0438\u0441\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c.<\/p>\n<p>  \u0410\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0430\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043c\u043e\u0433\u043b\u0430 \u043f\u0440\u043e\u043b\u0438\u0442\u044c \u0441\u0432\u0435\u0442 \u043d\u0430 \u044d\u0442\u0443 \u0437\u0430\u0433\u0430\u0434\u043a\u0443. \u0412 \u0445\u043e\u0434\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u044f \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043e \u043d\u0430\u0448\u0435\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0435, \u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0441 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0438 \u0434\u0438\u0441\u043a\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bo\/_i\/mg\/bo_imgo9oso_hygiodglb1kd9qu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bo\/_i\/mg\/bo_imgo9oso_hygiodglb1kd9qu.png\"\/><\/div>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a \u043d\u043e\u043c\u0435\u0440! \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0443\u0436\u043d\u0430\u044f \u043d\u0430\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u0438\u0441\u0447\u0435\u0437\u043b\u0430. \u0422\u0430\u043a \u043a\u0430\u043a \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u043d\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b. <\/p>\n<p>  \u042f \u043c\u043e\u0433 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u044d\u0442\u043e \u0435\u0449\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f stacked graph. \u042d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u0431\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/cb\/we\/bh\/cbwebhkwjvh5qqs4mpf_6gzxuu8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/cb\/we\/bh\/cbwebhkwjvh5qqs4mpf_6gzxuu8.png\"\/><\/div>\n<p>  \u041e\u0434\u0438\u043d \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c, \u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c! \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043b\u044c\u0437\u0430 \u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0434\u0435\u043d\u0435\u0442\u0441\u044f, \u043d\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442, \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0431\u044b\u043b \u0434\u0440\u0443\u0433\u043e\u0439: \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u0441\u0447\u0435\u0437\u043b\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0430?<\/p>\n<p>  \u041e\u0442 \u0431\u0435\u0437\u044b\u0441\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043c\u044b\u0441\u043b\u044c, \u0447\u0442\u043e \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0434\u043b\u044f \u0434\u0438\u0441\u043a\u043e\u0432 \u0441 <code>mounted: false<\/code>. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u2013 \u043a\u043e\u0434\u0430 \u0442\u0430\u043c \u0441\u043e\u0432\u0441\u0435\u043c \u043c\u0430\u043b\u043e. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u2013 \u043a\u043e\u0434 \u0442\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0448\u0438\u0431\u043e\u043a. <\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043b\u0443\u0447\u0438\u043a \u043d\u0430\u0434\u0435\u0436\u0434\u044b \u043f\u043e\u0433\u0430\u0441, \u0432\u0441\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u044b, \u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0448\u0430\u0433 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d. \u0418\u043b\u0438 \u043d\u0435\u0442?<\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a<\/h2>\n<p><\/font><br \/>  \u0421\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u044f\u0442\u043d\u0430 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u0438 \u043f\u0435\u0440\u0435\u043e\u0441\u043c\u044b\u0441\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b.<\/p>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043a\u043e\u0434\u0430 \u043d\u0430 Python \u043c\u0435\u043d\u044f \u043d\u0435 \u043f\u043e\u043a\u0438\u0434\u0430\u043b\u0430 \u043c\u044b\u0441\u043b\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u2013 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e:<\/p>\n<blockquote><p>\u0415\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u044f, \u043d\u043e \u043e\u043d\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u0430\u0431\u044b\u043c\u0438.<\/p><\/blockquote>\n<p>  \u041e\u0434\u043d\u0430 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0432\u044b\u0434\u0435\u043b\u044f\u043b\u0430\u0441\u044c \u0441\u0440\u0435\u0434\u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0430 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u043c. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043d\u0430 \u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u043e\u0439, \u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u2013 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0439. \u041d\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0434\u0435\u0439 \u043d\u0435\u0442, \u0430 \u043e\u0442\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043d\u0435\u043a\u0443\u0434\u0430.<\/p>\n<p>  <u><\/p>\n<h4>\u0413\u0438\u043f\u043e\u0442\u0435\u0437\u0430 4: &lt;\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u0430\u044f><\/h4>\n<p><\/u><br \/>  \u041d\u0443 \u0430 \u043a\u0430\u043a \u0435\u0449\u0435? \u0418\u043d\u0430\u0447\u0435 \u044f \u0440\u0430\u0441\u043a\u0440\u043e\u044e \u0432\u0441\u0435 \u043a\u0430\u0440\u0442\u044b! \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0433 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0438 \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u043e\u0442\u043a\u0443\u0434\u0430 \u043d\u043e\u0433\u0438 \u0440\u0430\u0441\u0442\u0443\u0442.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u0443 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0443, \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442. \u0425\u0432\u0430\u0442\u0438\u0442 \u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u043c\u0430\u043d\u0443\u0430\u043b, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u043e. <\/p>\n<p>  \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c? \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u043e \u0442\u0440\u0438 \u043f\u0443\u0442\u0438:<\/p>\n<ol>\n<li>\u0418\u0434\u0442\u0438 \u0441\u0432\u0435\u0440\u0445\u0443, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0432 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f. <b>\u041d\u0435 \u043f\u0440\u043e\u043a\u0430\u0442\u0438\u043b\u043e, \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 Docker \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043c\u0430\u043b\u043e.<\/b><\/li>\n<li>\u0418\u0434\u0442\u0438 \u0441\u043d\u0438\u0437\u0443, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u0436\u0435 \u0436\u0435\u043b\u0435\u0437\u0435, \u0441 \u0442\u0435\u043c\u0438 \u0436\u0435 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u0438\u0441\u043a\u043e\u0432. <b>\u041d\u0435 \u043f\u0440\u043e\u043a\u0430\u0442\u0438\u0442. \u041f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044f\u0432\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u043d\u043e\u0441\u0438\u043b\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440. \u0414\u0430 \u0438 \u043a\u0442\u043e \u043c\u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442?<\/b><\/li>\n<li>\u0418\u0434\u0442\u0438 \u0441\u0431\u043e\u043a\u0443, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0432 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. <b>\u041f\u0440\u043e\u0431\u0443\u0435\u043c.<\/b><\/li>\n<\/ol>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043b\u043e\u0433\u0438\u0447\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0442\u0435 \u0441\u0438\u043c\u043f\u0442\u043e\u043c\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043c\u044b \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c. \u0415\u0441\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434 <code>dmesg<\/code>, \u0442\u0430\u043c \u0431\u044b\u043b\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0430:<\/p>\n<pre><code class=\"plaintext\">[Fri Apr 29 12:03:53 2022] XFS (nvme0n1p1): xfs_do_force_shutdown(0x1) called from line 325 of file fs\/xfs\/xfs_trans_buf.c. Return address = 00000000c3501d18<\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0435 \u0438 \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2013 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <code>xfs_do_force_shutdown<\/code> \u043b\u044e\u0431\u043e\u0439 \u0446\u0435\u043d\u043e\u0439. <\/p>\n<p>  \u041d\u0430\u0434\u0435\u0436\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e. \u042f \u0441\u0440\u0430\u0437\u0443 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0438\u0441\u043a\u0430\u0436\u0430\u0435\u043c \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c XFS \u0438 \u0431\u043b\u043e\u0447\u043d\u044b\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043d\u0430\u0434\u0435\u0436\u043d\u044b. \u0412\u0432\u0438\u0434\u0443 \u0441\u0442\u043e\u0439\u043a\u043e\u0441\u0442\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u0438 \u043a\u044d\u0448\u0430 \u0432 \u044f\u0434\u0440\u0435 \u044f \u043c\u043e\u0433 \u0431\u044b \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u0434\u043e\u0431\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f. <\/p>\n<p>  \u0411\u044b\u043b \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u0447\u0435\u0447\u043d\u043e \u0438\u0441\u043a\u0430\u0437\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0431\u043b\u043e\u0447\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0432\u044b\u0437\u0432\u0430\u0432 \u0441\u0445\u043e\u0436\u0443\u044e \u0441 \u043d\u0430\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0443. \u0418\u043d\u0442\u0435\u0440\u0435\u0441 \u043f\u043e\u0447\u0442\u0438 \u0443\u0436\u0435 \u0432\u0437\u044f\u043b \u0432\u0435\u0440\u0445, \u043d\u043e \u044f \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0441\u0442\u044b\u043b, \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0432 \u0447\u0442\u043e \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0430\u0437\u0430\u0440\u0442 \u0443\u0436\u0435 \u0437\u0430\u0432\u043e\u0434\u0438\u043b \u043c\u0435\u043d\u044f \u0432 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0435 \u0434\u0435\u0431\u0440\u0438. \u041d\u0443\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0449\u0435. \u0414\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0424\u0421, \u0430 \u043d\u0435 \u043f\u043e\u0434\u0433\u043e\u043d\u044f\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432 \u043d\u0430\u0434\u0435\u0436\u0434\u0435 \u043d\u0430 \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u042f \u043d\u0430\u0447\u0430\u043b \u0441 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>xfs_do_force_shutdown()<\/code>, \u0447\u0442\u043e\u0431\u044b \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0443, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041e\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <a href=\"https:\/\/github.com\/torvalds\/linux\/blob\/v5.4\/fs\/xfs\/xfs_fsops.c#L466\">fs\/xfs\/xfs_fsops.c<\/a>, \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0441\u0440\u0430\u0437\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0448 \u0441\u043b\u0443\u0447\u0430\u0439:<\/p>\n<pre><code class=\"cpp\">\/*  * Force a shutdown of the filesystem instantly while keeping the filesystem  * consistent. We don't do an unmount here; just shutdown the shop, make sure  * that absolutely nothing persistent happens to this filesystem after this  * point.  *\/<\/code><\/pre>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0438\u043a\u0430\u043a\u0438\u043c Docker \u0442\u0430\u043a\u043e\u0435 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0435\u0448\u044c. \u0424\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0447\u0430\u0441\u0442\u043e, \u043d\u043e \u0432 <a href=\"https:\/\/github.com\/torvalds\/linux\/blob\/v5.4\/fs\/xfs\/xfs_mount.h#L299\">fs\/xfs\/xfs_mount.h<\/a> \u043d\u0430\u0448\u0435\u043b\u0441\u044f \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043c\u0430\u043a\u0440\u043e\u0441:<\/p>\n<pre><code class=\"cpp\">#define xfs_force_shutdown(m,f) \\    xfs_do_force_shutdown(m, f, __FILE__, __LINE__)<\/code><\/pre>\n<p>  \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u044e\u0442 \u043a \u043d\u0435\u043c\u0443 \u043f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u0430\u0448\u0435\u043b \u0434\u0430\u0436\u0435 \u0442\u0443 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043d\u0430\u0448\u0430 \u0431\u0435\u0434\u0430, \u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u043e \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.<\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432, \u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432. \u0418 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043d\u0435 \u0433\u0434\u0435-\u0442\u043e \u0433\u043b\u0443\u0431\u043e\u043a\u043e \u0432\u043d\u0443\u0442\u0440\u0438, \u0430 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c ioctl-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 (<a href=\"https:\/\/github.com\/torvalds\/linux\/blob\/v5.4\/fs\/xfs\/xfs_ioctl.c#L2355\">xfs\/fs\/xfs_ioctl.c<\/a>):<\/p>\n<pre><code class=\"cpp\">   case XFS_IOC_GOINGDOWN: {        uint32_t in;          if (!capable(CAP_SYS_ADMIN))            return -EPERM;          if (get_user(in, (uint32_t __user *)arg))            return -EFAULT;          return xfs_fs_goingdown(mp, in);    }<\/code><\/pre>\n<p>  \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>xfs_fs_goingdown()<\/code> \u043a\u0430\u043a \u0440\u0430\u0437 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448 \u043c\u0430\u043a\u0440\u043e\u0441, \u0430 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0431\u0435\u0434\u0443, \u0432\u0435\u0434\u044c \u0432\u044b\u0437\u0432\u0430\u0442\u044c ioctl \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434! <a href=\"https:\/\/man7.org\/linux\/man-pages\/man2\/ioctl_xfs_goingdown.2.html\">\u041c\u0430\u043d\u0443\u0430\u043b<\/a> \u043a \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <code>XFS_IOC_GOINGDOWN<\/code> \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u043e, \u0432 \u0446\u0435\u043b\u043e\u043c, \u0437\u0434\u0435\u0441\u044c \u0438 \u0442\u0430\u043a \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043f\u043e\u0439\u043b\u0435\u0440 \u0441 \u043a\u043e\u0434\u043e\u043c: xfs_shutdown.c<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#include &lt;fcntl.h> #include &lt;stdlib.h> #include &lt;string.h> #include &lt;sysexits.h> #include &lt;xfs\/xfs.h> #include &lt;unistd.h>   int main(int argc, char *argv[]) {  if (argc &lt; 2) {    fprintf(stderr, \"usage: %s &lt;filesystem> [flush|noflush]\\n\", argv[0]);    exit(EX_USAGE);  } else if (argc > 3) {    fprintf(stderr, \"too many arguments\\n\");    exit(EX_USAGE);  }    char *filesystem = argv[1];  int mode = XFS_FSOP_GOING_FLAGS_DEFAULT;    if (argc == 3) {    if (strcmp(argv[2], \"flush\") == 0) {      mode = XFS_FSOP_GOING_FLAGS_LOGFLUSH;    } else if (strcmp(argv[2], \"noflush\") == 0) {      mode = XFS_FSOP_GOING_FLAGS_NOLOGFLUSH;    }  }    fprintf(stdout, \"Opening filesystem %s...\\n\", filesystem);  int fd = open(filesystem, O_RDONLY);  if (fd &lt; 0) {    perror(\"Failed to open filesystem\");    exit(EX_OSERR);  }    fprintf(stdout, \"Calling ioctl(%d, %lu, 0x%.8x)...\\n\", fd, XFS_IOC_GOINGDOWN,          mode);  int ret = ioctl(fd, XFS_IOC_GOINGDOWN, &amp;mode);  if (ret != 0) {    perror(\"Failed to call ioctl\");    exit(EX_OSERR);  }    close(fd);  fprintf(stdout, \"Done.\\n\");    return 0; }<\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041d\u0435\u0437\u0430\u043c\u044b\u0441\u043b\u043e\u0432\u0430\u0442\u044b\u0439 \u043a\u043e\u0434 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 <code>ioctl()<\/code> \u0441 \u043d\u0443\u0436\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0438 \u0434\u0435\u043b\u043e \u0432 \u0448\u043b\u044f\u043f\u0435! \u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Debian, \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e: <code>gcc, libc6-dev<\/code> \u0438 <code>xfslibs-dev<\/code>.<\/p>\n<blockquote><p><b>\u0412\u043e\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0437\u043d\u0430\u044e\u0449\u0438\u0445<\/b><\/p>\n<p>  \u0412 \u043c\u0430\u043d\u0443\u0430\u043b\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 <code>xfsctl<\/code> \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 XFS. \u042f \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u0432 \u043a\u043e\u0434\u0435 \u0432\u044b\u0448\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0445\u043e\u0442\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0442\u0440\u0435\u043c\u043b\u044e\u0441\u044c \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0442\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e. <\/p>\n<p>  \u041d\u0430 \u043f\u043e\u0432\u0435\u0440\u043a\u0443 <code>xfsctl<\/code> \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u043c, \u0438 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435\u0442 \u0438\u0434\u0435\u0439, \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u043d\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u0438\u043b\u0438 \u0447\u0435\u043c <code>ioctl<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0445\u0443\u0436\u0435. \u0415\u0441\u043b\u0438 \u0443 \u043a\u043e\u0433\u043e-\u0442\u043e \u0438\u0437 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0435\u0441\u0442\u044c \u043c\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0447\u0435\u0442, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0435\u0433\u043e \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.  <\/p><\/blockquote>\n<p>  \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043a\u043e\u0440\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u0434 \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0410 \u0447\u0442\u043e\u0431\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0432\u044b\u0448\u0435\u043b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u044b\u043c, \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043c\u0430\u0448\u0438\u043d, \u0433\u0434\u0435 \u0432\u0441\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0431\u043e\u0435\u0432\u043e\u043c\u0443:<\/p>\n<pre><code class=\"bash\">root@acsX.test:~# gcc -s \/usr\/local\/src\/xfs_shutdown\/xfs_shutdown.c -o \/usr\/local\/bin\/xfs_shutdown   root@acsX.test:~# \/usr\/local\/bin\/xfs_shutdown \/srv\/swift\/node\/disk002 noflush Opening filesystem \/srv\/swift\/node\/disk002... Calling ioctl(3, 2147768445, 0x00000002)... Done.<\/code><\/pre>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e! \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430\u0448\u0438 \u0434\u0438\u0441\u043a\u0438, \u043a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u043b\u0438 \u044d\u0442\u043e \u0440\u0430\u043d\u0435\u0435:<\/p>\n<pre><code class=\"bash\">root@acsX.test:~# df -h -t ext4 -t xfs Filesystem      Size  Used Avail Use% Mounted on \/dev\/sda1        19G  8.4G  9.6G  47% \/ \/dev\/sdb1       5.0G   42M  5.0G   1% \/srv\/swift\/node\/disk001 \/dev\/sdc1       5.0G   44M  5.0G   1% \/srv\/swift\/node\/disk002   root@acsX.test:~# stat \/srv\/swift\/node\/disk002 stat: cannot statx '\/srv\/swift\/node\/disk002': Input\/output error<\/code><\/pre>\n<p>  \u041e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0434\u0443! \u0412\u0441\u0435 \u0442\u043e\u0447\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043f\u0440\u0438\u0442\u043e\u043c \u0447\u0442\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u00ab\u043f\u043e\u0433\u0430\u0448\u0435\u043d\u0430\u00bb \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 stat \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u043e\u0439 \u043d\u0430\u043c \u043e\u0448\u0438\u0431\u043a\u0435 IO.<\/p>\n<p>  \u041e\u0434\u043d\u0430 \u0438\u0437 \u0432\u0435\u0449\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u2013 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 <code>\/recon\/diskusage<\/code>, \u043d\u0430 \u0431\u0430\u0437\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043d\u0430\u0448\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438. \u0412 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u044d\u0442\u043e \u043d\u0435 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c, \u0438 \u044f \u0438\u0437\u0443\u0447\u0430\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0448\u0438\u0440\u044c, \u0447\u0435\u043c \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0443. \u041d\u0435 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044f \u0432 Prometheus, \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u0435\u0439\u0447\u0430\u0441:<\/p>\n<pre><code class=\"json\">root@acsX.test:~# curl 127.0.0.1:6002\/recon\/diskusage 2>\/dev\/null | jq . [  {    \"device\": \"disk001\",    \"mounted\": true,    \"size\": 5356126208,    \"used\": 43991040,    \"avail\": 5312135168  } ]<\/code><\/pre>\n<p>  \u0411\u0438\u043d\u0433\u043e! \u0414\u043e\u0432\u0435\u0440\u0438\u0435 \u043a \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u0443 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e, \u0432\u0435\u0434\u044c \u0441\u0430\u043c Account Server \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u043e\u043c\u0443 \u0434\u0438\u0441\u043a\u0443, \u0431\u0443\u0434\u0442\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0442. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443.<\/p>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430<\/h2>\n<p><\/font><br \/>  \u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0430\u0437\u0430\u0434 \u2014 \u0432 \u0442\u0443 \u0447\u0430\u0441\u0442\u044c, \u0433\u0434\u0435 \u044f \u0432\u044b\u0434\u0432\u0438\u0433\u0430\u044e \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0443 \u0438 \u043d\u0430\u043c\u0435\u043a\u0430\u044e \u043d\u0430 \u0432\u0430\u0436\u043d\u0443\u044e \u043f\u0430\u0441\u0445\u0430\u043b\u043a\u0443 (\u043e\u043d\u0430, \u043a\u0441\u0442\u0430\u0442\u0438, \u043f\u0440\u043e\u0441\u043a\u043e\u0447\u0438\u043b\u0430 \u0443\u0436\u0435 \u0434\u0432\u0430\u0436\u0434\u044b). <\/p>\n<p>  \u0427\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f (\u0445\u043e\u0442\u044c \u0438 \u0441\u043b\u0430\u0431\u044b\u0435) \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u044f? \u041c\u0435\u0442\u043e\u0434 <code>get_diskusage()<\/code>:<\/p>\n<pre><code class=\"python\">def get_diskusage(self):   \"\"\"get disk utilization statistics\"\"\"   devices = []   for entry in os.listdir(self.devices):       if not os.path.isdir(os.path.join(self.devices, entry)):           continue         try:           check_mount(self.devices, entry)       except OSError as err:           devices.append({'device': entry, 'mounted': str(err),                           'size': '', 'used': '', 'avail': ''})       except ValueError:           devices.append({'device': entry, 'mounted': False,                           'size': '', 'used': '', 'avail': ''})       else:           path = os.path.join(self.devices, entry)           disk = os.statvfs(path)           capacity = disk.f_bsize * disk.f_blocks           available = disk.f_bsize * disk.f_bavail           used = disk.f_bsize * (disk.f_blocks - disk.f_bavail)           devices.append({'device': entry, 'mounted': True,                           'size': capacity, 'used': used,                           'avail': available})     return devices<\/code><\/pre>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u00ab\u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c\u00bb \u0434\u0438\u0441\u043a \u043d\u0435 \u0432\u044b\u0439\u0434\u0435\u0442 \u2013 \u043b\u0438\u0431\u043e \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u0441\u0435\u043c \u0434\u0438\u0441\u043a\u0430\u043c, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 <code>continue<\/code> \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435, \u043d\u043e \u044d\u0442\u0430 \u0432\u0435\u0442\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u043d\u0435 \u0441 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439, \u0447\u0442\u043e, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u043d\u0430\u0448 \u0441\u043b\u0443\u0447\u0430\u0439. \u041d\u043e \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0437\u0430\u043a\u0440\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0442\u0443 \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430, \u0433\u0434\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441\u043e \u00ab\u0441\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0439\u00bb \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439:<\/p>\n<pre><code class=\"bash\">root@acsX.test:~# python -c 'import os; print os.path.isdir(\"\/srv\/swift\/node\/disk002\")' False<\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e. \u041d\u0435 \u0432 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u0435 \u0434\u0435\u043b\u043e \u0438 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0430\u043b\u0435\u0440\u0442\u0430. \u041d\u0435 \u0432 Docker \u0441 namespaces \u0438 \u043d\u0435 \u0432 OpenStack Swift. \u0412\u0441\u0435 \u0434\u0435\u043b\u043e \u0432 Python, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u043b\u0447\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 False \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, IOError). \u041a\u043e\u0434 \u00ab\u0441\u0447\u0438\u0442\u0430\u0435\u0442\u00bb, \u0447\u0442\u043e \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435\u0442, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0448 \u043f\u0443\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443.<\/p>\n<p>  \u0422\u0430 \u0441\u0430\u043c\u0430\u044f \u00ab\u043f\u0430\u0441\u0445\u0430\u043b\u043a\u0430\u00bb, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b \u0432\u044b\u0448\u0435 \u2013 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 <code>stat<\/code>, \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f:<\/p>\n<pre><code class=\"bash\">root@acsX:~# docker exec account-server stat --printf 'Path: %n \\nDevice: %d\\nInode: %i\\n' \/srv\/swift\/node\/disk001 stat: cannot statx '\/srv\/swift\/node\/disk001': Input\/output error<\/code><\/pre>\n<p>  \u0412\u0435\u0434\u044c \u044d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c, \u0447\u0442\u043e \u0432 Python \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0422\u043e\u043b\u044c\u043a\u043e \u0431\u044b\u043b\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043e\u043d\u043e \u0434\u043e \u043d\u0430\u0441 \u043d\u0435 \u0434\u043e\u0439\u0434\u0435\u0442, \u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u043b\u0443\u0431\u0438\u043d\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435, \u0447\u0442\u043e <a href=\"https:\/\/docs.python.org\/3\/library\/os.path.html#os.path.isdir\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a> \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0447\u0435\u0442 \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gx\/3c\/sv\/gx3csv0ldpidky74nr53pmxos_a.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gx\/3c\/sv\/gx3csv0ldpidky74nr53pmxos_a.png\"\/><\/div>\n<p>  \u041c\u043e\u0436\u0435\u0442, \u044d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 <code>exists()<\/code>? \u0427\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0434\u0430, \u043d\u043e \u0441 \u0443\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430:<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gy\/7j\/4k\/gy7j4kk1hvhw-xggbfvcjg5phxy.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gy\/7j\/4k\/gy7j4kk1hvhw-xggbfvcjg5phxy.png\"\/><\/div>\n<p>  \u0427\u0442\u043e \u0436\u0435 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435? \u041e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 <a href=\"https:\/\/github.com\/python\/cpython\/blob\/main\/Lib\/genericpath.py#L39\">\u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0443\u044e<\/a> \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432\u0435\u0440\u0438\u0442\u044c \u043c\u0438\u0444\u0430\u043c \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<pre><code class=\"python\"># Is a path a directory? # This follows symbolic links, so both islink() and isdir() # can be true for the same path on systems that support symlinks def isdir(s):    \"\"\"Return true if the pathname refers to an existing directory.\"\"\"    try:        st = os.stat(s)    except (OSError, ValueError):        return False    return stat.S_ISDIR(st.st_mode)<\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0433\u0430\u0434\u043a\u0430 \u0440\u0430\u0437\u0433\u0430\u0434\u0430\u043d\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0421\u0435\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b\u0430\u0441\u044c, \u0430 \u0440\u0430\u0437 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442, \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u0443\u0435\u043c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b:<\/p>\n<ol>\n<li>\u0410\u043b\u0435\u0440\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u043b \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0438\u0441\u0447\u0435\u0437\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/li>\n<li>\u041c\u0435\u0442\u0440\u0438\u043a\u0430 \u0438\u0441\u0447\u0435\u0437\u043b\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 Swift \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u0442\u0435\u0441\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>os.path.isdir()<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 False \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/li>\n<li>\u041c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u044f\u0434\u0440\u0430, \u0424\u0421 \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u043d\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0443\u0434\u0430\u0447\u0435\u0439.<\/li>\n<li>\u0412\u0441\u0435 \u044d\u0442\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u0438\u0437-\u0437\u0430 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 NVMe-\u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u0435\u0439. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u044b\u043b\u0430 \u043d\u0435\u044f\u0432\u043d\u043e\u0439 \u0438 \u043c\u043e\u0433\u043b\u0430 \u043f\u0440\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0437\u0436\u0435 \u043b\u0438\u0431\u043e \u043d\u0435 \u043f\u0440\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u0432\u0441\u0435.<\/li>\n<\/ol>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0414\u043b\u044f \u0441\u0430\u043c\u044b\u0445-\u0441\u0430\u043c\u044b\u0445-\u0441\u0430\u043c\u044b\u0445 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0427\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043e\u0434\u043d\u0430 \u0442\u0430\u0439\u043d\u0430 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435 \u0440\u0430\u0437\u0433\u0430\u0434\u0430\u043d\u0430: \u043a\u0430\u043a \u0432\u044b\u0448\u043b\u043e, \u0447\u0442\u043e \u0435\u0449\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430, \u043a\u043e\u0433\u0434\u0430 \u044f \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b \u043b\u043e\u0433\u0438\u043a\u0443 Python-\u043a\u043e\u0434\u0430, \u0432\u044b\u0437\u043e\u0432 stat \u043d\u0430 \u0445\u043e\u0441\u0442-\u043c\u0430\u0448\u0438\u043d\u0435 \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u0435\u043d? \u041e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043d\u0435\u0442. <\/p>\n<p>  \u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u043a\u0442\u043e-\u0442\u043e \u0443\u0441\u043f\u0435\u043b \u0437\u0430\u0439\u0442\u0438 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0443 \u0440\u0430\u043d\u044c\u0448\u0435 \u043c\u0435\u043d\u044f \u0438 \u0440\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u044c. \u0410 \u043c\u043e\u0436\u0435\u0442, \u0437\u0432\u0435\u0437\u0434\u044b \u0441\u043e\u0448\u043b\u0438\u0441\u044c \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441\u0434\u0435\u043b\u0430\u043b \u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u043e\u0441\u044c \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u043c\u044b \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u043d\u043e \u0437\u043d\u0430\u0435\u043c. <\/p>\n<p>  \u0412\u0438\u0434\u0438\u043c\u043e, \u043d\u0435 \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0431\u044b\u0432\u0430\u044e\u0442 \u043e\u0442\u0432\u0435\u0442\u044b. \u042d\u0442\u043e \u0435\u0449\u0435 \u0440\u0430\u0437 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0444\u0430\u043a\u0442\u043e\u043c, \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043d\u0435 \u0441\u0442\u043e\u0438\u0442.   <\/div>\n<\/p><\/div>\n<p>  <font color=\"#EB4247\"><\/p>\n<h2>\u0418\u0442\u043e\u0433<\/h2>\n<p><\/font><br \/>  \u041d\u0443, \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a! \u0410\u0437\u0430\u0440\u0442 \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043d\u0430\u0439\u0442\u0438 \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0438 \u043f\u043e\u0440\u043e\u0439 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u043d\u043e\u0432\u044b\u0445, \u0443\u0436\u0435 \u043d\u0435\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u041d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2013 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u044c \u044d\u0442\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0434 \u0441\u043e\u0431\u043e\u0439, \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0443\u044f \u0441\u0432\u043e\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043d\u0430\u0432\u044b\u043a\u0438.<\/p>\n<p>  \u041a\u0430\u043a \u044f \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u0438\u043a\u0443. \u0412\u0435\u0440\u043d\u0435\u0435, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e \u043d\u0435\u0435. \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u044f\u0432\u0438\u0442\u044c \u043a\u043e\u0435-\u043a\u0430\u043a\u043e\u0439 \u0441\u043a\u0438\u043b\u043b, \u043d\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0431\u044b, \u0431\u0443\u0434\u044c \u044f \u043a\u0430\u043f\u0435\u043b\u044c\u043a\u0443 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435. \u041e\u0431\u043e\u0448\u043b\u043e\u0441\u044c \u0438 \u0431\u0435\u0437 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u2013 \u043b\u0438\u0448\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u0443\u043c\u0435\u043d\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u043a\u043e\u0434. <\/p>\n<p>  \u0427\u0442\u043e \u0436\u0435 \u0432 \u0438\u0442\u043e\u0433\u0435? \u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442 \u043d\u0438\u043a\u0442\u043e: \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0435\u0441\u0442\u043d\u043e, \u043d\u043e \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0430\u043c\u0438. \u0414\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u043e\u0432 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 \u044d\u0442\u0438\u043c \u043e\u0431\u0437\u0430\u0432\u0435\u043b\u0438\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c \u0442\u043e\u0447\u0435\u043a \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. <\/p>\n<p>  \u0413\u043e\u0432\u043e\u0440\u044f \u043f\u0440\u043e \u0441\u0430\u043c \u043f\u043e\u0434\u0445\u043e\u0434, \u0442\u0430\u043a\u0442\u0438\u043a\u0430 \u00ab\u043f\u0435\u0440\u0435\u0441\u043c\u0435\u0448\u043d\u0438\u043a\u0430\u00bb \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 (\u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0435\u0431\u044f), \u0432\u0435\u0434\u044c \u0441\u0443\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043e\u0447\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0447\u043d\u0430:<\/p>\n<ul>\n<li>\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0432\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/li>\n<li>\u0423\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c.<\/li>\n<li>\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0445\u043e\u0436\u0435\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438.<\/li>\n<li>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u044b.<\/li>\n<\/ul>\n<p>  \u041d\u0435 \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0430\u043a \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f: \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0431\u0435\u0437 \u0440\u0430\u0437\u0433\u0430\u0434\u043a\u0438, \u0434\u0440\u0443\u0433\u0438\u0435 \u0440\u0435\u0448\u0430\u044e\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u0447\u0435\u0442\u043a\u043e. \u041f\u043e\u0440\u043e\u0439 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0432 \u0434\u0435\u043b\u043e \u0432\u0441\u0442\u0443\u043f\u0430\u0435\u0442 <code>gdb<\/code>. \u041e\u0431 \u044d\u0442\u043e\u043c \u043c\u044b \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0447\u0430\u0441\u0442\u044f\u0445. <\/p>\n<p>  \u0411\u044b\u043b\u043e \u043b\u0438 \u0443 \u0432\u0430\u0441 \u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u0441\u0442\u0432\u043e \u0438 \u0430\u0437\u0430\u0440\u0442 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438 \u0438\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0435\u0435 \u043d\u0435\u0442? \u041a\u0430\u043a \u0432\u044b \u0441 \u044d\u0442\u0438\u043c \u0431\u043e\u0440\u0435\u0442\u0435\u0441\u044c? \u0411\u0443\u0434\u0443 \u0440\u0430\u0434 \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u043c\u043d\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. <\/p>\n<p>  \u0414\u043e \u043d\u043e\u0432\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447!<\/p><\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/selectel\/blog\/681636\/\"> https:\/\/habr.com\/ru\/company\/selectel\/blog\/681636\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/m7\/ui\/sb\/m7uisb7kffrr_axfblhyf9ezwqq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/m7\/ui\/sb\/m7uisb7kffrr_axfblhyf9ezwqq.png\"\/><\/div>\n<p>  \u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0420\u043e\u043c\u0430, \u0438 \u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 <a href=\"https:\/\/slc.tl\/5bxz3\">\u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Selectel<\/a>. \u041a\u043e\u0433\u0434\u0430 \u043c\u0435\u043d\u044f \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442, \u0437\u0430 \u0447\u0442\u043e \u044f \u043b\u044e\u0431\u043b\u044e \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043d\u0430 \u0443\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0435\u0449\u0435\u0439. \u041d\u043e \u043b\u0443\u0447\u0448\u0435\u0435 \u0432 \u0436\u0438\u0437\u043d\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430, \u043a\u0430\u043a \u043f\u043e \u043c\u043d\u0435, \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441 \u043d\u0435\u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u044b\u043c \u2014\u00a0\u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043d\u0435\u043f\u043e\u043b\u0430\u0434\u043a\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043d\u0430 \u0433\u0440\u0430\u043d\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e. \u0418 \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432.<\/p>\n<p>  \u042d\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0439 \u043f\u0440\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e, \u0434\u0435\u0431\u0430\u0433 \u0438 \u0436\u0438\u0437\u043d\u044c \u0432 \u043e\u0431\u043d\u0438\u043c\u043a\u0443 \u0441 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e \u0438 \u043c\u0430\u043d\u0443\u0430\u043b\u043e\u043c. \u0418\u0441\u043a\u0443\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u043e\u043d\u0438 \u0432\u0440\u044f\u0434 \u043b\u0438 \u0443\u0434\u0438\u0432\u044f\u0442, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u043c\u043e\u0433\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0435, \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0435 \u0438 \u0437\u0430\u043f\u0443\u0442\u0430\u043d\u043d\u044b\u0435. \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u044d\u0442\u0430\u043f\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043f\u0435\u0440\u0435\u0436\u0438\u043b\u0438 \u0432\u0441\u0435 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043d\u0430\u0439\u0442\u0438 \u0432\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u043e\u043c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u043c\u043e\u0440\u0430\u043b\u044c. <\/p>\n<p>  \u041f\u0435\u0440\u0432\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u0430\u044f, \u0447\u0435\u043c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f. \u041f\u0440\u043e \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u043e\u0448\u0438\u0431\u043a\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043d\u0430\u0448\u0435\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0435, \u0430 \u043f\u043e\u0441\u043b\u0435 \u2013 \u0432 \u0441\u043e\u0444\u0442\u0435, \u0438 \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0432 \u0441\u043b\u043e\u0438 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0439. \u0411\u044b\u0432\u0430\u043b\u043e \u0443 \u0432\u0430\u0441 \u0442\u0430\u043a\u043e\u0435, \u0447\u0442\u043e \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u043a\u0440\u043e\u043b\u0438\u0447\u044c\u0435\u0439 \u043d\u043e\u0440\u044b \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u0435\u0438\u0437\u043c\u0435\u0440\u0438\u043c\u043e\u0439? \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u043e \u044d\u0442\u043e.  <\/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-337132","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/337132","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=337132"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/337132\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=337132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=337132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=337132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}