Adding and removing a segment manager
This chapter discusses when to use a segment manager, what the different types of segment managers are, how to add a segment manager to a disk, and how to remove a
segment manager.
When to add a segment manager
Adding a segment manager to a disk allows the disk to be subdivided into
smaller storage objects called disk segments. The
add command causes a
segment manager to create appropriate metadata and expose freespace
that the segment manager
finds on the disk. You need to add segment managers when you
have a new disk or
when you are switching from one partitioning scheme to another.
EVMS displays disk segments as the following types:
Data: a set of contiguous sectors that has been allocated
from a disk and can be used to construct a volume or object.
Freespace: a set of contiguous sectors that are unallocated
or not in use. Freespace can be used to create a segment.
Metadata: a set of contiguous sectors that contain
information needed by the segment manager.
Types of segment managers
There are seven types of segment managers in EVMS: DOS, GPT, S/390, Cluster, BSD, MAC, and BBR.
DOS Segment Manager
The most
commonly used segment manager is the DOS Segment Manager. This plug-in
provides support for traditional DOS disk partitioning. The
DOS Segment Manager also recognizes and supports the following variations
of the DOS partitioning scheme:
OS/2: an OS/2 disk has additional metadata
sectors that contain information needed to reconstruct disk segments.
Embedded partitions: support for BSD, SolarisX86, and UnixWare
is sometimes found embedded in primary DOS partitions.
The DOS Segment Manager recognizes and supports these
slices as disk segments.
GUID Partitioning Table (GPT) Segment Manager
The GUID Partitioning Table (GPT) Segment Manager handles the
new GPT partitioning scheme
on IA-64 machines. The Intel
Extensible Firmware Interface Specification
requires that firmware be able to discover partitions and produce logical devices that
correspond to disk partitions. The partitioning scheme described in
the specification is called GPT due to the extensive use of
Globally Unique Identifier (GUID) tagging. GUID is a 128 bit long
identifier, also referred to as a Universally Unique Identifier (UUID).
As described in the Intel Wired For Management Baseline Specification,
a GUID is a combination of time and space fields that produce an
identifier that is unique across an entire UUID space.
These identifiers are used extensively on GPT partitioned disks
for tagging entire disks and individual partitions.
GPT partitioned disks serve several functions, such as:
keeping a primary and backup copy of metadata
replacing msdos partition nesting by allowing many partitions
using 64 bit logical block addressing
tagging partitions and disks with GUID descriptors
The GPT Segment Manager scales better to large disks. It provides more redundancy with added reliability and uses unique names. However, the GPT Segment Manager is not compatible with DOS, OS/2, or Windows®.
S/390 Segment Manager
The S/390 Segment Manager is used exclusively on System/390
mainframes. The S/390 Segment Manager has the ability to recognize
various disk layouts found on an S/390 machine, and provide
disk segment support for this architecture. The two most common disk
layouts are Linux Disk Layout (LDL) and Common Disk Layout (CDL).
The principle difference between LDL and CDL is that an LDL disk
cannot be further subdivided. An LDL disk will produce a single metadata
disk segment and a single data disk segment. There is no freespace on an
LDL disk, and you cannot delete or re-size the data segment. A CDL disk can
be subdivided into multiple data disk segments
because it contains metadata that is missing from an LDL disk, specifically
the Volume Table of Contents (vtoc) information.
The S/390 Segment Manager is the only segment manager plug-in
capable of understanding the unique S/390 disk layouts. The S/390 Segment Manager
cannot be added or removed from a disk.
Cluster segment manager
The cluster segment manager (CSM) supports high availability clusters. When the
CSM is added to a shared storage disk, it writes metadata on the disk that:
provides a unique disk ID (guid)
names the EVMS container the disk will reside within
specifies the cluster node (nodeid) that owns the disk
specifies the cluster (clusterid)
This metadata allows the CSM to build containers for supporting failover situations.
It does so by constructing an EVMS container object that consumes all shared disks
discovered by the CSM and belonging to the same container. These shared storage
disks are consumed by the container and a single data segment is produced by the
container for each consumed disk. A failover of the EVMS resource is
accomplished by simply reassigning the CSM container to the standby cluster node and
having that node re-run its discovery process.
Adding disks to CSM containers implies that only disk storage objects are
acceptable to the CSM. This is an important aspect of the CSM. Other segment
managers can be embedded within storage objects and used to further subdivide them.
However, the CSM cannot add any other kind of storage object to a CSM container
because the container is meant to be a disk group and the entire disk group is
reassigned during a failover. So, the CSM only accepts disks when constructing
containers. This is important to remember when adding the CSM to a disk. If you
choose Add and the CSM does not appear in the list of selectable plug-ins when you know you have a disk, you should look at the Volume list and see if the disk has
already been listed as a compatibility volume. If you simply delete the volume, the disk will
become an available object and the CSM will then appear in the list of plug-ins
because it now has an available disk that it can add to a container.
BSD segment manager
BSD refers to the Berkeley Software Distribution UNIX® operating system. The EVMS
BSD segment manager is responsible for recognizing and producing EVMS segment
storage objects that map BSD partitions. A BSD disk may have a slice table in the
very first sector on the disk for compatibility purposes with other operating systems.
For example, a DOS slice table might be found in the usual MBR sector. The BSD disk
would then be found within a disk slice that is located using the compatibility slice table.
However, BSD has no need for the slice table and can fully dedicate the disk to
itself by placing the disk label in the very first sector. This is called a "fully dedicated
disk" because BSD uses the entire disk and does not provide a compatibility slice table.
The BSD segment manager recognizes such "fully dedicated disks" and provides mappings for
the BSD partitions.
MAC segment manager
Apple-partitioned disks use a disk label that is recognized by the MAC segment
manager. The MAC segment manager recognizes the disk label during discovery and
creates EVMS
segments to map the MacOS disk partitions.
BBR segment manager
The bad block replacement (BBR) segment manager enhances the reliability of
a disk by remapping bad storage blocks. When BBR is added to a disk, it writes
metadata on the disk that:
reserves replacement blocks
maps bad blocks to reserved blocks
Bad blocks occur when an I/O error is detected for a write operation.
When this happens, I/O normally fails and the failure code is returned to the
calling program code. BBR detects failed write operations and remaps the I/O to a
reserved block on the disk. Afterward, BBR restarts the I/O using the reserve block.
Every block of storage has an address, called a logical block address, or LBA.
When BBR is added to a disk, it provides two critical functions: remap and recovery.
When an I/O operation is sent to disk, BBR inspects the LBA in the I/O command to see
if the LBA has been remapped to a reserve block due to some earlier I/O error.
If BBR finds a mapping between the LBA and a reserve block, it updates the I/O
command with the LBA of the reserve block before sending it on to the disk.
Recovery occurs when BBR detects an I/O error and remaps the bad block to a
reserve block. The new LBA mapping is saved in BBR metadata so that subsequent
I/O to the LBA can be remapped.
Adding a segment manager to an existing disk
When you add a segment manager to a disk, the segment manager
needs to change the basic
layout of the disk. This change means that some sectors are
reserved for metadata and the remaining sectors are
made available for creating data disk segments. Metadata sectors
are written to disk to save information
needed by the segment manager; previous information found on the
disk is lost. Before adding a
segment manager to an existing disk, you must remove any existing
volume management structures, including any previous segment manager.
Adding a segment manager to a new disk
When a new disk is added to a system,
the disk usually contains no data and has not
been partitioned. If this is the case, the disk shows up in EVMS as a compatibility volume because
EVMS cannot tell if the disk is being used as a volume. To add a segment manager to the disk so that it
can be subdivided into smaller disk segment objects, tell EVMS that the disk is not a
compatibility volume by deleting the volume information.
If the new disk was moved from another system, chances are good that the disk already contains
metadata. If the disk does contain metadata, the disk shows up in EVMS with storage objects that
were produced from the existing metadata. Deleting these objects will allow you to add a different
segment manager to the disk, and you lose any old data.
Example: add a segment manager
This section shows how to add
a segment manager with EVMS.
EVMS initially displays the
physical disks it sees as volumes. Assume that you have added a new
disk to the system that EVMS
sees as sde.
This disk contains no data and has not been subdivided
(no partitions). EVMS assumes that this
disk is a compatibility volume known as /dev/evms/sde.
Add the DOS Segment Manager
Add the DOS Segment Manager to disk sde.
NOTE
In the following example, the DOS Segment
Manager creates two segments on the disk:
a metadata segment known as sde_mbr, and a
segment to represent the available space on
the drive, sde_freespace1. This freespace
segment (sde_freespace1) can be
divided into
other segments because it represents space on
the drive that is not in use.
Using the EVMS GUI
To add the DOS Segment Manager to sde, first
remove the volume, /dev/evms/sde:
Select Actions
Delete
Volume.
Select /dev/evms/sde.
Click Delete.
Alternatively, you can remove the volume through the GUI context sensitive menu:
From the Volumes tab, right click /dev/evms/sde.
Click Delete.
After the volume is removed, add the DOS Segment Manager:
Select Actions
Add
Segment Manager to Storage Object.
Select DOS Segment Manager.
Click Next.
Select sde
Click Add
Using Ncurses
To add the DOS Segment Manager to sde, first remove the
volume /dev/evms/sde:
Select ActionsDelete
Segment Manager to Storage Object.
Select /dev/evms/sde.
Activate Delete.
Alternatively, you can remove the volume through the context sensitive menu:
From the Logical Volumes view, press Enter on
/dev/evms/sde.
Activate Delete.
After the volume is removed, add the DOS Segment Manager:
Select ActionsAdd
Segment Manager to Storage Object
Select DOS Segment Manager.
Activate Next.
Select sde.
Activate Add.
Using the CLI
To add the DOS Segment Manager to sde, first tell EVMS that this disk is not a
volume and is available for use:
Delete:/dev/evms/sde
Next, add the DOS Segment Manager to sde by typing the following:
Add:DosSegMgr={},sde
Removing a segment manager
When a segment manager is removed from a disk, the disk can be reused by
other plug-ins. The remove command causes the segment manager to remove its
partition or slice table from the disk, leaving the raw disk storage object that then
becomes an available EVMS storage object. As an available storage object,
the disk is free to be used by any plug-in when storage objects are created or expanded.
You can also add any of the segment managers to the available disk storage object
to subdivide the disk into segments.
Most segment manager plug-ins check to determine if any of the segments are still in
use by other plug-ins or are still part of volumes. If a segment manager determines
that there are no disks from which it can safely remove itself, it will not be listed
when you use the remove command. In this case, you should delete the
volume or storage object that is consuming segments from the disk you want to reuse.
Example: remove a segment manager
This section shows how to remove
a segment manager with EVMS.
Remove the DOS Segment Manager
Remove the DOS Segment Manager from disk sda.
NOTE
In the following example, the DOS Segment
Manager has one primary partition on disk sda.
The segment is a compatibility volume known as
/dev/evms/sda1.
Using the EVMS GUI context sensitive menu
Follow these steps to remove a segment manager with the GUI context sensitive menu:
From the Volumes tab, right click /dev/evms/sda1..
Click Delete.
Select Actions
Remove
Segment Manager from Storage Object.
Select DOS Segment Manager, sda.
Click Remove.
Using Ncurses
Follow these steps to remove a segment manager with the Ncurses interface:
Select ActionsDelete
Volume.
Select /dev/evms/sda1.
Click Delete.
Select ActionsRemove
Segment Manager from Storage Object.
Click Remove.
Using the CLI
Follow these steps to remove a segment manager with the CLI:
Delete:/dev/evms/sda1
Remove: sda