Adding a Disk and Extending a Logical Volume: Difference between revisions

From Peter Pap's Technowiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 32: Line 32:
3. Check to see if the new device is there
3. Check to see if the new device is there


   # pvscan
   # ls -al /dev/sd*
    PV /dev/sdb1   VG data   lvm2 [100.00 GiB / 0    free]
  brw-rw---- 1 root disk 8,  0 Jan 22 01:14 /dev/sda
    PV /dev/sdc1   VG data   lvm2 [100.00 GiB / 0    free]
   brw-rw---- 1 root disk 8,  1 Jan 22 01:14 /dev/sda1
    PV /dev/sdd1   VG data   lvm2 [100.00 GiB / 100.00 GiB free]
   brw-rw---- 1 root disk 8,  2 Jan 22 01:14 /dev/sda2
    PV /dev/sda3   VG vg1    lvm2 [47.84 GiB / 17.59 GiB free]
  brw-rw---- 1 root disk 8,  3 Jan 22 01:14 /dev/sda3
    Total: 4 [347.83 GiB] / in use: 4 [347.83 GiB] / in no VG: 0 [0  ]
   brw-rw---- 1 root disk 8, 16 Jan 22 01:14 /dev/sdb
   brw-rw---- 1 root disk 8, 17 Jan 22 01:14 /dev/sdb1
  brw-rw---- 1 root disk 8, 32 Jan 22 01:14 /dev/sdc
   brw-rw---- 1 root disk 8, 33 Jan 22 01:14 /dev/sdc1
   '''brw-rw---- 1 root disk 8, 48 Jan 22 01:14 /dev/sdd'''
 
4. Add the disk to your machine as a primary partition
 
  # fdisk /dev/sdd
  Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
  Building a new DOS disklabel with disk identifier 0x663d32f6.
   Changes will remain in memory only, until you decide to write them.
  After that, of course, the previous content won't be recoverable.
 
  Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
  WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
          switch off the mode (command 'c') and change display units to
          sectors (command 'u').
 
  Command (m for help): '''m'''
  Command action
    a  toggle a bootable flag
    b  edit bsd disklabel
    c  toggle the dos compatibility flag
    d  delete a partition
    l  list known partition types
    m  print this menu
    n  add a new partition
    o  create a new empty DOS partition table
    p  print the partition table
    q  quit without saving changes
    s  create a new empty Sun disklabel
    t  change a partition's system id
    u  change display/entry units
    v  verify the partition table
    w  write table to disk and exit
    x  extra functionality (experts only)
 
  Command (m for help): '''n'''
  Command action
    e  extended
    p  primary partition (1-4)
  '''p'''
  Partition number (1-4): '''1'''
  First cylinder (1-13054, default 1):
  Using default value 1
  Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):
  Using default value 13054
 
  Command (m for help): '''w'''
  The partition table has been altered!
 
  Calling ioctl() to re-read partition table.
  Syncing disks.
 
 
5.  Create a new physical LVM volume on our new disk.
 
  # pvcreate /dev/sdd1
    Physical volume "/dev/sdd1" successfully created
 
  You sould now have an additional device:


   # ls -al /dev/sd*
   # ls -al /dev/sd*
Line 48: Line 110:
   brw-rw---- 1 root disk 8, 32 Jan 22 01:14 /dev/sdc
   brw-rw---- 1 root disk 8, 32 Jan 22 01:14 /dev/sdc
   brw-rw---- 1 root disk 8, 33 Jan 22 01:14 /dev/sdc1
   brw-rw---- 1 root disk 8, 33 Jan 22 01:14 /dev/sdc1
   '''brw-rw---- 1 root disk 8, 48 Jan 22 01:14 /dev/sdd'''
  brw-rw---- 1 root disk 8, 48 Jan 22 01:14 /dev/sdd
   '''brw-rw---- 1 root disk 8, 49 Jan 22 01:14 /dev/sdd1'''
 
