{"id":32670,"date":"2024-04-22T09:15:13","date_gmt":"2024-04-22T07:15:13","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=32670"},"modified":"2024-04-23T10:59:52","modified_gmt":"2024-04-23T08:59:52","slug":"another-file-system-for-linux-bcachefs-3-mirroring-replicas","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/","title":{"rendered":"Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">This is the third post in this little series about <a href=\"https:\/\/bcachefs.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">bcachefs<\/a>. The <a href=\"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/\" target=\"_blank\" rel=\"noreferrer noopener\">first post was all about the basics<\/a> while <a href=\"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-2-multi-device-file-systems\/\" target=\"_blank\" rel=\"noreferrer noopener\">the second post introduced bcachefs over multiple devices<\/a>. What we did not discuss so far is, what bcache has to offer when it comes to mirroring. By default bcachefs stripes your data across all the devices in the file systems. As devices do not need to be of the same size, the one(s) with the most free space will be favored. The goal of this is, that all devices fill up at the same pace. This usually does not protect you from a failure of a device, except you lose a device which does not contain any data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To address this, bcachefs comes with a concept which is called &#8220;replication&#8221;. You can think of replication like a <a href=\"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-1-basics\/\" target=\"_blank\" rel=\"noreferrer noopener\">RAID 1\/10<\/a>, which means mirroring and striping. Given the list of available devices in the setup we&#8217;re currently using we have enough devices to play with this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ lsblk | grep -w &quot;4G&quot;\n\u2514\u2500vda3 254:3    0  1.4G  0 part &#x5B;SWAP]\nvdb    254:16   0    4G  0 disk \nvdc    254:32   0    4G  0 disk \nvdd    254:48   0    4G  0 disk \nvde    254:64   0    4G  0 disk \nvdf    254:80   0    4G  0 disk \nvdg    254:96   0    4G  0 disk \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s assume we want to have a 4gb file system but we also want to have the data mirrored to another device, just in case we lose one. With bcachefs this can easily be done like this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ bcachefs format --force --replicas=2 \/dev\/vdb \/dev\/vdc\ntumbleweed:~ $ mount -t bcachefs \/dev\/vdb:\/dev\/vdc \/mnt\/dummy\/\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">As data is now mirrored this should result in a file system of around 4gb, instead of 8gb:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ df -h | grep dummy\n\/dev\/vdb:\/dev\/vdc  7.3G  4.0M  7.2G   1% \/mnt\/dummy\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">It does not, so what could be the reason for this? Looking at the usage of the file system we see this:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ bcachefs fs usage \/mnt\/dummy\/\nFilesystem: d8a3d289-bb0f-4df0-b15c-7bb4ada51073\nSize:                     7902739968\nUsed:                       78118912\nOnline reserved:                   0\n\nData type       Required\/total  Durability    Devices\nbtree:          1\/2             2             &#x5B;vdb vdc]            4194304\n\n(no label) (device 0):           vdb              rw\n                                data         buckets    fragmented\n  free:                   4255907840           16235\n  sb:                        3149824              13        258048\n  journal:                  33554432             128\n  btree:                     2097152               8\n  user:                            0               0\n  cached:                          0               0\n  parity:                          0               0\n  stripe:                          0               0\n  need_gc_gens:                    0               0\n  need_discard:                    0               0\n  capacity:               4294967296           16384\n\n(no label) (device 1):           vdc              rw\n                                data         buckets    fragmented\n  free:                   4255907840           16235\n  sb:                        3149824              13        258048\n  journal:                  33554432             128\n  btree:                     2097152               8\n  user:                            0               0\n  cached:                          0               0\n  parity:                          0               0\n  stripe:                          0               0\n  need_gc_gens:                    0               0\n  need_discard:                    0               0\n  capacity:               4294967296           16384\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">As we currently do not have any user data in this file system, let&#8217;s write a 100MB file into it and check again how this looks like from a usage perspective:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,5,11]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ dd if=\/dev\/zero of=\/mnt\/dummy\/dummy bs=1M count=100\n100+0 records in\n100+0 records out\n104857600 bytes (105 MB, 100 MiB) copied, 0.0294275 s, 3.6 GB\/s\ntumbleweed:~ $ ls -lha \/mnt\/dummy\/\ntotal 100M\ndrwxr-xr-x 3 root root    0 Apr 17 17:04 .\ndr-xr-xr-x 1 root root   10 Apr 17 10:41 ..\n-rw-r--r-- 1 root root 100M Apr 17 17:05 dummy\ndrwx------ 2 root root    0 Apr 17 16:54 lost+found\ntumbleweed:~ $ df -h | grep dummy\n\/dev\/vdb:\/dev\/vdc  7.3G  207M  7.0G   3% \/mnt\/dummy\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">So instead of using 100MB on disk, we&#8217;re actually using 200MB, so this makes sense again, you just need to be aware of how the numbers are presented and how you come to this disk usage. Anyway, let&#8217;s have a look at the disk usage as the &#8220;bcachefs&#8221; utility reports it once more:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1,17,31]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ bcachefs fs usage \/mnt\/dummy\/\nFilesystem: d8a3d289-bb0f-4df0-b15c-7bb4ada51073\nSize:                     7902739968\nUsed:                      290979840\nOnline reserved:                   0\n\nData type       Required\/total  Durability    Devices\nbtree:          1\/2             2             &#x5B;vdb vdc]            7340032\nuser:           1\/2             2             &#x5B;vdb vdc]          209715200\n\n(no label) (device 0):           vdb              rw\n                                data         buckets    fragmented\n  free:                   4148953088           15827\n  sb:                        3149824              13        258048\n  journal:                  33554432             128\n  btree:                     3670016              14\n  user:                    104857600             400\n  cached:                          0               0\n  parity:                          0               0\n  stripe:                          0               0\n  need_gc_gens:                    0               0\n  need_discard:               524288               2\n  capacity:               4294967296           16384\n\n(no label) (device 1):           vdc              rw\n                                data         buckets    fragmented\n  free:                   4148953088           15827\n  sb:                        3149824              13        258048\n  journal:                  33554432             128\n  btree:                     3670016              14\n  user:                    104857600             400\n  cached:                          0               0\n  parity:                          0               0\n  stripe:                          0               0\n  need_gc_gens:                    0               0\n  need_discard:               524288               2\n  capacity:               4294967296           16384\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">This is telling us more or less the same: We have around 100MB of user data on each of the devices, and this 100MB of user data are spread across 400 buckets. A bucket is 512KiB bytes per default, which you can read out of the super block:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [1]; title: ; notranslate\" title=\"\">\ntumbleweed:~ $ bcachefs show-super \/dev\/vdb | grep &quot;Bucket size&quot;\n  Bucket size:                              256 KiB\n  Bucket size:                              256 KiB\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">If you do the math: 104857600\/(512*1024) gives 200 buckets, but as we replicate every bucket we have 400. Same story here, you need to know where this 400 buckets come from to make any sense out of it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the next post we&#8217;ll look at device labels and targets.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the third post in this little series about bcachefs. The first post was all about the basics while the second post introduced bcachefs over multiple devices. What we did not discuss so far is, what bcache has to offer when it comes to mirroring. By default bcachefs stripes your data across all the [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198,42],"tags":[3339,73],"type_dbi":[],"class_list":["post-32670","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","category-database-management","category-operating-systems","tag-bcachefs","tag-linux"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas\" \/>\n<meta property=\"og:description\" content=\"This is the third post in this little series about bcachefs. The first post was all about the basics while the second post introduced bcachefs over multiple devices. What we did not discuss so far is, what bcache has to offer when it comes to mirroring. By default bcachefs stripes your data across all the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-22T07:15:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-23T08:59:52+00:00\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"headline\":\"Another file system for Linux: bcachefs (3) \u2013 Mirroring\\\/Replicas\",\"datePublished\":\"2024-04-22T07:15:13+00:00\",\"dateModified\":\"2024-04-23T08:59:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/\"},\"wordCount\":431,\"commentCount\":0,\"keywords\":[\"bcachefs\",\"Linux\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\",\"Operating systems\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/\",\"name\":\"Another file system for Linux: bcachefs (3) \u2013 Mirroring\\\/Replicas - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2024-04-22T07:15:13+00:00\",\"dateModified\":\"2024-04-23T08:59:52+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Another file system for Linux: bcachefs (3) \u2013 Mirroring\\\/Replicas\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/","og_locale":"en_US","og_type":"article","og_title":"Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas","og_description":"This is the third post in this little series about bcachefs. The first post was all about the basics while the second post introduced bcachefs over multiple devices. What we did not discuss so far is, what bcache has to offer when it comes to mirroring. By default bcachefs stripes your data across all the [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/","og_site_name":"dbi Blog","article_published_time":"2024-04-22T07:15:13+00:00","article_modified_time":"2024-04-23T08:59:52+00:00","author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"headline":"Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas","datePublished":"2024-04-22T07:15:13+00:00","dateModified":"2024-04-23T08:59:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/"},"wordCount":431,"commentCount":0,"keywords":["bcachefs","Linux"],"articleSection":["Database Administration &amp; Monitoring","Database management","Operating systems"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/","url":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/","name":"Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2024-04-22T07:15:13+00:00","dateModified":"2024-04-23T08:59:52+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/another-file-system-for-linux-bcachefs-3-mirroring-replicas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Another file system for Linux: bcachefs (3) \u2013 Mirroring\/Replicas"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/32670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=32670"}],"version-history":[{"count":9,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/32670\/revisions"}],"predecessor-version":[{"id":32747,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/32670\/revisions\/32747"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=32670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=32670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=32670"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=32670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}