Lec 06

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Storage Systems

NPTEL Course
Jan 2012
(Lecture 06)
K. Gopnat!
"n#an "nsttute o$ Scence

SCS" (Sma%% Computer System "nter$ace)

Stan#ar# nter$ace an# communcaton protoco% $or


computer perp!era%s

&%%o's #e(ce mgmt s' to )e n#ep o$ storage #e(ce

*ase# on t!e C%ent Ser(er &rc!tecture

C%ents ca%%e# "ntators ssue re+uests an# Se(ers


ca%%e# Targets respon# to ntator re+uests

&rc! may not )e )est '!en ,-party .$ers nee#e#

eg. )ac/up )et' tape an# #s/ )ut contro% 't! s'

SCS" comman#s sent n unts ca%%e# Comman#


0escrptor *%oc/s (C0*)

SCS" Transport Layer protoco%s suc! as


SCS"1TCP1"P2 3CP go(ern t!e $%o' o$ SCS"
comman# an# #ata )%oc/s

SCS"

Ear%y SCS" assumes a )us )ase# arc!tecture

not e$$cent n reco(erng $rom pac/et %oss

not an ssue n )us arc!tecture

#r(ers st%% )ase# on o%# SCS" stan#ar#s an# !a(e )een


retro$tte# $or a net'or/

app%catons #esgne# to cope 't! t!e a)o(e

ppe%nng !ar#%y use#

&pp%catons nee# to commt to sta)%e storage

4!en status 5K sent2 cannot %ose #ata

Storage response tme

3e' m%%secon#s $or #s/s6 su)-m%%secon# $or cac!es

Latency )u#get $or nterconnect s!ou%# )e %ess t!an


storage response tme
SCS" Terms

7target78 a co%%ecton o$ %ogca% unts2 #rect%y a##ressa)%e on


t!e net'or/

7ntator78 creates an# sen#s SCS" comman#s to t!e target

7tas/78 a %n/e# set o$ SCS" comman#s

tas/ attr8 9ntagge#2 Smp%e2 5r#ere#2 :ea# o$ ;2


&C&

ma. one comman# n a tas/ can )e outstan#ng at


any g(en tme

7tas/ tag78 use# )y target to #stngus! )et'een tas/s

<L*&=8 Logca% *%oc/ &##ress

<L9N=8 Logca% 9nt Num)er



SCS" *us P!ases

*us 3ree

&r)traton

Se%ecton 1 >ese%ecton8 a$ter t!s2 target n contro%

target #ec#es '!en to rec( msg2 cm#2 #ata $rom ntator

or sen# status to ntator

?essage8 use# )y target to sen#1rec( protoco% n$o

eg8 #ent$y2 cm# comp%ete2 msg party error2 a)ort2 tagge#


; cm#s2 #sconnect1reconnect2 #ata .$er re+2 /%% "5P

0ata2 Comman#2 ?essage2 Status


Bus
Free
Arbitr
ation
Select
ion
Messa
ge
Data

Command
Message
Status

SCS" Protoco%
T
i
m
e
So%cte#
4rte
4rteCm#("ntator Tas/ Tag2 L*&2 %engt!)
>ea#
>ea#y2Trans$er("ntator Tas/ Tag2 Target Tas/ Tag2 %engt!)
"N"T"&T5> T&>GET
4rte0ata(Target Tas/ Tag2 %engt!)
Status("ntator Tas/ Tag)
>ea#Cm#("ntator Tas/ Tag2 L*&2
%engt!)
>ea#0ata("ntator Tas/ Tag2 %engt!)
Status("ntator Tas/ Tag)

4rte 't! Contro%%er @ S&>
T
i
m
e
"N"T"&T5
>
C5NT>5LLE>
T&>GET
4rteCm#("ntator Tas/ Tag2 L*&2 %en)
>ea#y2Trans$er("ntator Tas/ Tag2
Target Tas/ TagACt%r2 %en)
4rte0ata(Target Tas/ TagACt%r2 %en)
4rteCm#("ntator Tas/ TagACtlr2
L*&ACt%r2 %enACtlr)
>ea#y2Trans$er("ntator Tas/
TagACt%r2
Target Tas/ Tag2 %enACt%r)
Status("ntator Tas/ TagACt%r)
4rte0ata(Target Tas/ Tag2 %enACt%r)
Status("ntator Tas/ Tag)
>EPE&T &*5BE , STEPS &S NEC.

4rte 't! ,-'ay trans$ers @ S&>
T
i
m
e
4rteCm#("ntator Tas/ Tag2 L*&2
%en)
4rteCm#("ntator Tas/ TagACtlr2 L*&ACt%r2
%enACtlr, cnxn-id, Initiator Task Tag)
>ea#y2Trans$er("ntator Tas/ Tag2 Target Tas/ Tag2 %enACt%r)
4rte0ata(Target Tas/ Tag2
%enACt%r)
>EPE&T &*5BE , STEPS &S
NEC.
Status("ntator Tas/
TagACt%r)
Status("ntator Tas/
Tag)
"N"T"&T5> C5NT>5LLE> T&>GET

>ea# 't! ,-'ay trans$ers @ S&>
T
i
m
e
May arrive
out-of order
>ea#Cm#("ntator Tas/ Tag2 L*&2 %en)
>ea#Cm#("ntator Tas/ TagACtlr2 L*&ACt%r2
%enACtlr, cnxn-id, Initiator Task Tag)
>ea#0ata("ntator Tas/ Tag2 %enACt%r)
Status("ntator Tas/
TagACt%r)
Status("ntator Tas/
Tag)
>EPE&T &*5BE 2 STEPS &S NEC