6. Extend the Volume Group, in this case called '''data'''
 
  # vgextend data /dev/sdd1
    Volume group "data" successfully extended
 
The new disk should now be added to the Volume Group:
 
  # vgdisplay -v data
      Using volume group(s) on command line
      Finding volume group "data"
    --- Volume group ---
    VG Name              data
    System ID
    Format                lvm2
    Metadata Areas        3
    Metadata Sequence No  11
    VG Access            read/write
    VG Status            resizable
    MAX LV                0
    Cur LV                1
    Open LV              1
    Max PV                0
    Cur PV                3
    Act PV                3
    VG Size              299.99 GiB
    PE Size              4.00 MiB
    Total PE              76797
    Alloc PE / Size      51193 / 199.97 GiB
    Free  PE / Size      25604 / 100.02 GiB
    VG UUID              lEHcjJ-OEEf-pEbi-J00j-5de9-T3ZE-4QPv4H
 
    --- Logical volume ---
    LV Name                /dev/data/blah
    VG Name                data
    LV UUID                aiOIEx-2kK5-RVGr-SHWv-InhH-B69p-j65ziL
    LV Write Access        read/write
    LV Status              available
    # open                1
    LV Size                199.97 GiB
    Current LE            51193
    Segments              2
    Allocation            inherit
    Read ahead sectors    auto
    - currently set to    256
    Block device          253:1
 
    --- Physical volumes ---
    PV Name              /dev/sdb1
    PV UUID              C0KYU9-krfx-c7pw-pLWo-wf3l-EqiO-qBx3wi
    PV Status            allocatable
    Total PE / Free PE    25599 / 0
 
    PV Name              /dev/sdc1
    PV UUID              qIo3zt-TwBx-Ze6x-BZvy-aY7x-n1NP-IgimVk
    PV Status            allocatable
    Total PE / Free PE    25599 / 5
 
    '''PV Name              /dev/sdd1'''
    PV UUID              bbUskE-8rDY-CdgP-0tQy-CVrJ-SBZI-kaQmUj
    PV Status            allocatable
    Total PE / Free PE    25599 / 25599
 
7.  Extend the Logical Volume, in this example by 50Gb
 
  # lvextend -L +50Gb /dev/data/blah
    Extending logical volume blah to 249.97 GiB
    Logical volume splunk successfully resized
 
8. Resize the Logical Volume to start using the new space
 
  # resize2fs -p /dev/data/blah
  resize2fs 1.41.12 (17-May-2010)
  Filesystem at /dev/data/blah is mounted on /data; on-line resizing required
  old desc_blocks = 13, new_desc_blocks = 16
  Performing an on-line resize of /dev/data/blah to 65528832 (4k) blocks.
  The filesystem on /dev/data/blah is now 65528832 blocks long.
 
