{"id":560,"date":"2017-02-28T16:23:50","date_gmt":"2017-02-28T16:23:50","guid":{"rendered":"a9a6653e48976138166de32772b1bf40"},"modified":"2017-02-28T16:23:50","modified_gmt":"2017-02-28T16:23:50","slug":"","status":"publish","type":"post","link":"https:\/\/www.xiaobo.li\/notes\/archives\/560","title":{"rendered":"Ceph"},"content":{"rendered":"<div> \u539f\u6587\uff1a<a target=\"_blank\" href=\"https:\/\/www.ustack.com\/blog\/build-block-storage-service\/\" rel=\"nofollow\">https:\/\/www.ustack.com\/blog\/build-block-storage-service\/<\/a> <\/div>\n<p><\/p>\n<h1 class=\"entry-title\">\u6253\u9020\u9ad8\u6027\u80fd\u9ad8\u53ef\u9760\u5757\u5b58\u50a8\u7cfb\u7edf<br \/>\n<\/h1>\n<p><\/p>\n<div id=\"toc_container\" class=\"toc_transparent no_bullets\">\n<p class=\"toc_title\">Contents<\/p>\n<ul class=\"toc_list\">\n<li class=\"selected\"><a href=\"\/storage\/560.html#UnitedStack\"><span class=\"toc_number toc_depth_1\">1<\/span> UnitedStack\u5757\u5b58\u50a8\u7cfb\u7edf<\/a>\n<ul>\n<li><a href=\"\/storage\/560.html#i\"><span class=\"toc_number toc_depth_2\">1.1<\/span> \u8f6f\u786c\u4ef6\u914d\u7f6e<\/a><\/li>\n<li><a href=\"\/storage\/560.html#i-2\"><span class=\"toc_number toc_depth_2\">1.2<\/span> \u6700\u5c0f\u90e8\u7f72\u67b6\u6784<\/a><\/li>\n<li><a href=\"\/storage\/560.html#i-3\"><span class=\"toc_number toc_depth_2\">1.3<\/span> \u8f7b\u677e\u6269\u5c55<\/a><\/li>\n<li><a href=\"\/storage\/560.html#OpenStack\"><span class=\"toc_number toc_depth_2\">1.4<\/span> \u6539\u9020OpenStack<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"\/storage\/560.html#i-4\"><span class=\"toc_number toc_depth_1\">2<\/span> \u9ad8\u6027\u80fd<\/a>\n<ul>\n<li><a href=\"\/storage\/560.html#IO\"><span class=\"toc_number toc_depth_2\">2.1<\/span> \u590d\u6742\u7684I\/O\u6808<\/a><\/li>\n<li><a href=\"\/storage\/560.html#i-5\"><span class=\"toc_number toc_depth_2\">2.2<\/span> \u4f18\u5316\u64cd\u4f5c\u7cfb\u7edf<\/a><\/li>\n<li><a href=\"\/storage\/560.html#Qemu\"><span class=\"toc_number toc_depth_2\">2.3<\/span> \u4f18\u5316Qemu<\/a><\/li>\n<li><a href=\"\/storage\/560.html#Ceph\"><span class=\"toc_number toc_depth_2\">2.4<\/span> \u4f18\u5316Ceph<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"\/storage\/560.html#i-6\"><span class=\"toc_number toc_depth_1\">3<\/span> \u9ad8\u53ef\u9760\u6027<\/a>\n<ul>\n<li><a href=\"\/storage\/560.html#i-7\"><span class=\"toc_number toc_depth_2\">3.1<\/span> \u5982\u4f55\u8ba1\u7b97\u6301\u4e45\u6027<\/a><\/li>\n<li><a href=\"\/storage\/560.html#i-8\"><span class=\"toc_number toc_depth_2\">3.2<\/span> \u964d\u4f4e\u6062\u590d\u65f6\u95f4<\/a><\/li>\n<li><a href=\"\/storage\/560.html#Coepy_Set\"><span class=\"toc_number toc_depth_2\">3.3<\/span> \u51cf\u5c11Coepy Set\u4e2a\u6570<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"\/storage\/560.html#i-9\"><span class=\"toc_number toc_depth_1\">4<\/span> \u81ea\u52a8\u5316\u8fd0\u7ef4<\/a>\n<ul>\n<li><a href=\"\/storage\/560.html#i-10\"><span class=\"toc_number toc_depth_2\">4.1<\/span> \u90e8\u7f72<\/a><\/li>\n<li><a href=\"\/storage\/560.html#i-11\"><span class=\"toc_number toc_depth_2\">4.2<\/span> \u7ef4\u62a4<\/a><\/li>\n<li><a href=\"\/storage\/560.html#i-12\"><span class=\"toc_number toc_depth_2\">4.3<\/span> \u76d1\u63a7<\/a><\/li>\n<li><a href=\"\/storage\/560.html#i-13\"><span class=\"toc_number toc_depth_2\">4.4<\/span> \u4e8b\u6545<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"\/storage\/560.html#i-14\"><span class=\"toc_number toc_depth_1\">5<\/span> &nbsp;\u672a\u6765<\/a><\/li>\n<\/ul>\n<\/div>\n<p class=\"hidden\">&nbsp;<\/p>\n<blockquote class=\"hidden\">\n<p>\u5b58\u50a8\u662f\u4e91\u8ba1\u7b97\u7684\u57fa\u77f3\u3002 \u2014 Jack Ma<\/p>\n<\/blockquote>\n<p class=\"hidden\">&nbsp;<\/p>\n<h1 class=\"hidden\"><span id=\"UnitedStack\">UnitedStack\u5757\u5b58\u50a8\u7cfb\u7edf<\/span><\/h1>\n<p class=\"\">\u5206\u5e03\u5f0f\u5b58\u50a8\u6709\u51fa\u8272\u7684\u6027\u80fd\uff0c\u53ef\u4ee5\u625b\u5f88\u591a\u6545\u969c\uff0c\u80fd\u591f\u8f7b\u677e\u6269\u5c55\uff0c\u6240\u4ee5\u6211\u4eecUnitedStack\u4f7f\u7528Ceph\u6784\u5efa\u4e86\u9ad8\u6027\u80fd\u3001\u9ad8\u53ef\u9760\u7684\u5757\u5b58\u50a8\u7cfb\u7edf\uff0c\u5e76\u4f7f\u7528\u5b83\u652f\u6491UnitedStack\u516c\u6709\u4e91\u548c\u6258\u7ba1\u4e91\u7684\u4e91\u4e3b\u673a\u3001\u4e91\u786c\u76d8\u670d\u52a1\u3002<\/p>\n<p class=\"\">\u7531\u4e8e\u4f7f\u7528\u5206\u5e03\u5f0f\u5757\u5b58\u50a8\u7cfb\u7edf\uff0c\u907f\u514d\u4e86\u590d\u5236\u955c\u50cf\u7684\u8fc7\u7a0b\uff0c\u6240\u4ee5\u4e91\u4e3b\u673a\u7684\u521b\u5efa\u65f6\u95f4\u53ef\u4ee5\u7f29\u77ed\u523010\u79d2\u4ee5\u5185\uff0c\u800c\u4e14\u4e91\u4e3b\u673a\u8fd8\u80fd\u5feb\u901f\u70ed\u8fc1\u79fb\uff0c\u65b9\u4fbf\u4e86\u8fd0\u7ef4\u4eba\u5458\u5bf9\u7269\u7406\u670d\u52a1\u5668\u4e0a\u786c\u4ef6\u548c\u8f6f\u4ef6\u7684\u7ef4\u62a4\u3002<\/p>\n<p class=\"\">\u7528\u6237\u5bf9\u4e8e\u5757\u5b58\u50a8\u7cfb\u7edf\u6700\u76f4\u89c2\u7684\u611f\u53d7\u6765\u6e90\u4e8e\u4e91\u786c\u76d8\u670d\u52a1\uff0c\u73b0\u5728\u6211\u4eec\u7684\u4e91\u786c\u76d8\u7684\u7279\u70b9\u662f\uff1a<\/p>\n<ul class=\"\">\n<li>\u6bcf\u4e2a\u4e91\u786c\u76d8\u6700\u5927\u652f\u6301 6000 IOPS\u548c170 MB\/s\u7684\u541e\u5410\u7387\uff0c95%\u76844K\u968f\u673a\u5199\u64cd\u4f5c\u7684\u5ef6\u8fdf\u5c0f\u4e8e2ms \u3002<\/li>\n<li>\u6240\u6709\u6570\u636e\u90fd\u662f\u4e09\u526f\u672c\uff0c\u5f3a\u4e00\u81f4\u6027\uff0c\u6301\u4e45\u6027\u9ad8\u8fbe10\u4e2a9\u3002<\/li>\n<li>\u521b\u5efa\u3001\u5220\u9664\u3001\u6302\u8f7d\u3001\u5378\u8f7d\u90fd\u662f\u79d2\u7ea7\u64cd\u4f5c\u3002<\/li>\n<li>\u5b9e\u65f6\u5feb\u7167\u3002<\/li>\n<li>\u63d0\u4f9b\u4e24\u79cd\u4e91\u786c\u76d8\u7c7b\u578b\uff0c\u6027\u80fd\u578b\u548c\u5bb9\u91cf\u578b\u3002<\/li>\n<\/ul>\n<p class=\"\">\n<h2 class=\"\"><span id=\"i\">\u8f6f\u786c\u4ef6\u914d\u7f6e<\/span><\/h2>\n<p class=\"\">\u7ecf\u8fc7\u591a\u8f6e\u7684\u9009\u578b\u548c\u6d4b\u8bd5\uff0c\u5e76\u8e29\u8fc7\u65e0\u6570\u7684\u5751\u4e4b\u540e\uff0c\u6211\u4eec\u9009\u62e9\u4e86\u5408\u9002\u6211\u4eec\u7684\u8f6f\u4ef6\u548c\u786c\u4ef6\u3002<\/p>\n<p class=\"\" style=\"text-align:center;\"><em>\u8f6f\u4ef6<\/em><\/p>\n<p><\/p>\n<div><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/11671488270512.jpg\" id=\"ematt:489\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/11671488270512.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"\" style=\"text-align:center;\"><em>\u786c\u4ef6<\/em><\/p>\n<ul class=\"\">\n<li style=\"text-align:left;\">\u4eceSATA\u78c1\u76d8\u5230SSD\uff0c\u4e3a\u4e86\u63d0\u9ad8IOPS\u548c\u964d\u4f4eLatency\u3002<\/li>\n<li style=\"text-align:left;\">\u4ece\u6d88\u8d39\u7ea7SSD\u5230\u4f01\u4e1a\u7ea7SSD\uff0c\u4e3a\u4e86\u63d0\u9ad8\u53ef\u9760\u6027\u3002<\/li>\n<li style=\"text-align:left;\">\u4eceRAID\u5361\u5230HBA\u5361\uff0c\u4e3a\u4e86\u63d0\u9ad8IOPS\u548c\u964d\u4f4eLatency\u3002<\/li>\n<\/ul>\n<p class=\"\">&nbsp;<\/p>\n<h2 class=\"\"><span id=\"i-2\">\u6700\u5c0f\u90e8\u7f72\u67b6\u6784<\/span><\/h2>\n<p class=\"\">\u968f\u7740\u8f6f\u786c\u4ef6\u7684\u5347\u7ea7\uff0c\u9700\u6c42\u7684\u8c03\u6574\uff0c \u6211\u4eec\u7684\u90e8\u7f72\u67b6\u6784\u4e5f\u4e0d\u65ad\u5728\u6f14\u8fdb\uff0c\u529b\u6c42\u5728\u6210\u672c\u3001\u6027\u80fd\u3001\u53ef\u9760\u6027\u4e0a\u8fbe\u5230\u6700\u4f73\u5e73\u8861\u70b9\u3002<\/p>\n<div class=\"\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/36be1488270513.jpg\" id=\"ematt:490\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/36be1488270513.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"\">\u6700\u5c0f\u89c4\u6a21\u90e8\u7f72\u4e2d\u670912\u4e2a\u8282\u70b9\uff0c\u6bcf\u4e2a\u8282\u70b9\u4e0a\u67093\u5757SSD\u3002\u8282\u70b9\u4e0a\u67092\u4e2a\u4e07\u5146\u53e3\u548c1\u4e2a\u5343\u5146\u53e3\uff0c\u865a\u62df\u673a\u7f51\u7edc\u548c\u5b58\u50a8\u7f51\u7edc\u4f7f\u7528\u4e07\u5146\u53e3\uff0c\u7ba1\u7406\u7f51\u7edc\u4f7f\u7528\u5343\u5146\u53e3\u3002\u6bcf\u4e2a\u96c6\u7fa4\u4e2d\u90fd\u67093\u4e2aCeph Monitor\u8282\u70b9\u3002<\/p>\n<h2 class=\"\"><span id=\"i-3\">\u8f7b\u677e\u6269\u5c55<\/span><\/h2>\n<p class=\"\">\u4e91\u8ba1\u7b97\u7684\u597d\u5904\u662f\u6781\u5f3a\u7684\u6269\u5c55\u6027\uff0c\u4f5c\u4e3a\u4e91\u8ba1\u7b97\u7684\u5e95\u5c42\u67b6\u6784\uff0c\u4e5f\u9700\u8981\u6709\u5feb\u901f\u7684Scale-out\u80fd\u529b\u3002\u5728\u5757\u5b58\u50a8\u7cfb\u7edf\u7684\u90e8\u7f72\u67b6\u6784\u4e2d\uff0c\u53ef\u4ee5\u4ee512\u53f0\u8282\u70b9\u4e3a\u5355\u4f4d\u8fdb\u884c\u6269\u5c55\u3002<\/p>\n<div class=\"\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/8e1d1488270514.jpg\" id=\"ematt:491\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/8e1d1488270514.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"\">&nbsp;<\/p>\n<h2 class=\"\"><span id=\"OpenStack\">\u6539\u9020OpenStack<\/span><\/h2>\n<p class=\"\">\u539f\u751f\u7684OpenStack\u5e76\u4e0d\u652f\u6301\u7edf\u4e00\u5b58\u50a8\uff0c\u4e91\u4e3b\u673a\u670d\u52a1Nova\u3001\u955c\u50cf\u670d\u52a1Glance\u3001\u4e91\u786c\u76d8\u670d\u52a1Cinder\u7684\u540e\u7aef\u5b58\u50a8\u5404\u4e0d\u76f8\u540c\uff0c\u9020\u6210\u4e86\u4e25\u91cd\u7684\u5185\u8017\u3002\u6211\u4eec\u628a\u8fd9\u4e09\u5927\u670d\u52a1\u7684\u540e\u7aef\u7edf\u4e00\u8d77\u6765\uff0c\u8fdb\u884c\u9ad8\u6548\u7ba1\u7406\uff0c\u89e3\u51b3\u4e86\u865a\u62df\u673a\u521b\u5efa\u65f6\u95f4\u957f\u548c\u955c\u50cf\u98ce\u66b4\u7b49\u95ee\u9898\uff0c\u8fd8\u80fd\u8ba9\u865a\u62df\u673a\u968f\u4fbf\u6f02\u79fb\u3002<\/p>\n<p class=\"\" style=\"text-align:center;\">\u539f\u751f\u7684OpenStack<\/p>\n<div class=\"\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/d41f1488270515.jpg\" id=\"ematt:492\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/d41f1488270515.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"\" style=\"text-align:center;\">\u6539\u9020\u540e\u7684OpenStack<\/p>\n<div class=\"\" style=\"text-align:left;\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/c7201488270516.jpg\" id=\"ematt:493\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/c7201488270516.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"\">\u4f7f\u7528\u539f\u751f\u7684OpenStack\u521b\u5efa\u865a\u62df\u673a\u9700\u89811~3\u5206\u949f\uff0c\u800c\u4f7f\u7528\u6539\u9020\u540e\u7684OpenStack\u4ec5\u9700\u8981\u4e0d\u523010\u79d2\u949f\u65f6\u95f4\u3002\u8fd9\u662f\u56e0\u4e3anova-compute\u4e0d\u518d\u9700\u8981\u901a\u8fc7HTTP\u4e0b\u8f7d\u6574\u4e2a\u955c\u50cf\uff0c\u865a\u62df\u673a\u53ef\u4ee5\u901a\u8fc7\u76f4\u63a5\u8bfb\u53d6Ceph\u4e2d\u7684\u955c\u50cf\u6570\u636e\u8fdb\u884c\u542f\u52a8\u3002<\/p>\n<p class=\"\">\u6211\u4eec\u8fd8\u589e\u52a0\u4e24\u4e2aOpenStack\u6ca1\u6709\u7684\u529f\u80fd: QoS \u548c \u5171\u4eab\u4e91\u786c\u76d8\u3002\u4e91\u8ba1\u7b97\u7684\u53e6\u5916\u4e00\u4e2a\u597d\u5904\u662f\u79df\u6237\u8d44\u6e90\u9694\u79bb\uff0c\u6240\u4ee5\u5fc5\u5907QoS\u3002\u5171\u4eab\u4e91\u786c\u76d8\u53ef\u4ee5\u6302\u8f7d\u7ed9\u591a\u53f0\u4e91\u4e3b\u673a\uff0c\u9002\u7528\u4e8e\u6570\u636e\u5904\u7406\u7684\u573a\u666f\u3002<\/p>\n<p class=\"\">\u6211\u4eec\u8fd8\u4f7f\u7528\u4e86OpenStack\u7684multi-backend\u529f\u80fd\uff0c\u652f\u6301\u591a\u79cd\u4e91\u786c\u76d8\u7c7b\u578b\uff0c\u73b0\u5728\u6211\u4eec\u7684\u4e91\u786c\u76d8\u7c7b\u578b\u6709\u6027\u80fd\u578b\u3001\u5bb9\u91cf\u578b\uff0c\u53ef\u4ee5\u6ee1\u8db3\u6570\u636e\u5e93\u548c\u5927\u6587\u4ef6\u5e94\u7528\u3002<\/p>\n<p class=\"\">&nbsp;<\/p>\n<h1 class=\"hidden\"><span id=\"i-4\">\u9ad8\u6027\u80fd<\/span><\/h1>\n<p class=\"hidden\">\u5b58\u50a8\u7cfb\u7edf\u4e3b\u8981\u7684\u6027\u80fd\u6307\u6807\u662fIOPS\u548cLatency\u3002\u6211\u4eec\u5bf9\u4e8eIOPS\u7684\u4f18\u5316\u5df2\u7ecf\u8fbe\u5230\u4e86\u786c\u4ef6\u7684\u74f6\u9888\uff0c\u9664\u975e\u66f4\u6362\u66f4\u5feb\u7684\u56fa\u6001\u786c\u76d8\u6216\u8005\u95ea\u5b58\u5361\uff0c\u6216\u8005\u662f\u6539\u53d8\u6574\u4e2a\u67b6\u6784\u3002\u6211\u4eec\u5bf9\u4e8eLatency\u7684\u4f18\u5316\u4e5f\u5feb\u63a5\u8fd1\u5b8c\u6210\uff0c\u53ef\u4ee5\u8fbe\u5230\u4f01\u4e1a\u7ea7\u5b58\u50a8\u7684\u6c34\u5e73\u3002<\/p>\n<p class=\"hidden\">&nbsp;<\/p>\n<h2 class=\"hidden\"><span id=\"IO\">\u590d\u6742\u7684I\/O\u6808<\/span><\/h2>\n<p class=\"hidden\">\u6574\u4e2a\u5757\u5b58\u50a8\u7cfb\u7edf\u6709\u7740\u957f\u957f\u7684I\/O\u6808\uff0c\u6bcf\u4e2aI\/O\u8bf7\u6c42\u8981\u7a7f\u8fc7\u5f88\u591a\u7ebf\u7a0b\u548c\u961f\u5217\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/c7201488270516.jpg\" id=\"ematt:493\"><\/a><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/7e031488271163.jpg\" id=\"ematt:518\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/7e031488271163.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">&nbsp;<\/p>\n<h2 class=\"hidden\"><span id=\"i-5\">\u4f18\u5316\u64cd\u4f5c\u7cfb\u7edf<\/span><\/h2>\n<p class=\"hidden\">\u4f18\u5316\u64cd\u4f5c\u7cfb\u7edf\u7684\u53c2\u6570\u53ef\u4ee5\u5145\u5206\u5229\u7528\u786c\u4ef6\u7684\u6027\u80fd\u3002<\/p>\n<ul class=\"hidden\" style=\"list-style-type:square;\">\n<li>CPU\n<ul>\n<li>\u5173\u95edCPU\u8282\u80fd\u6a21\u5f0f<\/li>\n<li>\u4f7f\u7528Cgroup\u7ed1\u5b9aCeph OSD\u8fdb\u7a0b\u5230\u56fa\u5b9a\u7684CPU Cores\u4e0a<\/li>\n<\/ul>\n<\/li>\n<li>Memory\n<ul>\n<li>\u5173\u95edNUMA<\/li>\n<li>\u8bbe\u7f6evm.swappiness=0<\/li>\n<\/ul>\n<\/li>\n<li>Block\n<ul>\n<li>\u8bbe\u7f6eSSD\u7684\u8c03\u5ea6\u7b97\u6cd5\u4e3adeadline<\/li>\n<\/ul>\n<\/li>\n<li>FileSystem\n<ul>\n<li>\u8bbe\u7f6e\u6302\u8f7d\u53c2\u6570\u201dnoatime nobarrier\u201d<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 class=\"hidden\"><span id=\"Qemu\">\u4f18\u5316Qemu<\/span><\/h2>\n<p class=\"hidden\">Qemu\u4f5c\u4e3a\u5757\u5b58\u50a8\u7cfb\u7edf\u7684\u76f4\u63a5\u6d88\u8d39\u8005\uff0c\u4e5f\u6709\u5f88\u591a\u503c\u5f97\u4f18\u5316\u7684\u5730\u65b9\u3002<\/p>\n<ul class=\"hidden\" style=\"list-style-type:disc;\">\n<li>Throttle: \u5e73\u6ed1\u7684I\/O QoS\u7b97\u6cd5<\/li>\n<li>RBD: \u652f\u6301discard\u548cflush<\/li>\n<li>Burst: \u652f\u6301\u7a81\u53d1\u8bf7\u6c42<\/li>\n<li>Virt-scsi: \u652f\u6301\u591a\u961f\u5217<\/li>\n<\/ul>\n<h2 class=\"hidden\"><span id=\"Ceph\">\u4f18\u5316Ceph<\/span><\/h2>\n<p class=\"hidden\">\u6211\u4eec\u5bf9\u4e8eCeph\u7684\u4f18\u5316\u662f\u91cd\u5934\u620f\uff0c\u6709\u5f88\u591a\u95ee\u9898\u4e5f\u662f\u65f6\u95f4\u957f\u3001\u89c4\u6a21\u4e0a\u53bb\u4e4b\u540e\u624d\u66b4\u9732\u51fa\u6765\u7684\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/2ebf1488270518.jpg\" id=\"ematt:495\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/2ebf1488270518.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a>&nbsp;<a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/35961488270519.jpg\" id=\"ematt:496\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/35961488270519.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a> <a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/95aa1488270519.jpg\" id=\"ematt:497\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/95aa1488270519.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a> <a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/d8f81488270520.jpg\" id=\"ematt:498\"><\/a><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/d8f81488270520.jpg\" id=\"ematt:498\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/d8f81488270520.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a> <a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/29521488270521.jpg\" id=\"ematt:499\"><\/a><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/95aa1488270519.jpg\" id=\"ematt:497\"><\/a><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/29521488270521.jpg\" id=\"ematt:499\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/29521488270521.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a> <a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/ae041488270522.jpg\" id=\"ematt:500\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/ae041488270522.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a> <a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/b68d1488270523.jpg\" id=\"ematt:501\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/b68d1488270523.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">&nbsp;<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/446a1488270524.jpg\" id=\"ematt:502\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/446a1488270524.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a>&nbsp;<a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/fb0b1488270525.jpg\" id=\"ematt:503\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/fb0b1488270525.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">&nbsp;<\/p>\n<h1 class=\"hidden\"><span id=\"i-6\">\u9ad8\u53ef\u9760\u6027<\/span><\/h1>\n<p class=\"hidden\">\u5b58\u50a8\u9700\u8981\u9ad8\u53ef\u9760\u6027\uff0c\u4fdd\u8bc1\u6570\u636e\u53ef\u7528\u5e76\u4e14\u6570\u636e\u4e0d\u4e22\u5931\u3002\u56e0\u4e3a\u6211\u4eec\u7684\u67b6\u6784\u4e2d\u6ca1\u6709\u4f7f\u7528UPS\u548cNVRAM\uff0c\u6240\u4ee5\u5199\u8bf7\u6c42\u7684\u6570\u636e\u90fd\u662f\u843d\u5230\u4e09\u5757\u786c\u76d8\u4e4b\u540e\u624d\u8fd4\u56de\uff0c\u8fd9\u6837UnitedStack\u6700\u5927\u9650\u5ea6\u5730\u4fdd\u8bc1\u4e86\u7528\u6237\u7684\u6570\u636e\u5b89\u5168\u3002<\/p>\n<h2 class=\"hidden\"><span id=\"i-7\">\u5982\u4f55\u8ba1\u7b97\u6301\u4e45\u6027<\/span><\/h2>\n<p class=\"hidden\">\u6301\u4e45\u6027\u662f\u6570\u636e\u4e22\u5931\u7684\u6982\u7387\uff0c\u53ef\u4ee5\u7528\u4e8e\u5ea6\u91cf\u4e00\u4e2a\u5b58\u50a8\u7cfb\u7edf\u7684\u53ef\u9760\u6027\uff0c\u4fd7\u79f0<br \/>\n\u201c\u591a\u5c11\u4e2a9\u201d\u3002\u6570\u636e\u7684\u653e\u7f6e(DataPlacement)\u51b3\u5b9a\u4e86\u6570\u636e\u6301\u4e45\u6027\uff0c\u800cCeph\u7684CRUSH MAP\u53c8\u51b3\u5b9a\u4e86\u6570\u636e\u7684\u653e\u7f6e\uff0c\u56e0\u6b64CRUSH<br \/>\nMAP\u7684\u8bbe\u7f6e\u51b3\u5b9a\u4e86\u6570\u636e\u6301\u4e45\u6027\u3002\u4f46\u662f\uff0c\u5373\u65f6\u6211\u4eec\u77e5\u9053\u9700\u8981\u4fee\u6539CRUSH MAP\u7684\u8bbe\u7f6e\uff0c\u4f46\u662f\u6211\u4eec\u5e94\u8be5\u600e\u4e48\u4fee\u6539CRUSH<br \/>\nMAP\u7684\u8bbe\u7f6e\u5462\uff0c\u6211\u4eec\u8be5\u5982\u4f55\u8ba1\u7b97\u6570\u636e\u6301\u4e45\u6027\u5462\uff1f<\/p>\n<p class=\"hidden\">\u6211\u4eec\u9700\u8981\u4e00\u4e2a\u8ba1\u7b97\u6a21\u578b\u548c\u8ba1\u7b97\u516c\u5f0f\uff0c\u901a\u8fc7\u4ee5\u4e0b\u8d44\u6599\uff0c\u6211\u4eec\u53ef\u4ee5\u6784\u5efa\u4e00\u4e2a\u8ba1\u7b97\u6a21\u578b\u548c\u8ba1\u7b97\u516c\u5f0f\u3002<\/p>\n<ul class=\"hidden\">\n<li><a href=\"https:\/\/wiki.ceph.com\/Development\/Reliability_model\">Reliability model<\/a><\/li>\n<li><a href=\"http:\/\/www.ssrc.ucsc.edu\/Papers\/weil-sc06.pdf\">\u300aCRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data\u300b<\/a><\/li>\n<li><a href=\"https:\/\/www.usenix.org\/conference\/atc13\/technical-sessions\/presentation\/cidon\">\u300aCopysets: Reducing the Frequency of Data Loss in Cloud Storage\u300b<\/a><\/li>\n<li><a href=\"https:\/\/www.ustack.com\/?p=122\">\u300aCeph\u7684CRUSH\u6570\u636e\u5206\u5e03\u7b97\u6cd5\u4ecb\u7ecd\u300b<\/a><\/li>\n<\/ul>\n<p class=\"hidden\">\u6700\u7ec8\u7684\u8ba1\u7b97\u516c\u5f0f\u662f\uff1a<span style=\"color:#000000;\"><strong> P = func(N, R, S, AFR)<\/strong> <\/span><\/p>\n<ul class=\"hidden\">\n<li>P: \u4e22\u5931\u6240\u6709\u526f\u672c\u7684\u6982\u7387<\/li>\n<li>N: \u6574\u4e2aCeph Pool\u4e2dOSD\u7684\u6570\u91cf<\/li>\n<li>R: \u526f\u672c\u6570<\/li>\n<li>S: \u5728\u4e00\u4e2aBucket\u4e2dOSD\u7684\u4e2a\u6570<\/li>\n<li>AFR: \u78c1\u76d8\u7684\u5e74\u5e73\u5747\u6545\u969c\u7387<\/li>\n<\/ul>\n<p class=\"hidden\">\u8fd9\u4e2a\u8ba1\u7b97\u6a21\u578b\u662f\u600e\u4e48\u6837\u5f97\u5230\u8ba1\u7b97\u516c\u5f0f\u7684\u5462\uff1f\u4e0b\u9762\u662f4\u4e2a\u6b65\u9aa4\u3002<\/p>\n<ol class=\"hidden\">\n<li>\u5148\u8ba1\u7b97\u786c\u76d8\u53d1\u751f\u6545\u969c\u7684\u6982\u7387\u3002<\/li>\n<li>\u5b9a\u4e49\u54ea\u79cd\u60c5\u51b5\u4e0b\u4e22\u5931\u6570\u636e\u4e0d\u80fd\u6062\u590d\u3002<\/li>\n<li>\u8ba1\u7b97\u4efb\u610fR\u4e2aOSD\u53d1\u751f\u6545\u969c\u7684\u6982\u7387\u3002<\/li>\n<li>\u8ba1\u7b97Ceph\u4e22\u5931PG\u7684\u6982\u7387\u3002<\/li>\n<\/ol>\n<p class=\"hidden\">\u786c\u76d8\u53d1\u751f\u6545\u969c\u7684\u6982\u7387\u662f\u7b26\u5408\u6cca\u677e\u5206\u5e03\u7684\uff1a<\/p>\n<ul class=\"hidden\">\n<li>fit = failures in time = 1\/MTTF ~= 1\/MTBF = AFR\/(24*365)<\/li>\n<li>\u4e8b\u4ef6\u6982\u7387 Pn(\u03bb,t) = (\u03bbt)n e-\u03bbt \/ n!<\/li>\n<\/ul>\n<p class=\"hidden\">Ceph\u7684\u6bcf\u4e2aPG\u662f\u6709R\u4efd\u526f\u672c\u7684\uff0c\u5b58\u653e\u5728R\u4e2aOSD\u4e0a\uff0c\u5f53\u5b58\u6709\u8fd9\u4e2aPG\u7684R\u4e2aOSD\u90fd\u53d1\u751f\u6545\u969c\u65f6\uff0c\u6570\u636e\u662f\u4e0d\u53ef\u8bbf\u95ee\u7684\uff0c\u5f53\u8fd9R\u4e2aOSD\u90fd\u635f\u574f\u65f6\uff0c\u6570\u636e\u662f\u4e0d\u53ef\u6062\u590d\u7684\u3002<\/p>\n<p class=\"hidden\">\u8ba1\u7b97\u4e00\u5e74\u5185\u4efb\u610fR\u4e2aOSD\u53d1\u751f\u76f8\u5173\u6545\u969c\u6982\u7387\u7684\u65b9\u6cd5\u662f\uff1a<\/p>\n<ol class=\"hidden\" style=\"list-style-type:lower-alpha;\">\n<li>\u8ba1\u7b97\u4e00\u5e74\u5185\u6709OSD\u53d1\u751f\u6545\u969c\u7684\u6982\u7387\u3002<\/li>\n<li>\u5728Recovery\u65f6\u95f4\u5185\uff0c(R-1)\u4e2aOSD\u53d1\u751f\u6545\u969c\u7684\u6982\u7387\u3002<\/li>\n<li>\u4ee5\u4e0a\u6982\u7387\u76f8\u4e58\uff0c\u5c31\u662f\u4e00\u5e74\u5185\u4efb\u610fR\u4e2aOSD\u53d1\u751f\u76f8\u5173\u6545\u969c\u6982\u7387\uff0c\u5047\u8bbe\u662f Pr\u3002<\/li>\n<li>N\u4e2aOSD\u4e2d\uff0c\u4efb\u610fR\u4e2aOSD\u7684\u7ec4\u5408\u6570\u662fC(R, N)\u3002<\/li>\n<\/ol>\n<p class=\"hidden\">\u56e0\u4e3a\u8fd9\u4efb\u610fR\u4e2aOSD\u4e0d\u4e00\u5b9a\u5b58\u6709\u540c\u4e00\u4e2aPG\u7684\u526f\u672c\uff0c\u6240\u4ee5\u8fd9\u4efb\u610fR\u4e2aOSD\u53d1\u751f\u6545\u969c\u5e76\u4e0d\u4f1a\u5bfc\u81f4\u6570\u636e\u4e0d\u53ef\u6062\u590d\uff0c\u4e5f\u5c31\u662f\u4e0d\u4e00\u5b9a\u4f1a\u5bfc\u81f4\u6570\u636e\u4e22\u5931\u3002<\/p>\n<p class=\"hidden\">\u5047\u8bbe\u6bcf\u4e2aPG\u5bf9\u5e94\u4e00\u7ec4OSD(\u6709R\u4e2aOSD\uff0c \u79f0\u4e4b\u4e3aCopy Set)\uff0c\u6709\u53ef\u80fd\u591a\u4e2aPG\u5bf9\u5e94\u540c\u4e00\u7ec4OSD\u3002\u5047\u8bbe\u6709M\u4e2a\u4e0d\u540c\u7684Copy Set\uff0c M\u662f\u4e00\u4e2a\u975e\u5e38\u91cd\u8981\u7684\u6570\u5b57\u3002<\/p>\n<p class=\"hidden\">\u6211\u4eec\u518d\u6765\u5bf9Copy Set\u8fdb\u884c\u7cbe\u786e\u7684\u5b9a\u4e49\uff1aCopy Set\u4e0a\u81f3\u5c11\u6709\u4e00\u4e2aPG\u7684\u6240\u6709\u526f\u672c\uff0c\u5f53\u8fd9\u4e2aCopy<br \/>\nSet\u635f\u574f\u65f6\uff0c\u8fd9\u4e2aPG\u7684\u6240\u6709\u526f\u672c\u4e5f\u4f1a\u4e22\u5931\uff0c\u8fd9\u4e2aPG\u4e0a\u7684\u6240\u6709\u6570\u636e\u5c31\u4e0d\u53ef\u6062\u590d\u3002\u6240\u4ee5Ceph\u4e22\u5931\u6570\u636e\u7684\u4e8b\u4ef6\u5c31\u662fCeph\u4e22\u5931PG\uff0c<br \/>\nCeph\u4e22\u5931PG\u5c31\u662f\u6709\u4e00\u4e2aCopy Set\u53d1\u751f\u635f\u574f\uff0c\u4e00\u4e2aCopy Set\u4e22\u5931\u7684\u6982\u7387\u5c31\u662f<strong> P = Pr * M \/ C(R, N) \u3002<\/strong><\/p>\n<p class=\"hidden\">\u6301\u4e45\u6027\u516c\u5f0f\u5c31\u662f\u4e2a\u91cf\u5316\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u6307\u660e\u52aa\u529b\u7684\u65b9\u5411\u3002\u6211\u4eec\u5148\u5c0f\u8bd5\u725b\u5200\uff0c\u7b97\u4e00\u4e0b\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u7684\u6301\u4e45\u6027\u662f\u591a\u5c11\uff1f<\/p>\n<p class=\"hidden\">\u5047\u8bbe\u6211\u4eec\u67093\u4e2a\u673a\u67b6\uff0c\u6bcf\u4e2a\u673a\u67b6\u4e0a\u67098\u53f0\u8282\u70b9\uff0c\u6bcf\u4e2a\u51e0\u70b9\u4e0a\u67093\u5757\u786c\u76d8\uff0c\u6bcf\u4e2a\u786c\u76d8\u505a\u4e00\u4e2aOSD\uff0c\u5219\u4e00\u5171\u670972\u4e2aOSD\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/85c71488270525.jpg\" id=\"ematt:504\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/85c71488270525.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">\u9ed8\u8ba4\u7684crush map\u8bbe\u7f6e\u5982\u4e0b\u6240\u793a<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/b8491488270526.jpg\" id=\"ematt:505\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/b8491488270526.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">\u901a\u8fc7\u6301\u4e45\u6027\u516c\u5f0f\uff0c\u6211\u4eec\u5f97\u5230\u4e0b\u9762\u7684\u6570\u636e\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/1b581488270527.jpg\" id=\"ematt:506\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/1b581488270527.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6301\u4e45\u6027\u67098\u4e2a9\uff0c\u5df2\u7ecf\u6bd4\u4e00\u822c\u7684RAID5\u3001RAID10\u8981\u9ad8\uff0c\u548cRAID6\u5dee\u4e0d\u591a\uff0c\u4f46\u662f\u8fd8\u4e0d\u80fd\u6ee1\u8db3\u516c\u6709\u4e91\u7684\u8981\u6c42\uff0c\u56e0\u4e3a\u516c\u6709\u4e91\u7684\u89c4\u6a21\u5f88\u5927\uff0c\u6545\u969c\u4e8b\u4ef6\u7684\u6570\u5b66\u671f\u671b\u4e5f\u4f1a\u5f88\u5927\uff0c\u8fd9\u5c31\u903c\u7740\u6211\u4eec\u5c3d\u91cf\u63d0\u9ad8\u6301\u4e45\u6027\u3002<\/p>\n<p class=\"hidden\">\u63d0\u9ad8\u6301\u4e45\u6027\u7684\u65b9\u6cd5\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u589e\u52a0\u526f\u672c\u6570\uff0c\u4f7f\u7528Erase Code\u7b49\u3002\u4e0d\u8fc7\u8fd9\u4e9b\u65b9\u6cd5\u90fd\u6709\u5f0a\u7aef\uff0c\u589e\u52a0\u526f\u672c\u6570\u52bf\u5fc5\u4f1a\u6269\u5927\u6210\u672c\uff1b\u4f7f\u7528Erase Code\u4f1a\u5bfc\u81f4Latency\u63d0\u9ad8\uff0c\u4e0d\u9002\u5408\u4e8e\u5757\u5b58\u50a8\u670d\u52a1\u3002\u5728\u6210\u672c\u548cLatency\u7684\u5236\u7ea6\u4e0b\uff0c\u8fd8\u6709\u4ec0\u4e48\u529e\u6cd5\u53ef\u4ee5\u63d0\u9ad8\u6301\u4e45\u6027\u5462\uff1f<\/p>\n<p class=\"hidden\">\u524d\u9762\u6211\u4eec\u5df2\u7ecf\u5f97\u5230\u4e00\u4e2a\u91cf\u5316\u516c\u5f0f<strong> P = Pr * M \/ C(R, N)<\/strong>\uff0c \u6211\u4eec\u4ece\u91cf\u5316\u516c\u5f0f\u5165\u624b\uff0c\u53bb\u63d0\u9ad8\u6301\u4e45\u6027(\u4e5f\u5c31\u662f\u964d\u4f4eP)\u3002\u8981\u60f3\u964d\u4f4eP\uff0c \u5c31\u5f97\u964d\u4f4ePr\u3001M\uff0c\u6216\u8005\u662f\u63d0\u9ad8C(R, N)\u3002\u56e0\u4e3aC(R, N)\u5df2\u7ecf\u786e\u5b9a\uff0c\u6211\u4eec\u53ea\u80fd\u964d\u4f4ePr\u548cM\u3002<\/p>\n<p class=\"hidden\">&nbsp;<\/p>\n<h2 class=\"hidden\"><span id=\"i-8\">\u964d\u4f4e\u6062\u590d\u65f6\u95f4<\/span><\/h2>\n<p class=\"hidden\">\u4ecePr\u7684\u5b9a\u4e49\u53ef\u4ee5\u77e5\u9053Pr\u4e0e\u6062\u590d\u65f6\u95f4\u6709\u5173\uff0c\u6062\u590d\u65f6\u95f4\u8d8a\u77ed\uff0cPr\u7684\u503c\u8d8a\u4f4e\u3002\u90a3\u4e48\u6062\u590d\u65f6\u95f4\u8ddf\u4ec0\u4e48\u6709\u5173\u7cfb\u5462\uff1f<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/8b951488270527.jpg\" id=\"ematt:507\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/8b951488270527.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a>&nbsp;<a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/53001488270528.jpg\" id=\"ematt:508\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/53001488270528.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">\u6211\u4eec\u9700\u8981\u589e\u52a0\u66f4\u591a\u7684OSD\u7528\u4e8e\u6570\u636e\u6062\u590d\uff0c\u4ee5\u4fbf\u51cf\u5c11\u6062\u590d\u65f6\u95f4\u3002\u76ee\u524dhost<br \/>\nbucket\u4e0d\u80fd\u589e\u52a0\u66f4\u591a\u7684OSD\uff0c\u8fd9\u662f\u56e0\u4e3a\u4e3b\u673a\u7684\u7f51\u7edc\u5e26\u5bbd\u9650\u5236\u548c\u786c\u76d8\u63d2\u69fd\u9650\u5236\u3002\u89e3\u51b3\u529e\u6cd5\u662f\u4eceCRUSH MAP\u5165\u624b\uff0c\u589e\u52a0\u4e00\u79cd\u865a\u62df\u7684Bucket:<br \/>\nosd-domain\uff0c \u4e0d\u518d\u4f7f\u7528host bucket\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/866b1488270529.jpg\" id=\"ematt:509\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/866b1488270529.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a>&nbsp;<a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/36531488270529.jpg\" id=\"ematt:510\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/36531488270529.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a> <a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/511e1488270530.jpg\" id=\"ematt:511\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/511e1488270530.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">\u901a\u8fc7\u4f7f\u7528osd-domain bucket\uff0c\u6211\u4eec\u628a\u6301\u4e45\u6027\u63d0\u9ad8\u4e8610\u500d\uff0c\u73b0\u5728\u6301\u4e45\u6027\u67099\u4e2a9\u3002<\/p>\n<p class=\"hidden\">&nbsp;<\/p>\n<h2 class=\"hidden\"><span id=\"Coepy_Set\">\u51cf\u5c11Coepy Set\u4e2a\u6570<\/span><\/h2>\n<p class=\"hidden\">\u5982\u4f55\u51cf\u5c11Copy Set\u7684\u4e2a\u6570\u5462\uff1fCopy Sets\u662f\u548cPG\u7684\u6620\u5c04\u6709\u5173\u7684\uff0c\u6211\u4eec\u4eceCRUSH<br \/>\nMAP\u7684\u89c4\u5219\u548c\u6761\u4ef6\u5165\u624b\uff0c\u51cf\u5c11Copy Set\u7684\u4e2a\u6570\u3002\u89e3\u51b3\u529e\u6cd5\u589e\u52a0\u865a\u62df\u7684Bucket: replica-domain\uff0c \u4e0d\u518d\u4f7f\u7528rack<br \/>\nbucket\u3002\u6bcf\u4e2aPG\u5fc5\u987b\u5728\u4e00\u4e2areplica-domain\u4e0a\uff0cPG\u4e0d\u80fd\u8de8replica-domain\uff0c\u8fd9\u6837\u53ef\u4ee5\u663e\u8457\u51cf\u5c11Copy Set\u7684\u4e2a\u6570\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/c97e1488270531.jpg\" id=\"ematt:512\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/c97e1488270531.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a>&nbsp;<a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/131d1488270532.jpg\" id=\"ematt:513\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/131d1488270532.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a> <a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/eb6f1488270533.jpg\" id=\"ematt:514\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/eb6f1488270533.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">\u901a\u8fc7\u4f7f\u7528replica-domain\uff0c\u73b0\u5728\u7684\u6301\u4e45\u6027\u670910\u4e2a9\uff0c\u6301\u4e45\u6027\u6bd4\u9ed8\u8ba4\u7684crush map\u8bbe\u7f6e\u63d0\u9ad8\u4e86100\u500d\u3002<\/p>\n<p class=\"hidden\">&nbsp;<\/p>\n<h1 class=\"hidden\"><span id=\"i-9\">\u81ea\u52a8\u5316\u8fd0\u7ef4<\/span><\/h1>\n<p class=\"hidden\">Ceph\u7684\u8fd0\u7ef4\u6bd4\u8f83\u8d39\u5fc3\uff0c\u7a0d\u6709\u5dee\u6c60\uff0c\u6574\u4e2a\u4e91\u5e73\u53f0\u90fd\u4f1a\u53d7\u5230\u5f71\u54cd\uff0c\u56e0\u6b64\u6211\u4eec\u89c9\u5f97\u8fd0\u7ef4\u7684\u76ee\u6807\u662f\u53ef\u7528\u6027\uff1a<\/p>\n<blockquote class=\"hidden\">\n<p><strong>\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u6570\u636e\u8fc1\u79fb\uff0c\u8fdb\u800c\u51cf\u5c11slow requests\uff0c\u4fdd\u8bc1SLA\u3002<\/strong><\/p>\n<\/blockquote>\n<h2 class=\"hidden\"><span id=\"i-10\">\u90e8\u7f72<\/span><\/h2>\n<p class=\"hidden\">\u6211\u4eec\u6574\u4e2aUnitedStack\u4e91\u5e73\u53f0\u90fd\u662f\u4f7f\u7528Puppet\u90e8\u7f72\u7684\uff0c\u56e0\u6b64\u6211\u4eec\u4f7f\u7528\u4e86Puppet\u53bb\u90e8\u7f72Ceph\u3002\u4e00\u822cCeph\u7684\u5b89\u88c5\u662f\u5206\u9636\u6bb5\u7684\uff1a<\/p>\n<ol class=\"hidden\">\n<li>\u5b89\u88c5\u597dCeph Monitor\u96c6\u7fa4\u3002<\/li>\n<li>\u683c\u5f0f\u5316Disk\uff0c\u4f7f\u7528\u6587\u4ef6\u7cfb\u7edf\u7684UUID\u53bb\u6ce8\u518cOSD\uff0c \u5f97\u5230OSD ID\u3002<\/li>\n<li>\u6839\u636eOSD ID\u53bb\u521b\u5efa\u6570\u636e\u76ee\u5f55\uff0c\u6302\u8f7dDisk\u5230\u6570\u636e\u76ee\u5f55\u4e0a\u3002<\/li>\n<li>\u521d\u59cb\u5316CRUSH MAP\u3002<\/li>\n<\/ol>\n<p class=\"hidden\">Puppet\u53ea\u9700\u8981\u5b8c\u6210\u524d\u4e09\u6b65\uff0c\u7b2c\u56db\u6b65\u4e00\u822c\u6839\u636e\u5177\u4f53\u60c5\u51b5\u7528\u811a\u672c\u53bb\u6267\u884c\u3002\u56e0\u4e3aOSD ID\u662f\u5728\u6267\u884c\u8fc7\u7a0b\u4e2d\u5f97\u5230\u7684\uff0c\u800cPuppet\u662f\u7f16\u8bd1\u540e\u6267\u884c\uff0c\u8fd9\u662f\u4e00\u4e2a\u60b2\u4f24\u7684\u6545\u4e8b\uff0c\u6240\u4ee5puppet-ceph\u6a21\u5757\u5fc5\u987b\u8bbe\u8ba1\u6210retry\u7684\u3002<\/p>\n<p class=\"hidden\">\u76f8\u6bd4eNovance\u548cStackforge\u7684puppet-ceph\u6a21\u5757\uff0c\u6211\u4eec\u7684puppet-ceph\u6a21\u5757\u7684\u4f18\u70b9\u662f\uff1a<\/p>\n<ul class=\"hidden\">\n<li>\u66f4\u77ed\u7684\u90e8\u7f72\u65f6\u95f4<\/li>\n<li>\u652f\u6301Ceph\u6240\u6709\u7684\u53c2\u6570<\/li>\n<li>\u652f\u6301\u591a\u79cd\u786c\u76d8\u7c7b\u578b<\/li>\n<li>\u4f7f\u7528WWN-ID\u66ff\u4ee3\u76d8\u7b26\u3002<\/li>\n<\/ul>\n<p class=\"hidden\">&nbsp;<\/p>\n<h2 class=\"hidden\"><span id=\"i-11\">\u7ef4\u62a4<\/span><\/h2>\n<p class=\"hidden\">\u5728\u5347\u7ea7Ceph\u3001\u66ff\u6362\u786c\u76d8\u3001\u91cd\u542f\u673a\u5668\u3001\u6269\u5c55\u96c6\u7fa4\u7684\u51c6\u5219\u662f\uff1a<\/p>\n<ul class=\"hidden\">\n<li>\u63d0\u524d\u901a\u77e5monitor\u54ea\u4e9bOSD\u9700\u8981\u7ef4\u62a4\uff0c\u907f\u514dslow requests<\/li>\n<li>\u6ce8\u610freplica-domain\u7684weight\uff0c\u907f\u514d\u4e0d\u5fc5\u8981\u7684\u6570\u636e\u8fc1\u79fb<\/li>\n<li>\u6ce8\u610frecovery\u7684\u901f\u5ea6\uff0c\u592a\u6162\u548c\u592a\u5feb\u7684\u90fd\u4e0d\u884c\u3002<\/li>\n<\/ul>\n<p class=\"hidden\">&nbsp;<\/p>\n<p class=\"hidden\">&nbsp;<\/p>\n<h2 class=\"hidden\"><span id=\"i-12\">\u76d1\u63a7<\/span><\/h2>\n<p class=\"hidden\">Ceph\u81ea\u5bb6\u7684Calamari\u957f\u5f97\u4e0d\u9519\uff0c\u4f46\u662f\u4e0d\u591f\u5b9e\u7528\uff0c\u800c\u4e14\u5b83\u7684\u90e8\u7f72\u3001\u6253\u5305\u8fd8\u4e0d\u5b8c\u5584\uff0c\u5728CentOS\u4e0a\u8fd8\u6709\u4e00\u4e9bBUG\uff0c\u6211\u4eec\u53ea\u80fd\u7ee7\u7eed\u4f7f\u7528\u539f\u6709\u7684\u5de5\u5177\u3002<\/p>\n<ul class=\"hidden\">\n<li>\u6536\u96c6\uff1a\u4f7f\u7528diamond\uff0c\u589e\u52a0\u65b0\u7684colloctor\uff0c\u7528\u4e8e\u6536\u96c6\u66f4\u8be6\u7ec6\u7684\u6570\u636e\u3002<\/li>\n<li>\u4fdd\u5b58\uff1a\u4f7f\u7528graphite\uff0c\u8bbe\u7f6e\u597d\u91c7\u96c6\u7cbe\u5ea6\u548c\u4fdd\u5b58\u7cbe\u5ea6\u3002<\/li>\n<li>\u5c55\u793a\uff1a\u4f7f\u7528grafana\uff0c\u6311\u4e86\u5341\u51e0\u4e2a\u5de5\u5177\uff0c\u53d1\u73b0\u8fd8\u662fgrafana\u597d\u770b\u597d\u7528\u3002<\/li>\n<li>\u62a5\u8b66\uff1azabbix agent &amp;&amp; ceph health<\/li>\n<\/ul>\n<p class=\"hidden\">\u6211\u4eec\u6839\u636eCeph\u8f6f\u4ef6\u67b6\u6784\u5bf9\u6bcf\u4e2aOSD\u5206\u6210\u4e86\u5f88\u591a\u4e2athrottle\u5c42\uff0c\u4e0b\u9762\u662fthrottle\u6a21\u578b\uff1a<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/be021488270533.jpg\" id=\"ematt:515\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/be021488270533.jpg\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" \/><\/a><\/div>\n<p class=\"hidden\">\u6709\u4e86throttle model\uff0c\u6211\u4eec\u53ef\u4ee5\u5bf9\u6bcf\u4e2athrottle\u8fdb\u884c\u76d1\u63a7\uff0c\u6211\u4eec\u5728diamond\u4e0a\u589e\u52a0\u4e86\u65b0\u7684collector\u7528\u4e8e\u5bf9\u8fd9\u4e9bthrottle\u8fdb\u884c\u76d1\u63a7\uff0c\u5e76\u91cd\u65b0\u5b9a\u4e49\u4e86metric name\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/c0861488270535.jpg\" id=\"ematt:516\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/c0861488270535.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<p class=\"hidden\">\u6700\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u5f97\u5230\u6bcf\u4e2aOSD\u6bcf\u5c42throttle\u7684\u76d1\u63a7\u6570\u636e\u3002\u4f46\u5e73\u65f6\u53ea\u4f1a\u5173\u6ce8IOPS\u3001\u541e\u5410\u7387\u3001OSD Journal\u5ef6\u8fdf\u3001\u8bfb\u8bf7\u6c42\u5ef6\u8fdf\u3001\u5bb9\u91cf\u4f7f\u7528\u7387\u7b49\u3002<\/p>\n<div class=\"hidden\"><a target=\"_blank\" href=\"\/notes\/content\/uploadfile\/201702\/a3251488270535.jpg\" id=\"ematt:517\"><img decoding=\"async\" src=\"\/notes\/content\/uploadfile\/201702\/a3251488270535.jpg\" title=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" alt=\"\u70b9\u51fb\u67e5\u770b\u539f\u56fe\" border=\"0\" width=\"640\" \/><\/a><\/div>\n<h2 class=\"hidden\"><span id=\"i-13\">\u4e8b\u6545<\/span><\/h2>\n<p class=\"hidden\">\u5728\u4e91\u5e73\u53f0\u4e0a\u7ebf\u5df2\u7ecf\u5feb\u4e00\u5e74\u4e86\uff0c\u6211\u4eec\u9047\u5230\u7684\u5927\u5c0f\u4e8b\u6545\u6709\uff1a<\/p>\n<ul class=\"hidden\">\n<li>SSD GC\u95ee\u9898\uff0c\u4f1a\u5bfc\u81f4\u8bfb\u5199\u8bf7\u6c42\u7684Latency\u975e\u5e38\u5927\uff0c\u98d9\u5230\u51e0\u767e\u6beb\u79d2\u3002<\/li>\n<li>\u7f51\u7edc\u6545\u969c\uff0c\u4f1a\u5bfc\u81f4Monitor\u628aOSD\u8bbe\u7f6e\u4e3adown\u72b6\u6001\u3002<\/li>\n<li>Ceph Bug\uff0c \u4f1a\u5bfc\u81f4OSD\u8fdb\u7a0b\u76f4\u63a5\u5d29\u6389\u3002<\/li>\n<li>XFS Bug\uff0c \u4f1a\u5bfc\u81f4\u96c6\u7fa4\u6240\u6709OSD\u8fdb\u7a0b\u76f4\u63a5\u5d29\u6389\u3002<\/li>\n<li>SSD \u635f\u574f\u3002<\/li>\n<li>Ceph PG inconsistent\u3002<\/li>\n<li>Ceph\u6570\u636e\u6062\u590d\u65f6\u628a\u7f51\u7edc\u5e26\u5bbd\u8dd1\u6ee1\u3002<\/li>\n<\/ul>\n<p class=\"hidden\">\u603b\u4f53\u6765\u8bf4\uff0cCeph\u662f\u975e\u5e38\u7a33\u5b9a\u548c\u53ef\u9760\u7684\u3002<\/p>\n<p class=\"hidden\">&nbsp;<\/p>\n<h1 class=\"hidden\"><span id=\"i-14\">&nbsp;\u672a\u6765<\/span><\/h1>\n<p class=\"hidden\">UnitedStack\u672a\u6765\u7684\u5de5\u4f5c\u4f1a\u96c6\u4e2d\u4e8e<\/p>\n<ul class=\"hidden\">\n<li>\u5757\u5b58\u50a8\u7cfb\u7edfLatency\u7684\u4f18\u5316<\/li>\n<li>\u5757\u5b58\u50a8\u7cfb\u7edf\u7ba1\u7406\u5e73\u53f0\u7684\u6539\u8fdb\uff0c\u4f7f\u5f97\u66f4\u591a\u8fd0\u7ef4\u64cd\u4f5c\u81ea\u52a8\u5316\uff0c\u76d1\u63a7\u4fe1\u606f\u53ef\u89c6\u5316<\/li>\n<li>\u5757\u5b58\u50a8\u7cfb\u7edf\u63d0\u4f9b\u66f4\u591a\u7684\u63a5\u53e3\uff0c\u5bf9\u63a5\u66f4\u591a\u7684\u5e94\u7528<\/li>\n<li>\u5757\u5b58\u50a8\u7cfb\u7edf\u65e0\u75db\u6269\u5bb9\uff0c\u51cf\u5c11\u6269\u5bb9\u5bf9\u4e0a\u5c42\u5e94\u7528\u7684\u5f71\u54cd<\/li>\n<li>\u63d0\u4f9b\u5173\u7cfb\u578b\u6570\u636e\u5e93\u670d\u52a1<\/li>\n<li>\u63d0\u4f9bNoSQL\u670d\u52a1<\/li>\n<li>\u2026\u2026<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<h1 class=\"hidden\"><span id=\"UnitedStack\">UnitedStack\u5757\u5b58\u50a8\u7cfb\u7edf<\/span><\/h1>\n<p class=\"\">\u5206\u5e03\u5f0f\u5b58\u50a8\u6709\u51fa\u8272\u7684\u6027\u80fd\uff0c\u53ef\u4ee5\u625b\u5f88\u591a\u6545\u969c\uff0c\u80fd\u591f\u8f7b\u677e\u6269\u5c55\uff0c\u6240\u4ee5\u6211\u4eecUnitedStack\u4f7f\u7528Ceph\u6784\u5efa\u4e86\u9ad8\u6027\u80fd\u3001\u9ad8\u53ef\u9760\u7684\u5757\u5b58\u50a8\u7cfb\u7edf\uff0c\u5e76\u4f7f\u7528\u5b83\u652f\u6491UnitedStack\u516c\u6709\u4e91\u548c\u6258\u7ba1\u4e91\u7684\u4e91\u4e3b\u673a\u3001\u4e91\u786c\u76d8\u670d\u52a1\u3002<\/p>\n<p class=\"\">\u7531\u4e8e\u4f7f\u7528\u5206\u5e03\u5f0f\u5757\u5b58\u50a8\u7cfb\u7edf\uff0c\u907f\u514d\u4e86\u590d\u5236\u955c\u50cf\u7684\u8fc7\u7a0b\uff0c\u6240\u4ee5\u4e91\u4e3b\u673a\u7684\u521b\u5efa\u65f6\u95f4\u53ef\u4ee5\u7f29\u77ed\u523010\u79d2\u4ee5\u5185\uff0c\u800c\u4e14\u4e91\u4e3b\u673a\u8fd8\u80fd\u5feb\u901f\u70ed\u8fc1\u79fb\uff0c\u65b9\u4fbf\u4e86\u8fd0\u7ef4\u4eba\u5458\u5bf9\u7269\u7406\u670d\u52a1\u5668\u4e0a\u786c\u4ef6\u548c\u8f6f\u4ef6\u7684\u7ef4\u62a4\u3002<\/p>\n<p class=\"\">\u7528\u6237\u5bf9\u4e8e\u5757\u5b58\u50a8\u7cfb\u7edf\u6700\u76f4\u89c2\u7684\u611f\u53d7\u6765\u6e90\u4e8e\u4e91\u786c\u76d8\u670d\u52a1\uff0c\u73b0\u5728\u6211\u4eec\u7684\u4e91\u786c\u76d8\u7684\u7279\u70b9\u662f\uff1a<\/p>\n<ul class=\"\">\n<li>\u6bcf\u4e2a\u4e91\u786c\u76d8\u6700\u5927\u652f\u6301 6000 IOPS\u548c170 MB\/s\u7684\u541e\u5410\u7387\uff0c95%\u76844...<\/li>\n<\/ul>\n<p> <a href=\"https:\/\/www.xiaobo.li\/notes\/archives\/560\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[292],"tags":[264],"class_list":["post-560","post","type-post","status-publish","format-standard","hentry","category-storage","tag-ceph"],"_links":{"self":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/comments?post=560"}],"version-history":[{"count":0,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/posts\/560\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/media?parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/categories?post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xiaobo.li\/notes\/wp-json\/wp\/v2\/tags?post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}