Home > Articles

Managing Storage

  • Print
  • + Share This
This chapter is from the book

In This Chapter

  • Understanding Partitioning
  • Understanding LVM
  • Understanding RAID
  • Understanding Clustering and GFS
  • Using Access Control Lists
  • Using Disk Quotas

Managing storage is an important responsibility. The right solution works seamlessly with little gratitude. The wrong solution can lead to many headaches and late nights of trying to recover from failed file systems or inadequate storage allocation.

During installation, you are asked which partitioning method to use. You must choose to remove Linux partitions on selected drives and create the default layout, remove all partitions on selected drives and create the default layout, use free space on selected drives and create the default layout, or create a custom layout. If you choose to create the default layout, the Logical Volume Manager (LVM) is used to divide the hard drive, and then the necessary Linux mount points are created. Alternatively, if you choose custom layout, you can instead use software RAID or create partitions directly on the hard drives. Global File Systems (GFS) and clustering are two more storage solutions available with Red Hat Enterprise Linux.

This chapter explains these partitioning options so you can determine which is best for you and you can learn how to manage them. It also discusses how to use access control lists to limit access to filesystems as well as how to enforce disk usage limits known as quotas. Analyze how your company uses storage and decide which options are best for you.

Understanding Partitioning

LVM and RAID offer benefits such as resizing, striping, and combining multiple hard drives into logical physical devices. Sometimes it is necessary to just create partitions on the hard drives. Even when using RAID, partitions are created before the LVM or RAID layer is implemented.

To view a list of partitions on the system, use the fdisk -l command as root. As you can see from Listing 7.1, the output shows each partition along with its device name, whether it is a bootable partition, the starting cylinder, the ending cylinder, the number of blocks, the filesystem identification number used by fdisk, and the filesystem type.

Listing 7.1. Partitioning Scheme with Standard Partitions

Disk /dev/sda: 100.0 GB, 100030242816 bytes
255 heads, 63 sectors/track, 12161 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1147     9213246   83  Linux
/dev/sda2            1148        4334    25599577+  83  Linux
/dev/sda3            4335        4399      522112+  82  Linux swap / Solaris
/dev/sda4            4400       12161    62348265    5  Extended
/dev/sda5            4400       12161    62348233+  83  Linux

If the system uses LVM or RAID, the fdisk -l output will reflect it. For example, Listing 7.2 shows the output for a system partitioned with LVM. There are fewer partitions shown because the logical volumes are inside the logical volume group. The first partition shown is the /boot partition because it can’t be inside a logical volume group.

Listing 7.2. Partitioning Scheme with LVM

Disk /dev/sda: 300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          13      104391   83  Linux
/dev/sda2              14       36482    292937242+   8e  Linux LVM

During installation, the hard drives can be partitioned, given a filesystem type for formatting, and assigned a mount point as described in Chapter 1, “Installing Red Hat Enterprise Linux.” If hard drives are added to the system after installation or a hard drive has to be replaced, it is important to understand how to perform these functions post-installation.

Creating Partitions

A partition can be created from free space on a hard drive. You might need to create a partition if you add a new hard drive to the system, if you left unpartitioned space on the system during installation and want to partition it, or if you are using LVM and want to create the physical volumes on a partition instead of an entire raw device.

There are two partitioning utilities in Red Hat Enterprise Linux: parted and fdisk. The parted utility is used in this chapter because it includes a resize utility and is a bit more user-friendly. For more information on fdisk, refer to the man page with the man fdisk command.

As root, issue the parted command followed by the device name such as

parted /dev/sda

You are now in an interactive parted shell, in which the commands executed manipulate the device specified. To view existing partitions from this interactive shell, type the print command at the (parted) prompt. The output should look similar to Listing 7.3. If you compare this output to the output in Listing 7.1 and Listing 7.2 from the fdisk -l command, you will see that the parted output is a little easier to read because it includes the size in user-friendly units such as megabytes and gigabytes instead of the beginning and ending cylinders from the fdisk -l output.

Listing 7.3. Partition Table from parted for Standard Partitions

Using /dev/hda
(parted) print
Disk geometry for /dev/hda: 0kB - 100GB
Disk label type: msdos
Number  Start   End     Size    Type      File system  Flags
1       32kB    9434MB  9434MB  primary   ext3         boot
2       9434MB  36GB    26GB    primary   ext3
3       36GB    36GB    535MB   primary   linux-swap
4       36GB    100GB   64GB    extended
5       36GB    100GB   64GB    logical   ext3

Once again, the output will differ depending on the partitioning scheme being used. Listing 7.4 shows output from a system using LVM and can be compared to Listing 7.2, which shows the same output from fdisk -l.

Listing 7.4. Partition Table from parted for LVM

Disk /dev/sda: 300GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start   End    Size    Type     File system  Flags
 1     32.3kB  107MB  107MB   primary  ext3
 3     107MB   300GB  299.9GB  primary               lvm

To create a partition in parted, issue the following command at the interactive parted prompt:

mkpart <part-type> <fs-type> <start> <end>

<part-type> must be one of primary, logical, or extended. <fs-type> must be one of fat16, fat32, ext2, HFS, linux-swap, NTFS, reiserfs, or ufs. The <start> and <end> values should be given in megabytes and must be given as integers.

The ext3 filesystem is the default filesystem for Red Hat Enterprise Linux. It is the ext2 filesystem plus journaling. To create an ext3 filesystem, use ext2 as the <fs-type> and then use the -j option to mke2fs to make the filesystem ext3 as described in the next section.

After creating the partition, use the print command again to verify that the partition was created. Then type quit to exit parted.

Creating a Filesystem on a Partition

Next, create a filesystem on the partition. To create an ext3 filesystem (default used during installation), as root, execute the following, where <device> is the device name for the partition such as /dev/sda1:

mke2fs -j <device>

If the partition is to be a swap partition, format it with the following command as root:

mkswap <device>

Labeling the Partition

To label the partition, execute the following as root:

e2label <device> <label>

While labeling is not required, partition labels can be useful. For example, when adding the partition to /etc/fstab, the label can be listed instead of the partition device name. This proves useful if the partition number is changed from repartitioning the drive or if the partition is moved.

If the e2label command is used with just the partition device name as an argument, the current label for the partition is displayed.

Creating a Mount Point

Now that the partition is created and has a filesystem, as root, create a directory so it can be mounted:

mkdir <dir-name>

Then, mount the new partition:

mount <device> <dir-name>

such as:

mount /dev/sda5 /tmp

Access the directory and make sure you can read and write to it.

Finally, add the partition to the /etc/fstab file so it is mounted automatically at boot time. For example:

LABEL=/tmp            /tmp               ext3    defaults        1 2

If a new swap partition is added, be sure to use swap as the filesystem type instead:

LABEL=swap2         swap                 swap    defaults        0 0

Resizing Partitions

The parted utility can also be used to resize a partition. After starting parted as root on the desired device, use the following command to resize a specific partition:

resize <minor-num> <start> <end>

To determine the <minor-num> for the partition, look at the partition table with the print command such as the output shown in Listing 7.3 and Listing 7.4. The <start> and <end> values should be the start and end points of the partition, in megabytes.

Removing Partitions

To use parted to remove a partition, start parted on the desired device as root, and issue the following command at the interactive prompt:

rm <minor-num>

The minor number for the partition is displayed when you execute the print command to list partitions. The data on the partition will no longer be accessible after the partition is removed, so be sure to back up any data you want to keep before removing the partition.

  • + Share This
  • 🔖 Save To Your Account