{"id":24906,"date":"2023-05-02T17:41:40","date_gmt":"2023-05-02T15:41:40","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=24906"},"modified":"2023-05-02T17:41:41","modified_gmt":"2023-05-02T15:41:41","slug":"rook-ceph-tips-and-tricks-for-storage-using-cephfs","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/","title":{"rendered":"Rook Ceph: Tips and Tricks for storage using CephFS"},"content":{"rendered":"\n<p>In my Rook Ceph series, I&#8217;ve given first an <a href=\"https:\/\/www.dbi-services.com\/blog\/introduction-to-rook-ceph-for-kubernetes\/\" target=\"_blank\" rel=\"noreferrer noopener\">introduction<\/a> of Rook Ceph. Then I&#8217;ve shared the procedure on how to do a <a href=\"https:\/\/www.dbi-services.com\/blog\/kubernetes-extension-of-disk-in-rook-ceph\/\" target=\"_blank\" rel=\"noreferrer noopener\">disk extension<\/a>. With this blog post, I&#8217;d like to share how your files can be accessed in such a cluster. We are using the Ceph File System (CephFS) and if you are new to it, here are some interesting and useful tips and tricks to know.<\/p>\n\n\n\n<p>We saw in the introduction of Rook Ceph that our files are converted to objects in order to be manipulated, replicated and stored on physical hard disks. So you may wonder if there is a way to see directly those files in the Rook Ceph cluster and how they are organised. Read on to find out!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Storage in the Kubernetes cluster<\/h2>\n\n\n\n<p>When Rook Ceph is installed in a Kubernetes cluster, there are two storage class types available in the cluster: RBD and CephFS. You can check them as shown below:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ kubectl get sc\nNAME                        PROVISIONER                            RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE\nceph-block                  rookceph.rbd.csi.ceph.com      Delete          Immediate           true                   20d\nceph-filesystem (default)   rookceph.cephfs.csi.ceph.com   Delete          Immediate           true                   20d\n<\/pre><\/div>\n\n\n<p>Rook Ceph creates automatically a Persistent Volume (PV) according to a Persistent Volume Claim (PVC) request. You can view them with the usual <strong>kubectl<\/strong> commands to get PV and PVC. If you want to increase the PV size then increase the PVC request by editing it with the following command for example:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ kubectl edit pvc pvc-35e9b837-1cc1-4668-9486-070fe2ac1e39 -n rookceph\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Connect to CephFS through a Pod<\/h2>\n\n\n\n<p>The first step is to get and apply the following <a href=\"https:\/\/github.com\/rook\/rook\/blob\/master\/deploy\/examples\/direct-mount.yaml\" target=\"_blank\" rel=\"noreferrer noopener\">deployment<\/a> in the Kubernetes cluster. This file needs to be modified first with the proper Rook Ceph namespace you are currently using in the Kubernetes cluster. For this example we will use the namespace <strong>rookceph<\/strong>. You can then check the created Pod and connect into it:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ kubectl get pods -n rookceph |grep direct-mount\nrook-direct-mount-786f8fb967-tjmjd                                1\/1     Running     0          3h43m\n\n$ kubectl exec -it rook-direct-mount-786f8fb967-tjmjd  -n rookceph -- bash\n<\/pre><\/div>\n\n\n<p>There are then several steps to perform in this Pod to access the files in CephFS:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# Create the directory\n$ mkdir \/tmp\/rookmount\n\n# Detect the monitoring endpoints and the user secret for the connection\n$ mon_endpoints=$(grep mon_host \/etc\/ceph\/ceph.conf | awk &#039;{print $3}&#039;)\n$ my_secret=$(grep key \/etc\/ceph\/keyring | awk &#039;{print $3}&#039;)\n\n# Mount the filesystem\n$ mount -t ceph -o name=admin,secret=$my_secret $mon_endpoints:\/ \/tmp\/rookmount\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Files organisation in CephFS<\/h2>\n\n\n\n<p>We now have a view of all files stored in this CephFS from this Pod. Files are stored into the following folder:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# pwd\n\/tmp\/rookmount\/volumes\/csi\n<\/pre><\/div>\n\n\n<p>=&gt; Under this folder there is one &#8220;<strong>csi-vol-&#8230;<\/strong>&#8221; folder per PV created in the Kubernetes cluster.<\/p>\n\n\n\n<p>In another terminal windows, connect to this Kubernetes cluster and check the description of one PV. We can then see the link between this PV and the folder stored in our Pod accessing the CephFS. For example let&#8217;s have a look at a PV used by Nexus:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [27]; title: ; notranslate\" title=\"\">\n$ kubectl describe pv pvc-e84861f0-fe9a-409f-8198-de0b3ee5f7d0\nName:            pvc-e84861f0-fe9a-409f-8198-de0b3ee5f7d0\nLabels:          &lt;none&gt;\nAnnotations:     pv.kubernetes.io\/provisioned-by: rookceph.cephfs.csi.ceph.com\n                 volume.kubernetes.io\/provisioner-deletion-secret-name: rook-csi-cephfs-provisioner\n                 volume.kubernetes.io\/provisioner-deletion-secret-namespace: rookceph\nFinalizers:      &#x5B;kubernetes.io\/pv-protection]\nStorageClass:    ceph-filesystem\nStatus:          Bound\nClaim:           nexus\/nexus-nexus-repository-manager-data\nReclaim Policy:  Delete\nAccess Modes:    RWO\nVolumeMode:      Filesystem\nCapacity:        200Gi\nNode Affinity:   &lt;none&gt;\nMessage:\nSource:\n    Type:              CSI (a Container Storage Interface (CSI) volume source)\n    Driver:            rookceph.cephfs.csi.ceph.com\n    FSType:            ext4\n    VolumeHandle:      0001-0010-rookceph-0000000000000001-73d78a31-9641-11ed-9175-be56cced9151\n    ReadOnly:          false\n    VolumeAttributes:      clusterID=rookceph\n                           fsName=ceph-filesystem\n                           pool=ceph-filesystem-data0\n                           storage.kubernetes.io\/csiProvisionerIdentity=1673943489984-8081-rookceph.cephfs.csi.ceph.com\n                           subvolumeName=csi-vol-73d78a31-9641-11ed-9175-be56cced9151\n                           subvolumePath=\/volumes\/csi\/csi-vol-73d78a31-9641-11ed-9175-be56cced9151\/9b3f9bda-0710-4db6-bf04-e48d038ab6bf\nEvents:                &lt;none&gt;\n<\/pre><\/div>\n\n\n<p>=&gt; The value of the parameter <strong>subvolumeName<\/strong> of this PV is also the name of the folder we can see in the mount folder of our Pod.<\/p>\n\n\n\n<p>So the corresponding folder of this PV is:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# ls | grep 73d78a31\ncsi-vol-73d78a31-9641-11ed-9175-be56cced9151\n<\/pre><\/div>\n\n\n<p>If you know the file name you are looking for, then the easiest way to find it is to search for it from the \/tmp\/rookmount\/volumes\/csi folder:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n# find . -name dump.rdb\n.\/csi-vol-36eb3462-9640-11ed-9175-be56cced9151\/288b364c-340f-4d2f-bec6-b9a4b7daa2b0\/dump.rdb\n<\/pre><\/div>\n\n\n<p>When you are done exploring the files, do not forget to perform the unmount in the Pod before exiting it !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>By accessing files directly in the Ceph File System, you can not only view files but also make a copy of them to transfer them elsewhere for example. It could also just help you when doing some troubleshooting. I hope you have learned something useful you can use in your environment!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my Rook Ceph series, I&#8217;ve given first an introduction of Rook Ceph. Then I&#8217;ve shared the procedure on how to do a disk extension. With this blog post, I&#8217;d like to share how your files can be accessed in such a cluster. We are using the Ceph File System (CephFS) and if you are [&hellip;]<\/p>\n","protected":false},"author":109,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1320,1522],"tags":[2891,2942,151,89,2890,35],"type_dbi":[2945,2943,2944],"class_list":["post-24906","post","type-post","status-publish","format-standard","hentry","category-devops","category-kubernetes","tag-ceph","tag-cephfs","tag-devops","tag-kubernetes","tag-rook","tag-storage","type-ceph","type-kubernetes","type-rook"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Rook Ceph: Tips and Tricks for storage using CephFS - 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\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rook Ceph: Tips and Tricks for storage using CephFS\" \/>\n<meta property=\"og:description\" content=\"In my Rook Ceph series, I&#8217;ve given first an introduction of Rook Ceph. Then I&#8217;ve shared the procedure on how to do a disk extension. With this blog post, I&#8217;d like to share how your files can be accessed in such a cluster. We are using the Ceph File System (CephFS) and if you are [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-02T15:41:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-02T15:41:41+00:00\" \/>\n<meta name=\"author\" content=\"DevOps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DevOps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 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\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/\"},\"author\":{\"name\":\"DevOps\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"headline\":\"Rook Ceph: Tips and Tricks for storage using CephFS\",\"datePublished\":\"2023-05-02T15:41:40+00:00\",\"dateModified\":\"2023-05-02T15:41:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/\"},\"wordCount\":527,\"commentCount\":0,\"keywords\":[\"ceph\",\"cephfs\",\"DevOps\",\"kubernetes\",\"rook\",\"Storage\"],\"articleSection\":[\"DevOps\",\"Kubernetes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/\",\"name\":\"Rook Ceph: Tips and Tricks for storage using CephFS - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2023-05-02T15:41:40+00:00\",\"dateModified\":\"2023-05-02T15:41:41+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rook Ceph: Tips and Tricks for storage using CephFS\"}]},{\"@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\/4cd1b5f8a3de93f05a16ab8d7d2b7735\",\"name\":\"DevOps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"caption\":\"DevOps\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/devops\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rook Ceph: Tips and Tricks for storage using CephFS - 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\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/","og_locale":"en_US","og_type":"article","og_title":"Rook Ceph: Tips and Tricks for storage using CephFS","og_description":"In my Rook Ceph series, I&#8217;ve given first an introduction of Rook Ceph. Then I&#8217;ve shared the procedure on how to do a disk extension. With this blog post, I&#8217;d like to share how your files can be accessed in such a cluster. We are using the Ceph File System (CephFS) and if you are [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/","og_site_name":"dbi Blog","article_published_time":"2023-05-02T15:41:40+00:00","article_modified_time":"2023-05-02T15:41:41+00:00","author":"DevOps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DevOps","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/"},"author":{"name":"DevOps","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"headline":"Rook Ceph: Tips and Tricks for storage using CephFS","datePublished":"2023-05-02T15:41:40+00:00","dateModified":"2023-05-02T15:41:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/"},"wordCount":527,"commentCount":0,"keywords":["ceph","cephfs","DevOps","kubernetes","rook","Storage"],"articleSection":["DevOps","Kubernetes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/","url":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/","name":"Rook Ceph: Tips and Tricks for storage using CephFS - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2023-05-02T15:41:40+00:00","dateModified":"2023-05-02T15:41:41+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/rook-ceph-tips-and-tricks-for-storage-using-cephfs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Rook Ceph: Tips and Tricks for storage using CephFS"}]},{"@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\/4cd1b5f8a3de93f05a16ab8d7d2b7735","name":"DevOps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","caption":"DevOps"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/devops\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/24906","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\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=24906"}],"version-history":[{"count":22,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/24906\/revisions"}],"predecessor-version":[{"id":24929,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/24906\/revisions\/24929"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=24906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=24906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=24906"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=24906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}