throbber
US007870225B2
`
`(12) United States Patent
`Kim
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,870,225 B2
`Jan. 11, 2011
`
`(54) DISKSYSTEMADAPTED TO BE DIRECTLY
`ATTACHED TO NETWORK
`
`(75) Inventor: Han-gyoo Kim, Seoul (KR)
`
`(73) Assignee: Zhe Khi Pak, Moscow (RU)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`DE
`
`6/1995 Chinnocket al.
`5.426,427 A
`5,455,926 A 10/1995 Keele et al. .................... T11/4
`5,459,857 A * 10/1995 Ludlam et al. ................. T14?6
`5,463,772 A 10/1995 Thompson et al.
`5,513,314 A
`4/1996 Kandasamy et al.
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`1961O840
`9, 1997
`
`(21) Appl. No.: 12/701,335
`(22) Filed:
`Feb. 5, 2010
`(65)
`Prior Publication Data
`US 2010/O1386O2A1
`Jun. 3, 2010
`
`Related U.S. Application Data
`(62) Division of application No. 09/974,082, filed on Oct.
`9, 2001, now Pat. No. 7,792,923.
`(60) Provisional application No. 60/240,344, filed on Oct.
`13, 2000.
`(51) Int. Cl.
`(2006.01)
`G06F 15/16
`(2006.01)
`GO6F 3/OO
`(2006.01)
`GO6F 2/OO
`(52) U.S. Cl. ....................... 709/217, 709/218: 709/236
`709/246; 709/250; 710/5: 710/36; 711/110
`(58) Field of Classification Search ................. 700,217
`709/218, 236. 246 25O: 711/110: 710s
`See application file for compl ete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`
`(56)
`
`(Continued)
`OTHER PUBLICATIONS
`EP Communication 94(3) issued in co-pending European Applica
`tion No. 01272 932.3-2413 (Issued Aug. 3, 2009) (9 pages).
`(Continued)
`Primary Examiner Saleh Naijar
`Assistant Examiner Vitali Korobov
`(74) Attorney, Agent, or Firm Rothwell, Figg, Ernst &
`Manbeck, P.C.
`(57)
`
`ABSTRACT
`
`A network-attached disk (NAD) system is disclosed that
`includes an NAD device for receiving a disk access command
`from a host through a network, and a device driver at the host
`for controlling the NAD device through the network, where
`the device driver creates a virtual hostbus adapter so that the
`host recognizes the NAD device as if it is a local device to the
`host. The host may run the UNIX or Windows family of
`operating systems. The NAD device includes a disk for stor
`ing data, a disk controller for controlling the disk, and a
`network adapter for receiving a disk access command from
`the host through a network port.
`
`5,329,619 A
`
`7/1994 Page et al.
`
`22 Claims, 24 Drawing Sheets
`
`NAD Device Management Program
`
`mount, 326
`Icewind0
`Requestere arease
`335,
`
`Queue
`
`Thread Activation
`Request Friction
`-
`NAD Driver it
`
`mounts
`
`Requent
`NAD driver ANN
`
`
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 1
`
`

