想必用過大機(jī)的人都接觸過Block, Track, Cylinder的概念。Mainframe的存儲(chǔ)管理一般就是基于這幾個(gè)單位。
那么,Mainframe上1個(gè)Cylinder是多少個(gè)Track?1個(gè)Track是多少個(gè)KB?1個(gè)Track包含多少個(gè)Block?
對(duì)于第一個(gè)問題,多數(shù)人都知道答案是15,基于一般的磁盤設(shè)備,15這個(gè)答案沒有錯(cuò),但是對(duì)于磁帶,應(yīng)該是沒有柱面這個(gè)概念的。(這個(gè)有待探討,畢竟大家真用過磁帶的不多,而做備份是不需要手動(dòng)分配存儲(chǔ)的)
第二個(gè)問題,1個(gè)Track是多少個(gè)KB?
經(jīng)過查閱相關(guān)IBM官方文檔,可以得知,不同類型的設(shè)備,1個(gè)Track包含的KB數(shù)不等。
對(duì)于最常見的3390設(shè)備,1 Track = 56,664 Bytes;對(duì)于3380設(shè)備,1 Track = 47,476Bytes。
(參考文獻(xiàn):IBM System Storage DS8000 Information Center,章節(jié)LUN calculation)
第三個(gè)問題,1個(gè)Track包含多少個(gè)Block?
首先,Block的大小是自定義的,能夠定義的最大的Block Size是32760(bytes)。如果定義一個(gè)Block為32760 bytes,那么無論對(duì)于3390還是3380,一個(gè)Track只能包含1個(gè)block。無疑這是很大的浪費(fèi),因?yàn)檫@個(gè)track上剩下的Bytes是無法取用的。(1個(gè)Track只能隸屬于1個(gè)文件,而且block不可以span track)
所以,空間最優(yōu)化的block size方案是1個(gè)track放2個(gè)block。因?yàn)閎lock之間有inter block gap,1個(gè)track上剩下的可用byte數(shù)為55,996個(gè),所以,最優(yōu)的block size數(shù)值為最接近但不超過27,998的那個(gè)record size的整數(shù)倍的數(shù)值。