{"id":5420,"date":"2020-07-31T21:44:18","date_gmt":"2020-07-31T13:44:18","guid":{"rendered":"http:\/\/39.97.231.10\/?p=5420"},"modified":"2020-07-31T21:44:18","modified_gmt":"2020-07-31T13:44:18","slug":"%e5%88%86%e5%b8%83%e5%bc%8f%e6%96%87%e4%bb%b6%e7%b3%bb%e7%bb%9f-glusterfs","status":"publish","type":"post","link":"http:\/\/www.weijing.co\/?p=5420","title":{"rendered":"\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u2014GlusterFS"},"content":{"rendered":"<header class=\\\"entry-header\\\">\n<h1 class=\\\"entry-title\\\"><span style=\\\"font-size: 1.38462rem;\\\">1.1 \u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf<\/span><\/h1>\n<\/header>\n<div class=\\\"entry-content\\\">\n<div class=\\\"single-content\\\">\n<h3><span id=\\\"111\\\">1.1.1 \u4ec0\u4e48\u662f\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf<\/span><\/h3>\n<p>\u76f8\u5bf9\u4e8e\u672c\u673a\u7aef\u7684\u6587\u4ef6\u7cfb\u7edf\u800c\u8a00\uff0c\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\uff08\u82f1\u8bed\uff1a<em>Distributed file system<\/em>,\u00a0<em>DFS<\/em>\uff09\uff0c\u6216\u662f\u7f51\u7edc\u6587\u4ef6\u7cfb\u7edf\uff08\u82f1\u8bed\uff1a<em>Network File System<\/em>\uff09\uff0c\u662f\u4e00\u79cd\u5141\u8bb8\u6587\u4ef6\u901a\u8fc7\u7f51\u7edc\u5728\u591a\u53f0\u4e3b\u673a\u4e0a\u5206\u4eab\u7684\u6587\u4ef6\u7cfb\u7edf\uff0c\u53ef\u8ba9\u591a\u673a\u5668\u4e0a\u7684\u591a\u7528\u6237\u5206\u4eab\u6587\u4ef6\u548c\u5b58\u50a8\u7a7a\u95f4\u3002<br \/>\n\u5728\u8fd9\u6837\u7684\u6587\u4ef6\u7cfb\u7edf\u4e2d\uff0c\u5ba2\u6237\u7aef\u5e76\u975e\u76f4\u63a5\u8bbf\u95ee\u5e95\u5c42\u7684\u6570\u636e\u5b58\u50a8\u533a\u5757\uff0c\u800c\u662f\u901a\u8fc7\u7f51\u7edc\uff0c\u4ee5\u7279\u5b9a\u7684\u901a\u4fe1\u534f\u8bae\u548c\u670d\u52a1\u5668\u6c9f\u901a\u3002\u501f\u7531\u901a\u4fe1\u534f\u8bae\u7684\u8bbe\u8ba1\uff0c\u53ef\u4ee5\u8ba9\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u7aef\u90fd\u80fd\u6839\u636e\u8bbf\u95ee\u63a7\u5236\u6e05\u5355\u6216\u662f\u6388\u6743\uff0c\u6765\u9650\u5236\u5bf9\u4e8e\u6587\u4ef6\u7cfb\u7edf\u7684\u8bbf\u95ee\u3002<\/p>\n<h3><span id=\\\"112_glusterfs\\\">1.1.2 glusterfs\u662f\u4ec0\u4e48<\/span><\/h3>\n<p>Gluster\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u3002\u5b83\u662f\u5404\u79cd\u4e0d\u540c\u7684\u5b58\u50a8\u670d\u52a1\u5668\u4e4b\u4e0a\u7684\u7ec4\u5408\uff0c\u8fd9\u4e9b\u670d\u52a1\u5668\u7531\u4ee5\u592a\u7f51\u6216\u65e0\u9650\u5e26\u5bbd\u6280\u672fInfiniband\u4ee5\u53ca\u8fdc\u7a0b\u76f4\u63a5\u5185\u5b58\u8bbf\u95eeRDMA\u4e92\u76f8\u878d\u6c47\uff0c\u6700\u7ec8\u6240\u5f62\u6210\u7684\u4e00\u4e2a\u5927\u7684\u5e76\u884c\u6587\u4ef6\u7cfb\u7edf\u7f51\u7edc\u3002<br \/>\n<img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf---GlusterFS\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20180207214211138-322405144.png\\\" \/><br \/>\n\u5b83\u6709\u5305\u62ec\u4e91\u8ba1\u7b97\u5728\u5185\u7684\u591a\u91cd\u5e94\u7528\uff0c\u8bf8\u5982\uff1a\u751f\u7269\u533b\u836f\u79d1\u5b66\uff0c\u6587\u6863\u5b58\u50a8\u3002Gluster\u662f\u7531GNU\u6258\u7ba1\u7684\u81ea\u7531\u8f6f\u4ef6\uff0c\u8bc1\u4e66\u662fAGPL\u3002Gluster\u516c\u53f8\u662fGluster\u7684\u9996\u8981\u5546\u4e1a\u8d5e\u52a9\u5546\uff0c\u4e14\u63d0\u4f9b\u5546\u4e1a\u4ea7\u54c1\u4ee5\u53ca\u57fa\u4e8eGluster\u7684\u89e3\u51b3\u65b9\u6848\u3002<\/p>\n<h2><span id=\\\"12_GlusterFS\\\">1.2 \u5feb\u901f\u90e8\u7f72GlusterFS<\/span><\/h2>\n<h3><span id=\\\"121\\\">1.2.1 \u73af\u5883\u8bf4\u660e<\/span><\/h3>\n<p>\u6ce8\u610f\uff1a\u6700\u5c11\u9700\u8981\u62e5\u6709\u4e24\u5757\u786c\u76d8<br \/>\n<img src=\\\"https:\/\/clsn.io\/wp-content\/themes\/clsn-003\/img\/blank.gif\\\" alt=\\\"\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf---GlusterFS\\\" data-original=\\\"https:\/\/clsn.io\/wp-content\/uploads\/2018\/03\/1190037-20180207214222451-1627110552.png\\\" \/><br \/>\n\u7cfb\u7edf\u73af\u5883\u8bf4\u660e<br \/>\nglusterfs01\u4fe1\u606f<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]# hostname\nglusterfs01\n[root@glusterfs01 ~]# uname -r\n3.10.0-693.el7.x86_64\n[root@glusterfs01 ~]# sestatus\nSELinux status:                 disabled\n[root@glusterfs01 ~]# systemctl status firewalld.service\n\u25cf firewalld.service - firewalld - dynamic firewall daemon\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/firewalld.service; disabled; vendor preset: enabled)\n   Active: inactive (dead)\n     Docs: man:firewalld(1)\n[root@glusterfs01 ~]# hostname -I\n10.0.0.120 172.16.1.120<\/pre>\n<\/div>\n<\/div>\n<p>glusterfs02\u4fe1\u606f<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs02 ~]# uname -r\n3.10.0-693.el7.x86_64\n[root@glusterfs02 ~]# sestatus\nSELinux status:                 disabled\n[root@glusterfs02 ~]# systemctl status firewalld.service\n\u25cf firewalld.service - firewalld - dynamic firewall daemon\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/firewalld.service; disabled; vendor preset: enabled)\n   Active: inactive (dead)\n     Docs: man:firewalld(1)\n[root@glusterfs02 ~]# hostname -I\n10.0.0.121 172.16.1.121<\/pre>\n<\/div>\n<\/div>\n<p>\u6ce8\u610f\u914d\u7f6e\u597dhosts\u89e3\u6790<\/p>\n<h3><span id=\\\"122\\\">1.2.2 \u524d\u671f\u51c6\u5907<\/span><\/h3>\n<p>gluster01\u4e3b\u673a\u6302\u8f7d\u78c1\u76d8<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]# mkfs.xfs \/dev\/sdb\n[root@glusterfs01 ~]# mkdir -p \/data\/brick1\n[root@glusterfs01 ~]# echo \\'\/dev\/sdb \/data\/brick1 xfs defaults 0 0\\' &gt;&gt; \/etc\/fstab\n[root@glusterfs01 ~]# mount -a &amp;&amp; mount<\/pre>\n<\/div>\n<\/div>\n<p>gluster02\u4e3b\u673a\u6302\u8f7d\u78c1\u76d8<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs02 ~]# mkfs.xfs \/dev\/sdb\n[root@glusterfs02 ~]# mkdir -p \/data\/brick1\n[root@glusterfs02 ~]# echo \\'\/dev\/sdb \/data\/brick1 xfs defaults 0 0\\' &gt;&gt; \/etc\/fstab\n[root@glusterfs02 ~]# mount -a &amp;&amp; mount<\/pre>\n<\/div>\n<\/div>\n<h2><span id=\\\"13_GlusterFS\\\">1.3 \u90e8\u7f72GlusterFS<\/span><\/h2>\n<h3><span id=\\\"131\\\">1.3.1 \u5b89\u88c5\u8f6f\u4ef6<\/span><\/h3>\n<p>\u5728\u4e24\u4e2a\u8282\u70b9\u4e0a\u64cd\u4f5c<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>yum install centos-release-gluster -y\n# \u4fee\u6539\u955c\u50cf\u6e90\u52a0\u901f\nsed -i \\'s#http:\/\/mirror.centos.org#https:\/\/mirrors.shuosc.org#g\\' \/etc\/yum.repos.d\/CentOS-Gluster-3.12.repo\nyum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma<\/pre>\n<\/div>\n<\/div>\n<p>\u8f6f\u4ef6\u7248\u672c<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]#  rpm  -qa glusterfs\nglusterfs-3.12.5-2.el7.x86_64<\/pre>\n<\/div>\n<\/div>\n<h3><span id=\\\"132_GlusterFS\\\">1.3.2 \u542f\u52a8GlusterFS<\/span><\/h3>\n<p>\u5728\u4e24\u4e2a\u8282\u70b9\u4e0a\u90fd\u8fdb\u884c\u64cd\u4f5c<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]# systemctl start glusterd.service\n[root@glusterfs01 ~]# systemctl status glusterd.service\n\u25cf glusterd.service - GlusterFS, a clustered file-system server\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/glusterd.service; disabled; vendor preset: disabled)\n   Active: active (running) since \u4e09 2018-02-07 21:02:44 CST; 2s ago\n  Process: 1923 ExecStart=\/usr\/sbin\/glusterd -p \/var\/run\/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0\/SUCCESS)\n Main PID: 1924 (glusterd)\n   CGroup: \/system.slice\/glusterd.service\n           \u2514\u25001924 \/usr\/sbin\/glusterd -p \/var\/run\/glusterd.pid --log-level INFO\n2\u6708 07 21:02:44 glusterfs01 systemd[1]: Starting GlusterFS, a clustered file-system server...\n2\u6708 07 21:02:44 glusterfs01 systemd[1]: Started GlusterFS, a clustered file-system server.\nHint: Some lines were ellipsized, use -l to show in full.<\/pre>\n<\/div>\n<\/div>\n<h3><span id=\\\"133\\\">1.3.3 \u914d\u7f6e\u4e92\u4fe1\uff08\u53ef\u4fe1\u6c60\uff09<\/span><\/h3>\n<p>\u5728glusterfs01\u4e0a\u64cd\u4f5c<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]# gluster peer probe glusterfs02\npeer probe: success.<\/pre>\n<\/div>\n<\/div>\n<p>\u5728glusterfs02\u4e0a\u64cd\u4f5c<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs02 ~]# gluster peer probe glusterfs01\npeer probe: success.<\/pre>\n<\/div>\n<\/div>\n<p>\u6ce8\u610f\uff1a\u4e00\u65e6\u5efa\u7acb\u4e86\u8fd9\u4e2a\u6c60\uff0c\u53ea\u6709\u53d7\u4fe1\u4efb\u7684\u6210\u5458\u53ef\u80fd\u4f1a\u5c06\u65b0\u7684\u670d\u52a1\u5668\u63a2\u6d4b\u5230\u6c60\u4e2d\u3002\u65b0\u670d\u52a1\u5668\u65e0\u6cd5\u63a2\u6d4b\u6c60\uff0c\u5fc5\u987b\u4ece\u6c60\u4e2d\u63a2\u6d4b\u3002<\/p>\n<h3><span id=\\\"134\\\">1.3.4 \u68c0\u67e5\u5bf9\u7b49\u72b6\u6001<\/span><\/h3>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]#  gluster peer status\nNumber of Peers: 1\nHostname: 10.0.0.121\nUuid: 61d043b0-5582-4354-b475-2626c88bc576\nState: Peer in Cluster (Connected)\nOther names:\nglusterfs02<\/pre>\n<\/div>\n<\/div>\n<p>\u6ce8\u610f\uff1a\u770b\u5230\u7684UUID\u5e94\u4e0d\u76f8\u540c\u3002<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs02 ~]#  gluster peer status\nNumber of Peers: 1\nHostname: glusterfs01\nUuid: e2a9367c-fe96-446d-a631-194970c18750\nState: Peer in Cluster (Connected)<\/pre>\n<\/div>\n<h3><span id=\\\"135_GlusterFS\\\">1.3.5 \u5efa\u7acb\u4e00\u4e2aGlusterFS\u5377<\/span><\/h3>\n<p>\u5728\u4e24\u4e2a\u8282\u70b9\u4e0a\u64cd\u4f5c<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>mkdir -p \/data\/brick1\/gv0<\/pre>\n<\/div>\n<\/div>\n<p>\u5728\u4efb\u610f\u4e00\u4e2a\u8282\u70b9\u4e0a\u6267\u884c<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]# gluster volume create gv0 replica 2 glusterfs01:\/data\/brick1\/gv0 glusterfs02:\/data\/brick1\/gv0\nReplica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http:\/\/docs.gluster.org\/en\/latest\/Administrator%20Guide\/Split%20brain%20and%20ways%20to%20deal%20with%20it\/.\nDo you still want to continue?\n (y\/n) y\nvolume create: gv0: success: please start the volume to access data<\/pre>\n<\/div>\n<\/div>\n<p>\u542f\u7528\u5b58\u50a8\u5377<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]# gluster volume start gv0\nvolume start: gv0: success<\/pre>\n<\/div>\n<\/div>\n<p>\u67e5\u770b\u4fe1\u606f<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]# gluster volume info\nVolume Name: gv0\nType: Replicate\nVolume ID: 865899b9-1e5a-416a-8374-63f7df93e4f5\nStatus: Started\nSnapshot Count: 0\nNumber of Bricks: 1 x 2 = 2\nTransport-type: tcp\nBricks:\nBrick1: glusterfs01:\/data\/brick1\/gv0\nBrick2: glusterfs02:\/data\/brick1\/gv0\nOptions Reconfigured:\ntransport.address-family: inet\nnfs.disable: on\nperformance.client-io-threads: off<\/pre>\n<\/div>\n<\/div>\n<p>\u81f3\u6b64\uff0c\u670d\u52a1\u7aef\u914d\u7f6e\u7ed3\u675f<\/p>\n<h2><span id=\\\"14\\\">1.4 \u5ba2\u6237\u7aef\u6d4b\u8bd5<\/span><\/h2>\n<h3><span id=\\\"141\\\">1.4.1 \u5b89\u88c5\u5ba2\u6237\u7aef\u5de5\u5177<\/span><\/h3>\n<p>\u6302\u8f7d\u6d4b\u8bd5<\/p>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@clsn6 ~]# yum install centos-release-gluster -y\n[root@clsn6 ~]# yum install -y glusterfs glusterfs-fuse<\/pre>\n<\/div>\n<p>\u6ce8\u610f\uff1a\u8981\u914d\u7f6e\u597dhosts\u6587\u4ef6\uff0c\u5426\u5219\u8fde\u63a5\u4f1a\u51fa\u9519<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@clsn6 ~]# mount.glusterfs  glusterfs01:\/gv0 \/mnt\n[root@clsn6 ~]# df -h\nFilesystem        Size  Used Avail Use% Mounted on\n\/dev\/sda3          19G  2.2G   16G  13% \/\ntmpfs             238M     0  238M   0% \/dev\/shm\n\/dev\/sda1         190M   40M  141M  22% \/boot\nglusterfs01:\/gv0  100G   33M  100G   1% \/mnt<\/pre>\n<\/div>\n<\/div>\n<h3><span id=\\\"142\\\">1.4.2 \u590d\u5236\u6587\u4ef6\u6d4b\u8bd5<\/span><\/h3>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@clsn6 ~]# for i in `seq -w 1 100`; do cp -rp \/var\/log\/messages \/mnt\/copy-test-$i; done<\/pre>\n<\/div>\n<\/div>\n<p>\u5ba2\u6237\u7aef\u68c0\u67e5\u6587\u4ef6<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@clsn6 ~]#  ls -lA \/mnt\/copy* | wc -l\n10<\/pre>\n<\/div>\n<\/div>\n<p>\u670d\u52a1\u8282\u70b9\u68c0\u67e5\u6587\u4ef6<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs01 ~]#   ls -lA \/data\/brick1\/gv0\/copy* |wc -l\n100<\/pre>\n<\/div>\n<\/div>\n<p>\u670d\u52a1\u8282\u70b9\u68c0\u67e5\u6587\u4ef6<\/p>\n<div>\n<div class=\\\"cnblogs_code\\\">\n<pre>[root@glusterfs02 ~]#   ls -lA \/data\/brick1\/gv0\/copy* |wc -l\n100<\/pre>\n<\/div>\n<\/div>\n<p>\u81f3\u6b64Glusterfs\u7b80\u5355\u914d\u7f6e\u5b8c\u6210\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>1.1 \u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf 1.1.1 \u4ec0\u4e48\u662f\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf \u76f8\u5bf9\u4e8e\u672c\u673a\u7aef\u7684\u6587\u4ef6\u7cfb\u7edf\u800c\u8a00\uff0c\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\uff08\u82f1\u8bed\uff1aD &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.weijing.co\/?p=5420\"> <span class=\"screen-reader-text\">\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u2014GlusterFS<\/span> \u67e5\u770b\u5168\u6587 &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[115,142],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false,"shop_catalog":false,"shop_single":false,"shop_thumbnail":false},"uagb_author_info":{"display_name":"weijing","author_link":"http:\/\/www.weijing.co\/?author=4"},"uagb_comment_info":0,"uagb_excerpt":"1.1 \u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf 1.1.1 \u4ec0\u4e48\u662f\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf \u76f8\u5bf9\u4e8e\u672c\u673a\u7aef\u7684\u6587\u4ef6\u7cfb\u7edf\u800c\u8a00\uff0c\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\uff08\u82f1\u8bed\uff1aD&hellip;","_links":{"self":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/5420"}],"collection":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5420"}],"version-history":[{"count":0,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/5420\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5420"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}