專利名稱:存儲(chǔ)裝置及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)裝置,特別涉及經(jīng)由網(wǎng)絡(luò)與多個(gè)主機(jī)裝置(計(jì)算機(jī))連接 的存儲(chǔ)裝置及其控制方法。
背景技術(shù):
近年來(lái),為了便于管理計(jì)算機(jī)中的數(shù)據(jù),提出了對(duì)于多個(gè)計(jì)算機(jī)各自處理 的數(shù)據(jù),不在該各個(gè)計(jì)算機(jī)的本地存儲(chǔ)器中進(jìn)行管理,而是經(jīng)由網(wǎng)絡(luò)在公共的 存儲(chǔ)裝置中集中進(jìn)行管理的計(jì)算機(jī)系統(tǒng)。作為這樣的計(jì)算機(jī),例如已知有無(wú)盤 計(jì)算機(jī)系統(tǒng)和虛擬計(jì)算機(jī)系統(tǒng)。
無(wú)盤計(jì)算機(jī)系統(tǒng)是在計(jì)算機(jī)自身不內(nèi)置盤驅(qū)動(dòng)器(或者即使內(nèi)置也不使
用)的計(jì)算機(jī)系統(tǒng)。在無(wú)盤計(jì)算機(jī)系統(tǒng)中,在與SAN連接的存儲(chǔ)裝置內(nèi)的邏 輯單元中存儲(chǔ)OS鏡像(啟動(dòng)鏡像),計(jì)算機(jī)經(jīng)由SAN安裝該邏輯單元,由此 可以從該邏輯單元啟動(dòng)。各個(gè)計(jì)算機(jī)使用的OS或由應(yīng)用程序等使用的數(shù)據(jù)被 存儲(chǔ)在對(duì)各個(gè)計(jì)算機(jī)分配的存儲(chǔ)區(qū)域中,因此,系統(tǒng)管理者可以一元化地管理 存儲(chǔ)裝置中的數(shù)據(jù)。
此外,虛擬計(jì)算機(jī)系統(tǒng)是使用所謂的虛擬化機(jī)構(gòu),在服務(wù)器計(jì)算機(jī)中綜合 多個(gè)計(jì)算機(jī)環(huán)境的計(jì)算機(jī)系統(tǒng)。在服務(wù)器計(jì)算機(jī)中綜合的虛擬計(jì)算機(jī)把OS或 應(yīng)用程序等數(shù)據(jù)存儲(chǔ)在被生成為存儲(chǔ)裝置內(nèi)的邏輯單元的虛擬盤中,所以,系 統(tǒng)管理者同樣可以 一元化地管理存儲(chǔ)裝置中的數(shù)據(jù)。
一般,在這樣的計(jì)算機(jī)系統(tǒng)中,各個(gè)計(jì)算機(jī)即便使用公共的啟動(dòng)鏡像,也 需要分配給各個(gè)計(jì)算機(jī)的存儲(chǔ)區(qū)域。因此,下述專利文獻(xiàn)l公開(kāi)了一種存儲(chǔ)裝 置,其生成在各個(gè)計(jì)算機(jī)中存儲(chǔ)固有數(shù)據(jù)的邏輯單元,以及存儲(chǔ)多個(gè)計(jì)算機(jī)所 共有的軟件的邏輯單元,根據(jù)各個(gè)計(jì)算機(jī)的軟件的利用狀況,結(jié)合這些邏輯單 元虛擬地構(gòu)筑一個(gè)存儲(chǔ)區(qū)域,并將其提供給各個(gè)計(jì)算機(jī)。由此,多個(gè)計(jì)算機(jī)使 用的軟件被存儲(chǔ)在公共的邏輯單元中,所以可以減少在整個(gè)存儲(chǔ)裝置中該軟件 占用的區(qū)域的存儲(chǔ)容量。
專利文獻(xiàn)1特開(kāi)2005 -301708號(hào)公報(bào)
發(fā)明內(nèi)容
但是,在上述現(xiàn)有的計(jì)算機(jī)系統(tǒng)中,當(dāng)更新各個(gè)計(jì)算機(jī)的os或應(yīng)用程序 等時(shí),該更新的部分被存儲(chǔ)在分配給各個(gè)計(jì)算機(jī)的專用的存儲(chǔ)區(qū)域中。因此,
當(dāng)頻繁地重復(fù)進(jìn)行os等的更新時(shí),各個(gè)計(jì)算機(jī)不參照公共的邏輯單元地使用
該存儲(chǔ)區(qū)域。因此,隨著使用的繼續(xù),在存儲(chǔ)裝置內(nèi)對(duì)各個(gè)計(jì)算機(jī)分配的專用 的存儲(chǔ)區(qū)域過(guò)大,存儲(chǔ)容量的削減效果降低,結(jié)果存在存儲(chǔ)裝置的存儲(chǔ)容量成 本增大的問(wèn)題。
因此,本發(fā)明的目的在于提供一種高效地使用各個(gè)主機(jī)裝置(計(jì)算機(jī))使 用的存儲(chǔ)裝置內(nèi)的邏輯單元,可以抑制存儲(chǔ)容量成本的增大的存儲(chǔ)裝置及其控
制方法。
為了解決上述課題,遵從某個(gè)觀點(diǎn)的本發(fā)明是一種計(jì)算機(jī)系統(tǒng),其具備能 夠與網(wǎng)絡(luò)連接而構(gòu)成的多個(gè)主機(jī)裝置、能夠與該網(wǎng)絡(luò)連接而構(gòu)成的存儲(chǔ)裝置、 以及能夠與該網(wǎng)絡(luò)連接而構(gòu)成的主管理裝置。
該存儲(chǔ)裝置具備外部邏輯單元,所述多個(gè)主機(jī)裝置各自將該外部邏輯單 元作為目標(biāo);以及內(nèi)部邏輯單元,其被分配給該外部邏輯單元。在此,該內(nèi)部 邏輯單元由公共邏輯單元和專用邏輯單元構(gòu)成,公共邏輯單元用于存儲(chǔ)構(gòu)成該
多個(gè)主機(jī)裝置共同使用的公共文件的數(shù)據(jù),所述專用邏輯單元用于存儲(chǔ)構(gòu)成該 多個(gè)主機(jī)裝置各自使用的專用文件的數(shù)據(jù)。
并且,該存儲(chǔ)裝置根據(jù)來(lái)自該多個(gè)主機(jī)裝置中的至少一個(gè)主機(jī)裝置的寫入 請(qǐng)求,以預(yù)定的管理塊單位比較遵照該寫入請(qǐng)求的寫入數(shù)據(jù)與該公共邏輯單元 中存儲(chǔ)的數(shù)據(jù)是否一致,根據(jù)該比較的結(jié)果,將一致的數(shù)據(jù)塊存儲(chǔ)在該公共邏 輯單元中,將不一致的數(shù)據(jù)塊存儲(chǔ)在該專用邏輯塊中。
此外,遵從某個(gè)觀點(diǎn)的本發(fā)明是經(jīng)由網(wǎng)絡(luò)與多個(gè)主機(jī)裝置連接的存儲(chǔ)裝置 的控制方法。
該控制方法具備以下的步驟該存儲(chǔ)裝置將內(nèi)部邏輯單元生成為公共邏輯 單元,該內(nèi)部邏輯單元存儲(chǔ)構(gòu)成由多個(gè)主機(jī)裝置共同使用的公共文件的數(shù)據(jù); 該存儲(chǔ)裝置將內(nèi)部邏輯單元生成為專用邏輯單元,該內(nèi)部邏輯單元存儲(chǔ)構(gòu)成該 多個(gè)主機(jī)裝置各自使用的專用文件的數(shù)據(jù);該存儲(chǔ)裝置將該公共邏輯單元以及 該專用邏輯單元分配給該多個(gè)主機(jī)裝置各自作為目標(biāo)的外部邏輯單元;該存儲(chǔ)裝置接收來(lái)自該多個(gè)主機(jī)裝置中的至少某一個(gè)主機(jī)裝置的寫入請(qǐng)求;該存儲(chǔ)裝 置以預(yù)定的管理塊單位比較遵照該寫入請(qǐng)求的寫入數(shù)據(jù)與該公共邏輯單元中 存儲(chǔ)的數(shù)據(jù)是否一致;該存儲(chǔ)裝置,通過(guò)進(jìn)行該比較的步驟,將一致的數(shù)據(jù)塊 存儲(chǔ)在該公共邏輯單元中,將不一致的數(shù)據(jù)塊存儲(chǔ)在該專用邏輯塊中。
根據(jù)本發(fā)明,可以高效地使用各個(gè)主機(jī)裝置使用的存儲(chǔ)裝置內(nèi)的邏輯單 元,排除存儲(chǔ)重復(fù)的數(shù)據(jù),可以抑制存儲(chǔ)容量的增大。
通過(guò)參照附圖對(duì)以下的實(shí)施方式進(jìn)行說(shuō)明,本發(fā)明其他的技術(shù)特征以及優(yōu) 點(diǎn)將會(huì)變得明確。
圖1表示本發(fā)明一實(shí)施方式的計(jì)算機(jī)系統(tǒng)的概要結(jié)構(gòu)圖。
圖2概要地表示本發(fā)明一實(shí)施方式的主機(jī)裝置的內(nèi)部結(jié)構(gòu)。
圖3概要地表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的內(nèi)部結(jié)構(gòu)。
圖4概要地表示本發(fā)明一實(shí)施方式的主管理裝置的內(nèi)部結(jié)構(gòu)。
圖5概要地說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置內(nèi)的邏輯單元的結(jié)構(gòu)。
圖6表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的目標(biāo)管理表的一例。
圖7表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的外部邏輯單元管理表的一例。
圖8表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的公共邏輯單元管理表的一例。
圖9表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的外部邏輯單元塊映射表的一例。
圖IO表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的鏡像管理表的一例。
圖11表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的內(nèi)部邏輯單元塊管理表的一例。
圖12表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置的公共邏輯單元數(shù)據(jù)管理表的一例。
圖13是用于說(shuō)明本發(fā)明一實(shí)施方式的主管理裝置中的主生成處理的流程圖。
圖14是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的公共邏輯單元生成處 理的流程圖。
圖15是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的主寫入處理的流程圖。圖16是用于說(shuō)明本發(fā)明一實(shí)施方式的主管理裝置的啟動(dòng)鏡像生成處理的 流程圖。
圖17是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的專用邏輯單元生成處 理的流程圖。
圖18是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的啟動(dòng)鏡像生成時(shí)的專 用寫入處理的流程圖。
圖19是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的第一專用寫入處理的 流程圖。
圖20是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的第二專用寫入處理的 流程圖。
圖21是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的讀出處理的流程圖。 圖22是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的數(shù)據(jù)移動(dòng)處理的流程圖。
圖23是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的第二專用寫入處理的 流程圖。
符號(hào)說(shuō)明
l計(jì)算機(jī)系統(tǒng)、2網(wǎng)絡(luò)、3主機(jī)裝置、4存儲(chǔ)裝置、41驅(qū)動(dòng)單元、42控制 單元、5主管理裝置
具體實(shí)施例方式
然后,參照附圖對(duì)本發(fā)明的實(shí)施方式進(jìn)行說(shuō)明。 (1)系統(tǒng)結(jié)構(gòu) (1-1)計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)
圖l表示本發(fā)明一實(shí)施方式的計(jì)算機(jī)系統(tǒng)的概要結(jié)構(gòu)。如該圖所示,計(jì)算 機(jī)系統(tǒng)l由經(jīng)由網(wǎng)絡(luò)2相互連接的多個(gè)主機(jī)裝置100、主管理裝置200以及存 儲(chǔ)裝置300構(gòu)成。
網(wǎng)絡(luò)2是用于存儲(chǔ)器訪問(wèn)的LAN或SAN,典型地包含交換機(jī)或集線器來(lái) 構(gòu)成。在網(wǎng)絡(luò)2中,使用光纖通道協(xié)議(FCP)或因特網(wǎng)協(xié)議(IP)。在本實(shí) 施方式中,設(shè)網(wǎng)絡(luò)2是由以太網(wǎng)(注冊(cè)商標(biāo))構(gòu)筑的IP-LAN,作為其上位的 協(xié)議使用iSCSI。主機(jī)裝置3是執(zhí)行所希望的處理的計(jì)算機(jī),典型地為執(zhí)行來(lái)自客戶端計(jì)算
機(jī)(未圖示)的處理的服務(wù)器計(jì)算機(jī)。主機(jī)裝置3執(zhí)行各種程序,通過(guò)與硬件
資源的協(xié)作作用,實(shí)現(xiàn)與來(lái)自客戶端計(jì)算機(jī)的請(qǐng)求相對(duì)應(yīng)的處理。例如,主機(jī)
裝置3通過(guò)執(zhí)行業(yè)務(wù)應(yīng)用程序,對(duì)存儲(chǔ)裝置5進(jìn)行I/0訪問(wèn),實(shí)現(xiàn)所希望的業(yè) 務(wù)系統(tǒng)。
存儲(chǔ)裝置4是用于對(duì)主機(jī)裝置3提供數(shù)據(jù)存儲(chǔ)服務(wù)的系統(tǒng)。存儲(chǔ)裝置4 具備作為物理設(shè)備的多個(gè)驅(qū)動(dòng)單元41;以及對(duì)來(lái)自主機(jī)裝置3的I/O請(qǐng)求進(jìn) 行響應(yīng),控制對(duì)于在驅(qū)動(dòng)單元41上形成的邏輯單元的I/O訪問(wèn)的控制單元42。
主管理裝置5是用于經(jīng)由網(wǎng)絡(luò)2對(duì)主機(jī)裝置3以及存儲(chǔ)裝置4進(jìn)行訪問(wèn), 并進(jìn)行管理的計(jì)算機(jī)。主管理裝置5,例如在存儲(chǔ)裝置4的驅(qū)動(dòng)單元41上生 成對(duì)由多個(gè)主機(jī)裝置3使用的公共文件進(jìn)行存儲(chǔ)的邏輯單元(公共邏輯單元)。 (卜2)主機(jī)裝置的結(jié)構(gòu)
圖2概要地表示本發(fā)明一實(shí)施方式的主機(jī)裝置3的內(nèi)部結(jié)構(gòu)。如該圖所示, 主機(jī)裝置3典型地具備處理器31、主存儲(chǔ)器32、通信接口 33、輸入輸出裝置 34、輔助存儲(chǔ)裝置(本地存儲(chǔ)器)35等硬件資源,此外,還具備在輔助存儲(chǔ) 裝置35中存儲(chǔ)的設(shè)備驅(qū)動(dòng)器、操作系統(tǒng)(OS)、應(yīng)用程序等軟件資源(未圖 示)。由此,主機(jī)裝置3在處理器的控制下,執(zhí)行從輔助存儲(chǔ)裝置35安裝在主 存儲(chǔ)器32中的各種程序,通過(guò)與各種硬件資源的協(xié)作作用,實(shí)現(xiàn)與來(lái)自客戶 端計(jì)算機(jī)的請(qǐng)求相對(duì)應(yīng)的處理。在本實(shí)施方式中,在主機(jī)裝置3中,如上所述 除了OS和應(yīng)用程序之外,還安裝更新請(qǐng)求受理程序321,展開(kāi)為可以在主存 儲(chǔ)器32上執(zhí)行的目標(biāo)。
(1-3)存儲(chǔ)裝置的結(jié)構(gòu)
圖3概要地表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的內(nèi)容結(jié)構(gòu)。如上所述, 存儲(chǔ)裝置4具備作為物理設(shè)備的多個(gè)驅(qū)動(dòng)單元41;對(duì)來(lái)自主機(jī)裝置3的I/O 請(qǐng)求進(jìn)行響應(yīng),控制對(duì)于在驅(qū)動(dòng)單元41上形成的邏輯單元的1/0訪問(wèn)的控制 單元42。雖然沒(méi)有圖示,但存儲(chǔ)裝置4可以采用控制單元42的冗余結(jié)構(gòu)(例 如雙重化結(jié)構(gòu)),與此相伴,針對(duì)驅(qū)動(dòng)單元41內(nèi)的硬盤驅(qū)動(dòng)器的總線也可以被 冗余化。
驅(qū)動(dòng)單元41例如是包含多個(gè)硬盤驅(qū)動(dòng)器(HDD )、固態(tài)驅(qū)動(dòng)器(SSD)等存儲(chǔ)介質(zhì)而構(gòu)成的物理設(shè)備(PDEV)的集合體。驅(qū)動(dòng)單元41還被稱為陣列 裝置。在驅(qū)動(dòng)單元41中,在控制單元42的RAID控制下,形成將幾個(gè)物理i殳 備虛擬地匯總為一個(gè)設(shè)備的虛擬設(shè)備(VDEV),并在此形成一個(gè)以上的邏輯 設(shè)備(LDEV )。
邏輯設(shè)備是主機(jī)裝置3可以識(shí)別的邏輯的存儲(chǔ)裝置,在本實(shí)施方式中,分 配了邏輯單元(LU)。即,各個(gè)邏輯設(shè)備被分配給控制單元42的端口中的各 個(gè)端口 4231,由此,主才幾裝置3把在物理盤上形成的邏輯盤識(shí)別為邏輯單元。
對(duì)各個(gè)邏輯單元賦予邏輯單元號(hào)碼(LUN)。此外,邏輯單元被分割為作 為1/0訪問(wèn)的最小單位的塊,.對(duì)各個(gè)塊分配了邏輯塊地址(LBA)。主機(jī)裝置3 通過(guò)對(duì)存儲(chǔ)裝置4賦予包含由邏輯單元號(hào)碼以及邏輯塊地址構(gòu)成的邏輯地址 的命令,可以對(duì)特定的邏輯單元中的特定的塊進(jìn)行訪問(wèn)。
如上所述,在利用iSCSI.的本實(shí)施方式中,主機(jī)裝置3以及存儲(chǔ)裝置4各 自具有作為被分配了 iSCSI名稱的iSCSI節(jié)點(diǎn)的發(fā)起者和目標(biāo)的功能,因此, 主機(jī)裝置3以及存儲(chǔ)裝置4經(jīng)由通過(guò)IP地址以及TCP端口號(hào)碼的組合確定的 網(wǎng)絡(luò)門戶來(lái)收發(fā)iSCSIPDU。因此,主機(jī)裝置3通過(guò)指定iSCSI名稱、IP地址、 以及TCP端口號(hào)碼,來(lái)識(shí)別網(wǎng)絡(luò)2上的存儲(chǔ)裝置,對(duì)該邏輯單元內(nèi)的塊進(jìn)行 訪問(wèn)。
此外,在由主機(jī)裝置3識(shí)別的邏輯設(shè)備(即,邏輯單元)上設(shè)定一個(gè)或其 以上的虛擬的邏輯巻。邏輯巻是邏輯設(shè)備上的虛擬的部分。邏輯設(shè)備(或邏輯 單元)和邏輯巻可以^4居應(yīng)用存儲(chǔ)裝置4的系統(tǒng)環(huán)境等來(lái)區(qū)別,但在此,可以 相同意義地對(duì)待兩者。
控制單元42具備處理器421、存儲(chǔ)器422、主機(jī)接口 423、高速緩沖存 儲(chǔ)器424、驅(qū)動(dòng)接口 425、以及管理接口 426,這些經(jīng)由數(shù)據(jù)控制器427相互 進(jìn)行總線連接。
處理器421執(zhí)行在存儲(chǔ)器422中保存的各種控制程序,由此來(lái)綜合地控制 控制單元42。在存儲(chǔ)器422中,如該圖所示,除了盤訪問(wèn)程序4221、邏輯單 元管理程序4222、以及塊檢查程序這樣的控制程序之外,還保存包含各種表 在內(nèi)的系統(tǒng)構(gòu)成信息。在本實(shí)施方式中,準(zhǔn)備了目標(biāo)管理表600、外部邏輯單 元(外部LU)管理表700、公共邏輯單元(公共LU)管理表800、外部邏輯單元(外部LU)塊映射表900、鏡像管理表IOOO、內(nèi)部邏輯單元(內(nèi)部LU) 塊管理表IIOO、以及公共邏輯單元(公共LU)管理表1200。例如,按照通過(guò) 接通電源而啟動(dòng)的初始順序,從硬盤驅(qū)動(dòng)器的規(guī)定的存儲(chǔ)區(qū)域讀出這些程序和 表,并安裝在存儲(chǔ)器422上。
主機(jī)接口 423具備多個(gè)端口 4231,是與經(jīng)由網(wǎng)絡(luò)2與該端口 4231連接的 主機(jī)裝置3之間進(jìn)行通信的網(wǎng)絡(luò)接口 。主機(jī)端口 423為了減輕處理器421的負(fù) 荷,除了 TCP/IP協(xié)議之外,還可以安裝iSCSI協(xié)議。主機(jī)接口 423還被稱為 主機(jī)總線適配器。
高速緩沖存儲(chǔ)器424是為了對(duì)主機(jī)裝置3提供較高的響應(yīng)性能,臨時(shí)存儲(chǔ) (高速緩沖存儲(chǔ))在主機(jī)接口 423和設(shè)備接口 425之間交換的應(yīng)用程序的存儲(chǔ) 器。高速緩沖存儲(chǔ)器424典型地由DRAM等易失性存儲(chǔ)器構(gòu)成,但也可以由 閃速存儲(chǔ)器等非易失性存儲(chǔ)器構(gòu)成其全部或者一部分。
設(shè)備接口 425具備多個(gè)端口,其是對(duì)于經(jīng)由盤通道與該端口連接的驅(qū)動(dòng)單 元41進(jìn)行I/0訪問(wèn)控制的接口。即,設(shè)備接口 425取出在高速緩沖存儲(chǔ)器424 中高速緩沖存儲(chǔ)的數(shù)據(jù),存儲(chǔ)在驅(qū)動(dòng)單元41上的對(duì)應(yīng)的塊中(降級(jí)),或者從 驅(qū)動(dòng)單元41上的塊讀出數(shù)據(jù),寫入到高速緩沖存儲(chǔ)器424中(升級(jí))。例如, 在從主機(jī)裝置3接受了讀出請(qǐng)求時(shí),在高速緩沖存儲(chǔ)器424中不存在該請(qǐng)求的 數(shù)據(jù)時(shí),根據(jù)需要進(jìn)行降級(jí)來(lái)確保高速緩沖存儲(chǔ)區(qū)域,然后將該請(qǐng)求的數(shù)據(jù)升 級(jí)到高速緩沖存儲(chǔ)器424中。
管理接口 426具備管理用端口 ,其是用于與經(jīng)由網(wǎng)絡(luò)2和該管理用端口連 接的主管理裝置4之間進(jìn)行通信的網(wǎng)絡(luò)接口。在本實(shí)施方式中,是基于TCP/IP 的通信,所以可以使用以太網(wǎng)(注冊(cè)商標(biāo))插件板。
數(shù)據(jù)控制器427是將上述的處理器421、存儲(chǔ)器422、主枳4妾口 423、高 速緩沖存儲(chǔ)器424以及設(shè)備接口 425相互連接,并對(duì)它們之間的數(shù)據(jù)流進(jìn)行控 制的芯片組。
(1-4)主管理裝置的結(jié)構(gòu)
圖4概要地表示本發(fā)明一實(shí)施方式的主管理裝置4的內(nèi)部結(jié)構(gòu)。如上所述, 主管理裝置4也是計(jì)算機(jī),所以其基本的內(nèi)部結(jié)構(gòu)與主機(jī)裝置相同。在主管理 裝置4中,為了管理存儲(chǔ)裝置3安裝了主生成程序521、鏡^像生成程序522、以及更新管理程序523。通信接口 33是用于經(jīng)由網(wǎng)絡(luò)2與主機(jī)裝置3或存儲(chǔ) 裝置4連接的通信接口。 (1-5)
圖5用于概念性地說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4內(nèi)的邏輯單元的結(jié)構(gòu)。
如上所述,在iSCSI上,作為發(fā)起方的主機(jī)裝置3使用目標(biāo)信息,與作為 目標(biāo)的存儲(chǔ)裝置4連接。目標(biāo)信息是識(shí)別iSCSI節(jié)點(diǎn)的iSCSI名稱(目標(biāo)ID) 以及識(shí)別網(wǎng)絡(luò)門戶的IP地址以及TCP端口號(hào)碼。作為目標(biāo)信息,可以使用發(fā) 起者名稱。對(duì)一個(gè)目標(biāo)分配了一個(gè)以上的邏輯單元。
在本實(shí)施方式中,存儲(chǔ)裝置4形成通過(guò)目標(biāo)信息來(lái)識(shí)別的虛擬的邏輯單 元。即,主機(jī)裝置3根據(jù)目標(biāo)信息,識(shí)別存儲(chǔ)裝置4內(nèi)的虛擬的邏輯單元。在 此,將這樣的虛擬的邏輯單元稱為外部邏輯單元(外部LU)。此外,在作為存 儲(chǔ)裝置4中的物理設(shè)備的驅(qū)動(dòng)單元41上,將被分配了實(shí)際的存儲(chǔ)區(qū)域的邏輯 單元形成為內(nèi)部邏輯單元(內(nèi)部LU)。
在內(nèi)部邏輯單元中,具有用于存儲(chǔ)各個(gè)主機(jī)裝置3共有的塊數(shù)據(jù)的公共邏 輯單元(公共LU )、以及用于存儲(chǔ)各個(gè)主機(jī)裝置固有的塊數(shù)據(jù)的專用邏輯單元 (專用LU)。
這些邏輯單元通過(guò)以下詳細(xì)敘述的各種管理表來(lái)進(jìn)行管理、參照。 (2)各種管理表的結(jié)構(gòu) (2-1)目標(biāo)管理表的結(jié)構(gòu)
圖6表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的目標(biāo)管理表600的一例。目標(biāo) 管理表600是將主機(jī)裝置3識(shí)別的目標(biāo)和虛擬的外部邏輯單元相關(guān)聯(lián)的表。
如該圖所示,目標(biāo)管理表600包含目標(biāo)信息欄601、外部邏輯單元號(hào)碼欄 602以及對(duì)話信息欄603。
目標(biāo)信息欄601保存用于唯一識(shí)別目標(biāo)的目標(biāo)信息。目標(biāo)信息例如使用 iSCSI名稱。外部邏輯單元號(hào)碼欄602保存用于唯一識(shí)別外部邏輯單元的號(hào)碼 (外部邏輯單元號(hào)碼)。對(duì)話信息欄603保存用于唯一識(shí)別對(duì)目標(biāo)確立了對(duì)話 的主機(jī)裝置3的信息。
(2-2)外部邏輯單元管理表的結(jié)構(gòu)圖7表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的外部邏輯單元管理表700的一 例。外部邏輯單元管理表700是^f吏外部邏輯單元與內(nèi)部邏輯單元相對(duì)應(yīng),并且 管理與外部邏輯單元有關(guān)的各種信息的表。
如該圖所示,外部邏輯單元管理表700包含外部邏輯單元號(hào)碼欄701、主 機(jī)類別欄702、分組欄703、內(nèi)部邏輯單元號(hào)碼欄704以及訪問(wèn)控制信息欄705。
外部邏輯單元號(hào)碼欄701保存外部邏輯單元號(hào)碼。因此,外部邏輯單元管 理表700通過(guò)該外部邏輯單元號(hào)碼,與上述的目標(biāo)管理表600相關(guān)聯(lián)。
主機(jī)類別欄702保存使用外部邏輯單元的上位裝置的類別。在本例中,在 主機(jī)類別中具有表示主管理裝置5的"主"、以及表示主管理裝置5以外的裝 置(即,主機(jī)裝置3)的"專用"。
分組欄703保存用于識(shí)別使用同 一啟動(dòng)鏡像的主機(jī)裝置3的組合的分組名 稱。賦予了同一分組名稱的主機(jī)裝置3參照同一公共邏輯單元。
內(nèi)部邏輯單元號(hào)碼欄704保存用于唯一識(shí)別存儲(chǔ)裝置4內(nèi)的邏輯單元的號(hào) 碼(內(nèi)部邏輯單元號(hào)碼)。如果主機(jī)類別為"主",則在此保存的號(hào)碼為作為公 共邏輯單元使用的內(nèi)部邏輯單元的內(nèi)部邏輯單元號(hào)碼,如果主機(jī)類別為"專
訪問(wèn)控制信息欄705保存在具有針對(duì)外部邏輯單元的寫入請(qǐng)求時(shí),用于控 制按照該寫入請(qǐng)求的數(shù)據(jù)塊和公共邏輯單元的數(shù)據(jù)塊是否一致的信息。在初始 狀態(tài)下,設(shè)為"無(wú)效"。在本例中,在訪問(wèn)控制信息中存在"有效"以及"無(wú) 效"。在訪問(wèn)控制信息欄705表示"有效"時(shí),進(jìn)行數(shù)據(jù)的比較。 (2-3 )公共邏輯單元管理表的結(jié)構(gòu)
圖8表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的公共邏輯單元管理表800的一 例。公共邏輯單元管理表800是對(duì)使用公共邏輯單元的主機(jī)裝置3的分組以及 公共邏輯單元的世代進(jìn)行管理的表。
如該圖所示,公共邏輯單元管理表800包含分組欄801、世代欄802以及 內(nèi)部邏輯單元號(hào)碼欄803。
分組欄801保存用于識(shí)別使用同 一啟動(dòng)鏡像的主機(jī)裝置3的組合的分組名 稱,因此,與外部邏輯單元管理表700的分組欄相同。
L新時(shí)生成的公共邏輯單元的世代。因此,當(dāng)進(jìn)行了多次主更新時(shí),與此相對(duì)應(yīng),生成多個(gè)世代的公共邏輯單元。如后所述, 主更新由主管理裝置5來(lái)進(jìn)行。
內(nèi)部邏輯單元號(hào)碼欄803保存作為公共邏輯單元使用的內(nèi)部邏輯單元的 內(nèi)部邏輯單元號(hào)碼。
(2-4)外部邏輯單元塊映射表的結(jié)構(gòu)
圖9表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的外部邏輯單元塊映射表900
或?qū)S眠壿媶卧械臄?shù)據(jù)存儲(chǔ)位置,對(duì)于一個(gè)外部邏輯單元,生成一個(gè)外部邏 輯單元塊映射表900。
如該圖所示,外部邏輯單元塊映射表900包含排列號(hào)碼欄901、參照邏輯 單元號(hào)碼欄902、以及參照塊排列號(hào)碼欄903。
排列號(hào)碼欄901保存外部邏輯單元的總塊lt。例如,在關(guān)于某個(gè)外部邏輯 單元的主機(jī)類別為"主",塊管理單位為"8"時(shí),排列號(hào)碼"0"表示邏輯塊 地址"0" ~ "7"的塊,排列號(hào)碼T表示邏輯塊地址"8" ~ "15"的塊。此 外,在關(guān)于外部邏輯單元的主機(jī)類別為"專用",塊管理單元為"8",并且后 述的管理開(kāi)始LBA為'T,時(shí),排列號(hào)碼"0"表示邏輯塊地址"0"的塊,排 列號(hào)碼"1"表示邏輯塊地址"1" ~ "8"的塊,排列號(hào)碼"2"表示邏輯塊地 址"9" ~ "16"的塊。
參照邏輯單元號(hào)碼欄902保存在排列號(hào)碼欄901中表示的塊中存儲(chǔ)有數(shù)據(jù) 的內(nèi)部邏輯單元的號(hào)碼。
參照塊排列號(hào)碼欄903是在排列號(hào)碼901中表示的塊中存儲(chǔ)有數(shù)據(jù)的內(nèi)部 邏輯單元的內(nèi)部塊的排列號(hào)碼。例如,參照塊排列號(hào)碼"0"表示內(nèi)部邏輯單 元的內(nèi)部塊"0"的塊組,參照塊排列號(hào)碼"1"表示內(nèi)部邏輯單元的塊"1" 的塊組。
(2-5)鏡像管理表的結(jié)構(gòu)
圖10表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的鏡像管理表1000的一例。鏡 像管理表1000是對(duì)主機(jī)裝置3使用的依賴于OS的文件系統(tǒng)的信息進(jìn)行管理 的表。
如該圖所示,鏡像管理表1000包含分組欄1001、塊管理塊單位欄1002、以及開(kāi)始管理邏輯塊地址(LBA)欄1003。
分組欄1001保存用于識(shí)別使用同一啟動(dòng)鏡像的主機(jī)裝置3的組合的分組 名稱,因此,與公共邏輯單元管理表800的分組欄相同。
管理塊單位欄1002表示存儲(chǔ)數(shù)據(jù)時(shí)的最小區(qū)域大小。即,將數(shù)據(jù)匯總為 管理塊單位來(lái)進(jìn)行存儲(chǔ)。例如,"8"表示8塊(512x8字節(jié))為管理塊單位。 在存儲(chǔ)數(shù)據(jù)時(shí),使用管理塊單位的倍數(shù)的大小。
管理開(kāi)始LBA欄1003保存在驅(qū)動(dòng)單元41中形成的邏輯單元(內(nèi)部邏輯 單元)中的、數(shù)據(jù)區(qū)域的頭部邏輯地址。這是因?yàn)橐话阍诒P的頭部的數(shù)個(gè)塊中 存儲(chǔ)該盤的格式信息,是用于對(duì)該數(shù)個(gè)塊進(jìn)行偏置的信息。 (2-6)內(nèi)部邏輯單元塊管理表的結(jié)構(gòu)
圖11表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的內(nèi)部邏輯單元塊管理表1100 的一例。內(nèi)部邏輯單元塊管理表1100是對(duì)內(nèi)部邏輯單元的塊使用狀態(tài)進(jìn)行管 理的表。
如該圖所示,內(nèi)部邏輯單元塊管理表1100包含內(nèi)部邏輯單元號(hào)碼1101欄 以及最終塊號(hào)碼欄1102。
內(nèi)部邏輯單元號(hào)碼iioi欄保存唯一表示內(nèi)部邏輯單元的號(hào)碼。最終塊號(hào) 碼欄1102表示在內(nèi)部邏輯單元中的通過(guò)管理塊單位進(jìn)行管理的塊(內(nèi)部塊) 中,最后寫入數(shù)據(jù)的內(nèi)部塊的排列號(hào)碼。
(2-7)公共邏輯單元數(shù)據(jù)管理表的結(jié)構(gòu)
圖12表示本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4的公共邏輯單元數(shù)據(jù)管理表 1200的一例。公共邏輯單元數(shù)據(jù)管理表1200是對(duì)存儲(chǔ)在公共邏輯單元中的數(shù) 據(jù)進(jìn)行管理的表,管理數(shù)據(jù)的同一性以及參照數(shù)。公共邏輯單元數(shù)據(jù)管理表 1200對(duì)于一個(gè)公共邏輯單元生成一個(gè)公共邏輯單元數(shù)據(jù)管理表1200。
如該圖所示,公共邏輯單元數(shù)據(jù)管理表包含排列號(hào)碼欄1201、固有值欄 1202以及參照數(shù)欄1203。
排列號(hào)碼欄1201對(duì)應(yīng)于外部邏輯單元塊映射表900中的參照塊排列號(hào)碼 欄903,保存內(nèi)部邏輯單元的內(nèi)部塊的號(hào)碼。
固有值欄1202是根據(jù)存儲(chǔ)的數(shù)據(jù)塊計(jì)算出的值,例如使用散列值。即, 通過(guò)將寫入數(shù)據(jù)與固有值欄1202中表示的值進(jìn)行比較,可以判斷數(shù)據(jù)的同一性。
參照數(shù)欄1203保存參照由排列號(hào)碼表示的內(nèi)部塊的外部邏輯單元的數(shù)量。
(3)各種處理的說(shuō)明 (3-1 )主生成處理
然后,參照?qǐng)D13至圖15,對(duì)本發(fā)明一實(shí)施方式的計(jì)算機(jī)系統(tǒng)中的主生成 處理進(jìn)行說(shuō)明。圖13是用于說(shuō)明本發(fā)明一實(shí)施方式的主管理裝置5中的主生 成處理的流程圖,圖14是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4中的公共 邏輯單元生成處理的流程圖,圖15是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置 4中的主寫入處理的流程圖。
主生成處理是指提取各個(gè)主機(jī)裝置3共同使用的文件(公共文件),根據(jù) 該文件生成公共邏輯單元的處理。
在系統(tǒng)管理者的操作下,首先,將存儲(chǔ)有用于主機(jī)裝置3的啟動(dòng)鏡像的光 盤(CD或DVD)等記錄介質(zhì)裝入主管理裝置5的輸入輸出裝置54中,當(dāng)對(duì) 主管理裝置5接通電源時(shí),主管理裝置5通過(guò)安裝該啟動(dòng)鏡像,并讀出該啟動(dòng) 鏡像,來(lái)進(jìn)行啟動(dòng)。此外,在將記錄介質(zhì)上的啟動(dòng)鏡像安裝到輔助存儲(chǔ)裝置 55中之后,從輔助存儲(chǔ)裝置也可以啟動(dòng)主管理裝置5。然后,在主管理裝置5 上執(zhí)行主生成程序521。
由主管理裝置5執(zhí)行的主生成程序521使用OS具有的盤管理功能提示預(yù) 定的盤管理畫面,接受想要設(shè)定的存儲(chǔ)裝置4中的存儲(chǔ)區(qū)域(公共邏輯單元) 的使用大小、分組以及主機(jī)類別(STEP1301)。在接受這些之后,主生成程序 521按照OS的文件系統(tǒng)的技術(shù)規(guī)格,計(jì)算管理塊單位以及管理開(kāi)始LBA,并 且,根據(jù)該存儲(chǔ)區(qū)域的使用大小以及該管理塊單位,計(jì)算公共邏輯單元的大小 (STEP1302)。在此,最好采用使公共邏輯單元的總塊數(shù)成為管理塊單位的倍 數(shù)的方式,來(lái)設(shè)定存儲(chǔ)區(qū)域的使用大小。
然后,主生成程序521生成外部邏輯單元生成請(qǐng)求命令,并經(jīng)由存儲(chǔ)裝置 4的管理接口 426將其發(fā)送給存儲(chǔ)裝置4的邏輯單元管理程序4222 (STEP1303 )。外部邏輯單元生成請(qǐng)求命令,作為其參數(shù)例如包含主機(jī)類別、 分組、管理塊單位、管理開(kāi)始LBA以及^^共邏輯單元的大小。在此,關(guān)于外部邏輯單元生成請(qǐng)求命令的參數(shù),分別設(shè)為"主機(jī)類別主"、"分組A"、"管 理塊單位8"、"管理開(kāi)始LBA: 1"、"公共邏輯單元的大小X"。
在存儲(chǔ)裝置4上執(zhí)行的邏輯單元管理程序4222當(dāng)接收到指定了 "主機(jī)類 別主,,的外部邏輯單元生成請(qǐng)求命令時(shí),執(zhí)行以下所示的外部邏輯單元生成 處理。
即,邏輯單元管理程序4222首先生成與應(yīng)該分配外部邏輯單元的目標(biāo)有 關(guān)的目標(biāo)信息,并將其登錄到目標(biāo)管理表600的目標(biāo)信息欄601中
(STEP1401)。然后,邏輯單元管理程序4222對(duì)該目標(biāo)分配外部邏輯單元號(hào) 碼,并將該號(hào)碼登錄到目標(biāo)管理表600的外部邏輯單元號(hào)碼欄602中,并且還 登錄到外部邏輯單元管理表700的外部邏輯單元號(hào)碼欄701中(STEP1402)。 然后,邏輯單元管理程序4222在根據(jù)由外部邏輯單元生成請(qǐng)求命令指定 的"公共邏輯單元的大小X"計(jì)算出內(nèi)部邏輯單元的大小之后,生成內(nèi)部邏 輯單元,將該內(nèi)部邏輯單元號(hào)碼登錄到外部邏輯單元管理表700的內(nèi)部邏輯單 元號(hào)碼欄704中(STEP1403 )。此外,邏輯單元管理程序4222將該內(nèi)部邏輯 單元號(hào)碼登錄到內(nèi)部邏輯單元塊管理表1100的內(nèi)部邏輯單元號(hào)碼欄1101中, 并且在最終塊號(hào)碼欄1102中設(shè)定"0",進(jìn)行初始化(STEP1404)。此外,邏 輯單元管理程序4222按照該外部邏輯單元生成請(qǐng)求命令,分別在外部邏輯單 元管理表700的主機(jī)類別欄702中登錄"主機(jī)",在分組欄703中登錄"A"。
邏輯單元管理程序4222然后在公共邏輯單元管理表800中追加新的記錄 項(xiàng),在分組欄801中登錄"A,, (STEP1405)。然后,邏輯單元管理程序4222 判斷是否在公共邏輯單元管理表800內(nèi)登錄了屬于相同分組的公共邏輯單元
(STEP1406),在判斷為沒(méi)有登錄時(shí)(STEP1406為No),在該記錄項(xiàng)的世代 欄802中登錄"0" (STEP1407)。另一方面,邏輯單元管理程序4222在判斷 為在公共邏輯單元管理表800內(nèi)登錄了屬于同一分組的公共邏輯單元時(shí)
(STEP1406為Yes),使在該記錄項(xiàng)的世代欄802中表示的值增加1
(STEP 1408 )。
然后,邏輯單元管理程序4222根據(jù)由外部邏輯單元生成請(qǐng)求命令指定的 "公共邏輯單元的大小X"以及"管理塊單位8",計(jì)算總塊數(shù)(總排列數(shù)), 對(duì)于該公共邏輯單元,生成與該總排列數(shù)對(duì)應(yīng)的公共邏輯單元數(shù)據(jù)管理表1200,為了初始化在與各個(gè)排列號(hào)碼對(duì)應(yīng)的參照數(shù)欄1203中登錄"0" (STEP1409)。
并且,邏輯單元管理程序4222對(duì)于公共邏輯單元管理表800的世代欄802 的值為"0"的各個(gè)分組,在鏡像管理表1100中生成新的記錄項(xiàng),并將該分組、 該管理塊單位以及該管理開(kāi)始LBA分別登錄到相應(yīng)的記錄項(xiàng)的分組欄1101、 塊管理單位欄1102以及頭部LBA欄1103中(STEP1409)。
然后,邏輯單元管理程序4222與根據(jù)由外部邏輯單元生成請(qǐng)求命令指定 的"公共邏輯單元的大小X"以及"管理塊單位8"計(jì)算出的總塊數(shù)(總 排列數(shù)),生成關(guān)于該外部邏輯單元的外部邏輯單元塊映射表900,為了初始 化,在與各個(gè)排列號(hào)碼對(duì)應(yīng)的參照塊排列號(hào)碼欄1003中,設(shè)置表示還沒(méi)有參 照的值,例如設(shè)置"-I" (STEP1411)。
然后,邏輯單元管理程序4222經(jīng)由管理接口 426,將生成的目標(biāo)信息以 及外部邏輯單元號(hào)碼發(fā)送給主管理裝置5 ( STEP1412 )。
回到圖13,主管理裝置5上的主生成程序521當(dāng)接收到從存儲(chǔ)裝置4發(fā) 送的目標(biāo)信息以及外部邏輯單元號(hào)碼時(shí)(STEP1304),使用存儲(chǔ)器連接功能, 對(duì)存儲(chǔ)裝置4的主機(jī)接口 423發(fā)送連接請(qǐng)求命令,連接在先生成的外部邏輯單 元,并對(duì)其進(jìn)行安裝(STEP1305 )。連接請(qǐng)求命令包含將該外部邏輯單元作為 目標(biāo)的目標(biāo)信息。
然后,主生成程序521在選擇了全部的公共文件后,將構(gòu)成該選擇出的公 共文件的數(shù)據(jù)傳輸給該安裝的外部邏輯單元(STEP1306)。數(shù)據(jù)的寫入從外部 邏輯單元的頭部位置(LBA=0)開(kāi)始進(jìn)行。
即,主生成程序521參照文件系統(tǒng)的文件地址管理信息,計(jì)算出存儲(chǔ)有構(gòu) 成公共文件的數(shù)據(jù)的輔助存儲(chǔ)裝置53的存儲(chǔ)區(qū)域的邏輯塊地址,按照塊單位 對(duì)該存儲(chǔ)區(qū)域進(jìn)行訪問(wèn)來(lái)依次讀出數(shù)據(jù),將用于在所安裝的外部邏輯單元中寫 入該讀出的數(shù)據(jù)的主寫入請(qǐng)求命令發(fā)送給存儲(chǔ)裝置4。存儲(chǔ)裝置4將接收到的 主寫入請(qǐng)求命令轉(zhuǎn)交給盤訪問(wèn)程序4221,按照?qǐng)D15所示的主寫入處理,寫入 到驅(qū)動(dòng)單元41上的公共邏輯單元中。
在傳輸數(shù)據(jù)前,如上所述,根據(jù)連接請(qǐng)求命令,把在作為目標(biāo)的存儲(chǔ)裝置 4內(nèi)虛擬生成的外部邏輯單元安裝到主管理裝置5中。由此,盤訪問(wèn)程序4221參照目標(biāo)管理表600,從與該目標(biāo)有關(guān)的外部邏輯單元號(hào)碼欄602取得外部邏 輯單元號(hào)碼,然后,參照外部邏輯單元管理表700,從與該取得的外部邏輯單
703取得分組,并且參照鏡像管理表1000,從與該分組有關(guān)的管理塊單位欄 1002取得管理塊單位(STEP1501)。
然后,盤訪問(wèn)程序4221參照外部邏輯單元塊映射表900,根據(jù)取得的管 理塊單位、由主寫入請(qǐng)求命令指定的邏輯塊地址(LBA)以及塊數(shù),計(jì)算排列 號(hào)碼。然后,盤訪問(wèn)程序4221在外部邏輯單元塊映射表900的參照邏輯單元 號(hào)碼欄902中登錄所取得的內(nèi)部邏輯單元號(hào)碼,此外在參照塊排列號(hào)碼欄903 中登錄與排列號(hào)碼相同的值(STEP1502)。然后,盤訪問(wèn)程序4221在參照邏 輯單元號(hào)碼欄902中表示的內(nèi)部邏輯單元號(hào)碼的參照塊排列號(hào)碼欄903中表示 的塊中存儲(chǔ)寫入數(shù)據(jù)(STEP1503 )。
當(dāng)數(shù)據(jù)的寫入完成時(shí),盤訪問(wèn)程序4221對(duì)應(yīng)寫入的數(shù)據(jù)的塊數(shù),更新內(nèi) 部邏輯單元塊管理表1100中的對(duì)應(yīng)的最終塊號(hào)碼(STEP1504)。
例如,在針對(duì)作為目標(biāo)的外部邏輯單元的管理塊單位為"8",且在主寫入 請(qǐng)求命令中指定了 "LBA: 0x0"以及"塊數(shù)16"時(shí),排列號(hào)碼成為"0"以 及"1"。因此,寫入數(shù)據(jù)按照每8個(gè)塊被存儲(chǔ)到由內(nèi)部邏輯單元的參照塊排列 號(hào)碼"0"表示的位置上。此時(shí),因?yàn)榇鎯?chǔ)了兩個(gè)內(nèi)部塊的數(shù)據(jù),所以在內(nèi)部 邏輯單元管理表1100的最終塊號(hào)碼欄1102中登錄"2"。
最后,盤訪問(wèn)程序4221根據(jù)存儲(chǔ)的數(shù)據(jù),對(duì)每個(gè)數(shù)據(jù)塊計(jì)算其固有值(散 列值),并將該值登錄到與公共邏輯單元數(shù)據(jù)管理表1200的排列號(hào)碼對(duì)應(yīng)的固 有值欄1202中(STEP1505 )。
(3-2)啟動(dòng)鏡像生成處理
然后,參照?qǐng)D16至圖18說(shuō)明本發(fā)明一實(shí)施方式的計(jì)算機(jī)系統(tǒng)中的啟動(dòng)鏡 像生成處理。圖16是用于說(shuō)明本發(fā)明一實(shí)施方式的主管理裝置5的啟動(dòng)鏡像 生成處理的流程圖,圖17是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4中的專 用邏輯單元生成處理的流程圖,圖18是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝 置4中的啟動(dòng)鏡像生成時(shí)的專用寫入處理的流程圖。
啟動(dòng)鏡像生成處理是用于生成主機(jī)裝置3使用的啟動(dòng)鏡像的處理。在主機(jī)裝置3的啟動(dòng)鏡像中使用在主生成處理中使用的啟動(dòng)鏡像,所以O(shè)S以及應(yīng)用 程序的文件成為公用。系統(tǒng)管理者可以任意地設(shè)定生成啟動(dòng)鏡像的專用邏輯單 元的大小。但是,在此設(shè)專用邏輯單元的塊數(shù)為管理塊單位的整數(shù)倍,設(shè)定比 公共邏輯單元的大小大的值。
當(dāng)系統(tǒng)管理者操作主管理裝置5,指示執(zhí)行鏡像生成程序522時(shí),鏡像生 成程序522調(diào)出OS具有的盤管理功能,經(jīng)由預(yù)定的盤管理畫面,接受要進(jìn)行 設(shè)定的存儲(chǔ)裝置4中的專用邏輯單元的使用大小、分組以及主機(jī)類別
(STEP1601 )。在接受之后,鏡像生成程序522按照OS的文件系統(tǒng)的技術(shù)規(guī) 格,計(jì)算管理塊單位以及管理開(kāi)始LBA (STEP1602)。然后,鏡像生成程序 522生成外部邏輯單元生成請(qǐng)求命令,并經(jīng)由存儲(chǔ)裝置4的管理接口 426,將 其發(fā)送給存儲(chǔ)裝置4的邏輯單元管理程序4222 ( STEP1603 )。在本例中,外部 邏輯單元,作為其參數(shù),生成請(qǐng)求包含"主機(jī)類別專用"、"分組A"以及
"專用邏輯單元的大小Y"。
在存儲(chǔ)裝置4上執(zhí)行的邏輯單元管理程序4222當(dāng)接收到外部邏輯單元生
即,邏輯單元管理程序4222生成應(yīng)該分配外部邏輯單元的關(guān)于目標(biāo)的目 標(biāo)信息,并將其登錄到目標(biāo)管理表600的目標(biāo)信息欄601中(STEP1701)。然 后,邏輯單元管理程序4222對(duì)該目標(biāo)分配外部邏輯單元號(hào)碼,并將該號(hào)碼登 錄到目標(biāo)管理表600的外部邏輯單元號(hào)碼欄602中,并且還登錄到外部邏輯單 元管理表700的外部邏輯單元號(hào)碼欄701中(STEP1702)。
然后,邏輯單元管理程序4222根據(jù)由外部邏輯單元生成請(qǐng)求命令指定的 "專用邏輯單元的大小,,計(jì)算出內(nèi)部邏輯單元的大小,生成內(nèi)部邏輯單元,將 該內(nèi)部邏輯單元號(hào)碼登錄到外部邏輯單元管理表700的內(nèi)部邏輯單元號(hào)碼欄 704中(STEP 1703 )。同時(shí),邏輯單元管理程序4222將該內(nèi)部邏輯單元號(hào)碼登 錄到內(nèi)部邏輯單元塊管理表1100的內(nèi)部邏輯單元號(hào)碼欄1101中,并且為了初 始化在最終塊號(hào)碼欄1102中設(shè)定"0" (STEP1704)。此外,邏輯單元管理程 序4222按照該外部邏輯單元生成請(qǐng)求命令,在外部邏輯單元管理表700的主 機(jī)類別欄702中登錄"專用",在分組欄703中登錄"A"。
然后,邏輯單元管理程序4222根據(jù)由外部邏輯單元生成請(qǐng)求命令指定的"公共邏輯單元的大小Y"以及"管理塊單位8",計(jì)算總塊數(shù)(總排列數(shù)), 生成外部邏輯單元塊映射表卯0,在與各個(gè)排列號(hào)碼對(duì)應(yīng)的參照塊排列號(hào)碼欄 1003中設(shè)置表示還沒(méi)有被參照的值,例如設(shè)置來(lái)對(duì)外部邏輯單元塊映 射表900進(jìn)行初始化(STEP 1705 )。然后,邏輯單元管理程序4222將目標(biāo)信息以及外部邏輯單元號(hào)碼發(fā)送給 主管理裝置5 (STEP1706)?;氐綀D16,鏡像生成程序522當(dāng)接收到從存儲(chǔ)裝置4發(fā)送的目標(biāo)信息以 及外部邏輯單元號(hào)碼時(shí)(STEP1604),經(jīng)由存儲(chǔ)裝置4的管理接口 426,對(duì)邏 輯單元管理程序4222發(fā)送訪問(wèn)控制信息有效請(qǐng)求命令(STEP1605 )。訪問(wèn)控 制信息有效請(qǐng)求命令在其參數(shù)中包含外部邏輯單元號(hào)碼。然后,邏輯單元管理程序4222當(dāng)接收到訪問(wèn)控制信息有效請(qǐng)求命令時(shí)(圖 17的STEP1707),將外部邏輯單元管理表700中的關(guān)于該外部邏輯單元號(hào)碼 的訪問(wèn)控制信息欄705的值設(shè)為"有效"(STEP1708)。返回圖16,鏡像生成程序522使用存儲(chǔ)器連接功能,將連接請(qǐng)求命令發(fā) 送給存儲(chǔ)裝置4的主機(jī)接口 423,與外部邏輯單元連接,并將其進(jìn)行安裝 (STEP1606)。鏡像生成程序522可以在下一次的數(shù)據(jù)傳輸之前,對(duì)所安裝的 外部邏輯單元進(jìn)行格式化。然后,鏡像生成程序522在選擇了專用文件之后,將構(gòu)成該被選擇的專用 文件的數(shù)據(jù)傳輸給該安裝的外部邏輯單元(STEP1306)。數(shù)據(jù)的寫入典型地是 從外部邏輯單元的頭部地址(LBA=0)開(kāi)始進(jìn)行。即,鏡像生成程序522參照文件系統(tǒng)的文件地址管理信息,計(jì)算出存儲(chǔ)有 構(gòu)成專用文件的數(shù)據(jù)的輔助存儲(chǔ)裝置53的存儲(chǔ)區(qū)域的邏輯塊地址,按照塊單 位對(duì)該存儲(chǔ)區(qū)域進(jìn)行訪問(wèn)來(lái)依次讀出數(shù)據(jù),將用于在所安裝的外部邏輯單元中 寫入該讀出的數(shù)據(jù)的專用寫入請(qǐng)求命令發(fā)送給存儲(chǔ)裝置4。專用寫入請(qǐng)求命令 包含邏輯塊地址、塊數(shù)以及寫入數(shù)據(jù)。存儲(chǔ)裝置4將接收到的專用寫入請(qǐng)求命 令轉(zhuǎn)交給盤訪問(wèn)程序4221,按照?qǐng)D18所示的專用寫入處理,寫入到驅(qū)動(dòng)單元 41上的預(yù)定的存儲(chǔ)區(qū)域中。當(dāng)專用寫入處理完成時(shí),鎮(zhèn)J象生成程序522經(jīng)由 存儲(chǔ)裝置4的管理接口 426將訪問(wèn)控制信息無(wú)效請(qǐng)求命令發(fā)送給邏輯單元管理 程序4222 ( STEP1608 )。在傳輸數(shù)據(jù)前,如上所述,根據(jù)連接請(qǐng)求命令,把在作為目標(biāo)的存儲(chǔ)裝置 4內(nèi)虛擬生成的外部邏輯單元(專用邏輯單元)安裝到主管理裝置5中。由此,盤訪問(wèn)程序4221參照目標(biāo)管理表600, ^^人關(guān)于該目標(biāo)的外部邏輯單元號(hào)碼欄 602取得外部邏輯單元號(hào)碼,然后,參照外部邏輯單元管理表700,從關(guān)于該 取得的外部邏輯單元號(hào)碼的內(nèi)部邏輯單元號(hào)碼欄704取得內(nèi)部邏輯單元號(hào)碼, 此外從分組欄703取得分組,并且參照鏡像管理表1000,從關(guān)于該分組的管 理塊單位欄1002取得管理塊單位。并且,因?yàn)橹鳈C(jī)類別為"專用",所以盤訪 問(wèn)程序4221參照外部邏輯單元管理表700,從訪問(wèn)控制信息欄705取得訪問(wèn) 信息,并且參照分組欄703以及主機(jī)類別欄702,從關(guān)于是同一分組并且是主單元號(hào)碼(STEP 1801 )。然后,盤訪問(wèn)程序4221參照外部邏輯單元塊映射表900,根據(jù)取得的管 理塊單位、通過(guò)專用寫入請(qǐng)求指定的邏輯塊地址以及塊數(shù),計(jì)算排列號(hào)碼。然 后,盤訪問(wèn)程序4221在外部邏輯單元塊映射表900的參照邏輯單元號(hào)碼欄902 中登錄所取得的內(nèi)部邏輯單元號(hào)碼,此外在參照塊排列號(hào)碼欄903中登錄與排 列號(hào)碼相同的值(STEP1802)。然后,因?yàn)樵谠摃r(shí)刻訪問(wèn)控制信息為"有效"(參照?qǐng)D17的STEP1708), 所以盤訪問(wèn)程序4221執(zhí)行對(duì)于寫入的全部的數(shù)據(jù)塊進(jìn)行映射處理的第一專用 寫入處理(STEP1803)。參照?qǐng)D19來(lái)說(shuō)明第一專用寫入處理。當(dāng)?shù)谝粚S脤懭胩幚斫Y(jié)束時(shí),如上所述,鏡像生成程序522經(jīng)由存儲(chǔ)裝置 4的管理接口 426,將訪問(wèn)控制信息無(wú)效請(qǐng)求命令發(fā)送給邏輯單元管理程序 4222。接收到訪問(wèn)控制信息無(wú)效請(qǐng)求命令的邏輯單元管理程序4222將外部邏 輯單元管理表700中的與該外部邏輯單元有關(guān)的訪問(wèn)控制信息欄705的值變更 為"無(wú)效,,(STEP1804)。(3-3 )通過(guò)主機(jī)裝置3的文件的讀出/寫入處理主機(jī)裝置使用在上述的啟動(dòng)鏡像生成處理中得到的目標(biāo)信息,從經(jīng)由網(wǎng)絡(luò) 2連接的存儲(chǔ)裝置4啟動(dòng)。即,當(dāng)對(duì)主機(jī)裝置3接通了電源時(shí),主機(jī)裝置3的引導(dǎo)程序使用存儲(chǔ)器連 接功能,為了安裝作為目標(biāo)的外部邏輯單元,發(fā)送連接請(qǐng)求命令。連接請(qǐng)求命令包含用于識(shí)別目標(biāo)的目標(biāo)信息。接收到連接請(qǐng)求命令的盤訪問(wèn)程序4221, 如上所述,參照目標(biāo)管理表600,根據(jù)該目標(biāo)信息取得外部邏輯單元。然后, 盤訪問(wèn)程序4221使用取得的外部邏輯單元,分別參照外部邏輯單元管理表 700、鏡像管理表1000以及外部邏輯單元塊映射表900,從相應(yīng)的登錄項(xiàng)中取 得管理塊單位、管理開(kāi)始LBA、訪問(wèn)控制信息、與作為專用邏輯單元的外部 邏輯單元相對(duì)的內(nèi)部邏輯單元號(hào)碼。并且,盤訪問(wèn)程序4221生成用于唯一識(shí)別該連接請(qǐng)求命令的對(duì)話信息,并登錄到目標(biāo)管理表600中的關(guān)于該外部邏輯 單元的對(duì)話信息欄603中,將該生成的對(duì)話信息發(fā)送給主機(jī)裝置3的引導(dǎo)程序。 由此,在主機(jī)裝置3和存儲(chǔ)裝置4之間確立對(duì)話,安裝外部邏輯單元。然后,引導(dǎo)程序?qū)λ惭b的外部邏輯單元內(nèi)的文件進(jìn)行訪問(wèn),啟動(dòng)OS。 此外,主機(jī)裝置3在OS上啟動(dòng)應(yīng)用程序。由此,主機(jī)裝置3上的應(yīng)用程序能 夠?qū)Υ鎯?chǔ)裝置4的外部邏輯單元進(jìn)行I/0訪問(wèn)。即,應(yīng)用程序當(dāng)對(duì)預(yù)定的文件 進(jìn)行I/O請(qǐng)求時(shí),將寫入請(qǐng)求命令或讀出請(qǐng)求命令發(fā)送給存儲(chǔ)裝置4的主機(jī)接 口 423,在接收到該命令后,盤訪問(wèn)程序4221根據(jù)該命令訪問(wèn)驅(qū)動(dòng)單元41, 并進(jìn)行響應(yīng)。寫入請(qǐng)求命令包含對(duì)話信息、邏輯塊地址、塊數(shù)以及寫入數(shù)據(jù)。 接收到寫入請(qǐng)求命令的盤訪問(wèn)程序4221參照目標(biāo)管理表600,取得與對(duì)話信 息一致的目標(biāo)的外部邏輯單元號(hào)碼。然后,盤訪問(wèn)程序4221使用該取得的外 部邏輯單元號(hào)碼,從外部邏輯單元管理表700取得訪問(wèn)控制信息。此時(shí),如果 主機(jī)類別為"專用",訪問(wèn)控制信息為"無(wú)效",則只在針對(duì)公共邏輯單元的寫 入處理的情況下,執(zhí)行比較數(shù)據(jù)塊的第二專用寫入處理。 (3-4)第一專用寫入處理圖19是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的第一專用寫入處理的 流程圖。第一專用寫入處理是在作為目標(biāo)的外部邏輯單元的訪問(wèn)控制信息為 "有效"時(shí)執(zhí)行的處理。如該圖所示,盤訪問(wèn)程序4221當(dāng)接收到寫入請(qǐng)求命令時(shí),根據(jù)管理塊單 位、管理開(kāi)始LBA、寫入目的地邏輯塊地址以及塊數(shù),從外部邏輯單元塊映 射表900取得應(yīng)該寫入數(shù)據(jù)的塊的排列號(hào)碼、參照邏輯單元號(hào)碼以及參照塊排 列號(hào)碼,并且從公共邏輯單元管理表800取得屬于同一分組的公共邏輯單元的 內(nèi)部邏輯單元號(hào)碼(STEP1901 )。然后,盤訪問(wèn)程序4221按照管理塊單位計(jì)算寫入數(shù)據(jù)的散列值,比較該 計(jì)算出的散列值和公共邏輯單元數(shù)據(jù)管理表1200的固有值,并且,在散列值 與固有值一致的情況下,從內(nèi)部邏輯單元讀出數(shù)據(jù),按照字節(jié)單位將寫入數(shù)據(jù) 和讀出數(shù)據(jù)進(jìn)行比較(STEP1902 )。根據(jù)比較結(jié)果,盤訪問(wèn)程序4221在判斷為數(shù)據(jù)相同時(shí)(STEP1903為Yes), 為了參照最新的公共邏輯單元,在外部邏輯單元塊映射表900中再設(shè)定參照邏 輯單元號(hào)碼以及參照塊排列號(hào)碼(STEP1904)。然后,盤訪問(wèn)程序4221對(duì)新 舊的公共邏輯單元數(shù)據(jù)管理表1200的參照數(shù)進(jìn)行更新(STEP1905 )。與此相對(duì),盤訪問(wèn)程序4221在判斷為在公共邏輯單元中沒(méi)有相同的數(shù)據(jù) 時(shí)(STEP1903為No),在專用邏輯單元中存儲(chǔ)寫入數(shù)據(jù)。即,盤訪問(wèn)程序4221 參照內(nèi)部邏輯單元塊管理表1100,取得最終塊號(hào)碼,并在該最終塊號(hào)碼表示 的塊中存儲(chǔ)寫入數(shù)據(jù)(STEP1906)。然后,盤訪問(wèn)程序4221在外部邏輯單元 塊映射表900中再設(shè)定參照邏輯單元號(hào)碼以及參照塊排列號(hào)碼(STEP1907), 并且對(duì)內(nèi)部邏輯單元塊管理表1100的最終塊號(hào)碼進(jìn)行更新(STEP1908 )。然后,盤訪問(wèn)程序4221判斷是否對(duì)全部的數(shù)據(jù)塊進(jìn)行了映射檢查 (STEP1909),如果存在還沒(méi)有進(jìn)行映射的數(shù)據(jù)塊(STEP1909為No),則返 回到STEP 1902的處理。(3-5)第二專用寫入處理圖20是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的第二專用寫入處理的 流程圖。第二專用寫入處理是在作為目標(biāo)的外部邏輯單元的訪問(wèn)控制信息為 "無(wú)效"時(shí)進(jìn)行的處理。如該圖所示,盤訪問(wèn)程序4221當(dāng)接收到寫入請(qǐng)求命令時(shí),根據(jù)管理塊單 位、管理開(kāi)始LBA、寫入目的地邏輯塊地址以及塊數(shù),從外部邏輯單元塊映 射表900取得應(yīng)該寫入數(shù)據(jù)的該的排列號(hào)碼、參照邏輯單元號(hào)碼以及參照塊排 列號(hào)碼(STEP2001 )。盤訪問(wèn)程序4221然后參照外部邏輯單元塊映射表900,判斷參照塊排列 號(hào)碼是否仍保持為初始值(例如"-I") (STEP2002)。盤訪問(wèn)程序4221在判 斷為參照塊排列號(hào)碼仍保持為初始值時(shí)(STEP2002為No),進(jìn)行 STEP2008 STEP2010的處理。STEP2008 STEP2011的處理與圖19所示的STEP 1906 STEP 1909的處理相同,所以省略說(shuō)明。與此相對(duì),盤訪問(wèn)程序4221在判斷為參照塊排列號(hào)碼為初始值以外時(shí) (STEP2002為Yes ),然后判斷參照邏輯單元號(hào)碼是否為表示公共邏輯單元的 參照邏輯單元號(hào)碼(STEP2003)。盤訪問(wèn)程序4221在判斷為參照邏輯單元號(hào) 碼不是表示公共邏輯單元的參照邏輯單元號(hào)碼(即為專用邏輯單元)時(shí) (STEP2003為No ),同樣進(jìn)行STEP2008-STEP2010的處理。盤訪問(wèn)程序4221在盤訪問(wèn)程序4221判斷為參照邏輯單元號(hào)碼是表示公共 邏輯單元的參照邏輯單元號(hào)碼時(shí)(STEP2003為Yes),與上述第一專用寫入處 理相同地,對(duì)每個(gè)管理塊單位;險(xiǎn)查數(shù)據(jù)的同一性,在7>共邏輯單元或?qū)S眠壿?單元中寫入數(shù)據(jù)(STEP2004 STEP2010 )。 STEP2004 STEP2011的處理與圖 19所示的STEP1902 STEP1卯9的處理相同,所以省略說(shuō)明。 (3-6)讀出處理圖21是用于說(shuō)明本發(fā)明 一 實(shí)施方式的存儲(chǔ)裝置中的讀出處理的流程圖。 從主機(jī)裝置3發(fā)送的讀出請(qǐng)求命令包含對(duì)話信息、邏輯塊地址以及塊數(shù)。 盤訪問(wèn)程序4221當(dāng)接收到讀出請(qǐng)求命令時(shí),取得由對(duì)話信息指定的目標(biāo)的外 部邏輯單元號(hào)碼。然后,關(guān)于該取得的外部邏輯單元號(hào)碼,盤訪問(wèn)程序4221輯單元號(hào)碼以及參照塊排列號(hào)碼(STEP2101)。在此,參照邏輯單元號(hào)碼是公 共邏輯單元或?qū)S眠壿媶卧膬?nèi)部邏輯單元號(hào)碼。然后,盤訪問(wèn)程序4221參照外部邏輯單元塊映射表卯O,取得關(guān)于該取 得的排列號(hào)碼的參照邏輯單元號(hào)碼以及參照塊排列號(hào)碼,確定應(yīng)該讀出數(shù)據(jù)的 內(nèi)部邏輯單元的塊位置以及塊數(shù)(STEP2102)。然后,盤訪問(wèn)程序4221根據(jù) 所確定的內(nèi)部邏輯單元的塊位置,按照管理塊單位讀出數(shù)據(jù)(STEP2103)。當(dāng)進(jìn)行后述的主更新處理時(shí),存在世代不同的多個(gè)公共邏輯單元。因此, 盤訪問(wèn)程序4221判斷是否在屬于同一分組的公共邏輯單元中存在多個(gè)世代 (STEP2103),在判斷為存在時(shí)(STEP2103為Yes),進(jìn)一步判斷被請(qǐng)求讀出 的數(shù)據(jù)是否參照了世代較早的公共邏輯單元(STEP2104),如果是這樣 (STEP2104為Yes ),進(jìn)行以下表示的數(shù)據(jù)移動(dòng)處理(STEP2105 )。 (3-7)數(shù)據(jù)移動(dòng)處理圖22是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置4中的數(shù)據(jù)移動(dòng)處理的流 程圖。即,盤訪問(wèn)程序4221按照管理塊單位來(lái)讀出,并計(jì)算數(shù)據(jù)的散列值,將 該計(jì)算出的散列值與該公共邏輯單元的公共邏輯單元數(shù)據(jù)管理表1200的固有 值進(jìn)行比較,并且,在散列值與固有值一致時(shí),從內(nèi)部邏輯單元讀出數(shù)據(jù),然 后按照字節(jié)單位將寫入數(shù)據(jù)與讀出數(shù)據(jù)進(jìn)行比較(STEP2201 )。根據(jù)比較結(jié)果,盤訪問(wèn)程序4221在判斷為數(shù)據(jù)相同時(shí)(STEP2202為Yes), 為了參照最新的公共邏輯單元,在外部邏輯單元塊映射表900中再設(shè)定參照邏 輯單元號(hào)碼以及參照塊排列號(hào)碼(STEP2203 )。然后,盤訪問(wèn)程序4221對(duì)新 舊的公共邏輯單元數(shù)據(jù)管理表1200的參照數(shù)進(jìn)行更新 (STEP2204 STEP2205 )。與此相對(duì),盤訪問(wèn)程序4221在判斷為數(shù)據(jù)不相同時(shí),即在新世代的公共 邏輯單元中沒(méi)有同一數(shù)據(jù)時(shí)(STEP2202為No ),將讀出的數(shù)據(jù)復(fù)制到最新的 公共邏輯單元中(STEP2206)。此時(shí),盤訪問(wèn)程序4221從最終塊號(hào)碼的位置 開(kāi)始依次存儲(chǔ)數(shù)據(jù),在復(fù)制完成后,對(duì)應(yīng)存儲(chǔ)了數(shù)據(jù)的塊數(shù),對(duì)內(nèi)部邏輯單元 塊管理表1100的最終塊號(hào)碼進(jìn)行更新。然后,盤訪問(wèn)程序4221為了參照最新的公共邏輯單元,再設(shè)定外部邏輯 單元塊映射表卯O的參照邏輯單元號(hào)碼以及參照塊排列號(hào)碼(STEP2207)。然 后,盤訪問(wèn)程序4221對(duì)新舊的各個(gè)公共邏輯單元數(shù)據(jù)管理表1200的參照數(shù)進(jìn) 行更新(STEP2208 STEP2209 )。然后,盤訪問(wèn)程序4221判斷是否對(duì)全部的數(shù)據(jù)塊進(jìn)行了映射檢查 (STEP2210),如果存在還沒(méi)有進(jìn)行映射的數(shù)據(jù)塊(STEP2210為No),則返 回到STEP2202的處理。 (3-8)主更新處理圖23是用于說(shuō)明本發(fā)明一實(shí)施方式的存儲(chǔ)裝置中的第二專用寫入處理的 流程圖。所謂主更新處理是指各個(gè)主機(jī)裝置3對(duì)共同使用的OS、應(yīng)用程序等文件 (公共文件)進(jìn)行更新的處理。各個(gè)主機(jī)裝置僅是通過(guò)進(jìn)行了這樣的公共文件 的更新處理,將數(shù)據(jù)轉(zhuǎn)移到專用邏輯單元中,不參照公共邏輯單元的數(shù)據(jù)。因此,在本實(shí)施方式中,即使更新公共文件也控制成參照這些公共文件。首先,系統(tǒng)管理者才喿作主管理裝置5進(jìn)行^^共文件的更新。然后,通過(guò)主生成程序521的執(zhí)行,進(jìn)行上述的啟動(dòng)鏡像生成處理。由此,在公共邏輯單元 管理表800中新追加有關(guān)屬于相同分組的不同世代的公共邏輯單元的登錄項(xiàng)。 然后,更新管理程序523經(jīng)由存儲(chǔ)裝置4的管理接口 426,將訪問(wèn)控制信效請(qǐng)求命令包含成為主^^裝置3的目標(biāo)的外部邏輯單元的外部邏輯單元號(hào)碼。 在接收到該命令之后,存儲(chǔ)裝置4的邏輯單元管理程序4222將外部邏輯單元 管理表700中的與該外部邏輯單元號(hào)碼相對(duì)應(yīng)的訪問(wèn)控制信息欄705的值更新 為"有效"。然后,更新管理程序523對(duì)主機(jī)裝置3的更新請(qǐng)求受理程序321發(fā)送更新 執(zhí)行請(qǐng)求命令(STEP2302 )。更新執(zhí)行請(qǐng)求命令包含更新對(duì)象的文件名、構(gòu)成 該文件的數(shù)據(jù)。由此,更新請(qǐng)求受理程序321進(jìn)行文件的更新(追加或置換等)。 當(dāng)在主機(jī)裝置3中進(jìn)行了更新處理時(shí),主機(jī)裝置3發(fā)送寫入請(qǐng)求命令。因?yàn)橐褜⒂嘘P(guān)該外部邏輯單元的訪問(wèn)控制信息變更為"有效,,,所以從主 機(jī)裝置3接收到寫入請(qǐng)求命令的存儲(chǔ)裝置4的盤訪問(wèn)程序4221對(duì)于全部的寫 入數(shù)據(jù),執(zhí)行比較寫入數(shù)據(jù)和已存儲(chǔ)的數(shù)據(jù)是否一致的第 一專用寫入處理。完成了更新處理的主機(jī)裝置3將更新結(jié)束命令發(fā)送給主管理裝置5,更新 管理程序523接收該命令(STEP2303 )。更新管理程序523經(jīng)由存儲(chǔ)裝置4的管理接口 426對(duì)邏輯單元管理程序 4222發(fā)送訪問(wèn)控制信息無(wú)效請(qǐng)求命令(STEP2304 )。訪問(wèn)控制信息無(wú)效請(qǐng)求命 令包含成為主機(jī)裝置3的目標(biāo)的外部邏輯單元的外部邏輯單元號(hào)碼。在接收到 該命令后,邏輯單元管理程序4222將外部邏輯單元管理表700中的與該外部 邏輯單元對(duì)應(yīng)的訪問(wèn)控制信息欄705的值變更為"無(wú)效"。因此,然后當(dāng)主機(jī)裝置3對(duì)于該外部邏輯單元的文件進(jìn)行寫入請(qǐng)求時(shí),盤 訪問(wèn)程序4221進(jìn)行第二專用寫入處理。如上所述,在第二專用寫入處理中, 僅對(duì)針對(duì)公共邏輯單元的寫入數(shù)據(jù)進(jìn)行比較處理。此外,遵照主機(jī)裝置3的寫入請(qǐng)求的寫入數(shù)據(jù)和公共邏輯單元中存儲(chǔ)的數(shù) 據(jù)的比較處理有時(shí)還伴隨盤訪問(wèn)。因此,最好只在主機(jī)裝置3中進(jìn)行更新處理的期間執(zhí)行比較處理頻度高的第一專用寫入處理。第二專用寫入處理在參照公 共邏輯單元的塊中寫入數(shù)據(jù)時(shí)進(jìn)行比較。此外,為了減輕比較處理的負(fù)荷,存儲(chǔ)裝置4的盤訪問(wèn)程序4221例如預(yù) 先從主機(jī)裝置3取得與分配給主機(jī)裝置3的交換區(qū)域有關(guān)的信息。由此,盤訪 問(wèn)程序4221對(duì)于針對(duì)交換區(qū)域的寫入數(shù)據(jù)可以不進(jìn)行比較處理地將寫入數(shù)據(jù) 移動(dòng)到專用邏輯單元中,所以可以削減比較處理的次數(shù)。 (3-9)公共邏輯單元?jiǎng)h除處理公共邏輯單元?jiǎng)h除處理是將存儲(chǔ)裝置4內(nèi)不被參照的較早世代的公共邏 輯單元?jiǎng)h除的處理。當(dāng)系統(tǒng)管理者操作主管理裝置5給予了公共邏輯單元?jiǎng)h除指示時(shí),更新管 理程序523經(jīng)由存儲(chǔ)裝置4的管理接口 426對(duì)邏輯單元管理程序4222發(fā)送/> 共邏輯單元?jiǎng)h除請(qǐng)求命令。公共邏輯單元?jiǎng)h除請(qǐng)求命令,作為參數(shù),包含應(yīng)該 刪除的公共邏輯單元所屬的分組。在本例中,設(shè)為針對(duì)"分組A"的公共邏 輯單元?jiǎng)h除請(qǐng)求命令。接收到公共邏輯單元?jiǎng)h除請(qǐng)求命令的邏輯單元管理程序4222參照外部邏 輯單元管理表700,取得屬于"分組A"的公共邏輯單元(即,主)的內(nèi)部 邏輯單元號(hào)碼,確定該公共邏輯單元的公共邏輯單元數(shù)據(jù)管理表1200。然后, 邏輯單元管理程序4222參照該確定的公共邏輯單元數(shù)據(jù)管理表1200的參照數(shù) 欄1203,判斷參照數(shù)是否全部為0。邏輯單元管理程序4222在判斷為參照數(shù) 全部為O時(shí),刪除關(guān)于該公共邏輯單元的內(nèi)部邏輯單元,并且刪除內(nèi)部邏輯單 元塊管理表1100、公共邏輯單元數(shù)據(jù)管理表800以及外部邏輯單元塊映射表 900。此外,邏輯單元管理程序4222刪除外部邏輯單元管理表700以及公共邏 輯單元管理表410-2中的有關(guān)該公共邏輯單元的登錄項(xiàng)。通過(guò)第一以及第二專用寫入處理以及讀出處理中的數(shù)據(jù)移動(dòng)處理,從世代 早的公共邏輯單元向世代新的邏輯單元更新參照塊排列號(hào)碼。因此,通過(guò)定期 地執(zhí)行公共邏輯單元?jiǎng)h除處理,刪除已不被參照的世代早的公共邏輯單元。 (4)本實(shí)施方式的優(yōu)點(diǎn)以及其他的實(shí)施方式如上所述,根據(jù)本實(shí)施方式,將各個(gè)主機(jī)裝置3的公共文件存儲(chǔ)在公共邏 輯單元中來(lái)將其共有,所以可以排除主機(jī)裝置使用的數(shù)據(jù)的重復(fù),并且主機(jī)裝置3可以將更新后的固有數(shù)據(jù)存儲(chǔ)在專用邏輯單元中來(lái)進(jìn)行保存。例如,在主機(jī)裝置為客戶計(jì)算機(jī)時(shí),通常,與OS以及應(yīng)用程序有關(guān)的文 件/數(shù)據(jù)的存儲(chǔ)區(qū)域需要數(shù)GB左右。目前,當(dāng)重復(fù)進(jìn)行OS以及應(yīng)用程序的更 新時(shí),典型的是保存舊版本的文件的備份,所以這樣的存儲(chǔ)區(qū)域會(huì)不斷增大, 但在本實(shí)施方式中,可排除這樣的存儲(chǔ)區(qū)域的重復(fù),可以高效地使用盤空間。上述實(shí)施方式是用于說(shuō)明本發(fā)明的示例,本發(fā)明并非僅限于上述實(shí)施方 式。本發(fā)明在不超出其主旨的情況下可以采用各種方式來(lái)實(shí)施。例如,在上述 實(shí)施方式中,雖然順序地說(shuō)明了各種程序的處理,但并非限于此。因此,只要 在處理結(jié)果中不產(chǎn)生矛盾,可以調(diào)換處理的順序或者并行地進(jìn)行動(dòng)作。此外,本發(fā)明還可以用于安裝了虛擬化機(jī)構(gòu)的服務(wù)器計(jì)算機(jī)的虛擬計(jì)算機(jī) 系統(tǒng)。在使用虛擬化機(jī)構(gòu)時(shí),在服務(wù)器計(jì)算機(jī)的本地盤(輔助存儲(chǔ)裝置)中生成 虛擬盤,通過(guò)在該生成的虛擬盤中安裝作為主的啟動(dòng)鏡像,在服務(wù)器計(jì)算機(jī)上 啟動(dòng)虛擬的主管理裝置5。然后,系統(tǒng)管理者梯:作虛擬的主管理裝置5進(jìn)行上 述那樣的主生成處理。此外,鏡像生成程序522安裝虛擬服務(wù)器用OS。鏡像生成程序522將外 部邏輯單元生成請(qǐng)求命令發(fā)送給虛擬服務(wù)器,在存儲(chǔ)裝置4中生成存儲(chǔ)虛擬主 機(jī)裝置的啟動(dòng)鏡像的外部邏輯單元。鏡像生成程序522使用存儲(chǔ)器連接功能將 連接請(qǐng)求命令發(fā)送給存儲(chǔ)裝置4的主機(jī)接口 423,安裝作為目標(biāo)的外部邏輯單 元。然后,鏡像生成程序522對(duì)外部邏輯單元進(jìn)行格式化,生成存儲(chǔ)虛擬服務(wù) 器用OS的啟動(dòng)鏡像的文件。鏡像生成程序522將啟動(dòng)鏡像復(fù)制到該文件中。虛擬服務(wù)器在一個(gè)外部邏輯單元中生成多個(gè)虛擬盤,在虛擬盤中安裝啟動(dòng) 鏡像。虛擬盤的啟動(dòng)鏡像對(duì)于各個(gè)主機(jī)裝置3是通用的,所以不將數(shù)據(jù)存儲(chǔ)在 專用邏輯單元中,而是存儲(chǔ)在公共邏輯單元中。在為虛擬的計(jì)算機(jī)系統(tǒng)時(shí),虛擬服務(wù)器安裝外部邏輯單元,虛擬主機(jī)裝置 只進(jìn)行向虛擬盤的讀出/寫入處理。虛擬主機(jī)裝置的寫入請(qǐng)求經(jīng)由虛擬服務(wù)器 被通知給存儲(chǔ)裝置4的盤訪問(wèn)程序4221,可以進(jìn)行專用寫入處理。讀出處理 也相同。此外,本發(fā)明還可以構(gòu)成在本實(shí)施方式的系統(tǒng)中混合存在現(xiàn)有的不考慮重 復(fù)排除的系統(tǒng)的計(jì)算機(jī)系統(tǒng)。即,不進(jìn)行重復(fù)排除的主機(jī)裝置,被構(gòu)成為不使用公共邏輯單元、僅使用 專用邏輯單元。這是例如將使用^^共邏輯單元的分組設(shè)為"無(wú)",來(lái)生成主機(jī)裝置的啟動(dòng)鏡像。因此,在外部邏輯單元管理表700的分組欄703中設(shè)定"無(wú)"。 存儲(chǔ)裝置4在"分組無(wú)"時(shí),控制成不進(jìn)行針對(duì)公共邏輯單元的參照處理。 產(chǎn)業(yè)上的應(yīng)用本發(fā)明可以廣泛地用于經(jīng)由網(wǎng)絡(luò)與主機(jī)裝置連接的存儲(chǔ)裝置。
權(quán)利要求
1. 一種計(jì)算機(jī)系統(tǒng),其具有能夠與網(wǎng)絡(luò)連接而構(gòu)成的多個(gè)主機(jī)裝置;能夠與所述網(wǎng)絡(luò)連接而構(gòu)成的存儲(chǔ)裝置;以及能夠與所述網(wǎng)絡(luò)連接而構(gòu)成的主管理裝置,其特征在于,所述存儲(chǔ)裝置具備外部邏輯單元,所述多個(gè)主機(jī)裝置各自將該外部邏輯單元作為目標(biāo);以及內(nèi)部邏輯單元,其被分配給所述外部邏輯單元,所述內(nèi)部邏輯單元由公共邏輯單元和專用邏輯單元構(gòu)成,所述公共邏輯單元用于存儲(chǔ)構(gòu)成所述多個(gè)主機(jī)裝置共同使用的公共文件的數(shù)據(jù),所述專用邏輯單元用于存儲(chǔ)構(gòu)成所述多個(gè)主機(jī)裝置各自使用的專用文件的數(shù)據(jù),所述存儲(chǔ)裝置,根據(jù)來(lái)自所述多個(gè)主機(jī)裝置中的至少一個(gè)主機(jī)裝置的寫入請(qǐng)求,以預(yù)定的管理塊單位比較遵照該寫入請(qǐng)求的寫入數(shù)據(jù)與所述公共邏輯單元中存儲(chǔ)的數(shù)據(jù)是否一致,根據(jù)該比較的結(jié)果,將一致的數(shù)據(jù)塊存儲(chǔ)在所述公共邏輯單元中,將不一致的數(shù)據(jù)塊存儲(chǔ)在所述專用邏輯塊中。
2. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述主管理裝置這樣地進(jìn)行控制將所述多個(gè)主機(jī)裝置使用的啟動(dòng)鏡像中的公共文件寫入到所述公共邏輯單元中,而將所述啟動(dòng)鏡像中的專用文件寫入 到所述專用邏輯單元中。
3. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置保存表示對(duì)所述外部邏輯單元的訪問(wèn)是有效還是無(wú)效的訪問(wèn)控制信息,接收對(duì)所述外部邏輯單元的寫入請(qǐng)求,判斷關(guān)于該外部邏輯單元的訪問(wèn)控 制信息是有效還是無(wú)效,在判斷為關(guān)于該外部邏輯單元的訪問(wèn)控制為有效時(shí), 進(jìn)行所述比較。
4. 根據(jù)權(quán)利要求3所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置在判斷為關(guān)于所述外部邏輯單元的訪問(wèn)控制信息為無(wú)效時(shí),斷為所述內(nèi)部邏輯單元是公共邏輯單元時(shí),進(jìn)行所述比較。
5. 根據(jù)權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置在判斷為所述內(nèi)部邏輯單元不是公共邏輯單元時(shí),將遵照所述寫入請(qǐng)求的寫入數(shù)據(jù)存儲(chǔ)到所述專用邏輯單元中。
6. 根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述主管理裝置在更新所述公共文件時(shí),進(jìn)行控制以便在所述存儲(chǔ)裝置中生成新的公共邏輯單元。
7. 根據(jù)權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置管理關(guān)于與所述更新相對(duì)應(yīng)地新生成的公共邏輯單元的世代。
8. 根據(jù)權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置根據(jù)來(lái)自所述多個(gè)主機(jī)裝置中的至少某一個(gè)主機(jī)裝置的讀出請(qǐng)求,在該讀出請(qǐng)求應(yīng)參照的公共邏輯單元中存在多個(gè)世代,并且參照了老 的世代的^^共邏輯單元時(shí),以預(yù)定的管理塊單位比較遵照該讀出請(qǐng)求的讀出數(shù) 據(jù)與所述公共邏輯單元的數(shù)據(jù)是否 一致。
9. 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述存儲(chǔ)裝置,在判斷為所述讀出數(shù)據(jù)和所述公共邏輯單元的數(shù)據(jù)的比較 結(jié)果為一致時(shí),控制成作為最新世代的公共邏輯單元,在判斷為不一致時(shí),將 老的世代的公共邏輯單元的數(shù)據(jù)移動(dòng)到新的世代的公共邏輯單元中。
10. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于, 所述存儲(chǔ)裝置,保存所述公共邏輯單元的參照數(shù),在根據(jù)所述參照數(shù)被判斷為已不參照所述公共邏輯單元時(shí),刪除該公共邏 輯單元。
11. 一種控制方法,其是經(jīng)由網(wǎng)絡(luò)與多個(gè)主機(jī)裝置連接的存儲(chǔ)裝置的控制 方法,其特征在于,具備以下的步驟所述存儲(chǔ)裝置將內(nèi)部邏輯單元生成為公共邏輯單元,該內(nèi)部邏輯單元存儲(chǔ) 構(gòu)成由多個(gè)主機(jī)裝置共同使用的公共文件的數(shù)據(jù);所述存儲(chǔ)裝置將內(nèi)部邏輯單元生成為專用邏輯單元,該內(nèi)部邏輯單元存儲(chǔ)構(gòu)成所述多個(gè)主機(jī)裝置各自使用的專用文件的數(shù)據(jù);所述存儲(chǔ)裝置拔w^'A 個(gè)主機(jī)裝置各自作為目標(biāo)的外部邏輯單元;所述存儲(chǔ)裝置接收來(lái)自所述多個(gè)主機(jī)裝置中的至少某一個(gè)主機(jī)裝置的寫 入請(qǐng)求;所述存儲(chǔ)裝置以預(yù)定的管理塊單位比較遵照所述寫入請(qǐng)求的寫入數(shù)據(jù)與 所述公共邏輯單元中存儲(chǔ)的數(shù)據(jù)是否 一致;所述存儲(chǔ)裝置,通過(guò)進(jìn)行所述比較的步驟,將一致的數(shù)據(jù)塊存儲(chǔ)在所述公 共邏輯單元中,將不一致的數(shù)據(jù)塊存儲(chǔ)在所述專用邏輯塊中。
12. 根據(jù)權(quán)利要求11所述的控制方法,其特征在于, 所述控制方法還包含以下步驟所述存儲(chǔ)裝置將所述多個(gè)主機(jī)裝置使用的啟動(dòng)鏡像中的公共文件寫入到所述公共邏輯單元中,而將所述啟動(dòng)鏡像中的專 用文件寫入到所述專用邏輯單元中。
13. 根據(jù)權(quán)利要求11所述的控制方法,其特征在于, 在所述控制方法中,與所述網(wǎng)絡(luò)連接的主管理裝置將公共邏輯單元生成請(qǐng)求命令發(fā)送給所述 存儲(chǔ)裝置,所述存儲(chǔ)裝置根據(jù)所述公共邏輯單元生成請(qǐng)求,生成公共邏輯單元,并將 該生成的公共邏輯單元分配給外部邏輯單元。
全文摘要
本發(fā)明提供可以高效使用計(jì)算機(jī)使用的存儲(chǔ)裝置內(nèi)的邏輯單元,并且可以抑制存儲(chǔ)容量的成本增大的存儲(chǔ)裝置及其控制方法。本發(fā)明是具有外部邏輯單元和內(nèi)部邏輯單元的存儲(chǔ)裝置,多個(gè)主機(jī)裝置將該外部邏輯單元作為目標(biāo),而該內(nèi)部邏輯單位被分配給外部邏輯單元。在此,內(nèi)部邏輯單元由公共邏輯單元和專用邏輯單元構(gòu)成,公共邏輯單元由多個(gè)主機(jī)裝置共同使用的公共文件構(gòu)成,專用邏輯單元由多個(gè)主機(jī)裝置各自使用的專用文件構(gòu)成。存儲(chǔ)裝置根據(jù)來(lái)自多個(gè)主機(jī)裝置的寫入請(qǐng)求,以預(yù)定的管理塊單位比較遵照該寫入請(qǐng)求的寫入數(shù)據(jù)和公共邏輯單元中存儲(chǔ)的數(shù)據(jù)是否一致,根據(jù)該比較結(jié)果,將一致的數(shù)據(jù)塊存儲(chǔ)在公共邏輯單元中,將不一致的數(shù)據(jù)塊存儲(chǔ)在專用邏輯塊中。
文檔編號(hào)G06F3/06GK101546252SQ20091000543
公開(kāi)日2009年9月30日 申請(qǐng)日期2009年1月20日 優(yōu)先權(quán)日2008年3月25日
發(fā)明者小林郁子, 山本彰, 木村信二 申請(qǐng)人:株式會(huì)社日立制作所