`

`US 7,870,225 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`6, 1996 Mizuno
`5,524,247 A
`5,566,331 A * 10, 1996 Irwin et al. ........................ 1f1
`5,642.337 A
`6/1997 Oskay et al. ................ TO9/230
`5,721,818 A
`2f1998 Hanifetal.
`5,774,660 A
`6, 1998 Brendel et al.
`5,781,550 A
`7/1998 Templin et al.
`5,812,930 A
`9, 1998 Zavre
`5,838,916 A 11, 1998 Domenikos et al.
`5,845,104 A 12/1998 Rao ........................... T11 113
`5,889,942 A
`3/1999 Orenshteyn
`5,941,972 A * 8/1999 Hoese et al. ................ T10,315
`5,987,523. A 1 1/1999 Hind et al.
`5.987,627 A 1 1/1999 Raqlings, III
`5.999,808 A 12/1999 Ladue
`6,047.307 A
`4/2000 Radko
`6,085,234 A
`7, 2000 Pitts et al.
`6,128,644. A 10/2000 Nozaki
`6,128,690 A 10, 2000 Purcell et al.
`6,167,490 A 12/2000 Levy et al.
`6,175,869 B1
`1/2001 Ahuja et al.
`6,216,202 B1
`4/2001 D'Errico ..................... T11 112
`6,314.465 B1
`1 1/2001 Paul et al.
`6,317,775 B1
`11/2001 Colie et al.
`6,327,594 B1
`12/2001 Van Huben et al.
`6,345,300 B1
`2, 2002 Bakashi et al.
`6,347,095 B1
`2/2002 Tang et al.
`6,351,776 B1* 2/2002 O'Brien et al. ............. 709/245
`6,356,915 B1* 3/2002 Chtchetkine et al. ........ 707/823
`6,360,265 B1
`3/2002 Falcket al.
`6,366,988 B1 * 4/2002 Skiba et al. ................. 711/165
`6,389,432 B1* 5/2002 Pothapragada et al. ............. 1f1
`6,393,569 B1
`5/2002 Orenshteyn
`6,404,766 B1
`6/2002 Kitai et al.
`6.421,753 B1* 7/2002 Hoese et al. ................ 710,315
`6,449,647 B1
`9/2002 Colby et al.
`6,470,389 B1 10/2002 Chung et al.
`6,510,164 B1
`1/2003 Ramaswamy et al.
`6,518,965 B2
`2/2003 Dye et al.
`6,523,066 B1
`2/2003 Montroy et al.
`6,529.996 B1* 3/2003 Nguyen et al. .............. 711 114
`6,539,446 B1
`3/2003 Chan
`6,578,111 B1
`6/2003 Damron et al.
`6,594,677 B2
`7/2003 Davis et al.
`6,598,068 B1
`7, 2003 Clark
`6,609,167 B1
`8/2003 Bastiani et al.
`6,647,016 B1
`1 1/2003 Isoda et al.
`6,732,104 B1
`5/2004 Weber
`6,760,783 B1
`7/2004 Berry
`6,807,581 B1 * 10/2004 Starret al. .................. 700/250
`6,823,458 B1
`1 1/2004 Lee et al.
`6,834.326 B1* 12/2004 Wang et al. ................. 711 114
`6,894.981 B1
`5, 2005 Coile et al.
`6,941,576 B2
`9, 2005 Amit
`6,985,927 B2 *
`1/2006 O'Brien et al. ............. 700,213
`7,010.303 B2
`3, 2006 Lewis et al.
`TOS R go is a
`7,076,690 B1
`7/2006 Todd etal
`7,124,128 B2 10/2006 Springer et al.
`
`7/2007 Solomon et al.
`7,251,704 B2
`8/2007 Devarakonda et al.
`7,254,578 B2
`7,277,955 B2 10/2007 Elliott
`7,376, 133 B2
`5/2008 Gettala et al.
`7,383.229 B2
`6/2008 Jacoby
`2001/0044879 A1* 11/2001 Moulton et al. ............. 711 114
`2002/0103889 A1
`8/2002 Markson et al. ............. 709,223
`2003, OO14569 A1
`1/2003 Kim
`2003/0018403 A1
`1/2003 Braun et al.
`2003/0028614 A1
`2/2003 Jeon
`2003/0172149 A1
`9, 2003 Edsall et al.
`2003/0225834 A1 12/2003 Lee et al.
`2004.0068563 A1
`4/2004 Ahuja et al.
`2004/01 17813 A1
`6/2004 Karaoguz et al.
`2004/O220933 A1 11, 2004 Walker
`2005/0042591 A1
`2/2005 Bloom et al.
`2005, 0110768 A1
`5.2005 Marriott et al.
`2005. O149682 A1
`7, 2005 Kim
`2005. O193017 A1
`9, 2005 Kim
`2005, 0193189 A1
`9, 2005 Kim
`2006,0004935 A1
`1/2006 Seto et al.
`2006/0010287 A1
`1/2006 Kim
`2006, OO45130 A1
`3/2006 Kim
`2006, OO67356 A1
`3/2006 Kim
`2006, OO69884 A1
`3/2006 Kim
`2006, O155805 A1
`7, 2006 Kim
`2007,0008988 A1
`1, 2007 Kim
`
`FOREIGN PATENT DOCUMENTS
`
`DE
`P
`E.
`JP
`KR
`KR
`WO
`WO
`WO
`
`10O38142
`10-113469
`K.S.
`11-114224
`10-2000-72493
`10-2001-0088528
`WO99/03297
`WOOOf 29.529
`f29529 A2
`WOOO
`OTHER PUBLICATIONS
`
`2, 2001
`B.E.
`g12.
`1999
`4f
`12 2000
`9, 2001
`7, 1999
`5, 2000
`5, 2000
`
`Yaron Klein, Sanrad, "Storage Virtualization with iSCSI Protocol;
`draft-klein-ps-virt-00.txt” (Nov. 2, 2000) (15 pages).
`Blunden, Mark, et al. “Storage Networking Virtualization What's it
`all about?' IBM Redbooks (Dec. 2000) (124 pages).
`Schulz, Greg, "SAN and NAS; Complementary Technologies—SAN
`and NAS provide Storage and Data Sharing” Internet Citation (May
`1, 2000) (11 pages).
`Blunden et al., “Storage Network Virtualization: What's it all
`about?", ibm.com/redbooks, XP-002286341, pp. 1-110, Dec. 2000.
`Klein, Yaron, “Storage Virtualization with iSCSI Protocol'. Internet
`Draft, XP-015030964, pp. 1-15, Nov. 2, 2000.
`Schulz, Greg, "SAN and NAS; Complementary Technologies”.
`http://www.mti.com/white papers/WP20002.pdf. XP-00220 1566,
`pp. 1-7. May 1, 2000.
`Splentypal Search Report, Application No. 01272932.
`, 4 pages, NOV. ,
`Japanese Office Action, App. No. 555.298/2002, Jan. 9, 2007.
`Japanese Office Action, App. No. 513300/2003, Feb. 6, 2007.
`* cited by examiner
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 2
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 1 of 24
`
`US 7,870,225 B2
`
`00 ||
`
`
`
`
`
`00?A?OJ CIV/N
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 3
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 2 of 24
`
`US 7,870,225 B2
`
`CN
`CN
`s
`
`
`
`von
`CN
`r
`
`O
`SN
`
`s
`CN
`y
`
`SN
`3
`D
`CD
`?h
`O
`
`s
`
`
`
`
`
`so
`CY)
`vm
`
`O
`CY)
`yers
`
`O)
`CN
`y
`
`CO
`CN
`
`r
`
`N
`CN
`
`v
`
`S
`
`CN
`CD
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 4
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 3 of 24
`
`US 7,870,225 B2
`
`S.
`
`re
`
`Xx
`
`s
`
`
`
`
`
`
`
`S.
`
`... x:y .33 ...*::::::
`: 8 x s:
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 5
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 4 of 24
`
`US 7,870,225 B2
`
`
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 6
`
`

`

