{"id":773,"date":"2017-04-17T02:17:42","date_gmt":"2017-04-17T02:17:42","guid":{"rendered":"http:\/\/www.selinuxplus.com\/?p=773"},"modified":"2017-04-17T02:30:39","modified_gmt":"2017-04-17T02:30:39","slug":"pg%e4%b8%8eosd%e7%9a%84%e5%af%b9%e5%ba%94%e5%85%b3%e7%b3%bb%e6%9f%a5%e6%89%be","status":"publish","type":"post","link":"http:\/\/www.selinuxplus.com\/?p=773","title":{"rendered":"pg\u4e0eosd\u7684\u5bf9\u5e94\u5173\u7cfb\u67e5\u627e"},"content":{"rendered":"<p>\u5229\u7528pg\u5728pool\u4ee5\u53caosd\u7684\u5206\u5e03\u5173\u7cfb\u53ef\u4ee5\u66f4\u597d\u7684\u5206\u6790pg\u7684\u5206\u5e03\u662f\u5426\u5747\u5300 <\/p>\n<pre class=\"lang:default decode:true \" > pool:      0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17| SUM \r\n------------------------------------------------------------------------------------------------------- \r\nosd.0      29    9   13   12   10   14    9   14    7   13   10    9   11   18  355  329  305   49| 1216 \r\nosd.1      25   11    6   11   16   10    7    7   13   11    9    8   15   14  316  369  339   40| 1227 \r\nosd.2      23   10   12   10   16   13    8   11   14   10   10   11   14   23  344  339  340   37| 1245 \r\nosd.3      22    8    8   10   10    9    9   12   12    9   12    9    8   21  325  337  361   40| 1222 \r\nosd.4      13   15   11   10   12    9   14    6   13   10   10   14   13   25  344  358  358   39| 1274 \r\nosd.5      13    9   11    9    8   12   15   13   10   15    9   12    7   24  339  327  355   46| 1234 \r\nosd.6      25   13   10   10   11    7    8   10    8    8   13    6    9   23  322  337  349   46| 1215 \r\nosd.7      16    9   10   12    5   12   16   11   10   14    9   15    9   18  358  348  335   45| 1252 \r\nosd.8      26   12   15   12    8   10   10   12    9    6   14   12   10   26  369  328  330   42| 1251 \r\n------------------------------------------------------------------------------------------------------- \r\nSUM:      192   96   96   96   96   96   96   96   96   96   96   96   96  192 3072 3072 3072  384 \r\nMAX:       29   15   15   12   16   14   16   14   14   15   14   15   15   26  369  369  361   49 \r\nMAX osd:   .0   .4   .8   .0   .1   .0   .7   .0   .2   .5   .8   .7   .1   .8   .8   .1   .3   .0 \r\nosd Sum:    9    9    9    9    9    9    9    9    9    9    9    9    9    9    9    9    9    9 \r\nMIN osd:   .5   .3   .1   .5   .7   .6   .1   .4   .0   .8   .1   .6   .5   .1   .1   .5   .0   .2 <\/pre>\n<p>\u9996\u5148\u83b7\u53d6pg\u7684query\u6570\u636e\u3002\u5229\u7528Ansible\u6a21\u5757\u83b7\u53d6\u6570\u636e\u3002\u6570\u636e\u5982\u4e0b\uff1a<\/p>\n<pre class=\"lang:default decode:true \" >    \"ceph_facts\": {\r\n        \"update_pg_state\": {\r\n            \"osds\": {\r\n                \"0\": {\r\n                    \"0\": {\r\n                        \"pgsize\": 29\r\n                    }, \r\n                    \"1\": {\r\n                        \"pgsize\": 9\r\n                    }, \r\n                    \"10\": {\r\n                        \"pgsize\": 10\r\n                    }, \r\n                    \"11\": {\r\n                        \"pgsize\": 9\r\n...\r\n                    \"pgsum\": 96\r\n                }\r\n            }\r\n        }\r\n    }<\/pre>\n<p>\u5229\u7528python\u5206\u6790\u8be5\u6570\u636e\uff1a<\/p>\n<pre class=\"lang:default decode:true \" >def ceph_pg_parser(stat_dic):\r\n    _str = \"\"\r\n    pg_stat = stat_dic.get('ceph_facts')\r\n    pool_pgs = pg_stat.get('update_pg_state',[]).get('pools',[])\r\n    osd_pgs = pg_stat.get('update_pg_state',[]).get('osds',[])\r\n    if len(pool_pgs) &lt; 0 and len(osd_pgs) &lt; 0: return\r\n    _str += \"pool%-3s\" % \":\"\r\n    for pg in sorted(pool_pgs,key=int):\r\n       _str += \"%5s\" %  pg\r\n    _str += \"|%5s\" % \"SUM\\n\"\r\n    _str += \"--------\" + \"-----\" * len(pool_pgs) + \"-----\\n\"\r\n    for osdid in sorted(osd_pgs,key=int):\r\n       _str += \"osd.%-4s\" % osdid\r\n       for pg in sorted(pool_pgs,key=int):\r\n          if pool_pgs[pg].has_key(osdid):\r\n             _str += \"%5s\" % pool_pgs[pg][osdid]['pgsize']\r\n          else:\r\n             _str += \"%5s\" % 0\r\n       _str += \"|%5s\\n\" % osd_pgs[osdid]['pgsum']\r\n    _str += \"--------\" + \"-----\" * len(pool_pgs) + \"-----\\n\"\r\n    _str += \"SUM:    \"\r\n    for pg in sorted(pool_pgs,key=int):\r\n      _str += \"%5s\" % pool_pgs[pg]['pgsum']\r\n    _str += \"\\n\"\r\n    _str += \"MAX:    \"\r\n    for pg in sorted(pool_pgs,key=int):\r\n      _str += \"%5s\" % pool_pgs[pg]['max']\r\n    _str += \"\\n\"\r\n    _str += \"MAX osd:\"\r\n    for pg in sorted(pool_pgs,key=int):\r\n      _str += \"%5s\" % (\".\" + str(pool_pgs[pg]['max_osd_id']))\r\n    _str += \"\\n\"\r\n    _str += \"OSD Sum:\"\r\n    for pg in sorted(pool_pgs,key=int):\r\n      _str += \"%5d\" % (len(pool_pgs[pg])-int(5))\r\n    _str += \"\\n\"\r\n    _str += \"MIN osd:\"\r\n    for pg in sorted(pool_pgs,key=int):\r\n      _str += \"%5s\" % (\".\" + str(pool_pgs[pg]['min_osd_id']))\r\n    _str += \"\\n\"\r\n    return _str\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u5229\u7528pg\u5728pool\u4ee5\u53caosd\u7684\u5206\u5e03\u5173\u7cfb\u53ef\u4ee5\u66f4\u597d\u7684\u5206&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[84],"tags":[180,167,166,168],"_links":{"self":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/773"}],"collection":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=773"}],"version-history":[{"count":7,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/773\/revisions"}],"predecessor-version":[{"id":780,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/773\/revisions\/780"}],"wp:attachment":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=773"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}