{"id":10844,"date":"2024-12-14T08:15:41","date_gmt":"2024-12-14T08:15:41","guid":{"rendered":"https:\/\/blog.trustedhosting.in\/?p=10844"},"modified":"2024-12-14T08:15:41","modified_gmt":"2024-12-14T08:15:41","slug":"extending-an-lvm-disk-partition-in-linux","status":"publish","type":"post","link":"https:\/\/www.webystrata.com\/blog\/extending-an-lvm-disk-partition-in-linux\/","title":{"rendered":"Extending an LVM disk partition in Linux"},"content":{"rendered":"<h1><a href=\"https:\/\/www.trustedhosting.in\/cpanel-hosting.html\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10845 size-full\" title=\"Extending an LVM disk partition in Linux\" src=\"https:\/\/blog.trustedhosting.in\/wp-content\/uploads\/2024\/12\/2149417021.jpg\" alt=\"Extending an LVM disk partition in Linux\" width=\"1500\" height=\"1000\" srcset=\"https:\/\/www.webystrata.com\/blog\/wp-content\/uploads\/2024\/12\/2149417021.jpg 1500w, https:\/\/www.webystrata.com\/blog\/wp-content\/uploads\/2024\/12\/2149417021-300x200.jpg 300w, https:\/\/www.webystrata.com\/blog\/wp-content\/uploads\/2024\/12\/2149417021-1024x683.jpg 1024w, https:\/\/www.webystrata.com\/blog\/wp-content\/uploads\/2024\/12\/2149417021-768x512.jpg 768w\" sizes=\"auto, (max-width: 1500px) 100vw, 1500px\" \/><\/a><\/h1>\n<h1>Extending an LVM disk partition in Linux<\/h1>\n<section id=\"extending-an-lvm-disk-partition\">When you purchase additional disk space &#8211; either in the form of additional hard disks, or an eCloud disk extension &#8211; there are some steps that need to be performed in order to make the additional disk space available.<\/p>\n<p>There are two ways that the automation might present additional space to you. The default for Linux servers is to add a new virtual disk to your <a href=\"https:\/\/www.trustedhosting.in\/cpanel-hosting.html\" target=\"_blank\" rel=\"noopener\">server<\/a>, and then extend the LVM for your chosen partition with the new disk.<\/p>\n<p>On Windows <a href=\"https:\/\/www.trustedhosting.in\/cpanel-hosting.html\" target=\"_blank\" rel=\"noopener\">servers<\/a>, the default is to change the size of the underlying virtual disk, which can sometimes be applied to Linux <a href=\"https:\/\/www.trustedhosting.in\/cpanel-hosting.html\" target=\"_blank\" rel=\"noopener\">servers<\/a> under certain conditions.<\/p>\n<div class=\"admonition warning\">\n<blockquote><p>Please be aware that this article uses specific examples, such as\u00a0<em>sdb<\/em>\u00a0or\u00a0<em>\/dev\/mapper\/eCloud-root<\/em>.<\/p>\n<p>You may have different requirements or configurations in terms of device names and volumes.<\/p>\n<p>Performing this incorrectly may make irreversible changes to your filesystem or cause data loss, so please proceed with care and caution.<\/p>\n<p>Once an extension has been started, it cannot be reverted.<\/p><\/blockquote>\n<\/div>\n<section id=\"identify-the-type-of-extension-that-was-performed\">\n<h2>Identify the type of extension that was performed<\/h2>\n<p>As such, we must first identify which form of disk expansion has been applied to your virtual machine (VM).<\/p>\n<p>Firstly we need to rescan the SCSI hosts:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># for i in \/sys\/class\/scsi_host\/host*\/scan; do echo \"- - -\" &gt; $i; done<\/span>\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># for i in \/sys\/class\/scsi_device\/*\/device\/rescan; do echo \"1\" &gt; $i; done<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Next, grab a list of the current physical volumes configured in LVM:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># pvs<\/span>\r\n  PV         VG     Fmt  Attr PSize  PFree\r\n  \/dev\/sda2  eCloud lvm2 a--   <span class=\"m\">9<\/span>.51g    <span class=\"m\">0<\/span>\r\n  \/dev\/sdb   eCloud lvm2 a--  <span class=\"m\">10<\/span>.00g    <span class=\"m\">0<\/span>\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<div class=\"admonition seealso\">\n<blockquote><p>Note that\u00a0<strong>\/dev\/sda1<\/strong>\u00a0is not supposed part of this list, as this contains your information for\u00a0<strong>\/boot<\/strong>.<\/p><\/blockquote>\n<\/div>\n<p>Then, check whether there are any new disks of the requested additional size that have been created; or whether one of the disks has changed size:<\/p>\n<section id=\"example-of-resized-disk\">\n<h3>Example of resized disk<\/h3>\n<p>Here you can see that the\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb<\/span><\/code>\u00a0device is showing as 26.1G, while the output from\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">pvs<\/span><\/code>\u00a0for\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb<\/span><\/code>\u00a0is only 10G.<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># fdisk -l<\/span>\r\n\r\nDisk \/dev\/sda: <span class=\"m\">21<\/span>.5 GB, <span class=\"m\">21474836480<\/span> bytes, <span class=\"m\">41943040<\/span> sectors\r\n<span class=\"nv\">Units<\/span> <span class=\"o\">=<\/span> sectors of <span class=\"m\">1<\/span> * <span class=\"nv\">512<\/span> <span class=\"o\">=<\/span> <span class=\"m\">512<\/span> bytes\r\nSector size <span class=\"o\">(<\/span>logical\/physical<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\nI\/O size <span class=\"o\">(<\/span>minimum\/optimal<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\nDisk label type: dos\r\nDisk identifier: 0x00001caf\r\n\r\n   Device Boot      Start         End      Blocks   Id  System\r\n\/dev\/sda1   *        <span class=\"m\">2048<\/span>     <span class=\"m\">1026047<\/span>      <span class=\"m\">512000<\/span>   <span class=\"m\">83<\/span>  Linux\r\n\/dev\/sda2         <span class=\"m\">1026048<\/span>    <span class=\"m\">20971519<\/span>     <span class=\"m\">9972736<\/span>   8e  Linux LVM\r\n\r\nDisk \/dev\/mapper\/eCloud-root: <span class=\"m\">19<\/span>.9 GB, <span class=\"m\">19893583872<\/span> bytes, <span class=\"m\">38854656<\/span> sectors\r\n<span class=\"nv\">Units<\/span> <span class=\"o\">=<\/span> sectors of <span class=\"m\">1<\/span> * <span class=\"nv\">512<\/span> <span class=\"o\">=<\/span> <span class=\"m\">512<\/span> bytes\r\nSector size <span class=\"o\">(<\/span>logical\/physical<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\nI\/O size <span class=\"o\">(<\/span>minimum\/optimal<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\n\r\n\r\nDisk \/dev\/mapper\/eCloud-swap: <span class=\"m\">1048<\/span> MB, <span class=\"m\">1048576000<\/span> bytes, <span class=\"m\">2048000<\/span> sectors\r\n<span class=\"nv\">Units<\/span> <span class=\"o\">=<\/span> sectors of <span class=\"m\">1<\/span> * <span class=\"nv\">512<\/span> <span class=\"o\">=<\/span> <span class=\"m\">512<\/span> bytes\r\nSector size <span class=\"o\">(<\/span>logical\/physical<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\nI\/O size <span class=\"o\">(<\/span>minimum\/optimal<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\n\r\n\r\nDisk \/dev\/sdb: <span class=\"m\">16<\/span>.1 GB, <span class=\"m\">16106127360<\/span> bytes, <span class=\"m\">31457280<\/span> sectors\r\n<span class=\"nv\">Units<\/span> <span class=\"o\">=<\/span> sectors of <span class=\"m\">1<\/span> * <span class=\"nv\">512<\/span> <span class=\"o\">=<\/span> <span class=\"m\">512<\/span> bytes\r\nSector size <span class=\"o\">(<\/span>logical\/physical<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\nI\/O size <span class=\"o\">(<\/span>minimum\/optimal<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\n\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p><strong>In this case, proceed with the\u00a0resized disk method.<\/strong><\/p>\n<\/section>\n<hr class=\"docutils\" \/>\n<section id=\"example-of-additional-disk\">\n<h3>Example of additional disk<\/h3>\n<p>If you can\u2019t see a resized disk, a new disk has probably been added.<\/p>\n<p>Check the output of\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">dmesg<\/span><\/code>\u00a0for information about a new disk being added:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># dmesg<\/span>\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.155726<span class=\"o\">]<\/span> scsi <span class=\"m\">2<\/span>:0:2:0: Direct-Access     VMware   Virtual disk     <span class=\"m\">1<\/span>.0  PQ: <span class=\"m\">0<\/span> ANSI: <span class=\"m\">2<\/span>\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.157712<span class=\"o\">]<\/span> sd <span class=\"m\">2<\/span>:0:2:0: Attached scsi generic sg3 <span class=\"nb\">type<\/span> <span class=\"m\">0<\/span>\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.159156<span class=\"o\">]<\/span> sd <span class=\"m\">2<\/span>:0:2:0: <span class=\"o\">[<\/span>sdc<span class=\"o\">]<\/span> <span class=\"m\">10485760<\/span> <span class=\"m\">512<\/span>-byte logical blocks: <span class=\"o\">(<\/span><span class=\"m\">5<\/span>.36 GB\/5.00 GiB<span class=\"o\">)<\/span>\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.159210<span class=\"o\">]<\/span> sd <span class=\"m\">2<\/span>:0:2:0: <span class=\"o\">[<\/span>sdc<span class=\"o\">]<\/span> Write Protect is off\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.159214<span class=\"o\">]<\/span> sd <span class=\"m\">2<\/span>:0:2:0: <span class=\"o\">[<\/span>sdc<span class=\"o\">]<\/span> Mode Sense: <span class=\"m\">61<\/span> <span class=\"m\">00<\/span> <span class=\"m\">00<\/span> <span class=\"m\">00<\/span>\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.159293<span class=\"o\">]<\/span> sd <span class=\"m\">2<\/span>:0:2:0: <span class=\"o\">[<\/span>sdc<span class=\"o\">]<\/span> Cache data unavailable\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.159296<span class=\"o\">]<\/span> sd <span class=\"m\">2<\/span>:0:2:0: <span class=\"o\">[<\/span>sdc<span class=\"o\">]<\/span> Assuming drive cache: write through\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.161472<span class=\"o\">]<\/span>  sdc: unknown partition table\r\n<span class=\"o\">[<\/span><span class=\"m\">13955<\/span>.161769<span class=\"o\">]<\/span> sd <span class=\"m\">2<\/span>:0:2:0: <span class=\"o\">[<\/span>sdc<span class=\"o\">]<\/span> Attached SCSI disk\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Then confirm that the disk that was added matches the size of the disk that you\u2019ve purchased (<code class=\"docutils literal notranslate\"><span class=\"pre\">sdc<\/span><\/code>\u00a0in this case):<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># fdisk -l \/dev\/sdc<\/span>\r\n\r\nDisk \/dev\/sdc: <span class=\"m\">5368<\/span> MB, <span class=\"m\">5368709120<\/span> bytes, <span class=\"m\">10485760<\/span> sectors\r\n<span class=\"nv\">Units<\/span> <span class=\"o\">=<\/span> sectors of <span class=\"m\">1<\/span> * <span class=\"nv\">512<\/span> <span class=\"o\">=<\/span> <span class=\"m\">512<\/span> bytes\r\nSector size <span class=\"o\">(<\/span>logical\/physical<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\nI\/O size <span class=\"o\">(<\/span>minimum\/optimal<span class=\"o\">)<\/span>: <span class=\"m\">512<\/span> bytes \/ <span class=\"m\">512<\/span> bytes\r\n\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>I added 5G to the VM, and this disk is ~5G in size, so we\u2019ve identified where it was added.<\/p>\n<p><strong>Now proceed with the\u00a0additional disk method.<\/strong><\/p>\n<\/section>\n<\/section>\n<\/section>\n<hr class=\"docutils\" \/>\n<section id=\"resized-disk-method\">\n<h1>Resized disk method<\/h1>\n<p>We\u2019ve identified that one of the disks has been resized &#8211;\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">sdb<\/span><\/code>\u00a0in this case.<\/p>\n<section id=\"expand-the-partition-if-necessary\">\n<h2>Expand the partition if necessary<\/h2>\n<p>If the LVM PV refers to a partition on a disk (e.g.\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb3<\/span><\/code>) rather than a complete disk (<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb<\/span><\/code>), you\u2019ll first need to expand the partition to use the new space. Use the\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">growpart<\/span><\/code>\u00a0command to do this:<\/p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">growpart<\/span>\u00a0<span class=\"pre\">&lt;disk&gt;<\/span>\u00a0<span class=\"pre\">&lt;partition<\/span>\u00a0<span class=\"pre\">number&gt;<\/span><\/code><\/p>\n<p>for example<\/p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">growpart<\/span>\u00a0<span class=\"pre\">\/dev\/sdb<\/span>\u00a0<span class=\"pre\">3<\/span><\/code><\/p>\n<p>Note that it is intentional that there is a space between the\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb<\/span><\/code>\u00a0and\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">3<\/span><\/code>. It\u2019s also important to note that this will only work if the partition number is the highest numbered on on the disk. For example, if you had\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb1<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb2<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb3<\/span><\/code>,\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb4<\/span><\/code>, and your PV was\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb3<\/span><\/code>, you couldn\u2019t expand\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb3<\/span><\/code>\u00a0because\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/sdb4<\/span><\/code>\u00a0would be in the way. Contact support for advice if you find yourself in this situation.<\/p>\n<p>The\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">growpart<\/span><\/code>\u00a0command isn\u2019t always installed by default on a server, you may need to install it first using\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">yum<\/span><\/code>\u00a0\/\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">apt<\/span><\/code>\u00a0\/\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">dnf<\/span><\/code>\u00a0as appropriate.<\/p>\n<\/section>\n<section id=\"resize-the-physical-volume-to-use-the-new-space\">\n<h2>Resize the physical volume to use the new space<\/h2>\n<p>While the operating system (OS) can see the additional space, we\u2019ve still got to make this usable.<\/p>\n<p>First, you\u2019ll need to get LVM to recognise that the PV has changed size:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># pvresize \/dev\/sdb<\/span>\r\n  Physical volume <span class=\"s2\">\"\/dev\/sdb\"<\/span> changed\r\n  <span class=\"m\">1<\/span> physical volume<span class=\"o\">(<\/span>s<span class=\"o\">)<\/span> resized \/ <span class=\"m\">0<\/span> physical volume<span class=\"o\">(<\/span>s<span class=\"o\">)<\/span> not resized\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<hr class=\"docutils\" \/>\n<p><strong>Continue reading from the\u00a0final steps\u00a0section to complete the process.<\/strong><\/p>\n<\/section>\n<\/section>\n<hr class=\"docutils\" \/>\n<section id=\"additional-disk-method\">\n<h1>Additional disk method<\/h1>\n<p>We\u2019ve identified that a new disk was added &#8211;\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">sdc<\/span><\/code>\u00a0in this case.<\/p>\n<section id=\"create-a-physical-volume-from-the-new-device\">\n<h2>Create a physical volume from the new device<\/h2>\n<p>We need to create a new physical volume for the new device (<code class=\"docutils literal notranslate\"><span class=\"pre\">sdc<\/span><\/code>) so that we can use it in LVM:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># pvcreate \/dev\/sdc<\/span>\r\n  Physical volume <span class=\"s2\">\"\/dev\/sdc\"<\/span> successfully created\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Then confirm that it shows up in\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">pvs<\/span><\/code>:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># pvs<\/span>\r\n  PV         VG     Fmt  Attr PSize  PFree\r\n  \/dev\/sda2  eCloud lvm2 a--   <span class=\"m\">9<\/span>.51g    <span class=\"m\">0<\/span>\r\n  \/dev\/sdb   eCloud lvm2 a--  <span class=\"m\">15<\/span>.00g    <span class=\"m\">0<\/span>\r\n  \/dev\/sdc          lvm2 ---   <span class=\"m\">5<\/span>.00g <span class=\"m\">5<\/span>.00g\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"add-the-new-physical-volume-into-the-volume-group\">\n<h2>Add the new physical volume into the volume group<\/h2>\n<p>So that we can assign the new disk space to the logical volume, we need to first add the physical volume into the volume group:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># vgextend eCloud \/dev\/sdc<\/span>\r\n  Volume group <span class=\"s2\">\"eCloud\"<\/span> successfully extended\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Then confirm that the VG shows the right total size:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># vgs<\/span>\r\n  VG     <span class=\"c1\">#PV #LV #SN Attr   VSize  VFree<\/span>\r\n  eCloud   <span class=\"m\">3<\/span>   <span class=\"m\">2<\/span>   <span class=\"m\">0<\/span> wz--n- <span class=\"m\">29<\/span>.50g <span class=\"m\">5<\/span>.00g\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<hr class=\"docutils\" \/>\n<p><strong>Continue reading from the\u00a0final steps\u00a0section to complete the process.<\/strong><\/p>\n<\/section>\n<\/section>\n<hr class=\"docutils\" \/>\n<section id=\"final-steps\">\n<h1>Final steps<\/h1>\n<p>Both methods of adding disk space to an eCloud VM are the same towards the end, so you can continue from here.<\/p>\n<p>We need to grow the LV over the new free space &#8211; for most people this will be the\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/<\/span><\/code>\u00a0partition, but if you have more than one partition, take care to ensure you\u2019re resizing the right one:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># lvs<\/span>\r\n  LV   VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert\r\n  root eCloud -wi-ao----   <span class=\"m\">18<\/span>.53g\r\n  swap eCloud -wi-ao---- <span class=\"m\">1000<\/span>.00m\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>In this case, we\u2019ll be doing the most common extension of\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/<\/span><\/code>. Note the path in this command is\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/mapper\/VG\/LV<\/span><\/code>\u00a0from the table above:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># lvresize -l +100%FREE \/dev\/mapper\/eCloud\/root<\/span>\r\n  Size of logical volume eCloud\/root changed from <span class=\"m\">18<\/span>.53 GiB <span class=\"o\">(<\/span><span class=\"m\">4743<\/span> extents<span class=\"o\">)<\/span> to <span class=\"m\">23<\/span>.53 GiB <span class=\"o\">(<\/span><span class=\"m\">6023<\/span> extents<span class=\"o\">)<\/span>.\r\n  Logical volume root successfully resized.\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Confirm that this has resized the LV as expected:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># lvs<\/span>\r\n  LV   VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert\r\n  root eCloud -wi-ao----   <span class=\"m\">23<\/span>.53g\r\n  swap eCloud -wi-ao---- <span class=\"m\">1000<\/span>.00m\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<section id=\"resize-the-filesystem-to-make-the-new-space-available\">\n<h2>Resize the filesystem to make the new space available<\/h2>\n<p>Now that the disk and LV show the correct sizes, we can go ahead and resize the filesystem. Some servers use the\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">ext<\/span><\/code>\u00a0filesystem type, and others user\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">xfs<\/span><\/code>\u00a0&#8211; to identify which yours uses, run the following:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># df -T<\/span>\r\nFilesystem              Type     1K-blocks    Used Available Use% Mounted on\r\n\/dev\/mapper\/eCloud-root xfs       <span class=\"m\">19417088<\/span> <span class=\"m\">2235516<\/span>  <span class=\"m\">17181572<\/span>  <span class=\"m\">12<\/span>% \/\r\ndevtmpfs                devtmpfs   <span class=\"m\">1929244<\/span>       <span class=\"m\">0<\/span>   <span class=\"m\">1929244<\/span>   <span class=\"m\">0<\/span>% \/dev\r\ntmpfs                   tmpfs      <span class=\"m\">1939460<\/span>       <span class=\"m\">0<\/span>   <span class=\"m\">1939460<\/span>   <span class=\"m\">0<\/span>% \/dev\/shm\r\ntmpfs                   tmpfs      <span class=\"m\">1939460<\/span>    <span class=\"m\">8656<\/span>   <span class=\"m\">1930804<\/span>   <span class=\"m\">1<\/span>% \/run\r\ntmpfs                   tmpfs      <span class=\"m\">1939460<\/span>       <span class=\"m\">0<\/span>   <span class=\"m\">1939460<\/span>   <span class=\"m\">0<\/span>% \/sys\/fs\/cgroup\r\n\/dev\/sda1               xfs         <span class=\"m\">508588<\/span>  <span class=\"m\">211732<\/span>    <span class=\"m\">296856<\/span>  <span class=\"m\">42<\/span>% \/boot\r\ntmpfs                   tmpfs       <span class=\"m\">387892<\/span>       <span class=\"m\">0<\/span>    <span class=\"m\">387892<\/span>   <span class=\"m\">0<\/span>% \/run\/user\/0\r\n<span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\">#<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>In this example, the server is using\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">xfs<\/span><\/code>.<\/p>\n<section id=\"resizing-xfs-filesystems\">\n<h3>Resizing XFS filesystems<\/h3>\n<p>To resize an\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">xfs<\/span><\/code>\u00a0filesystem, run the following &#8211; noting the format of\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/mapper\/VG-LV<\/span><\/code>\u00a0on the device name:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># xfs_growfs \/dev\/mapper\/eCloud-root<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Then confirm that the disk shows the correct size in\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">df<\/span>\u00a0<span class=\"pre\">-h<\/span><\/code>.<\/p>\n<\/section>\n<section id=\"resizing-ext-filesystems\">\n<h3>Resizing EXT filesystems<\/h3>\n<p>To resize an\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">ext<\/span><\/code>\u00a0filesystem, run the following &#8211; noting the format of\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">\/dev\/mapper\/VG-LV<\/span><\/code>\u00a0on the device name:<\/p>\n<div class=\"highlight-bash notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"o\">[<\/span>root@ssh ~<span class=\"o\">]<\/span><span class=\"c1\"># resize2fs \/dev\/mapper\/eCloud-root<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Then confirm that the disk shows the correct size in\u00a0<code class=\"docutils literal notranslate\"><span class=\"pre\">df<\/span>\u00a0<span class=\"pre\">-h<\/span><\/code>.<\/p>\n<\/section>\n<\/section>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Extending an LVM disk partition in Linux When you purchase additional disk space &#8211; either in the form of additional&hellip;<\/p>\n","protected":false},"author":1,"featured_media":10845,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-10844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/posts\/10844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/comments?post=10844"}],"version-history":[{"count":1,"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/posts\/10844\/revisions"}],"predecessor-version":[{"id":10846,"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/posts\/10844\/revisions\/10846"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/media\/10845"}],"wp:attachment":[{"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/media?parent=10844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/categories?post=10844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webystrata.com\/blog\/wp-json\/wp\/v2\/tags?post=10844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}