9. Check to see it worked
 
  # vgdisplay -v data
      Using volume group(s) on command line
      Finding volume group "data"
    --- Volume group ---
    VG Name              data
    System ID
    Format                lvm2
    Metadata Areas        3
    Metadata Sequence No  12
    VG Access            read/write
    VG Status            resizable
    MAX LV                0
    Cur LV                1
    Open LV              1
    Max PV                0
    Cur PV                3
    Act PV                3
    VG Size              299.99 GiB
    PE Size              4.00 MiB
    Total PE              76797
    Alloc PE / Size      63993 / '''249.97 GiB'''
    Free  PE / Size      12804 / 50.02 GiB
    VG UUID              lEHcjJ-OEEf-pEbi-J00j-5de9-T3ZE-4QPv4H
 
    --- Logical volume ---
    LV Name                /dev/data/splunk
    VG Name                data
    LV UUID                aiOIEx-2kK5-RVGr-SHWv-InhH-B69p-j65ziL
    LV Write Access        read/write
    LV Status              available
    # open                1
    LV Size                '''249.97 GiB'''
    Current LE            63993
    Segments              '''3'''
    Allocation            inherit
    Read ahead sectors    auto
    - currently set to    256
    Block device          253:1
 
    --- Physical volumes ---
    PV Name              /dev/sdb1
    PV UUID              C0KYU9-krfx-c7pw-pLWo-wf3l-EqiO-qBx3wi
    PV Status            allocatable
    Total PE / Free PE    25599 / 0
 
    PV Name              /dev/sdc1
    PV UUID              qIo3zt-TwBx-Ze6x-BZvy-aY7x-n1NP-IgimVk
    PV Status            allocatable
    Total PE / Free PE    25599 / 0
 
    PV Name              /dev/sdd1
    PV UUID              bbUskE-8rDY-CdgP-0tQy-CVrJ-SBZI-kaQmUj
    PV Status            allocatable
    Total PE / Free PE    25599 / 12804
 
  # df -h
  Filesystem            Size  Used Avail Use% Mounted on
  /dev/mapper/vg1-root 1008M  209M  749M  22% /
  tmpfs                1.9G    0  1.9G  0% /dev/shm
  /dev/mapper/vg1-app    25G  5.0G  19G  22% /app
  /dev/sda1            124M  31M  88M  26% /boot
  /dev/mapper/vg1-home 1008M  114M  844M  12% /home
  /dev/mapper/vg1-tmp  756M  17M  701M  3% /tmp
  /dev/mapper/vg1-usr  1.5G  1.1G  389M  73% /usr
  /dev/mapper/vg1-var  2.0G  412M  1.5G  22% /var
  /dev/mapper/data
                      '''247G''' 186G  49G  80% /data
 
You're done!

Latest revision as of 03:48, 22 January 2015

So you have a logical volume that has run out of space and you need to add more. Either it's a VM and you've added another disk file or it's a physical server and you've added another disk.

1. Check the current disk devices with the following commands:

 # pvscan
   PV /dev/sdb1   VG data   lvm2 [100.00 GiB / 0    free]
   PV /dev/sdc1    VG data  lvm2 [100.00 GiB / 0    free]
   PV /dev/sda3   VG vg1    lvm2 [47.84 GiB / 17.59 GiB free]
   Total: 4 [247.83 GiB] / in use: 3 [247.83 GiB] / in no VG: 0 [0   ]
 
 # ls -al /dev/sd*
 brw-rw---- 1 root disk 8,  0 Jan 22 01:14 /dev/sda
 brw-rw---- 1 root disk 8,  1 Jan 22 01:14 /dev/sda1
 brw-rw---- 1 root disk 8,  2 Jan 22 01:14 /dev/sda2
 brw-rw---- 1 root disk 8,  3 Jan 22 01:14 /dev/sda3
 brw-rw---- 1 root disk 8, 16 Jan 22 01:14 /dev/sdb
 brw-rw---- 1 root disk 8, 17 Jan 22 01:14 /dev/sdb1
 brw-rw---- 1 root disk 8, 32 Jan 22 01:14 /dev/sdc
 brw-rw---- 1 root disk 8, 33 Jan 22 01:14 /dev/sdc1

2. Scan the scsi bus to find the new disk

List the host SCSI adapters

 # ls /sys/class/scsi_host/
 host0  host1  host2

Probe each host adapter

 # echo "- - -" > /sys/class/scsi_host/host0/scan
 # echo "- - -" > /sys/class/scsi_host/host1/scan
 # echo "- - -" > /sys/class/scsi_host/host2/scan

3. Check to see if the new device is there

 # ls -al /dev/sd*
 brw-rw---- 1 root disk 8,  0 Jan 22 01:14 /dev/sda
 brw-rw---- 1 root disk 8,  1 Jan 22 01:14 /dev/sda1
 brw-rw---- 1 root disk 8,  2 Jan 22 01:14 /dev/sda2
 brw-rw---- 1 root disk 8,  3 Jan 22 01:14 /dev/sda3
 brw-rw---- 1 root disk 8, 16 Jan 22 01:14 /dev/sdb
 brw-rw---- 1 root disk 8, 17 Jan 22 01:14 /dev/sdb1
 brw-rw---- 1 root disk 8, 32 Jan 22 01:14 /dev/sdc
 brw-rw---- 1 root disk 8, 33 Jan 22 01:14 /dev/sdc1
 brw-rw---- 1 root disk 8, 48 Jan 22 01:14 /dev/sdd

