`
`(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