`U.S. Patent
`U.S. Patent
`
`J
`
`1,1
`
`f05te
`
`US 7,870,225 B2
`2B522.}
`
`0.m,mGEMeU\K
`
`.vww0%83mm.5.8.2
`
`
`
`
`
`
`
`
`
`oo_>on_MmmFi
`
`
`
`aeEEEJBmamE:flcozocsu.cozmhwaohca
`
`mmr
`
`menmenxmfimc
`
`mm?
`
`ogilxooa
`
`owmQQImE
`
`m5_.onF
`
`
`
`miS09:;x85
`
`0891x005
`
`mm:z:9:
`
`€828:\\\x.E“8388.65.\\an8385.32on8385.52
`
`//
`
`)
`
`()
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 7
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 7
`
`
`
`
`
`

`

`U
`
`aP
`
`J
`
`2
`
`mS
`
`M
`
`S
`
`0070
`
`2B
`
`S.oom
`
`
`
`mHEELS.#NELOVF
`
`\xflSoE5N
`
`mom
`
`
`
`Ha__m:mfi.oo.xoo_£\.mcc\>o_o\6mxoofivmmcchEmo_>m_.m_
`
`
`
`5258.50n_<z52583.8525m..NONfig:83838
`
`5ln,0GE
`
`a552mMmm:03z<._
`
`Um83mm92
`
`7,new
`
`mommom
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 8
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 8
`
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 7 of 24
`
`US 7,870
`
`9
`
`225 B2
`
`N.GE
`
`FNN
`
`838o<z
`
`ONN
`
`525ooSoQn_<z cozocsm
`
`“mosoom
`
`mNN
`
`bmmwmoohn_”Em:30
`
`flmozcmm
`
`26:0
`
`E9960:”.
`
`o__“_838
`
`mum
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 9
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 9
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`m
`
`m
`
`M
`
`2.}07897
`
`m
`
`nm.9“.
`
`mcm
`
`mFNNmo_>®n_D<Z
`Mco=m>=o<ESE.cozocsm#mmscom
`
`n.96:0mflmmscom
`M‘_®>_._D00300D<Z
`
`
`
`
`Eofi>wo__u_of.8300
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 10
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 10
`
`

`

`US 7,870,225 B2
`
`U.S. Patent
`
`Jan. 11, 2011
`
`/92
`
`893
`
`
`
`
`
`Sheet 9 of 24
`
`OZZ692
`
`| 92
`
`Z92
`
`892
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 11
`
`