4. Add the disk to your machine as a primary partition

 # fdisk /dev/sdd
 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
 Building a new DOS disklabel with disk identifier 0x663d32f6.
 Changes will remain in memory only, until you decide to write them.
 After that, of course, the previous content won't be recoverable.
 
 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
          switch off the mode (command 'c') and change display units to
          sectors (command 'u').
 
 Command (m for help): m
 Command action
    a   toggle a bootable flag
    b   edit bsd disklabel
    c   toggle the dos compatibility flag
    d   delete a partition
    l   list known partition types
    m   print this menu
    n   add a new partition
    o   create a new empty DOS partition table
    p   print the partition table
    q   quit without saving changes
    s   create a new empty Sun disklabel
    t   change a partition's system id
    u   change display/entry units
    v   verify the partition table
    w   write table to disk and exit
    x   extra functionality (experts only)
 
 Command (m for help): n
 Command action
    e   extended
    p   primary partition (1-4)
 p
 Partition number (1-4): 1
 First cylinder (1-13054, default 1):
 Using default value 1
 Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054):
 Using default value 13054
 
 Command (m for help): w
 The partition table has been altered!
 
 Calling ioctl() to re-read partition table.
 Syncing disks.


5. Create a new physical LVM volume on our new disk.

 # pvcreate /dev/sdd1
   Physical volume "/dev/sdd1" successfully created
 
 You sould now have an additional device:
 # ls -al /dev/sd*
 brw-rw---- 1 root disk 8,  0 Jan 22 01:14 /dev/sda
 brw-rw---- 1 root disk 8,  1 Jan 22 01:14 /dev/sda1
 brw-rw---- 1 root disk 8,  2 Jan 22 01:14 /dev/sda2
 brw-rw---- 1 root disk 8,  3 Jan 22 01:14 /dev/sda3
 brw-rw---- 1 root disk 8, 16 Jan 22 01:14 /dev/sdb
 brw-rw---- 1 root disk 8, 17 Jan 22 01:14 /dev/sdb1
 brw-rw---- 1 root disk 8, 32 Jan 22 01:14 /dev/sdc
 brw-rw---- 1 root disk 8, 33 Jan 22 01:14 /dev/sdc1
 brw-rw---- 1 root disk 8, 48 Jan 22 01:14 /dev/sdd
 brw-rw---- 1 root disk 8, 49 Jan 22 01:14 /dev/sdd1

6. Extend the Volume Group, in this case called data

 # vgextend data /dev/sdd1
   Volume group "data" successfully extended

The new disk should now be added to the Volume Group:

 # vgdisplay -v data
     Using volume group(s) on command line
     Finding volume group "data"
   --- Volume group ---
   VG Name               data
   System ID
   Format                lvm2
   Metadata Areas        3
   Metadata Sequence No  11
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                1
   Open LV               1
   Max PV                0
   Cur PV                3
   Act PV                3
   VG Size               299.99 GiB
   PE Size               4.00 MiB
   Total PE              76797
   Alloc PE / Size       51193 / 199.97 GiB
   Free  PE / Size       25604 / 100.02 GiB
   VG UUID               lEHcjJ-OEEf-pEbi-J00j-5de9-T3ZE-4QPv4H
 
   --- Logical volume ---
   LV Name                /dev/data/blah
   VG Name                data
   LV UUID                aiOIEx-2kK5-RVGr-SHWv-InhH-B69p-j65ziL
   LV Write Access        read/write
   LV Status              available
   # open                 1
   LV Size                199.97 GiB
   Current LE             51193
   Segments               2
   Allocation             inherit
   Read ahead sectors     auto
   - currently set to     256
   Block device           253:1
 
   --- Physical volumes ---
   PV Name               /dev/sdb1
   PV UUID               C0KYU9-krfx-c7pw-pLWo-wf3l-EqiO-qBx3wi
   PV Status             allocatable
   Total PE / Free PE    25599 / 0
 
   PV Name               /dev/sdc1
   PV UUID               qIo3zt-TwBx-Ze6x-BZvy-aY7x-n1NP-IgimVk
   PV Status             allocatable
   Total PE / Free PE    25599 / 5
 
   PV Name               /dev/sdd1
   PV UUID               bbUskE-8rDY-CdgP-0tQy-CVrJ-SBZI-kaQmUj
   PV Status             allocatable
   Total PE / Free PE    25599 / 25599

