ng
US
2003/0131182
A1
address,
a
virtualiZation
switch of
this
invention
must
?rst
convert
those
instructions
to
a
physical
target
address
before
instructing
the
target.
[0048]
Targets
may
be
divided
into
physical
or
virtual
“logical
units.”
These
are
speci?c
devices
addressable
through
the
target.
For
example,
a
physical
storage
sub
system
may
be
organiZed
in
a
number
of
distinct
logical
units.
In
this
document,
hosts
vieW
virtual
memory
as
distinct
virtual
logical
units.
Sometimes
herein, logical
units
Will
be
referred
to
as
“LUNs.”
In
the
SCSI
standard,
LUN
refers
to
a
logical
unit
number.
But
in
common
parlance,
LUN
also
refers
to
the
logical
unit
itself.
Central
to
virtu
aliZation
is
the
concept
of
a
“virtualiZation
model.”
This
is
the
Way
in
Which
physical
storage
provided
on
storage
subsystems
(such
as
disk
arrays)
is
related
to
a
virtual
storage
seen
by
hosts
or
other
initiators
on
a
netWork.
While
the
relationship
may
take
many
forms and be
characteriZed
by
various
terms,
a
SCSI-based
terminology
Will
be
used,
as
indicated
above.
Thus,
the
physical
side
of
the
storage area
netWork
Will
be
described
as a
physical
LUN.
The
host
side,
in
turn,
sees
one
or
more
virtual
LUNs,
Which
are
virtual
representations
of
the
physical
LUNs.
[0049]
The
mapping
of physical
LUNs
to
virtual
LUNs
may
logically
take
place
over
one,
tWo,
or
more
levels.
In
the
end,
there
is
a
mapping
function
that
can be used
by
sWitches
of
this
invention
to
interconvert
betWeen
physical
LUN
addresses
and
virtual
LUN
addresses.
[0050]
FIG.
2
is
a
block
diagram
illustrating
an
eXample
of
a
virtualiZation
model
that
may
be
implemented
Within
a
storage
area
netWork
in
accordance
With
various
embodi
ments
of
the
invention.
As
shoWn,
the
physical
storage
of
the
storage
area
netWork
is
made
up
of
one
or
more
physical
LUNs,
shoWn
here
as
physical
disks
202.
Each
physical
LUN
is
a
device
that
is
capable
of
containing
data stored
in
one
or
more
contiguous
blocks
Which
are
individually
and
directly
accessible.
For
instance,
each
block
of
memory
Within
a
physical
LUN
may
be
represented
as
a
block
204,
Which
may
be
referred
to
as
a
disk
unit
(DUnit).
[0051]
Through
a
mapping
function
206,
it
is
possible
to
convert
physical
LUN
addresses
associated
With
physical
LUNs
202
to
virtual
LUN
addresses,
and
vice
versa.
More
speci?cally,
as
described
above,
the
virtualiZation
and
there
fore
the
mapping
function
may
take
place
over
one
or
more
levels.
For
instance,
as
shoWn,
at
a
?rst
virtualiZation
level,
one
or
more
virtual
LUNs
208
each
represents
one
or
more
physical
LUNs
202,
or
portions
thereof.
The
physical
LUNs
202
that
together
make
up
a
single
virtual
LUN
208
need
not
be
contiguous.
Similarly,
the
physical
LUNs
202
that
are
mapped
to
a
virtual
LUN
208
need
not
be
located
Within
a
single
target.
Thus,
through
virtualiZation,
virtual
LUNs
208
may
be
created
that
represent
physical
memory
located
in
physically
distinct
targets,
Which
may
be
from
different
vendors,
and
therefore
may
support
different
protocols
and
types
of
traf?c.
[0052]
Although
the
virtualiZation
model
may
be
imple
mented
With
a
single
level,
a
hierarchical
arrangement
of
any
number
of
levels
may
be
supported
by
various
embodiments
of
the
present
invention.
For
instance,
as
shoWn,
a
second
virtualiZation
level
Within
the
virtualiZation
model
of
FIG.
2
is
referred
to
as
a
high-level
VLUN
or
volume
210.
Typically,
the
initiator
device
“sees”
only
VLUN
210
When
accessing
data.
In
accordance With
various
embodiments
of
Jul.
10,
2003
the
invention,
multiple
VLUNs
are
“enclosed”
Within
a
virtual
enclosure
such
that
only
the
virtual
enclosure
may
be
“seen”
by
the
initiator.
In
other
Words,
the
VLUNs
enclosed
by
the
virtual
enclosure
are
not
visible
to
the
initiator.
[0053]
In
this
eXample,
VLUN
210
is
implemented
as
a
“logical”
RAID
array
of
virtual
LUNs
208.
Moreover,
such
a
virtualiZation
level
may
be
further
implemented,
such
as
through
the
use of
striping
and/or
mirroring. In
addition,
it
is
important
to
note
that
it
is
unnecessary
to
specify
the
number
of
virtualiZation
levels
to
support
the
mapping
function
206.
Rather,
an
arbitrary
number
of
levels
of
virtualiZation
may
be
supported,
for
eXample,
through
a
recursive
mapping
function.
For
instance,
various
levels
of
nodes
may
be
built
and
maintained
in
a
tree
data
structure,
linked
list,
or other
suitable
data
structure
that
can
be
traversed.
[0054]
Each
initiator
may
therefore
access physical
LUNs
via
nodes
located
at
any
of
the levels
of
the
hierarchical
virtualiZation
model.
Nodes
Within
a
given
virtualiZation
level
of
the
hierarchical
model
implemented
Within
a
given
storage
area
netWork
may
be
both
visible
to
and
accessible
to
an
alloWed
set
of
initiators
(not
shoWn).
HoWever,
in
accordance With
various
embodiments
of
the
invention,
these
nodes
are
enclosed
in
a
virtual
enclosure,
and
are
therefore
no
longer
visible
to
the
alloWed
set
of
initiators.
Nodes
Within
a
particular
virtualiZation
level
(e. g.,
VLUNs)
need
to
be
created
before
functions
(e.g.,
read,
Write)
may
be
operated
upon
them.
This
may
be
accomplished,
for
eXample,
through
a
master
boot
record
of
a
particular
initiator.
In
addition,
various
initiators
may
be
assigned
read
and/or
Write
privileges
With
respect
to
particular
nodes
(e. g.,
VLUNs)
Within
a
particular
virtualiZation
level.
In
this
manner,
a
node
Within
a
particular
virtualiZation
level
may
be
accessible
by
selected
initiators.
[0055]
As
described
above,
various
sWitches
Within
a
storage area
netWork
may
be
virtualiZation
sWitches
sup
porting
virtualiZation
functionality.
FIG.
3A
is
a
block
diagram
illustrating
an
exemplary
virtualiZation
sWitch
in
Which
various
embodiments
of
the
present
invention
may
be
implemented.
As
shoWn,
data
or
messages
are
received
by
an
intelligent,
virtualiZation
port via
a
bi-directional
con
nector
302.
In
addition,
the
virtualiZation
port
is
adapted
for
handling
messages
on
behalf
of
a
virtual
enclosure
port,
as
Will
be
described
in
further
detail
beloW.
In
association
With
the
incoming
port,
Media
Access
Control
(MAC)
block
304
is
provided,
Which
enables
frames
of
various
protocols
such
as
Ethernet
or
?bre
channel
to
be
received.
In
addition,
a
virtualiZation
intercept
sWitch
306
determines
Whether
an
address
speci?ed
in
an
incoming
frame
pertains
to
access
of
a
virtual
storage
location
of
a virtual
storage
unit
represent
ing
one
or
more
physical
storage
locations
on
one
or
more
physical
storage
units
of
the
storage
area
netWork.
For
instance,
the
virtual
storage
unit
may
be
a
virtual
storage
unit
(e.g.,
VLUN)
that
is
enclosed
Within
a
virtual
enclosure.
[0056]
When
the
virtualiZation
intercept
sWitch
306
deter
mines
that
the
address
speci?ed
in
an
incoming
frame
pertains
to
access
of
a
virtual
storage
location
rather
than
a
physical
storage
location,
the
frame
is
processed
by
a
virtualiZation
processor
308
capable of
performing
a
map
ping
function
such
as
that
described above.
More
particu
larly,
the
virtualiZation
processor
308
obtains
a
virtual
physical
mapping
betWeen
the
one
or
more
physical
storage