`

`U.S. Patent
`
`
`
`| 82082
`
`
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 12
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 11 0f 24
`
`US 7,870,225 B2
`
`
`
`
`
`EEmEn.EoEommcmEoo_>mn_Q<z
`
`
`
`Ara—<53cozooccoo
`
`
`
`69:535:08:00
`
`mom
`
`=02
`
`BEER
`
`mom
`
`mom
`
`com
`
`vom
`
`:02
`
`onE>mE
`
`E9582
`
`
`
`Nficozooccoo
`
`838o<z
`
`mtg525
`
`{9552
`
`Econcoccoo
`
`
`
`oo_>on_n_<Z
`
`E52.5
`
`NowO<Z
`
`N#00300
`
`NomD<Z
`
`Inoo_>®n_
`
`
`
`m:.OE
`
`<:.0_n_
`
`Fom
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 13
`
`
`
`
`
`
`
`EwhmoiEoEomwcwEoo_>on_n_<z
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 13
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 12 of 24
`
`US 7,870,225 B2
`
`
`
`uLOO »JOWA)aN
`
`088
`
`
`
`
`
`
`
`
`
`
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 14
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 13 0f 24
`
`US 7,870,225 B2
`
`.\K écoo€9,302
`
`IE?
`
`
`
`NEEWE
`
`Efiagég
`
`$3030
`
`
`
`cozoczu“mos—ova
`
`
`
`cozocan.“noncom—
`
`Nu“525D<Z
`
`9530
`
`22.303
`
`Eafiaém
`
`96:0
`
`IcozomcooE9562
`
`
`
`530:3“.50:ch
`
`E525.D<Z
`
`mt@0300
`
`92wmm«mm
`
`
`
`N%8300mmm
`
`
`
`D<ZFNm
`
`EmmoSmD
`
`n_<zmmmomm
`
`
`
`mmmvmm
`
`mP.OE
`
`mmm
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 15
`
`
`
`
`EmaoiEmEmamcmEmo_>on_o<z
`
`
`
`En(/emmmmumRm
`
`593mof
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 15
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 14 of 24
`
`US 7,870.225 B2
`
`cr)
`O
`V
`
`CN
`O
`V
`
`O
`E
`CD
`d
`
`
`
`
`
`
`
`
`
`
`
`N^ T???J T?SIG 140°€| 17
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 16
`
`

`

`U.S. Patent
`
`US 7,870,225 B2
`
`
`
`ozy º
`
`queue6eue.W
`
`?InpOW
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 17
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 16 of 24
`
`US 7,870,225 B2
`
`
`
`
`
`T??uusuel?
`
`Á?deu
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 18
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 17 of 24
`
`US 7,870,225 B2
`
`
`
`+-------------------------------------------------- ---- ----~----------- ----E
`
`
`
`
`
`
`
`
`
`30?A?OJ GIVN09+7
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 19
`
`

`

`
`
`mmvawmmwwmwmvmww
`
`
`
`Euc\>mu\onU:\>mU\mmuc\>obNmbc\>onquc\>mu\omnc\>mu\
`
`
`
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`JAtaAqa59mg:3A93
`
`D<ZQ<ZD<ZD<ZD<ZD<Z
`
`525825$25$25525525
`
`
`
`
`
`1:5:5;:3a:A.3oimcozoocozouccoocozomccoocozowcozo."ccoo3:00”a£95{0“oz{956x5,x35252
`
`
`
`
`
`
`
`US 7,870,225 B2
`
`7S
`
`m
`
`2B
`
`
`
`mDomV.,INOVmiarawmmmv
`
`om.“
`
`
`
`m,w_..0_n_
`
`U;;i;;
`
`8,owv
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 20
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 20
`
`
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 19 0f 24
`
`US 7,870,225 B2
`
`omm
`
`525oo_>on_Q<Z
`
`Lona:
`
`m_oE>mn\
`
`
`
`mmmoo_>mn_n_<Zoo_>oDD<Zoo_>on_D<Z
`5264$33$33
`
`
`
`mow525wt525E525am
`
`
`
`
`
`@Nmx5252{9552x8352
`\z\mcozooccooNcozomccoow:o:oo::oO
`
`Nmm
`
`mmm
`
`“mooQAmoo:N31503£83mm.9.2838$2838o<z
`
`nmm
`
`mmmmmm
`\Kvmm
`
`9.OE
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 21
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 21
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 20 of 24
`
`US 7,870,225 B2
`
`| || 9
`
`Z ?9
`
`€ 19
`
`
`
`
`
`| 09
`
`809
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 22
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 21 of 24
`
`US 7,870,225 B2
`
`
`
`
`
`N O
`
`N.
`C)
`CO
`
`CN CN
`O
`
`yone
`
`ai
`O
`Z
`
`O
`CO
`CO
`
`O
`
`8
`
`S.
`
`CO
`
`r
`CN
`co O
`8 -
`
`CY)
`
`SS
`
`CO
`
`vas
`CO
`O
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 23
`
`

`

