ng
US
2003/0131182
A1
METHODS AND
APPARATUS
FOR
IMPLEMENTING
VIRTUALIZATION
OF
STORAGE
WITHIN
A
STORAGE
AREA
NETWORK
THROUGH
A
VIRTUAL
ENCLOSURE
BACKGROUND
OF
THE
INVENTION
[0001]
1.
Field
of
the
Invention
[0002]
The
present
invention
relates
to
network
technol
ogy.
More
particularly,
the
present
invention
relates
to
methods
and
apparatus
for
supporting
virtualiZation
of
stor
age
Within
a
storage area
netWork.
[0003]
2.
Description
of
the
Related
Art
[0004]
In recent
years, the
capacity
of
storage
devices
has
not
increased
as
fast
as
the
demand
for
storage.
Therefore
a
given
server or
other
host
must
access
multiple,
physically
distinct
storage
nodes
(typically
disks).
In
order
to
solve
these
storage
limitations,
the
storage
area
netWork
(SAN)
Was
developed.
Generally,
a
storage
area
netWork
is
a
high-speed
special-purpose
netWork
that
interconnects
dif
ferent
data
storage
devices
and
associated
data hosts
on
behalf
of
a
larger
netWork
of
users.
HoWever,
although
a
SAN
enables
a
storage
device
to
be
con?gured
for
use
by
various
netWork
devices
and/or
entities
Within
a
netWork,
data
storage
needs
are
often
dynamic
rather
than
static.
[0005]
FIG.
1A
illustrates
an
exemplary
conventional
storage
area
netWork.
More
speci?cally,
Within
a
storage
area
netWork
102,
it
is
possible
to
couple
a
set
of
hosts
(e.g.,
servers or
Workstations)
104, 106,
108
to
a
pool
of
storage
devices
(e.g.,
disks).
In
SCSI
parlance,
the
hosts
may
be
vieWed
as
“initiators”
and
the
storage
devices
may
be
vieWed
as
“targets.”
Astorage
pool
may
be
implemented,
for
example,
through
a
set
of
storage
arrays
or
disk
arrays
110,
112,
114.
Each
disk
array
110, 112,
114
further
corresponds
to
a
set
of
disks.
In
this
example,
?rst
disk
array
110
corresponds
to
disks 116, 118,
second
disk
array
112
corre
sponds
to
disk 120,
and
third
disk
array
114
corresponds
to
disks
122,
124.
Rather
than
enabling
all
hosts
104-108
to
access
all
disks
116-124,
it
is
desirable
to
enable
the
dynamic
and
invisible
allocation
of
storage
(e.g.,
disks)
to
each
of
the
hosts
104-108
via
the
disk
arrays
110, 112,
114.
In other
Words,
physical
memory
(e.g.,
physical
disks)
may
be
allocated
through
the
concept
of
virtual
memory
(e.g.,
virtual
disks).
This
alloWs
one
to
connect
heterogeneous
initiators
to
a
distributed,
heterogeneous
set
of
targets
(stor
age
pool)
in
a
manner
enabling
the
dynamic
and
transparent
allocation
of
storage.
[0006]
The
concept
of
virtual
memory
has
traditionally
been
used
to
enable
physical
memory
to
be
virtualiZed
through
the
translation
betWeen
physical
addresses
in
physi
cal
memory
and
virtual
addresses
in
virtual
memory.
Recently,
the
concept
of
“virtualiZation”
has
been
imple
mented
in
storage
area
netWorks
through
various
mecha
nisms.
VirtualiZation
interconverts
physical
storage
and
vir
tual
storage
on
a
storage
netWork.
The
hosts
(initiators)
see
virtual
disks
as
targets.
The
virtual
disks
represent
available
physical
storage
in a
de?ned
but
someWhat
?exible
manner.
VirtualiZation
provides
hosts
With
a
representation
of
avail
able
physical
storage
that
is
not
constrained
by
certain
physical
arrangements/allocation
of
the
storage.
[0007]
One
early
technique,
Redundant
Array
of
Indepen
dent
Disks
(RAID),
provides
some
limited
features
of
vir
Jul.
10,
2003
tualiZation.
Various
RAID
subtypes
have
been
implemented.
In
RAID1,
a
virtual
disk
may
correspond
to
tWo
physical
disks 116,
118
Which
both
store
the
same
data
(or
otherWise
support
recovery
of
the
same
data),
thereby
enabling
redun
dancy
to
be
supported
Within
a
storage
area
netWork.
In
RAIDO,
a
single
virtual
disk
is
striped
across
multiple
physical
disks.
Some
other
types
of
virtualiZation
include
concatenation,
sparing,
etc.
Some
aspects
of
virtualiZation
have
recently
been
achieved
through
implementing
the
virtualiZation
function
in
various
locations
Within
the
stor
age
area
netWork.
Three
such
locations
have
gained
some
level
of
acceptance:
virtualiZation
in
the
hosts
(e.g.,
104
108),
virtualiZation
in
the
disk
arrays
or storage
arrays
(e.g.,
110-114),
and
virtualiZation
in
a
storage
appliance
126
separate
from
the
hosts
and
storage
pool.
Unfortunately,
each
of
these
implementation
schemes
has
undesirable
per
formance
limitations.
[0008]
VirtualiZation
in
the
storage
array
is
one
of
the
most
common
storage
virtualiZation
solutions
in
use
today.
Through
this
approach,
virtual
volumes
are
created
over
the
storage
space of
a
speci?c
storage
subsystem
(e.g.,
disk
array).
Creating
virtual
volumes
at
the
storage
subsystem
level
provides
host
independence,
since
virtualiZation
of
the
storage
pool
is
invisible
to
the
hosts.
In
addition,
virtualiZa
tion
at
the
storage
system
level
enables
optimiZation
of
memory
access
and
therefore
high
performance.
HoWever,
such
a
virtualiZation
scheme
typically
Will
alloW
a
uniform
management
structure
only
for a
homogenous
storage
envi
ronment
and
even
then
only
With
limited
?exibility.
Further,
since
virtualiZation
is
performed
at
the
storage
subsystem
level,
the
physical-virtual
limitations
set
at
the
storage
subsystem
level
are
imposed
on
all
hosts
in
the
storage area
netWork.
Moreover,
each
storage
subsystem
(or
disk
array)
is
managed
independently.
VirtualiZation
at
the
storage
level
therefore
rarely
alloWs
a virtual
volume
to
span
over
mul
tiple
storage
subsystems
(e.g.,
disk
arrays),
thus
limiting
the
scalability
of
the
storage-based
approach.
[0009]
When
virtualiZation
is
implemented
on
each
host,
it
is
possible
to
span
multiple
storage
subsystems
(e.g.,
disk
arrays).
A
host-based
approach
has
an
additional
advantage,
in
that
a
limitation
on
one
host
does
not
impact
the
operation
of
other hosts
in
a
storage area
netWork.
HoWever,
virtual
iZation
at
the
host-level
requires
the
existence
of
a
softWare
layer
running
on
each
host
(e.g.,
server)
that
implements
the
virtualiZation
function.
Running
this
softWare
therefore
impacts
the
performance
of
the
hosts
running
this
softWare.
Another
key
dif?culty
With
this
method
is
that
it
assumes
a
prior
partitioning
of
the
available
storage
to
the
various
hosts.
Since
such
partitioning
is
supported
at
the
host-level
and
the
virtualiZation
function of
each
host
is
performed
independently
of
the
other hosts
in
the
storage
area
netWork,
it
is
dif?cult
to
coordinate
storage
access
across
the
hosts.
The
host-based
approach
therefore
fails
to
provide
an
adequate
level
of
security.
Due
to this
security
limitation,
it
is
difficult
to
implement
a
variety
of
redundancy
schemes
such
as
RAID
Which
require
the
“locking”
of
memory
during
read
and
Write
operations.
In
addition,
When
mirror
ing
is
performed,
the
host
must
replicate
the
data
multiple
times,
increasing
its
input-output
and
CPU
load,
and
increas
ing
the traf?c
over
the
SAN.
[0010]
VirtualiZation
in
a
storage
area
netWork
appliance
placed
betWeen
the
hosts
and
the
storage
solves
some
of
the
dif?culties
of
the
host-based
and
storage-based
approaches.