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