`1
`
`e
`
`20:
`
`2
`
`83mm.CE00“.M32$2o<zo<z_inmomv3558P_m#00mmmNmmPomwwm\nvm
`mon”.ooh.on“.03_eoo_>mn_83mmoo_>on_
`
`
`
`1u
`mO©®0mmwMGkmm_mwmmwmn00.on.on._ooaOEm.8300
`
`
`x90J92o<zo<zo<z_Gum_mo.m_
`
`
`oo_>on_oo_>oo00300_x2e
`
`Nmm_(/I_mgmwmmmmm.f_u/x/
`
`can.OE.can.mvmmton.o<zton.o<z_tom_mom
`%mmm//mmw"wwm
`
`mmemeU_
`
`é_can.mum_on_
`
`B.Emm.0_u_ovm
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 24
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 24
`
`
`

`

`U.S. Patent
`U.S. Patent
`
`h
`
`US 7,870,225 B2
`N,
`
`S
`
`2
`
`Jmmw53>mm:mmm53>n=n:
`
`d'HI
`mm:
`
`| 69
`Em
`
`525$30xwfi.525meOxwfi.me
`
`
`
`
`
`
`
`mammNmmDn—D<Z.Dtn__w0m1$25mam.n_<z$25mam_w0wmmom
`
`
`
`B.mmmm.GEo8<mmmi
`
`UCMEEOOO\_550MLomoowwmME5531‘mam501mmam.v89
`
`s30mwm
`
`UE{0stA.
`
`070,mwm
`
`Petitioners Microsoft Corporation and HP Inc.
`
`- EX. 1001, p. 25
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 25
`
`
`
`

`

`U.S. Patent
`
`Jan. 11, 2011
`
`Sheet 24 of 24
`
`US 7,870.225 B2
`
`
`
`|0/
`
`Z0/
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 26
`
`

`