SCS" &pp%
SCS" Protoco%
Ser(ces
"nterconnect
Ser(ces
"nterconnect
Ser(ces
SCS" Protoco%
Ser(ces
SCS" &pp%
SCSI-3 Arch
&pp% Layer
SCS" Transport Layer
"nterconnect %ayer
"nterconnect
Protoco% Ser(ce "nter$ace
Ser(ce 0e%(ery Su)system
"nterconnect Ser(ce "nter$ace
SCS"
3CP
S>P
TCP1"P
3C-P:
"*
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
SCS" %ayers n Lnu.
ST
Tapes
C!ar 0e(ce
SG
Generc
C!ar 0e(ce
SCS" 9n$yng %ayer
Co(erts cm# re+uests to SCS" re+s
?anages current cm# an# nteract 't! :*&
:*& $or %oca%
SCS" #s/s
SCS"
TCP1"P
User sace
!ernel sace
9pper Layer
?# Le(e%
Lo' Le(e%
S0
0s/s
*%oc/ 0e(
S>
c#rom1#(#
*%oc/ 0e(
?ore SCS" Terms

SCS"-18 Ln/e# comman#s8 Eg8 see/@rea#

?any cm#s e.ecute# n se+ n 1 "15 process ("5P)

5ne entry n "5P ;

SCS"-28 "5P ;ng8

9ntagge#8 a%%o's a target to accept one "5P $rom


eac! ntator $or eac! %ogca% unt or target routne

target can accept cm#s $rom an ntator '!%e


e.ecutng "5Ps $rom anot!er

Tagge#8 target can accept a seres o$ "5Ps $rom


t!e same or #$$ ntators. E.ecute# accor#ng to a
; mgmt a%g or n spec$e# or#er

Tagge# +ueung a%%o's #r(e to accept mu%tp%e


comman#s $rom eac! ntator
SCS" Comman# Processng1Concurrency ?o#e%s

Taggng

5r#erng 'rt #$$ tags

?.ng tagge# an# untagge#

Error ?o#e%s
SCS"-2 ?o#e%s

Smp%e ; tag

"5P a##e# to cm# ;6 target #ec#es '!en to


e.ecute (#s/s can use e%e(ator a%g)

Comman#s $rom ot!er ntators a%so e.ecute# n


an or#er se%ecte# n t!e same manner

:ea# o$ ; tag

&## to )egnnng o$ ;

?u%tp%e :ea# o$ ; tags n L"35 or#er

5r#ere# ; tag

"n or#er o$ entry e.cept :ea# o$ ; tag processes


5r#erng 'rt #$$ tags

&%% cm#s rece(e# 't! a S"?PLE ;9E9E T&G msg pror to a cm#
rece(e# 't! an 5>0E>E0 ;9E9E T&G msg2 regar#%ess o$ ntator2
e.ecute# )e$ore t!at comman# 't! t!e 5>0E>E0 ;9E9E T&G msg

&%% cm#s rece(e# 't! a S"?PLE ;9E9E T&G msg a$ter a cm#
rece(e# 't! an 5>0E>E0 ;9E9E T&G msg2 regar#%ess o$ ntator2
e.ecute# a$ter t!at cm# 't! 5>0E>E0 ;9E9E T&G msg
?.ng tagge# an# untagge#

&n "15 process rece(e# $rom an ntator 't!out a +ueue tag


message '!%e t!ere are any tagge# "15 comman#s n t!e
comman# +ueue $rom t!at ntator s an ncorrect ntator
connecton2 un%ess t!ere s a contngent a%%egance con#ton.

&n "15 process rece(e# $rom an ntator 't! a +ueue tag


message '!%e t!ere s an untagge# comman# n t!e
comman# +ueue $rom t!at ntator s a%so an ncorrect
ntator connecton.

"n et!er o$ t!ese cases t!e #r(e remo(es a%% comman#s n


t!e +ueue $rom t!at ntator2 a)orts t!e comman# n process
$ t s $rom t!at ntator2 an# sets t!e Sense Key to &)orte#
Comman# an# t!e Sense Co#e to 5(er%appe# Comman#s
&ttempte#.
SCS" Error ?o#e%s

*us reset8

:ar#8 /%% a%% act(e an# outstan#ng "5P an# reset


state o$ target

So$t8 try to comp%ete outstan#ng "5P an# preser(e


current state o$ target

C%ear ;8 (nee#s taggng) /%%s on%y act(e "5P an# a%% t!ose
'atng $or t!s target routne

&)ort Tag8 /%%s on%y act(e "5P 't!n or#ere# tagge# ;s

&)ort8 K%%s a%% runnng "5P processes an# t!ose n ;

&sync! E(ent Not$caton8 $rom target to ntator

&C&8 sense n$o t!at !as to )e rea# )e$ore ne.t re+uest


Summary

SCS" C%ent Ser(er &rc!

Longe(ty o$ protoco%

SCS" protoco% ta/es nto acct s%o'ness o$ #e(ces

&%so !as to cons#er para%%e%sm '!en


poss)%e

&%so mo#e% errors

No securty mo#e%

Just as t!e SCS" %ayer !an#%es t!e a)o(e ssues2


e(ery ot!er %ayer may !a(e to !an#%e t!e same
ssues

You might also like