Difference between revisions of "Adding a New Disk to a Fedora Volume Group and Logical Volume"

From Techotopia
Jump to: navigation, search
(Getting Information and Logical Volumes)
(Adding Additional Space to a Fedora Volume Group)
Line 145: Line 145:
 
== Adding Additional Space to a Fedora Volume Group ==
 
== Adding Additional Space to a Fedora Volume Group ==
  
In the remainder of this chapter we will assume that a new disk has been added to the system and that it is being seen by the operating system as /dev/sdb. We shall also assume that this is a new disk that does not contain any existing partitions. If existing partitions are present they shopuld be backed up and deleted from the disk using the ''fdisk'' utility.
+
In the remainder of this chapter we will assume that a new disk has been added to the system and that it is being seen by the operating system as /dev/sdb. We shall also assume that this is a new disk that does not contain any existing partitions. If existing partitions are present they should be backed up and then the partitions deleted from the disk using the ''fdisk'' utility.
  
 
The first step is to convert this disk into a physical volume. This is achieved using the ''pvcreate'' command:
 
The first step is to convert this disk into a physical volume. This is achieved using the ''pvcreate'' command:

Revision as of 19:39, 13 March 2008

PreviousTable of Contents
Adding a New Disk Drive to a Fedora Linux System


In the previous chapter we looked at adding a new disk drive to a Fedora system, creating a partition and file system and then mounting that file system so that the disk can be accessed. An alternative to creating fixed partitions and file systems is to use Logical Volume Management (LVM) to create logical disks made of space from one or more physical disks or partitions. The advantage of using LVM is that space can be added to or removed from logical volumes as needed without the need to spread data over multiple file systems.

Let us take, for example, the root (/) file system. Without LVM this filesystem would be created with a certain size when the operating is installed. If a new disk drive is installed there is no way to allocate any of that space to the / file system. The only option would be to create new file systems on the new disk and mount it at a particular mount point. In this scenario you would have plenty of space on the new file system but the / file system would still be nearly full. The only option would be to move files onto the new file system. With LVM, the new disk (or part thereof) can be assigned to the logical volume containing the root file system thereby extending the space available.

In this chapter we will look at the steps necessary to add new disk space to both a volume group and a logical volume for the purpose of adding additional space to the root file system.


Contents


An Overview of Logical Volume Management (LVM)

LVM provides a flexible and high level approach to managing disk space. Instead of each disk drive being split into partitions of fixed sizes onto which fixed size are in turn file systems are created, LVM provides a way to group together disk space into logical volumes which can be easily resized and moved. In addition LVM allows administrators to carefully control disk space assigned to different groups of users by allocating distinct volume groups or logical volumes to those users. When the space initially allocated to the volume is exhausted the administrator can simply add more space without having to move the user files to a different file system.

LVM consists of the following components:

Volume Group (VG)

The Volume Group is the high level container which holds one or more logical volumes and physical volumes.


Physical Volume (PV)

A physical volume represents a storage device such as a disk drive or other storage media.

Logical Volume (LV)

A logical volume is the equivalent to a disk partition and, as with a disk partition, can contain a file system.

Physical Extent (PE)

Each physical volume (PV) is divided into equal size blocks known as physical extents.

Logical Extent (LE)

Each logical volume (LV) is divided into equal size blocks called logical extents.

Let's suppose we are creating a new volume group called VolGroup001. This volume group needs physical disk space in order to function so we allocate three disk partitions /dev/sda1, /dev/sdb1 and /dev/sdb2. These become physical volumes in VolGroup001. We would then create a logical volume called LogVol001 within the volume group made up of the three physical volumes.

If we run out of space in LogVol001 we simply add more disk partitions as physical volumes and assign them to the volume group and logical volume.

Getting Information and Logical Volumes

As an example of using LVM with Fedora we will work through an example of adding space to the / filesystem of a standard Fedora installation. Anticipating the need for flexibility in the sizing of the root partition, Fedora sets up the / file system as a logical volume (called LogVol00) within a volume group called VolGroup00. Before making any changes to the LVM setup it is important to gather information.

Running the mount command on Fedora system will typically show the following output:

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)

Information about the volume group can be obtained using the /usr/sbin/vgdisplay command:

# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.78 GB
  PE Size               32.00 MB
  Total PE              633
  Alloc PE / Size       632 / 19.75 GB
  Free  PE / Size       1 / 32.00 MB
  VG UUID               iTJMot-CrCQ-VFgq-P0an-2g3H-YGPn-NP31j2

As we can see the in the above example, VolGroup00 has a physical extend size of 32MB and has a total of 19.78Gb available for allocation to logical volumes. Currently 632 physical extents are allocated equaling the total 19.78Gb capacity. If we want to increase the space allocated to any logical volumes in VolGroup00 we will need to add one or more physical volumes.

Information about logical volumes in a volume group may similarly be obtained using the lvdisplay command:

# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                c7Emk9-KOj2-Jnb2-6nW8-hpmL-PKli-MTYK3f
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                17.81 GB
  Current LE             570
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                0U9jCH-HmJ0-awJC-dRFO-KoxJ-iFV0-yLX6qW
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.94 GB
  Current LE             62
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:1

As shown in the above example 17.81Gb of the space in VolGroup00 is allocated to logical volume LogVol00 and 1.94Gb to LogVol01. Now that we know what space is being used it is often helpful to understand which devices are providing the space (in other words which devices are being used as physical volumes). To obtain this information we need to run the pvdisplay command:

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               19.80 GB / not usable 21.36 MB
  Allocatable           yes 
  PE Size (KByte)       32768
  Total PE              633
  Free PE               1
  Allocated PE          632
  PV UUID               n4qB3n-CBB9-yTmM-2trj-tgl7-HCYW-Egsxzq

Clearly the space controlled by logical volume VolGroup00 is provided via a physical volume located on /dev/sda2.

Now that we know a little more about our LVM configuration we can embark on the process of adding space to the volume group and the logical volume contained within.

Adding Additional Space to a Fedora Volume Group

In the remainder of this chapter we will assume that a new disk has been added to the system and that it is being seen by the operating system as /dev/sdb. We shall also assume that this is a new disk that does not contain any existing partitions. If existing partitions are present they should be backed up and then the partitions deleted from the disk using the fdisk utility.

The first step is to convert this disk into a physical volume. This is achieved using the pvcreate command:

pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

With the physical volume created we now need to add it to the volume group (VolGroup00) using the vgextend command:

vgextend VolGroup00 /dev/sdb
  Volume group "VolGroup00" successfully extended

The new physical volume has now been added to the volume group and is ready to be allocated to a logical volume. To do this we run the lvextend tool providing the size by which we wish to extend the volume. In this case we want to extend the size of LogVol00 by 4Gb. Note that we need to provide the path to the logical volume which can be obtained from the lvdisplay command (in this case /dev/VolGroup00/LogVol00):

lvextend -L+4G /dev/VolGroup00/LogVol00
  Extending logical volume LogVol00 to 21.81 GB
  Logical volume LogVol00 successfully resized

The last step in the process is to resize the file system residing on the logical volume so that it uses the additional space. Since we are assuming a default Fedora installation here this can be achieved using the resize2fs command:

# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.40.4 (31-Dec-2007)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 5718016 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 5718016 blocks long.

Once the resize completes the file system will have been extended to use the additional space provided by the new disk drive. All this has been achieved without moving a single file. As far as any users on the system are concerned nothing has changed (except that there is now more disk space).



PreviousTable of Contents
Adding a New Disk Drive to a Fedora Linux System