`1.
`DISK SYSTEMADAPTED TO BE DIRECTLY
`ATTACHED TO NETWORK
`
`2
`accessed like a local disk without the need of adding an
`additional file server or special equipment.
`
`US 7,870,225 B2
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a divisional of U.S. patent application
`Ser. No. 09/974,082, filed on Oct. 9, 2001 now U.S. Pat. No.
`7,792.923, and claims the benefit of U.S. Provisional Appli
`cation Ser. No. 60/240,344, filed Oct. 13, 2000, the entire
`disclosures of which are incorporated herein by reference.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`15
`
`1. Technical Field
`This invention in general relates to computer systems.
`More specifically, this invention relates to a disk system or
`interface that can be directly attached to a network.
`2. Description of the Related Art
`As the Internet becomes popular, the amount of data that
`needs to be stored has drastically increased. Especially, there
`is a high demand for a high-capacity disk drive to store
`multimedia data. For example, a demand for a disk system
`having a disk capacity of terabytes per server is not unusual.
`A tape drive or a CD drive may be used to store such
`amount of data, but its performance and user convenience are
`not matched to those of a hard disk drive. However, increasing
`the capacity of a hard disk in a conventional server system
`presents some problems.
`There are NAS (Network Attached Storage) products that
`can be connected to a network, usually Ethernet, to provide a
`pre-configured disk capacity along with integrated System/
`storage management using the NFS (Network File System)
`protocol, the CIFS (Common Internet File System) protocol,
`or both on top of the IP protocol used on the Internet. The
`primary purpose of these protocols is to exchange files
`between independently operating computers. Therefore, the
`client using the NAS for file access experiences the difference
`between its local storage and the storage in the NAS Systems.
`The NAS is basically a stripped-down version of a file
`server having mainly the functions of storing and retrieving
`files. Accordingly, increasing a disk capacity using a NAS
`product amounts to adding a separate file server in practice,
`which presents many shortcomings. Since an NAS disk is not
`seen as a local disk to the client, the installation, movement,
`and administration of an NAS disk should be done only
`through the operating system and Software offered as part of
`the NAS system. An NAS disk is installed in the inside bus of
`the NAS system, leading to a limitation to the number of disks
`that can be installed. Since the NAS system has a hard disk
`under its own operating system, the client cannot use an
`arbitrary file system to access the hard disk. Further, the NAS
`system requires an IP address. Overall, not only the installa
`tion and administration costs per disk are more expensive
`than those of a local disk, but also user convenience is
`severely restricted.
`There is SAN (Storage Area Network) that uses the Fibre
`Channel technology. To use the devices connected to a SAN,
`a special-type of switch is needed. For example, Fiber Chan
`nel uses a Fibre Channel hub or a Fibre Channel switch. The
`SAN has some shortcomings. Typically, a separate file server
`is used. In general, the SAN equipment is expensive, and so is
`the administration cost of the SAN system because, for
`example, it often requires an administrator with a specialized
`knowledge on the system.
`Therefore, there is a need for an interface that allows a disk
`system to be directly attached to a network, while still being
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`SUMMARY OF THE INVENTION
`
`It is an object of the present invention to provide a disk
`system that can be directly attached to a network connecting
`to a host without going through a network file system.
`Another object is to provide a disk system that can be
`recognized and used as a local disk to a host without requiring
`additional facility Such as an additional file server, a special
`Switch, or even an IP address, if appropriate.
`Still another object of the present invention is to provide a
`disk system that can be conveniently connected to a server
`without much intervention of network/server administration.
`Yet another object is to provide a low-cost disk system,
`many of which can be plugged into existing network ports to
`readily satisfy a disk capacity demand.
`Further object is to provide an interface that allows a device
`attachable to a bus to be plugged into a network port.
`The foregoing and other objects are accomplished by pro
`viding a network-attached disk (NAD) system that includes
`an NAD device for receiving a disk access command from a
`host through a network, a device driver at the host for con
`trolling the NAD device through the network, where the
`device driver recognizes the NAD device as a local device.
`The host may run the UNIX or Windows family of operating
`systems. The NAD device includes a disk for storing data, a
`disk controller for controlling the disk, and a network adapter
`for receiving a disk access command from the host through a
`network port.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of an environment where a
`network-attached disk (NAD) system of the present invention
`is used.
`FIG. 2 is an illustration of how multiple NAD devices may
`be accessed by multiple hosts through a network.
`FIG. 3 is an example of how multiple NAD devices are
`accessed by multiple hosts.
`FIG. 4 is another example of how each disk inside an NAD
`may be treated as a separate disk.
`FIG. 5 is an illustration of how a block device driver,
`specifically an NAD device driver, is registered and unregis
`tered under the UNIX operating system.
`FIG. 6 is an illustration of the relation among the directory,
`device file, device driver, and device.
`FIG. 7 is an illustration of how a request function directly
`issues a command to a device.
`FIG. 8 is an illustration of how a request function activates
`a device accessing thread.
`FIG.9 is a block diagram of a local disk system and that of
`an NAD device running under UNIX.
`FIG. 10 is an illustration of a device searching thread for
`identifying the attached NAD devices and for providing the
`NAD information to the NAD device management program.
`FIGS. 11A and 11B are examples of network connections
`made between an NAD device driver and its corresponding
`NAD device using a connection setting thread.
`FIG. 12 is an illustration of a method of implementing an
`NAD device driver, using a device accessing thread.
`FIG. 13 is an illustration of a method of implementing an
`NAD device driver, without using a device accessing thread.
`FIG. 14 is an example of an NAD device construction.
`FIG. 15 is a functional block diagram of an NAD control
`ler.
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 27
`
`

