bug-parted
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Storage Regions


From: Ben Rafanello
Subject: Storage Regions
Date: Fri, 27 Apr 2001 11:43:24 -0500

Hello everyone!

In my last post, I discussed the userspace volume creation model.
|
This model deals with Features, Storage Objects, and Storage Regions.  I
discussed briefly how a Feature can produce a Storage Object from a Storage
Region, but I never really got into what a Storage Region represents.  From
our definition, a Storage Region is an ordered set of logically contiguous
sectors residing in a Storage Container.  A Storage Container is a set
of one or more Disk Segments, where a Disk Segment is an ordered set of
contiguous sectors residing on a logical disk.  So, then, a Storage
Container
is a collection of blocks of physical disk space which may then be
virtualized
and suballocated into Storage Regions.  How the Storage Container is
suballocated is up to the Region Manager which created the Storage
Container.

Example:

AIX uses Volume Groups.  We would like to be able to access AIX volumes and
volume groups under EVMS.  AIX volume groups consist of physical disks.
How would we support this under EVMS?

An AIX Segment Manager would be created.  It would recognize disks which
are
part of an AIX volume group and create a single disk segment to represent
such disks.

An AIX Region Manager would examine the disk segments in the system and
recognize those which represent physical disks belonging to an AIX volume
group.  The AIX Region Manager would claim these disk segments and
reconstruct the volume groups they belong to.  For each Volume Group it
creates, the AIX Region Manager would create a Storage Container.  For
each Storage Container under its control, it would export one Storage
Region
for each AIX Logical Volume found in the volume group that the Storage
Container represents.  The freespace in that storage container would then
be represented by another storage region.

Example:

OS/2 forms volumes from partitions.  We would like to be able to access
OS/2 volumes under EVMS.  How would we support this under EVMS?

Well, for OS/2 there are several ways that we can do this, but one way
would be to create an OS/2 Segment Manager and an OS/2 Region Manager.
The OS/2 Segment Manager would recognize disks partitioned using the
OS/2 partitioning scheme.  It would create disk segments for each partition
and block of freespace found on an OS/2 partitioned disk.  The OS/2
Region Manager would create one Storage Container consisting of all of
the disk segments from all of the disks partitioned using the OS/2
partitioning scheme.  It would then construct OS/2 volumes from the
disk segments and export each OS/2 volume as a Storage Region.  Unlike
the AIX Region Manager, however, it would export each block of free
space as a separate storage region (this is required to emulate certain
other OS/2 behaviors).

Storage Region Attributes:

A storage region represents either allocated space or unallocated space.
A storage region representing allocated space can not be subdivided,
whereas one which represents unallocated space can be.  In our
examples above, the AIX and OS/2 volumes which were discovered by their
respective region managers were exported as storage regions.  In
particular, they were exported as allocated storage regions.  The
storage regions used to represent freespace are unallocated storage
regions.  Allocated storage regions may be deleted, at which point they
may be converted into unallocated storage regions or they may become
part of another unallocated storage regions (this is up to the region
manager).

To put it more simply, allocated storage regions represent things which
exist within the storage container, while unallocated regions represent
unused portions of the storage container.  This behavior for storage
regions is an attempt to model the behavior of partitions on a disk or
volumes within a volume group.  However, we wonder if these
distinctions are necessary.  If a storage region represents a partition
on a disk and the storage region needs to be divided into two
parts, then this could be modeled as a delete of the partition followed
by the creation of new partitions which reuse some or all of the space
from the old one.  Similarly, if a storage region represents a volume
from a volume group and the storage region needs to be divided into
two or more parts, this could be modeled as a deletion of the volume
within the volume group followed by the creation of the new
volumes within the volume group (potentially using the space from
the volume that was deleted).  We want to eliminate the distinctions
between allocated and unallocated storage regions so that we have
just storage regions, but we don't want to do that until we are sure
that such a distinction is not needed.  Does anyone know of any
cases where such a distinction is needed????

The Default Storage Container

Since storage regions come from storage containers, and since
storage objects can only be constructed from storage regions
(or other storage objects), and since volumes are constructed
from storage objects, we need a default region manager to
turn disk segments into a storage container from which storage
regions may come.  The default region manager will claim any
disk segments which have not been claimed by other region
managers and place them in the default storage container.  The
behavior of the default region manager will be to turn each
disk segment in the default storage container into a storage
region.

This post has become rather long, so I will continue talking
about the properties of storage regions in another post.  I hope
I haven't confused everyone too badly.  It might be easier to
talk about storage regions during the EVMS conference call,
so I will give it a go there.

Regards,

Ben Rafanello
IBM Linux Technology Center
(512) 838-4762
address@hidden

Current Glossary of EVMS Terms (to be revised as needed):

Sector - Standard meaning - lowest level of addressability.
         Assumed to be on a physical device.

Logical Disk - The ordered set of contiguous sectors which
               comprise/represent a device.

Disk Segment - An ordered set of contiguous sectors residing on a
               Logical Disk.

Storage Container - A set of one or more Disk Segments.

Storage Region - An ordered set of logically contiguous sectors
                 residing in a Storage Container.

Storage Object - A logically contiguous address space created from
                 one or more Storage Regions or Storage Objects
                 through the use of one or more EVMS Features.

Volume - A mountable storage object.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]