7. Extend the Logical Volume, in this example by 50Gb

 # lvextend -L +50Gb /dev/data/blah
   Extending logical volume blah to 249.97 GiB
   Logical volume splunk successfully resized

8. Resize the Logical Volume to start using the new space

 # resize2fs -p /dev/data/blah
 resize2fs 1.41.12 (17-May-2010)
 Filesystem at /dev/data/blah is mounted on /data; on-line resizing required
 old desc_blocks = 13, new_desc_blocks = 16
 Performing an on-line resize of /dev/data/blah to 65528832 (4k) blocks.
 The filesystem on /dev/data/blah is now 65528832 blocks long.

9. Check to see it worked

 # vgdisplay -v data
     Using volume group(s) on command line
     Finding volume group "data"
   --- Volume group ---
   VG Name               data
   System ID
   Format                lvm2
   Metadata Areas        3
   Metadata Sequence No  12
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                1
   Open LV               1
   Max PV                0
   Cur PV                3
   Act PV                3
   VG Size               299.99 GiB
   PE Size               4.00 MiB
   Total PE              76797
   Alloc PE / Size       63993 / 249.97 GiB
   Free  PE / Size       12804 / 50.02 GiB
   VG UUID               lEHcjJ-OEEf-pEbi-J00j-5de9-T3ZE-4QPv4H
 
   --- Logical volume ---
   LV Name                /dev/data/splunk
   VG Name                data
   LV UUID                aiOIEx-2kK5-RVGr-SHWv-InhH-B69p-j65ziL
   LV Write Access        read/write
   LV Status              available
   # open                 1
   LV Size                249.97 GiB
   Current LE             63993
   Segments               3
   Allocation             inherit
   Read ahead sectors     auto
   - currently set to     256
   Block device           253:1
 
   --- Physical volumes ---
   PV Name               /dev/sdb1
   PV UUID               C0KYU9-krfx-c7pw-pLWo-wf3l-EqiO-qBx3wi
   PV Status             allocatable
   Total PE / Free PE    25599 / 0
 
   PV Name               /dev/sdc1
   PV UUID               qIo3zt-TwBx-Ze6x-BZvy-aY7x-n1NP-IgimVk
   PV Status             allocatable
   Total PE / Free PE    25599 / 0
 
   PV Name               /dev/sdd1
   PV UUID               bbUskE-8rDY-CdgP-0tQy-CVrJ-SBZI-kaQmUj
   PV Status             allocatable
   Total PE / Free PE    25599 / 12804
 # df -h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/mapper/vg1-root 1008M  209M  749M  22% /
 tmpfs                 1.9G     0  1.9G   0% /dev/shm
 /dev/mapper/vg1-app    25G  5.0G   19G  22% /app
 /dev/sda1             124M   31M   88M  26% /boot
 /dev/mapper/vg1-home 1008M  114M  844M  12% /home
 /dev/mapper/vg1-tmp   756M   17M  701M   3% /tmp
 /dev/mapper/vg1-usr   1.5G  1.1G  389M  73% /usr
 /dev/mapper/vg1-var   2.0G  412M  1.5G  22% /var
 /dev/mapper/data
                     247G  186G   49G  80% /data

You're done!