`

`US 7,870,225 B2
`
`3
`FIG. 16 is a simplified state transition diagram of a state
`machine used by the main controller of an NAD controller.
`FIG. 17 is an illustration of how a disk inside an NAD
`device may be divided into disk partitions to which a device
`driver is assigned.
`FIG. 18 is an illustration of how separate NAD device
`drivers may be generated so that a physically single disk can
`be assessed by different file systems.
`FIG. 19 is an illustration of how the NAD system can
`recognize physically separate, several NAD disks as a logi
`cally single disk.
`FIGS. 20A and 20B are illustrations of the hierarchies of
`the disk driver layers in the conventional disk system and the
`NAD system under the Windows 2000 operating system.
`FIG. 21 is an illustration of a network environment where
`the NAD system of the present invention is used in the Win
`dows 2000 operating system.
`FIG. 22 is an example of a device stack created in the
`Windows 2000 operating system.
`FIG. 23A is an illustration of the flow of IRP, SRB, and
`CDB in a conventional disk system in the Windows 2000
`operating system.
`FIG.23B is an illustration of the flow of IRPSRB and CDB
`in an NAD system in the Windows 2000 operating system.
`FIG. 24 is an illustration of NDIS (Network Device Inter
`face Specification) in the Windows 2000 operating system.
`
`10
`
`15
`
`4
`be dynamically installed or removed. The present invention
`achieves this by creating a virtual hostbus adapter in purely
`software means that recognizes an NAD device as if it is
`connected to the system bus although there is no physical host
`bus adapter connected the NAD. This is distinguished from
`the conventional Network Area Storage (NAS) scheme where
`a NAS device connected through the MC is still recognized as
`an independent file server connected to a network.
`The Open Systems Interface (OSI) model defines 7 layers
`of protocols: a physical layer for electrical interface defini
`tions, a data link layer for communication using data frames,
`a network layer for routing packets from one end to another,
`a transport layer for dividing messages into packets, a session
`layer for establishing communication session, a presentation
`layer for data presentation format, and an application layer for
`application programs. The present invention uses a data link
`layer protocol to contain storage commands into data link
`frames. Because the NAD device is not acting as an indepen
`dent devices to the host, there is no need to use a network
`address such as IP address.
`Since the specific configuration of the hosts and the disk
`systems can be dynamically changed, user convenience and
`portability is preserved as in the case of using a local disk.
`There is virtually no restriction to the number of disk systems
`that can be attached to the network, thus providing an unlim
`ited disk storage capacity for a host.
`FIG. 3 shows another example of how multiple NAD
`devices are accessed by multiple hosts through a network.
`NAD device #1143, NAD device #2145, and NAD device #5
`147 are accessed by Host #1 140 through a network 142,
`while NAD device H2 144 and NAD device H4 146 are
`accessed by Host #2141 through the same network 142.
`The disks contained in an NAD may be treated as separate
`disks So that each of them can be independently accessed by
`a host. FIG. 4 shows an example of treating each disk inside
`an NAD device as separate disks. Disk(1,1) 166 inside NAD
`device #1 163, disk(2.2) 168 inside NAD device #2, and
`disk(3.2) 170 inside NAD device #2 are accessed by Host #1
`160 through a network 122 while disk(2.1) 167 inside NAD
`device #2 164 and disk (3,1) 169 and disk (3.3) 171 inside
`NAD device #3 165 are accessed by Host #2161 through the
`same network 162. Note that disk (2.1) 167 and disk (2.2)
`168, inside NAD device #2 164, are independently accessed
`by Host #1160 and Host #2161 respectively.
`Block Device Driver
`An embodiment of the NAD system will be explained with
`an example running the UNIX family of operating systems
`although other operating systems such as Windows may also
`be used.
`Each block device for block data storage, such as a disk
`device, is assigned a major device number to distinguish
`among different kinds of block devices, and a minor device
`number to distinguish among same kinds of block devices. In
`UNIX, each device is accessed through a device file, which
`provides an interface for accessing the real device. Device
`files are usually generated in advance, each with a major
`device number and a minor device number as well as infor
`mation on a block device driver.
`The purpose of the device driver is to handle the requests
`made by the kernel with respect to a device. The device driver
`isolates device-specific codes to provide a consistent inter
`face for the kernel. In order to activate the operation of a
`device driver, a device file and device driver routines must be
`prepared, after which the functions of the driver routines must
`be registered so that the operating system Such as UNIX can
`understand their availability. This is usually done by passing
`
`25
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`FIG. 1 shows an environment where the present invention
`is used. A host 100 has a file system 101, which may contain
`a local disk device driver 102 that controls a local disk 104
`connected to an internal system bus 103. A local device is
`defined as a device inside a standard-alone system as opposed
`to a network device connected to a network. Local devices are
`directly connected to a system bus often through an adapter
`called a host bus adapter allowing the host to communicate
`with the devices withoutgoing through any network, whereas
`network devices are not directly connected to a system bus,
`rather connected through an interface called a network inter
`face card (NIC) installed on system bus. The local disk 104
`may be a conventional IDE (Integrated Drive Electronics)
`disk or SCSI (Small Computer System Interface) disk.
`The file system 101 also contains a network-attached disk
`(NAD) device driver 105 of the present invention that controls
`an NAD device 108 connected through a network adapter
`device driver 106 and a network 107 such as Ethernet. The
`NAD device 108 of the present invention contains one or
`more disks 109. The network 107 is an existing general
`purpose network for carrying storage traffic as well as other
`application traffic. This so called “front-end' network for
`carrying general-purpose network traffic is distinguished
`from a “back-end' network dedicated to storage such as that
`used in the conventional Storage Area Network (SAN)
`scheme.
`The present invention features two main components: one
`is the NAD device driver 105 at the host and the other is the
`NAD device 108 attached to the network.
`FIG.2 shows an example of how multiple NAD devices are
`accessed by multiple hosts through a network. NAD device
`#1 123 with disk(1,1) 126 and NAD device #2 124 with
`disk(2.1) 127 and disk(2.2) 128 are accessed by Host #1 120
`through a network 122, while NAD device #3125 with disk
`(3,1) 129, disk(3.2) 130, disk(3.3) 131 is accessed by Host #2
`121 through the same network 122.
`Each disk appears to the host as if it is a local disk to
`connected to the system bus of the host so that each disk can
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1001, p. 28
`
`

`

`5
`the major number assigned to the device and the functions of
`the driver routines as parameters.
`Registration and Unregistration of Block Device Driver
`Once a block device driver is registered by passing the
`device's major device number and the driver functions as
`parameters, it may be unregistered by passing the major num
`ber.
`Table 1 lists the functions used to either register ordereg
`ister a device driver.
`
`10
`
`TABLE 1.
`
`Functions
`
`Description
`
`Register blkdev()
`
`Unregister blkdev()
`
`register a driver by taking a major
`number and driver functions as parameters
`unregister a driver by taking a major
`number
`
`15
`
`Table 2 lists the general functions used by the local driver 2O
`and the NDA driver.
`
`TABLE 2
`
`Driver Function
`
`Description
`
`Read()
`write()
`ioctl()
`
`open()
`release()
`fsync()
`
`check media change()
`
`revalidate()
`
`used to read data in the device
`used to write data in the device
`used to change a particular value of a
`structure for a driver or to control
`input/output with respect to a device
`used to initialize a driver
`used to eliminate a driver
`used to reflect the content of buffer cache
`to the real device driver
`used to sense a change in the device
`condition
`used to update device managed by the
`deriver and device driver itself
`
`25
`
`30
`
`35
`
`Table 3 lists examples of the driver functions specific to the
`IDE local disk driver and the NAD driver.
`
`US 7,870,225 B2
`
`6
`
`Use of Block Device
`Once a block device driver is registered and its device file
`is generated, read/write is done to the device file to access the
`real device. The device file, however, is not directly called by
`the user, rather called after being mounted to the file system.
`Before being mounted, each block device file must beformat
`ted according to a particular file system. Since the NAD
`device driver of the present invention is prepared in the same
`way as a conventional local disk driver, the set of I/O com
`mands used to format a conventional local disk can also be
`used to format a disk in the NAD device. In addition, since
`NAD devices are controlled in the device driver level, they
`can be formatted in a required format independent of the file
`system used.
`FIG. 6 shows the relation among the directory, device file,
`device driver, and device. The left side shows attachment of a
`conventional local disk system where a device file 201
`mounted on a directory 200 is used by a local disk device
`driver 202 to control a local disk 203. The right side shows an
`NAD system of the present invention where a device file 204
`mounted on the directory 200 is used by an NAD device driver
`205 to control a NAD device 207 through a local area network
`(LAN) 206 such as Ethernet. The two relations are similar
`except that the NAD device is accessed through the network.
`Structure of Block Device Driver
`Each block device driver has an I/O request queue to store
`the I/O requests to the device. The stored requests may be
`re-scheduled for the purpose of improving the performance.
`Besides the I/O request queue, each block device driver needs
`a request function to process the I/O requests in the queue.
`FIG. 7 shows a situation where the request function
`directly issues a command to a block device. An NAD device
`driver 220, using a device 222 and a file system 223, has a
`queue 224 that stores I/O requests 225 through 228. The NAD
`device driver 220 has a request function 229 that issues a
`command to the NAD device 221 by taking a currently pro
`cessed request 225.
`
`TABLE 3
`
`Driver Function
`
`IDE Local Driver Function
`
`NAD Driver Function
`
`read()
`write()
`ioctl()
`open()
`Release()
`fsync()
`check media change()
`revalidate()
`
`ide read()
`ide write()
`ide ioctl()
`ide open()
`ide release()
`ide fsync()
`ide check media change()
`ide revalidate()
`
`netdisk read()
`netdisk write()
`netdisk ioctl()
`netdisk open()
`netdisk release()
`netdisk fsync()
`netdisk check media change()
`netdisk ide revalidate()
`
`55
`
`FIG. 5 shows an example where a block device driver,
`specifically

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket