本發(fā)明涉及分布式存儲系統(tǒng)。
背景技術(shù):
::在it系統(tǒng)中應(yīng)處理的數(shù)據(jù)量急劇增大,謀求能夠應(yīng)對該情況的存儲裝置。作為這樣的存儲裝置,存在分散為多個存儲裝置地進行數(shù)據(jù)的處理、保存的分布式存儲系統(tǒng)的技術(shù)。在為了進行大規(guī)模大數(shù)據(jù)分析等而謀求高性能的分析的系統(tǒng)中,可以認為能夠提供可擴展的容量和性能的分布式存儲系統(tǒng)是有效的解決方案。另一方面,為了應(yīng)對激增的數(shù)據(jù)量,作為節(jié)省存儲裝置的存儲區(qū)域的技術(shù),存在重復(fù)數(shù)據(jù)刪除的技術(shù)。作為與分布式存儲系統(tǒng)和重復(fù)數(shù)據(jù)刪除相關(guān)的技術(shù),存在專利文獻1。在專利文獻1中,構(gòu)成分布式網(wǎng)絡(luò)的各分布式服務(wù)器在從客戶端接收到對保存在其他分布式服務(wù)器中的數(shù)據(jù)的讀出請求時,從該其他服務(wù)器獲取數(shù)據(jù),并向客戶端響應(yīng)。另外,重復(fù)數(shù)據(jù)刪除管理裝置對保存在各分布式服務(wù)器中的數(shù)據(jù)管理哈希值那樣的對數(shù)據(jù)進行識別的唯一id的數(shù)據(jù)庫。重復(fù)數(shù)據(jù)刪除管理裝置檢索數(shù)據(jù)庫,在與相同的唯一id對應(yīng)關(guān)聯(lián)的數(shù)據(jù)存在閾值以上的數(shù)量的情況下,選擇將數(shù)據(jù)刪除的分布式服務(wù)器,將保存在所選擇的分布式服務(wù)器中的重復(fù)數(shù)據(jù)刪除,由此來進行重復(fù)數(shù)據(jù)刪除?,F(xiàn)有技術(shù)文獻專利文獻專利文獻1:美國專利公報8,572,137號技術(shù)實現(xiàn)要素:在分布式服務(wù)器間進行重復(fù)數(shù)據(jù)刪除的情況下,當通過重復(fù)數(shù)據(jù)刪除而被刪除了數(shù)據(jù)的分布式服務(wù)器接收到對已刪除的數(shù)據(jù)的讀出請求時,必須從其他分布式服務(wù)器獲取數(shù)據(jù),存在分布式服務(wù)器的性能降低的問題,但在專利文獻1中,僅將數(shù)據(jù)的重復(fù)數(shù)用于可否進行重復(fù)數(shù)據(jù)刪除的判斷,而沒有考慮因分布式服務(wù)器間的數(shù)據(jù)通信的發(fā)生而導(dǎo)致的性能下降。分布式存儲系統(tǒng)具有彼此連接多個節(jié)點,該多個節(jié)點分別對數(shù)據(jù)向由存儲介質(zhì)構(gòu)成的邏輯存儲區(qū)域的保存進行控制。多個節(jié)點對上位裝置提供跨過多個節(jié)點分別控制的邏輯存儲區(qū)域的虛擬存儲區(qū)域,并對將虛擬存儲區(qū)域分割得到的多個虛擬部分區(qū)域和將邏輯存儲區(qū)域分割得到的多個部分邏輯存儲區(qū)域的分配進行管理,多個節(jié)點使寫入到虛擬存儲區(qū)域的數(shù)據(jù)分散地保存到邏輯存儲區(qū)域中。多個節(jié)點中的第一節(jié)點判定在多個節(jié)點中的其他節(jié)點所管理的虛擬部分區(qū)域中是否存在與向多個虛擬部分區(qū)域中的由第一節(jié)點所管理的第一虛擬部分區(qū)域?qū)懭氲牡谝粩?shù)據(jù)相同的數(shù)據(jù),在其他節(jié)點存在與第一數(shù)據(jù)相同的數(shù)據(jù)的情況下,執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,在該跨節(jié)點重復(fù)數(shù)據(jù)刪除中,使第一虛擬部分區(qū)域和被寫入了該相同的數(shù)據(jù)的其他節(jié)點的虛擬部分區(qū)域中的某一方的邏輯部分區(qū)域的分配變更為向另一方的邏輯部分區(qū)域分配。在第一虛擬部分區(qū)域的跨節(jié)點重復(fù)數(shù)據(jù)刪除執(zhí)行后的第一節(jié)點的io負荷的預(yù)測值小于第一閾值的情況下,第一節(jié)點執(zhí)行將虛擬存儲區(qū)域分割得到的多個虛擬部分區(qū)域中、由第一節(jié)點所管理的第二虛擬部分區(qū)域的跨節(jié)點重復(fù)數(shù)據(jù)刪除。發(fā)明效果根據(jù)本發(fā)明的一方式,能夠在通過網(wǎng)絡(luò)連接多個節(jié)點的分布式存儲系統(tǒng)中實現(xiàn)了重復(fù)數(shù)據(jù)刪除的情況下,實現(xiàn)較大的數(shù)據(jù)量削減效果和高性能雙方。附圖說明圖1表示與跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定方法有關(guān)的概要。圖2表示分布式存儲系統(tǒng)的系統(tǒng)構(gòu)成例。圖3表示用于分布式存儲系統(tǒng)的控制的信息。圖4a表示虛擬卷管理表的構(gòu)成例。圖4b表示池卷管理表的構(gòu)成例。圖4c表示驅(qū)動管理表的構(gòu)成例。圖5a表示頁映射表的構(gòu)成例。圖5b表示頁負荷頻率表的構(gòu)成例。圖6a表示虛擬組塊(chunk)負荷頻率表的構(gòu)成例。圖6b表示邏輯組塊負荷頻率表的構(gòu)成例。圖7a表示指紋表(fingerprinttable,fpt)的構(gòu)成例。圖7b表示fpt更新日志的構(gòu)成例。圖7c表示重復(fù)數(shù)據(jù)刪除效果管理表的構(gòu)成例。圖8表示重復(fù)數(shù)據(jù)刪除日志結(jié)構(gòu)化映射表的構(gòu)成例。圖9表示池卷區(qū)域控制表的構(gòu)成例。圖10表示分布式存儲系統(tǒng)的讀處理的流程圖。圖11表示同步寫處理的流程圖。圖12表示后端寫處理的流程圖。圖13a表示重復(fù)數(shù)據(jù)刪除處理的流程圖。圖13b表示節(jié)點重復(fù)數(shù)據(jù)刪除處理的流程圖。圖13c表示跨節(jié)點重復(fù)數(shù)據(jù)刪除處理的流程圖。圖13d表示跨節(jié)點重復(fù)數(shù)據(jù)刪除處理的后續(xù)。圖13e表示跨節(jié)點重復(fù)數(shù)據(jù)刪除解除處理的流程圖。具體實施方式對于本發(fā)明的實施方式,參照附圖進行說明。另外,以下說明的實施方式不限定權(quán)利要求書的發(fā)明,另外,實施方式中說明的特征的所有組合不限于是發(fā)明的解決手段所必須的。在以下的說明中,有時通過“表”、“列表”、“隊列”等表現(xiàn)來說明各種信息,但各種信息也可以由這些以外的數(shù)據(jù)構(gòu)造表現(xiàn)。為了表示不依賴于數(shù)據(jù)構(gòu)造,有時將“xx表”、“xx列表”等稱為“xx信息”。在說明各信息的內(nèi)容時,雖然使用“識別信息”、“標識符”、“名”、“id”、“編號”等表現(xiàn),但這些表現(xiàn)能夠彼此互換。本實施方式公開了能夠?qū)崿F(xiàn)重復(fù)數(shù)據(jù)刪除的分布式存儲系統(tǒng)。分布式存儲系統(tǒng)通過網(wǎng)絡(luò)連接分別包含存儲器件的多個計算機節(jié)點而構(gòu)成。分布式存儲系統(tǒng)實現(xiàn)虛擬存儲系統(tǒng),該虛擬存儲系統(tǒng)通過多個計算機節(jié)點的存儲器件而實現(xiàn)存儲池(也僅稱為池)。在本實施方式中,分布式存儲系統(tǒng)向主機提供虛擬卷。分布式存儲系統(tǒng)對于有寫訪問的虛擬存儲區(qū)域(虛擬卷提供的存儲區(qū)域)而從池(存儲池)分配邏輯存儲區(qū)域。一個池由一個或多個邏輯卷構(gòu)成。也將該邏輯卷稱為池卷。池卷的實體是磁盤驅(qū)動的存儲區(qū)域。也能夠向池卷分配其他計算機節(jié)點的磁盤驅(qū)動的存儲區(qū)域。在本實施方式中,分布式存儲系統(tǒng)能夠?qū)τ嬎銠C節(jié)點中保存的數(shù)據(jù)進行重復(fù)數(shù)據(jù)刪除。通過重復(fù)數(shù)據(jù)刪除,當存在某個數(shù)據(jù)和包含與該數(shù)據(jù)相同內(nèi)容的數(shù)據(jù)(重復(fù)數(shù)據(jù))時,將一個數(shù)據(jù)置換為指示另一個數(shù)據(jù)的指針信息,并將該一個數(shù)據(jù)刪除,由此能夠節(jié)省用于保存這些數(shù)據(jù)所需的存儲區(qū)域。重復(fù)數(shù)據(jù)刪除既能夠在一個計算機節(jié)點內(nèi)執(zhí)行,也能夠跨多個計算機節(jié)點地執(zhí)行。將前者稱為節(jié)點重復(fù)數(shù)據(jù)刪除,將后者稱為跨節(jié)點重復(fù)數(shù)據(jù)刪除。在要讀出已被重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)的情況下,需要根據(jù)指針信息來讀出該數(shù)據(jù)的實體(稱為特定數(shù)據(jù))。在特定數(shù)據(jù)保存在收到讀出請求的計算機節(jié)點的情況下,從該計算機節(jié)點讀出特定數(shù)據(jù)。另一方面,在特定數(shù)據(jù)保存在與收到讀出請求的計算機節(jié)點(稱為第一計算機節(jié)點)不同的計算機節(jié)點(稱為第二計算機節(jié)點)的情況下,第一計算機節(jié)點向第二計算機節(jié)點轉(zhuǎn)送讀出請求,需要從第二計算機節(jié)點經(jīng)由網(wǎng)絡(luò)向第一計算機節(jié)點轉(zhuǎn)送特定數(shù)據(jù)。像這樣,將為了讀出已被重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)而需要從第二計算機節(jié)點向第一計算機節(jié)點進行數(shù)據(jù)通信那樣的讀處理稱為重復(fù)數(shù)據(jù)跨節(jié)點讀取。在本實施方式中,重復(fù)數(shù)據(jù)刪除的單位是組塊。虛擬組塊是用固定長度分割虛擬卷而得到的部分存儲區(qū)域。邏輯組塊是用固定長度分割池卷而得到的部分存儲區(qū)域。虛擬組塊與邏輯組塊的大小相等,另外,虛擬組塊與邏輯組塊的大小與頁的大小相等,或者比頁的大小小。在計算機節(jié)點中管理虛擬組塊與邏輯組塊之間的映射(通過后述的重復(fù)數(shù)據(jù)刪除映射表234管理的映射)。通過對映射自身的更新等來實現(xiàn)節(jié)點重復(fù)數(shù)據(jù)刪除和跨節(jié)點重復(fù)數(shù)據(jù)刪除。在本實施方式中,虛擬頁是用固定長度分割虛擬卷而得到的部分存儲區(qū)域,對虛擬頁對應(yīng)關(guān)聯(lián)有某一個計算機節(jié)點101(但是,在初始狀態(tài)下沒有對虛擬頁對應(yīng)關(guān)聯(lián)任何計算機節(jié)點101)。此外,也可以根據(jù)按各計算機節(jié)點101對虛擬頁的io頻率(也稱為i/o頻率或訪問頻率),將與虛擬頁對應(yīng)關(guān)聯(lián)的計算機節(jié)點101變更為向該虛擬頁的io頻率最大的計算機節(jié)點101。該情況下,虛擬頁內(nèi)的數(shù)據(jù)(用戶數(shù)據(jù))被移動到變更目的地的計算機節(jié)點101。另外,有時需要配合該移動來更新前述的虛擬組塊與邏輯組塊之間的映射。在本實施方式中,存儲器件包含1臺hdd或ssd等1臺存儲驅(qū)動及包含多臺存儲驅(qū)動的raid裝置、以及多臺raid裝置。條帶或條帶數(shù)據(jù)是成為生成用于數(shù)據(jù)保護的冗余碼的源的單位。為了與冗余碼相區(qū)別,有時將條帶稱為用戶數(shù)據(jù)。條帶被保存在計算機節(jié)點內(nèi)的存儲器件中,并且用于其他計算機節(jié)點中的冗余碼的生成。條帶由一個或多個邏輯組塊構(gòu)成,通過條帶單位而使數(shù)據(jù)冗余化。在此,對本實施方式中的頁、組塊以及條帶之間的關(guān)系進行說明。在一例中,頁的大小為組塊的大小的整數(shù)倍(1倍以上),另外,條帶的大小是頁的大小的整數(shù)倍(1倍以上)。在另一例中,條帶的大小為組塊的大小的整數(shù)倍(1倍以上),另外,頁的大小為條帶的大小的整數(shù)倍(1倍以上)。圖1表示關(guān)于本實施方式的一例的跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定方法的概要。在本實施方式的一例中,存在第一判定方法和第二判定方法。計算機節(jié)點101p、101q通過網(wǎng)絡(luò)而結(jié)合。另外,計算機節(jié)點101r、101s也通過網(wǎng)絡(luò)而結(jié)合。以下,也將計算機節(jié)點僅稱為節(jié)點。圖1的“跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定方法(1)”是對于第一判定方法進行說明的概念圖。第一判定方法中,基于對虛擬卷所提供的虛擬存儲區(qū)域的“由重復(fù)數(shù)據(jù)跨節(jié)點讀取產(chǎn)生的網(wǎng)絡(luò)負荷”、“平均響應(yīng)時間”以及“平均處理能力”這樣的與節(jié)點的性能有關(guān)的io負荷的信息,判定是否對保存在虛擬存儲區(qū)域中的數(shù)據(jù)進行重復(fù)數(shù)據(jù)刪除。虛擬卷被分割為作為固定長度的存儲區(qū)域的虛擬組塊那樣的數(shù)據(jù)單位來管理。數(shù)據(jù)單位既存在包含重復(fù)數(shù)據(jù)的情況,也存在并非如此的情況。各計算機節(jié)點中,針對每個數(shù)據(jù)單位記錄io頻率。圖1的圖表(a)表示對所有計算機節(jié)點的數(shù)據(jù)單位的io頻率進行合計得到的結(jié)果的概念圖。數(shù)據(jù)單位與io頻率有關(guān)地按升序被重新排序。在第一判定方法中,比數(shù)據(jù)單位閾值p靠左側(cè)的數(shù)據(jù)單位被選擇為跨節(jié)點重復(fù)數(shù)據(jù)刪除的候選。數(shù)據(jù)單位與io頻率有關(guān)地按升序的順序被選擇。在跨節(jié)點重復(fù)數(shù)據(jù)刪除中,包含在所選擇的數(shù)據(jù)單位中的重復(fù)數(shù)據(jù)被重復(fù)數(shù)據(jù)刪除。在第一判定方法中,關(guān)于比數(shù)據(jù)單位閾值p靠右側(cè)的數(shù)據(jù)單位所包含的重復(fù)數(shù)據(jù)中、被適用了跨節(jié)點重復(fù)數(shù)據(jù)刪除的重復(fù)數(shù)據(jù)執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除解除。在跨節(jié)點重復(fù)數(shù)據(jù)刪除解除中,跨節(jié)點重復(fù)數(shù)據(jù)刪除被解除,也就是說,返回到對重復(fù)數(shù)據(jù)執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除之前的狀態(tài)。由此,不會再發(fā)生io頻率高的數(shù)據(jù)單位的重復(fù)數(shù)據(jù)跨節(jié)點讀取,消除了io負荷的瓶頸。數(shù)據(jù)單位閾值p根據(jù)基于每數(shù)據(jù)單位的io頻率和響應(yīng)時間的信息而推定出的、“由重復(fù)數(shù)據(jù)跨節(jié)點讀取產(chǎn)生的網(wǎng)絡(luò)負荷”、“平均響應(yīng)時間”以及“平均處理能力”那樣的表示節(jié)點的io負荷的指標和一些閾值來決定。數(shù)據(jù)單位閾值p能夠設(shè)定為以下所述的數(shù)據(jù)單位閾值p1、p2及p3的最小值。圖1的圖表(b)是因重復(fù)數(shù)據(jù)刪除跨節(jié)點讀取產(chǎn)生的網(wǎng)絡(luò)負荷的預(yù)測值(y1)的概念圖。圖表(b)的橫軸與圖表(a)相同。圖表(b)的縱軸表示在將橫軸的某個值設(shè)為x時對比x靠左側(cè)的數(shù)據(jù)單位執(zhí)行了跨節(jié)點重復(fù)數(shù)據(jù)刪除的情況下產(chǎn)生的伴隨重復(fù)數(shù)據(jù)跨節(jié)點讀取的網(wǎng)絡(luò)負荷的預(yù)測值。橫軸的值越大,則成為跨節(jié)點重復(fù)數(shù)據(jù)刪除的對象的重復(fù)數(shù)據(jù)越多,因此其結(jié)果是網(wǎng)絡(luò)負荷的預(yù)測值變大。根據(jù)預(yù)先設(shè)定的閾值t1(圖1的閾值t1)來確定數(shù)據(jù)單位閾值p1(圖1的p1)。在本實施例中,通過對預(yù)測值y1和閾值t1進行比較,根據(jù)情況而不執(zhí)行與比數(shù)據(jù)單位閾值p1靠右側(cè)的數(shù)據(jù)單位有關(guān)的跨節(jié)點重復(fù)數(shù)據(jù)刪除,由此能夠抑制因執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除而產(chǎn)生的網(wǎng)絡(luò)負荷的增加。圖1的圖表(c)是分布式存儲系統(tǒng)的平均響應(yīng)時間(平均io響應(yīng)時間)的預(yù)測值(y2)的概念圖。圖表(c)的橫軸與圖表(a)相同。圖表(c)的縱軸表示在將橫軸的某個值設(shè)為x時對比x靠左側(cè)的數(shù)據(jù)單位執(zhí)行了跨節(jié)點重復(fù)數(shù)據(jù)刪除的情況下的、分布式存儲系統(tǒng)的平均響應(yīng)時間的預(yù)測值。橫軸的值越大,成為跨節(jié)點重復(fù)數(shù)據(jù)刪除的對象的重復(fù)數(shù)據(jù)越多,因此其結(jié)果是平均io響應(yīng)時間的預(yù)測值變大。根據(jù)預(yù)先設(shè)定的閾值t2(圖1的閾值t2)來確定數(shù)據(jù)單位閾值p2(圖1的p2)。在本實施例中,對平均響應(yīng)時間的預(yù)測值y2和閾值t2進行比較,根據(jù)情況不進行與比數(shù)據(jù)單位閾值p2靠右側(cè)的數(shù)據(jù)單位有關(guān)的跨節(jié)點重復(fù)數(shù)據(jù)刪除,由此能夠抑制因執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除而產(chǎn)生的平均響應(yīng)時間的變大化。圖1的圖表(d)是分布式存儲系統(tǒng)的平均處理能力的預(yù)測值(y3)的概念圖。圖表(d)的橫軸與圖表(a)相同。圖表(d)的縱軸表示在將橫軸的某個值設(shè)為x時對比x靠左側(cè)的數(shù)據(jù)單位執(zhí)行了跨節(jié)點重復(fù)數(shù)據(jù)刪除的情況下的、分布式存儲系統(tǒng)的平均處理能力的預(yù)測值。橫軸的值越大,成為跨節(jié)點重復(fù)數(shù)據(jù)刪除的對象的重復(fù)數(shù)據(jù)越多,因此其結(jié)果是平均處理能力的預(yù)測值變小。根據(jù)預(yù)先設(shè)定的閾值t3(圖1的閾值t3)來確定數(shù)據(jù)單位閾值p3(圖1的p3)。對平均處理能力的預(yù)測值y3和閾值t3進行比較,根據(jù)情況不進行與比數(shù)據(jù)單位閾值p3靠右側(cè)的數(shù)據(jù)單位有關(guān)的跨節(jié)點重復(fù)數(shù)據(jù)刪除,由此能夠抑制因執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除而產(chǎn)生的平均處理能力的下降。如以上說明那樣,在第一判定方法中,能夠根據(jù)基于每數(shù)據(jù)單位的io頻率和響應(yīng)時間而預(yù)測的io負荷(“由重復(fù)數(shù)據(jù)跨節(jié)點讀取產(chǎn)生的網(wǎng)絡(luò)負荷”、“平均響應(yīng)時間”以及“平均處理能力”)和一些閾值,來進行跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定。通過按照該判定方法,能夠以如下方式控制分布式存儲系統(tǒng):對包含在對io負荷的影響小的數(shù)據(jù)單位中的重復(fù)數(shù)據(jù)執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,另外,對包含在對io負荷的影響大的數(shù)據(jù)單位中的重復(fù)數(shù)據(jù)不執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,另外,對包含在對io負荷的影響大的數(shù)據(jù)單位中的重復(fù)數(shù)據(jù)執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除解除。此外,通過使用該判定方法,僅對io負荷的影響小的數(shù)據(jù)單位成為重復(fù)數(shù)據(jù)刪除的對象,而對io負荷的影響大的數(shù)據(jù)單位不成為重復(fù)數(shù)據(jù)刪除的對象,因此關(guān)于對io負荷的影響大的數(shù)據(jù)單位不需要伴隨著跨節(jié)點重復(fù)數(shù)據(jù)刪除的重復(fù)數(shù)據(jù)跨節(jié)點讀取,從而能夠同時實現(xiàn)高效的數(shù)據(jù)量削減和高性能。另外,能夠抑制因跨節(jié)點重復(fù)數(shù)據(jù)刪除而產(chǎn)生的“因重復(fù)數(shù)據(jù)跨節(jié)點讀取產(chǎn)生的網(wǎng)絡(luò)負荷”,還能夠抑制“平均響應(yīng)時間”、以及“平均處理能力”等節(jié)點的io性能的劣化,因此,能夠同時實現(xiàn)高效的數(shù)據(jù)量削減和高性能。圖1的“跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定方法(2)”是對第二判定方法進行說明的概念圖。在第二判定方法中,基于跨節(jié)點重復(fù)數(shù)據(jù)刪除的相對的數(shù)據(jù)量削減效果的大小,判定是否對保存在虛擬存儲區(qū)域中的數(shù)據(jù)進行重復(fù)數(shù)據(jù)刪除。圖1中,在計算機節(jié)點101r、101s中分別保存有9個數(shù)據(jù)單位的重復(fù)數(shù)據(jù)d(99a至99h、及99i至99q)。重復(fù)數(shù)據(jù)d(99a至99g)及重復(fù)數(shù)據(jù)d(99i~99p)已通過節(jié)點重復(fù)數(shù)據(jù)刪除而被執(zhí)行重復(fù)數(shù)據(jù)刪除。能夠通過跨節(jié)點重復(fù)數(shù)據(jù)刪除而對重復(fù)數(shù)據(jù)d(99h、99q)中的一方執(zhí)行重復(fù)數(shù)據(jù)刪除。在第二判定方法中,判定在這樣的狀況下是否執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除。在此,將“r”定義為“基于節(jié)點重復(fù)數(shù)據(jù)刪除的削減數(shù)”。在第二判定方法中使用以下的判定式。判定式:r<“判定式的閾值”在圖1的例子中,通過執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,與完全沒有進行重復(fù)數(shù)據(jù)刪除的情況相比,數(shù)據(jù)量成為(r+2)分之一。因此,判定式的r的值越小,將要執(zhí)行的跨節(jié)點重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)量削減效果越大。另外,r的值越小,發(fā)生重復(fù)數(shù)據(jù)跨節(jié)點讀取的可能性越小,因此,因?qū)⒁獔?zhí)行的跨節(jié)點重復(fù)數(shù)據(jù)刪除產(chǎn)生性能下降的情況少的可能性高。例如,若假設(shè)“判定式的閾值”的閾值為10,則圖1中,在節(jié)點101r和節(jié)點101s中分別刪除8個重復(fù)數(shù)據(jù),因此r的值為16,判定式的判定結(jié)果為false(偽)。在本例中,根據(jù)判定式的結(jié)果,判定為不執(zhí)行重復(fù)數(shù)據(jù)d(99h、99q)的跨節(jié)點重復(fù)數(shù)據(jù)刪除。根據(jù)第二判定方法,能夠僅將與數(shù)據(jù)量削減效果相對大、并且性能下降相對小的跨節(jié)點重復(fù)數(shù)據(jù)刪除相關(guān)的重復(fù)數(shù)據(jù)選擇為節(jié)點重復(fù)數(shù)據(jù)刪除對象候選。在本實施方式的一例中,計算機節(jié)點在執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除時能夠使用以上說明的跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定方法(1)和(2)中的任一方或者雙方。以上,通過圖1中說明的跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定方法,能夠在抑制性能劣化的同時執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,能夠?qū)崿F(xiàn)大的數(shù)據(jù)量削減效果和高性能雙方。圖2表示分布式存儲系統(tǒng)的系統(tǒng)構(gòu)成例。節(jié)點101具有例如通常的服務(wù)器計算機的構(gòu)成。節(jié)點101的硬件構(gòu)成沒有特別限定。節(jié)點101經(jīng)由網(wǎng)絡(luò)103并通過端口106與其他節(jié)點101連接。網(wǎng)絡(luò)103例如由infiniband(無限帶寬)、以太網(wǎng)(注冊商標)等構(gòu)成。多個節(jié)點101形成域102。域102既可以與例如地理上的地域?qū)?yīng),也可以與虛擬或物理網(wǎng)絡(luò)103的拓撲對應(yīng)。網(wǎng)絡(luò)104連接多個域102。以下,假設(shè)域與地理上分離的站點建立了對應(yīng)關(guān)系。節(jié)點101的內(nèi)部構(gòu)成經(jīng)由內(nèi)部網(wǎng)絡(luò)112而連接端口106、處理器封裝111、磁盤驅(qū)動(以下也稱為驅(qū)動)113。處理器封裝111包含存儲器118、處理器119。在此,節(jié)點101也可以不包含磁盤驅(qū)動113,取而代之,對節(jié)點101連接外置的外部存儲裝置,并在其中保存數(shù)據(jù)。存儲器118保存處理器119處理讀或?qū)懼噶睢⒁约皥?zhí)行存儲功能所需的控制用的信息,還保存存儲裝置的緩存數(shù)據(jù)。另外,存儲器118保存由例如處理器119執(zhí)行的程序。存儲器118既可以是易失性的dram(dynamicrandomaccessmemory:動態(tài)隨機訪問存儲器),也可以使用非易失的scm(storageclassmemory:存儲級內(nèi)存)等。驅(qū)動113例如由具有fc(fibrechannel:光纖通道)、sas(serialattachedscsi:串列scsi)、sata(serialadvancedtechnologyattachment:串行高級技術(shù)附件)等的接口的硬磁盤驅(qū)動、ssd(solidstatedrive:固態(tài)驅(qū)動器)等構(gòu)成。可以使用nand、pram(phasechangerandomaccessmemory:相變隨機存儲器)、reram(resistancerandomaccessmemory:阻變存儲器)等scm,也可以使用易失性的存儲器。在使用易失性存儲器的情況下,也可以通過電池來使存儲器件非易失化。驅(qū)動群分別構(gòu)成raid。驅(qū)動、raid及它們的集合分別是存儲器件。圖3表示用于分布式存儲系統(tǒng)的控制的信息。存儲器118不僅保存圖3所示的信息,還保存包含實現(xiàn)存儲功能的存儲程序、os、接口程序在內(nèi)的各種程序。存儲器118有時還保存執(zhí)行業(yè)務(wù)的應(yīng)用程序。虛擬化配置信息202包含頁映射表215和頁負荷頻率表216。構(gòu)成信息203包含虛擬卷管理表218、池卷管理表219和驅(qū)動管理表220。組塊負荷信息224是與組塊的io頻率有關(guān)的信息,包含虛擬組塊負荷頻率表225和邏輯組塊負荷頻率表226。重復(fù)數(shù)據(jù)刪除管理信息229是與重復(fù)數(shù)據(jù)刪除處理相關(guān)的信息,包含fingerprinttable(fpt)231、fpt更新日志239、重復(fù)數(shù)據(jù)刪除效果管理表232、重復(fù)數(shù)據(jù)刪除日志結(jié)構(gòu)化映射表233以及池卷區(qū)域控制表236。對上述信息的全部或一部分的復(fù)制可以被同步或非同步地保存在驅(qū)動113中。節(jié)點101也可以按例如每個池來保持上述信息。一個池由一個或多個邏輯卷構(gòu)成。也將該邏輯卷稱為池卷。池卷的實體是驅(qū)動113的存儲區(qū)域。也能夠向池卷分配其他節(jié)點101的驅(qū)動的存儲區(qū)域。以下,對表示節(jié)點101所保持的信息的表的構(gòu)成例進行說明。各表中,僅示出一部分條目。各表中,空白的單元格是省略了數(shù)據(jù)的記載的單元格。表的單元格中,“0x”表示16進制的數(shù)字。驅(qū)動編號在節(jié)點內(nèi)是唯一的,節(jié)點編號在系統(tǒng)內(nèi)是唯一的。站點編號在系統(tǒng)內(nèi)是唯一的。此外,節(jié)點編號也可以在站點內(nèi)是唯一的。圖4a~圖4c示出表示包含在構(gòu)成信息203中的信息的表的構(gòu)成例。圖4a~圖4c表示不同的存儲資源類別的管理信息。圖4a表示虛擬卷管理表218的構(gòu)成例。虛擬卷管理表218表示虛擬卷的信息。本例中,虛擬卷管理表218示出保持該信息218的節(jié)點101所提供的虛擬卷的信息。節(jié)點101接收向所提供的虛擬卷的訪問。虛擬卷管理表218也可以為了應(yīng)對故障發(fā)生而保持不由本節(jié)點提供的虛擬卷的信息。在此,既可以由保持該信息218的一個計算機節(jié)點101單獨提供一個虛擬卷,也可以由保持該信息218的多個計算機節(jié)點101提供一個虛擬卷。虛擬卷管理表218包含在系統(tǒng)內(nèi)唯一地識別各虛擬卷的標識符(虛擬卷編號)、各虛擬卷的大小(容量)、提供各虛擬卷的節(jié)點(稱為所有者節(jié)點(ownernode))的節(jié)點編號的列表。虛擬卷的大小不是被分配的邏輯組塊的總量,而是表示虛擬卷的虛擬容量(最大容量)。圖4b表示池卷管理表219的構(gòu)成例。池卷管理表219表示池卷的信息。本例中,池卷管理表219示出保持該信息219的節(jié)點101所提供的池卷的信息。池卷管理表219包含在系統(tǒng)內(nèi)唯一地識別各池卷的標識符(池卷編號)、各池卷的大小(容量)、提供各池卷的節(jié)點的節(jié)點編號的信息。圖4c表示驅(qū)動管理表220的構(gòu)成例。驅(qū)動管理表220表示向各池卷分配的驅(qū)動。本例中,驅(qū)動管理表220表示保持該信息220的節(jié)點101所包含的本系統(tǒng)的驅(qū)動113的信息。驅(qū)動管理表220按每個池卷而具有在系統(tǒng)內(nèi)唯一地識別各池卷的標識符(池卷編號)、驅(qū)動的種類(ssd、nl-sas驅(qū)動等)、條帶化的驅(qū)動編號的組(構(gòu)成raid的驅(qū)動編號的組)、驅(qū)動的大小(容量)的信息。在未實施條帶化的情況下,僅對池卷分配一個驅(qū)動。此外,一個驅(qū)動的不同的區(qū)域能夠分配給不同的池卷。圖5a~圖5b表示包含在虛擬化配置信息202中的信息。圖5a表示頁映射表215的構(gòu)成例。頁映射表215保持虛擬卷的虛擬頁與計算機節(jié)點101的對應(yīng)關(guān)系。本例中,頁映射表215保持著節(jié)點101(節(jié)點101保持該信息215)所提供的虛擬卷的信息。虛擬頁與某一個計算機節(jié)點101(虛擬卷的所有者節(jié)點之一)對應(yīng)關(guān)聯(lián)。即,也能夠換句話說為,虛擬頁被分配給某一個計算機節(jié)點101(所有者節(jié)點)。計算機節(jié)點101向該虛擬頁的分配以對虛擬頁有首次的寫請求為契機來進行。此外,被分配了虛擬頁的計算機節(jié)點101以外的計算機節(jié)點101也能夠訪問該虛擬頁。此外,以下,在頁映射表215中,有時將使虛擬頁和計算機節(jié)點對應(yīng)關(guān)聯(lián)的操作表現(xiàn)為“對虛擬頁分配計算機節(jié)點”或者“對計算機節(jié)點分配虛擬頁”。頁映射表215保持虛擬卷編號、虛擬卷的虛擬頁的起始lba(logicalblockaddress:邏輯塊地址)和地址范圍、以及對虛擬頁分配的計算機節(jié)點101的節(jié)點編號。在沒有對虛擬頁分配計算機節(jié)點101的情況下,在頁映射表215的節(jié)點編號欄記錄無效值。圖5b表示頁負荷頻率表216的構(gòu)成例。頁負荷頻率表216保持針對每個虛擬頁的i/o頻率(訪問頻率)的歷史記錄、及針對每個虛擬頁的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”的歷史記錄。具體而言,保持虛擬卷編號、虛擬卷的虛擬頁的起始lba及地址范圍、對該區(qū)域的訪問頻率、關(guān)于該區(qū)域的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”、以及對該區(qū)域的i/o的響應(yīng)時間。頁負荷頻率表216保持節(jié)點101(節(jié)點101保持該表216)所提供的虛擬卷的信息。另外,頁負荷頻率表216保持節(jié)點(節(jié)點保持該表216)從本節(jié)點及其他節(jié)點收到的訪問的信息。訪問頻率及響應(yīng)時間的信息既可以按訪問源的每個節(jié)點來獲取并管理,也可以分為讀訪問和寫訪問來獲取并管理。節(jié)點101可以將循序及隨機訪問分離來獲取訪問頻率及響應(yīng)時間的信息并進行管理,也可以按多個測量周期來獲取訪問頻率及響應(yīng)時間的信息并進行管理?!爸貜?fù)數(shù)據(jù)跨節(jié)點讀取的頻率”表示與對虛擬頁的重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率有關(guān)的信息?!爸貜?fù)數(shù)據(jù)跨節(jié)點讀取的頻率”按訪問源的每個節(jié)點來獲取并管理。在此,所謂重復(fù)數(shù)據(jù)跨節(jié)點讀取是因執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除而產(chǎn)生的、從其他節(jié)點對被分配給該虛擬頁的邏輯組塊的讀取。圖6a~圖6b表示包含在組塊負荷信息224中的信息。圖6a表示虛擬組塊負荷頻率表225的構(gòu)成例。虛擬組塊負荷頻率表225保持針對每個虛擬組塊的i/o頻率(訪問頻率)的歷史記錄、及針對每個虛擬組塊的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”的歷史記錄。具體而言,保持虛擬卷的虛擬組塊的虛擬卷編號、起始lba及地址范圍、對該區(qū)域的訪問頻率、與該區(qū)域有關(guān)的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”、以及對該區(qū)域的i/o的響應(yīng)時間。虛擬組塊負荷頻率表225除了不是虛擬頁而保持與虛擬組塊相關(guān)的信息這一差別以外,與頁負荷頻率表216等同,因此省略說明。圖6b表示邏輯組塊負荷頻率表226的構(gòu)成例。邏輯組塊負荷頻率表226保持針對每個邏輯組塊的i/o頻率(訪問頻率)的歷史記錄。邏輯組塊負荷頻率表226除不是與虛擬組塊有關(guān)的信息而是與邏輯組塊有關(guān)的信息以外,是與虛擬組塊負荷頻率表225相同的表,因此省略說明。圖7a~圖7c、圖8及圖9表示包含在重復(fù)數(shù)據(jù)刪除管理信息229中的信息。圖7a表示fingerprinttable(fpt)231的構(gòu)成例。fpt231是在圖13a的重復(fù)數(shù)據(jù)刪除處理中使用的表,是用于高效地對重復(fù)數(shù)據(jù)進行檢索的索引。在fpt231中存儲針對每個虛擬組塊而計算出的虛擬組塊的數(shù)據(jù)的哈希值(fingerprint、fp)。哈希值能夠使用例如crc、sha1、md5那樣的廣泛知曉的哈希函數(shù)來計算。fpt231保持(1)fp、(2)虛擬卷編號、(3)虛擬卷的lba、(4)地址范圍。(2)到(4)是用于在系統(tǒng)內(nèi)唯一地識別虛擬組塊的信息。fpt231還構(gòu)成為,被分割為多個部分表,由包含在分布式存儲系統(tǒng)中的多個計算機節(jié)點101保持各部分表。為了應(yīng)對故障發(fā)生,也可以由與保持部分表的計算機節(jié)點101不同的計算機節(jié)點101保持部分表的復(fù)制。作為將fpt231分割為多個部分表的方法,例如可以列舉如下方法等:(1)在將保持部分表的計算機節(jié)點101的數(shù)設(shè)為n的情況下,包含某個fp值的條目由基于利用fp值%n(%是計算余數(shù)的運算符)計算的值而決定的計算機節(jié)點101保持,由此來實現(xiàn)fpt231的分割;(2)將fp值的預(yù)先設(shè)定的范圍與某個計算機節(jié)點101對應(yīng)關(guān)聯(lián),計算機節(jié)點101僅保持包含自身所對應(yīng)關(guān)聯(lián)的fp值的條目,由此來實現(xiàn)fpt231的分割。fpt231也可以按照這些方法以外的一定的規(guī)則來分割。fpt231也可以構(gòu)成為,包含在分布式存儲系統(tǒng)中的一個計算機節(jié)點101保持分布式存儲系統(tǒng)內(nèi)的所有虛擬組塊的信息。應(yīng)對故障發(fā)生,也可以由其他計算機節(jié)點101保持fpt231的復(fù)制。圖7b表示fpt更新日志239的構(gòu)成例。fpt更新日志239記錄向fpt231的更新操作。向fpt231的更新操作是對fpt231的條目(行)的登記或刪除。fpt更新日志239保持(1)fp、(2)虛擬卷編號、(3)虛擬卷的lba、(4)地址范圍、(5)操作。(2)到(4)是用于在系統(tǒng)內(nèi)唯一地識別虛擬組塊的信息。(5)的操作欄是指定對fpt231的更新操作的信息,存儲“登記”和“刪除”中的某一值。接下來,在進行圖7c的說明以前,對重復(fù)數(shù)據(jù)刪除類型進行說明。如已敘述那樣,重復(fù)數(shù)據(jù)刪除大體上分為節(jié)點重復(fù)數(shù)據(jù)刪除和跨節(jié)點重復(fù)數(shù)據(jù)刪除??绻?jié)點重復(fù)數(shù)據(jù)刪除是跨過同一站點內(nèi)的計算機節(jié)點101的重復(fù)數(shù)據(jù)刪除即站點重復(fù)數(shù)據(jù)刪除、和跨過不同站點內(nèi)的計算機節(jié)點101的重復(fù)數(shù)據(jù)刪除即異地重復(fù)數(shù)據(jù)刪除中的某一個。也就是說,重復(fù)數(shù)據(jù)刪除類型是(1)節(jié)點重復(fù)數(shù)據(jù)刪除、(2)站點重復(fù)數(shù)據(jù)刪除、(3)異地重復(fù)數(shù)據(jù)刪除中的某一個。圖7c表示重復(fù)數(shù)據(jù)刪除效果管理表232的構(gòu)成例。重復(fù)數(shù)據(jù)刪除效果管理表232是在分布式存儲系統(tǒng)中對持有某個fp的邏輯組塊通過節(jié)點重復(fù)數(shù)據(jù)刪除、站點重復(fù)數(shù)據(jù)刪除、異地重復(fù)數(shù)據(jù)刪除分別刪除了多少重復(fù)數(shù)據(jù)進行管理的表。計算機節(jié)點101之一管理本表。其他計算機節(jié)點101可以保持本表的復(fù)制。重復(fù)數(shù)據(jù)刪除效果管理表232保持(1)節(jié)點編號、(2)fp、(3)節(jié)點重復(fù)數(shù)據(jù)刪除削減數(shù)、(4)站點重復(fù)數(shù)據(jù)刪除削減數(shù)、(5)異地重復(fù)數(shù)據(jù)刪除削減數(shù)。(3)、(4)、(5)是表示如下的信息:利用(1)的節(jié)點編號而通過頁映射表215確定出的虛擬頁中包含的虛擬組塊中的、持有該fp的虛擬組塊分別通過節(jié)點重復(fù)數(shù)據(jù)刪除、站點重復(fù)數(shù)據(jù)刪除、異地重復(fù)數(shù)據(jù)刪除而被刪除了多少重復(fù)數(shù)據(jù)。圖8表示重復(fù)數(shù)據(jù)刪除日志結(jié)構(gòu)化映射表233的構(gòu)成例。圖8中,箭頭表示指針。重復(fù)數(shù)據(jù)刪除日志結(jié)構(gòu)化映射表233包含重復(fù)數(shù)據(jù)刪除映射表234、重復(fù)數(shù)據(jù)刪除逆映射表235。重復(fù)數(shù)據(jù)刪除映射表234對虛擬卷內(nèi)的虛擬組塊與池卷內(nèi)的邏輯組塊之間的映射進行管理。計算機節(jié)點101能夠從與虛擬組塊對應(yīng)的虛擬卷的地址(lba)知曉被映射給該虛擬組塊的邏輯組塊的保存地址(邏輯地址)。重復(fù)數(shù)據(jù)刪除映射表234使虛擬卷中的用戶數(shù)據(jù)的保存地址(lba)和池卷中的用戶數(shù)據(jù)的保存地址(邏輯地址)建立對應(yīng)關(guān)系。也能夠換句話說,重復(fù)數(shù)據(jù)刪除映射表234對虛擬地址與邏輯地址之間的映射進行管理。虛擬地址是用于在系統(tǒng)內(nèi)唯一地識別虛擬組塊的信息,邏輯地址是用于在系統(tǒng)內(nèi)唯一地識別邏輯組塊的信息。此外,也存在虛擬組塊沒有被映射任何邏輯組塊的情況。與虛擬組塊有關(guān)的虛擬卷的保存地址通過虛擬卷編號、地址(lba)指定。與邏輯組塊相關(guān)的池卷的保存地址通過池卷編號、邏輯地址(lba)、數(shù)據(jù)長度(len)指定。在重復(fù)數(shù)據(jù)刪除映射表234中也記錄有關(guān)于與虛擬組塊相關(guān)的狀態(tài)的信息。在該信息中含有表示圖13a的重復(fù)數(shù)據(jù)刪除處理的執(zhí)行以后該虛擬組塊是否已被更新的信息(“是”或“否”)。該信息的初始值為“是”。在重復(fù)數(shù)據(jù)刪除映射表234的“fp”中記錄有在執(zhí)行圖13a的重復(fù)數(shù)據(jù)刪除處理時計算出的fp的值。重復(fù)數(shù)據(jù)刪除映射表234的“fp”的初始值是無效值。此外,也可以在與邏輯組塊相關(guān)的池卷的保存地址中含有站點編號。該情況下,在重復(fù)數(shù)據(jù)刪除映射表234的更新時,也執(zhí)行站點編號的設(shè)定。在以下的說明中,關(guān)于站點編號的設(shè)定存在未明示的情況。在圖8的例子中,示出通過虛擬卷編號=0、lba=0指定的虛擬組塊的數(shù)據(jù)保持在通過池卷編號=0、lba(邏輯地址)=0x0003、len=8指定的邏輯組塊的區(qū)域。本例的分布式存儲系統(tǒng)將寫入到虛擬卷的數(shù)據(jù)通過日志結(jié)構(gòu)化方式而保存到池卷中。在使用這樣的日志結(jié)構(gòu)化方式的情況下,計算機節(jié)點101在用新數(shù)據(jù)來更新虛擬組塊的數(shù)據(jù)的情況下,不利用新數(shù)據(jù)更新對應(yīng)的邏輯組塊的數(shù)據(jù),而是將新數(shù)據(jù)追加到新邏輯組塊中。適當消除了不需要的數(shù)據(jù)(邏輯組塊)。重復(fù)數(shù)據(jù)刪除逆映射表235是上述表234的逆轉(zhuǎn)換表。也就是說,重復(fù)數(shù)據(jù)刪除逆映射表235為了從池卷的地址向虛擬卷的地址轉(zhuǎn)換而被參照。重復(fù)數(shù)據(jù)刪除逆映射表235包含表示與在池卷1303中保存數(shù)據(jù)的地址區(qū)域250(與邏輯組塊對應(yīng))分別對應(yīng)的虛擬卷的地址的表251。此外,有時在重復(fù)數(shù)據(jù)刪除逆映射表235中,在虛擬組塊間進行了重復(fù)數(shù)據(jù)刪除的結(jié)果是,多個虛擬組塊與一個邏輯組塊建立了對應(yīng)關(guān)系。表251分別包括索引數(shù)(參考的個數(shù))、更新時間、參考值(對應(yīng)的虛擬卷的虛擬卷編號、lba、大小)。圖8的例子中,保持著索引數(shù)為1且利用虛擬卷編號=1、lba=1、size=8指定的虛擬卷的地址的參考值。計算機節(jié)點101與數(shù)據(jù)向池卷的寫入同步地,更新重復(fù)數(shù)據(jù)刪除日志結(jié)構(gòu)化映射表233。圖9表示池卷區(qū)域控制表236的構(gòu)成例。圖9中,箭頭表示指針。池卷區(qū)域控制表236包含有效列表237a、無效列表237b、空閑列表237c、池卷區(qū)域量表238。池卷區(qū)域控制表236管理計算機節(jié)點101內(nèi)的池卷的區(qū)域。列表237a~237c中,各池卷的區(qū)域被以池卷編號及池卷內(nèi)的lba所示的邏輯組塊單位管理。有效列表237a是有效區(qū)域的列表。有效區(qū)域是保存最新的用戶數(shù)據(jù)的邏輯組塊的區(qū)域。換言之,有效區(qū)域是被分配給虛擬組塊的邏輯組塊的區(qū)域。圖9的例子中,在池卷編號為0的池卷中,lba0、4、5的塊(block)分別保存著有效數(shù)據(jù)。無效列表237b是無效區(qū)域的列表。無效區(qū)域是保存舊的用戶數(shù)據(jù)的邏輯組塊的區(qū)域。換言之,無效區(qū)域是沒有被分配給虛擬組塊的邏輯組塊的區(qū)域。圖9的例子中,在池卷編號為0的池卷中,lba1、3、7的塊分別保存著無效數(shù)據(jù)。空閑列表237c是未使用區(qū)域的列表。未使用區(qū)域是保存有格式數(shù)據(jù)(僅由比特值0構(gòu)成的數(shù)據(jù))的邏輯組塊的區(qū)域,通過使無效區(qū)域格式化而生成。換言之,未使用區(qū)域是能夠立即寫入數(shù)據(jù)的邏輯組塊的區(qū)域。池卷區(qū)域量表238管理計算機節(jié)點101內(nèi)的池卷的區(qū)域的目標使用量、實際使用量、有效區(qū)域的量(有效量)。計算機節(jié)點101與主機i/o同步或非同步地更新池卷區(qū)域控制表236。圖10表示分布式存儲系統(tǒng)的讀處理的流程圖。處理器119對接收到的讀指令的指定地址(也稱為特定指定地址)參照頁映射表215判定計算機節(jié)點101是否未分配給訪問目的地虛擬頁(以下也僅稱為虛擬頁)(s501)。指定地址由例如虛擬卷編號及l(fā)ba指定。lba由開始lba及塊長度表示。在計算機節(jié)點101被分配給虛擬頁的情況下(s501:是),處理器119判定是否需要排他(s506)。處理器119參照虛擬卷管理表218,在虛擬卷的所有者節(jié)點僅為本節(jié)點的情況下判定為不需要排他,在并未如此的情況下,判定為需要排他。在判定為需要排他的情況下(s506:是),處理器119獲取排他后(s507),再次判定計算機節(jié)點101是否未分配給虛擬頁(s508)。這是因為在s501與s508之間(也就是說,s506或s507的處理過程中)有可能對虛擬頁分配了節(jié)點。在排他方法的一例中,處理器119使用哈希函數(shù)確定出根據(jù)讀地址而唯一地確定的代表節(jié)點,對代表節(jié)點委托調(diào)停,從而代表節(jié)點進行調(diào)停。在計算機節(jié)點101已分配給虛擬頁的情況下(s508:否),處理器119解除排他(s512),并進入步驟s502。在計算機節(jié)點101未對虛擬頁分配的情況下(s508:是),處理器119返回零數(shù)據(jù)(s509),與步驟s506的判定同樣地判定是否需要排他(s510)。在需要排他的情況下(s510:是),由于在s507中已經(jīng)獲得排他,因此處理器119釋放排他(s511)。在s502中,處理器119判定是否對虛擬頁分配了本系統(tǒng)節(jié)點或者是否對虛擬頁分配了其他系統(tǒng)節(jié)點。具體而言,處理器119參照頁映射表215,確定出分配給虛擬頁的節(jié)點,判定確定出的節(jié)點是本系統(tǒng)節(jié)點還是其他系統(tǒng)節(jié)點。在步驟s501中計算機節(jié)點101已對虛擬頁分配完畢(s501:否)、且本系統(tǒng)節(jié)點被分配給虛擬頁的情況下(s502:是),處理器119參照重復(fù)數(shù)據(jù)刪除映射表234,判定是否未對與特定指定地址對應(yīng)的虛擬組塊(稱為特定虛擬組塊)分配邏輯組塊(s503)。步驟s503中,在邏輯組塊未分配的情況下(s503:是),處理器119返回零數(shù)據(jù)(s504)。步驟s503中,在邏輯組塊已分配完畢的情況下(s503:否),處理器119確保本系統(tǒng)的緩存區(qū)域(s512)。在此,在對緩存確保進行說明之前對緩存數(shù)據(jù)的管理信息進行說明。緩存數(shù)據(jù)的管理信息包含臟隊列、干凈隊列以及空閑隊列。臟隊列是管理存儲器上的臟數(shù)據(jù)的列表。臟數(shù)據(jù)是未生成冗余數(shù)據(jù)的用戶數(shù)據(jù)、已生成冗余數(shù)據(jù)但未反映給驅(qū)動113的用戶數(shù)據(jù)、以及未反映給驅(qū)動的冗余數(shù)據(jù)中的某一個。干凈隊列是對存儲器上的干凈數(shù)據(jù)進行管理的列表。干凈數(shù)據(jù)是已反映給驅(qū)動的用戶數(shù)據(jù)、和已反映給驅(qū)動的冗余數(shù)據(jù)中的某一個??臻e隊列是對存儲器上的空閑區(qū)域進行管理的列表??臻e區(qū)域是沒有使用的緩存區(qū)域。在緩存區(qū)域的確保中,處理器119參照緩存信息204,確定出與對象邏輯地址建立了對應(yīng)關(guān)系的緩存區(qū)域。在不存在對應(yīng)的緩存區(qū)域的情況下,處理器119從空閑隊列確保新的區(qū)域。在空閑隊列為空的情況下,處理器119從干凈隊列確保新的區(qū)域。在干凈隊列為空的情況下,處理器119使臟隊列內(nèi)的區(qū)域降級而變化為空閑區(qū)域。接下來,處理器119參照重復(fù)數(shù)據(jù)刪除映射表234及池卷管理表219,判定與特定虛擬組塊對應(yīng)的邏輯組塊(特定邏輯組塊)是否存在于本系統(tǒng)節(jié)點的池卷內(nèi)(s513)。具體而言,處理器119首先參照重復(fù)數(shù)據(jù)刪除映射表234來確定出保存有與特定虛擬組塊對應(yīng)的邏輯組塊的池卷,接著參照池卷管理表219來確定出提供所確定出的池卷的節(jié)點,如果所確定出的節(jié)點為本系統(tǒng)節(jié)點,則判定為s513的判定結(jié)果是肯定的,如果并非如此,則判定為s513的判定結(jié)果是否定的。處理器119在s513的判定結(jié)果是肯定的情況下(s513:是),從本系統(tǒng)節(jié)點的池卷讀出特定邏輯組塊的數(shù)據(jù),將讀出的數(shù)據(jù)保存到在s512中確保的緩存區(qū)域,并將保存在緩存區(qū)域中的數(shù)據(jù)返回給主機(s514)。在s513的判定結(jié)果為否定的情況下(s513:否),由于特定邏輯組塊的數(shù)據(jù)位于其他系統(tǒng)節(jié)點的池卷內(nèi),因此在本系統(tǒng)節(jié)點與其他系統(tǒng)節(jié)點之間進行了讀數(shù)據(jù)的收發(fā)之后,特定邏輯組塊的數(shù)據(jù)被返回給主機(s515)。具體而言進行以下的處理。即,(1)本系統(tǒng)節(jié)點的處理器119向其他系統(tǒng)節(jié)點發(fā)送特定邏輯組塊的數(shù)據(jù)的讀出請求,(2)接收到讀出請求的其他系統(tǒng)節(jié)點的處理器119從其他系統(tǒng)節(jié)點的池卷讀取特定邏輯組塊的數(shù)據(jù),將所讀取的數(shù)據(jù)向本系統(tǒng)節(jié)點發(fā)送,(3)本系統(tǒng)節(jié)點的處理器119接收所述發(fā)送的數(shù)據(jù)并將其保存到在s512中確保的緩存區(qū)域,將保存在緩存區(qū)域中的數(shù)據(jù)返回給主機。(4)由于發(fā)生了重復(fù)數(shù)據(jù)跨節(jié)點讀取,因此與其對應(yīng)地更新歷史記錄信息。具體而言,更新頁負荷頻率表216的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”及虛擬組塊負荷頻率表225的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”。在其他系統(tǒng)節(jié)點(稱為特定其他系統(tǒng)節(jié)點)被分配給了虛擬頁的情況下(s502:否),處理器119向特定其他系統(tǒng)節(jié)點轉(zhuǎn)送讀指令(s505)。處理器119在本系統(tǒng)中不緩存讀數(shù)據(jù)。也就是說,若虛擬頁的分配目的地為其他節(jié)點,則處理器119不將讀數(shù)據(jù)緩存到本系統(tǒng)存儲器118中(直接讀取,readthrough),而由其他節(jié)點101緩存讀數(shù)據(jù)。特定其他系統(tǒng)節(jié)點執(zhí)行圖10的處理,經(jīng)由本系統(tǒng)節(jié)點向主機返回數(shù)據(jù)。圖11表示同步寫處理的流程圖。本處理在從主機(例如應(yīng)用程序)發(fā)出了寫指令的情況下執(zhí)行。本處理在本系統(tǒng)的池卷中保存寫數(shù)據(jù)。收到寫指令的節(jié)點101的處理器119判定計算機節(jié)點101是否未分配給訪問目的地虛擬頁(以下,僅稱為虛擬頁)(s601)。具體而言,處理器119參照頁映射表215,從寫指令的指定地址(虛擬卷編號及l(fā)ba)檢索對應(yīng)的計算機節(jié)點101的節(jié)點編號。處理器119通過判定對應(yīng)的節(jié)點編號是否為無效值來判定虛擬頁是否未分配給計算機節(jié)點101。在本實施例的系統(tǒng)中,啟動了多個應(yīng)用,系統(tǒng)內(nèi)的至少一個節(jié)點使各個應(yīng)用動作。在此,考慮到數(shù)據(jù)的讀請求大多被送出到原本接收到該數(shù)據(jù)的寫指令的節(jié)點中。因此,在本申請中,在節(jié)點收到寫請求的情況下,將該寫請求的數(shù)據(jù)優(yōu)先地保存到該節(jié)點的存儲區(qū)域。由此,針對讀出請求能夠從特定節(jié)點讀出的概率變高,能夠快速地響應(yīng)讀請求。但是,有時在與節(jié)點101連接的驅(qū)動113的性能相對于網(wǎng)絡(luò)103的性能低的情況下,使數(shù)據(jù)分布于多個節(jié)點更能提高作為系統(tǒng)的處理能力。考慮到以上情況,也可以根據(jù)網(wǎng)絡(luò)103的性能和與節(jié)點101連接的驅(qū)動113的性能,使用輪叫調(diào)度(roundrobin)等方法來變更分配目的地的存儲區(qū)域。另外,上述分配方針不僅基于性能這一指標,在作為驅(qū)動113而使用了閃存的情況下也可以考慮使用壽命等指標,來使性價比高效化。在計算機節(jié)點101未分配給虛擬頁的情況下(s601:是),處理器119執(zhí)行將計算機節(jié)點101分配給虛擬頁的處理。處理器119首先判定頁映射表215的更新是否需要排他(s607)。獲得排他的理由是為了防止在其他節(jié)點101中同時地將計算機節(jié)點101分配給虛擬頁的情況下對虛擬頁分配多個不同的計算機節(jié)點101。處理器119參照虛擬卷管理表218,在所有者節(jié)點中含有本節(jié)點以外的節(jié)點的情況下,判定為需要排他,在所有者節(jié)點僅為本節(jié)點的情況下,判定為不需要排他。在判定為需要排他的情況下(s607:是),處理器119得到排他(s608)。排他的得到方法與圖10中說明的讀處理中所示的方法相同。接下來,處理器119再次判定計算機節(jié)點101是否未分配給虛擬頁(s609)。這是因為,在步驟s601中判定了計算機節(jié)點101是否已對虛擬頁分配完畢之后,且在步驟s608中得到排他之前,有可能通過其他節(jié)點而得到了排他。在計算機節(jié)點101未分配給虛擬頁的情況下(s609:是),處理器119決定分配虛擬頁的計算機節(jié)點101(s610)。處理器119首先檢查在本系統(tǒng)的池卷中是否有空區(qū)域。具體而言,參照池卷區(qū)域控制表236的目標使用量和實際使用量,判定實際使用量是否比目標使用量少。在實際使用量比目標使用量少的情況下,處理器119將特定虛擬頁分配給本系統(tǒng)節(jié)點。在本系統(tǒng)的池卷中(在本系統(tǒng))不存在空區(qū)域的情況下,處理器119在本地安裝其他系統(tǒng)(其他節(jié)點)的池卷,并對該區(qū)域分配頁。在決定了分配節(jié)點后,處理器119對虛擬頁分配該節(jié)點(s611)。具體而言,處理器119更新頁映射表215的對應(yīng)關(guān)系。接下來,處理器119判定是否需要排他(s612)。該判定與步驟s607相同。在需要排他的情況下(s612:是),處理器119釋放已得到的排他(s617)。在不需要排他的情況下(s612:否),處理器119進入到步驟s602。處理器119參照頁映射表215判定是否對與寫指令對應(yīng)的虛擬頁分配了本系統(tǒng)節(jié)點(步驟602)。在本系統(tǒng)節(jié)點沒有分配給虛擬頁的情況下(s602:否),處理器119向其他節(jié)點101轉(zhuǎn)送寫指令(s606)。其他節(jié)點101執(zhí)行按照本流程圖的寫處理。為了維持數(shù)據(jù)一致性,處理器119在本系統(tǒng)中不緩存寫數(shù)據(jù)。在本系統(tǒng)節(jié)點被分配給了虛擬頁的情況下(s602:是),處理器119更新重復(fù)數(shù)據(jù)刪除日志結(jié)構(gòu)化映射表233(s603)。寫數(shù)據(jù)以日志結(jié)構(gòu)化形式保存在池卷(與之對應(yīng)的緩存區(qū)域)中。具體而言,處理器119從未使用列表237c獲取起始的未使用邏輯組塊,將所獲取的邏輯組塊保存到有效列表237a中。然后,將重復(fù)數(shù)據(jù)刪除映射表234中的、訪問目的地虛擬組塊的分配目的地變更為所獲取的未使用邏輯組塊。在重復(fù)數(shù)據(jù)刪除逆映射表235中存儲訪問目的地虛擬組塊與所獲取的未使用邏輯組塊的對應(yīng)關(guān)系,并且刪除訪問目的地虛擬組塊與原本的分配目的地邏輯組塊之間的對應(yīng)關(guān)系。另外,處理器119參照重復(fù)數(shù)據(jù)刪除逆映射表235,在與訪問目的地虛擬頁建立了對應(yīng)關(guān)系的邏輯組塊被分配給其他虛擬頁的情況下,將該邏輯組塊繼續(xù)保存在有效列表237a中。在與訪問目的地虛擬頁建立了對應(yīng)關(guān)系的邏輯組塊沒有被分配給其他虛擬頁的情況下,將該邏輯組塊從有效列表237a移動到無效列表237b。在將寫數(shù)據(jù)以日志結(jié)構(gòu)化形式保存到池卷(與之對應(yīng)的緩存區(qū)域)中時,處理器119如圖8所示那樣將虛擬卷中的地址(lba等)與池卷中的邏輯地址之間的對應(yīng)關(guān)系記錄到重復(fù)數(shù)據(jù)刪除映射表234。如上述那樣,在通過日志結(jié)構(gòu)化形式而計算機節(jié)點101用新的數(shù)據(jù)更新虛擬組塊的數(shù)據(jù)的情況下,不以新的數(shù)據(jù)來覆蓋對應(yīng)的邏輯組塊的數(shù)據(jù),而是將新的數(shù)據(jù)寫入到新的邏輯組塊,并將虛擬組塊的映射變更為新的邏輯組塊。因此,僅變更有寫入的虛擬組塊的映射即可,不需要變更參照與有寫入的虛擬組塊相同的邏輯組塊的其他虛擬組塊的映射。而且,處理器119在重復(fù)數(shù)據(jù)刪除逆映射表235中記錄池卷中的邏輯地址與虛擬卷中的地址(lba等)之間的對應(yīng)關(guān)系。另外,處理器119與重復(fù)數(shù)據(jù)刪除日志結(jié)構(gòu)化映射表233的更新對應(yīng)地,適當更新池卷區(qū)域控制表236。接下來,處理器119在本系統(tǒng)的緩存區(qū)域181中實施緩存確保(s604)。該方法與參照圖10說明的方法相同。接著,處理器119對在s604中確保的緩存區(qū)域?qū)懭雽憯?shù)據(jù)(s605)。以上是同步寫處理的流程圖的說明。此外,本實施例中的分布式存儲系統(tǒng)也能夠構(gòu)成為,使用erasurecoding(糾刪碼)等那樣的公知技術(shù),在多個計算機節(jié)點101間生成冗余碼,并將所生成的冗余碼保存到計算機節(jié)點101中。該情況下,在同步寫處理中,需要將(1)寫數(shù)據(jù)的一部分或全部、(2)從寫數(shù)據(jù)生成的冗余碼中的一方或雙方發(fā)送到其他系統(tǒng)節(jié)點。由此,即使在計算機節(jié)點101中產(chǎn)生了故障,也能夠恢復(fù)用戶數(shù)據(jù)。圖12表示后端寫處理的流程圖。本處理在高速緩存181上存在主機臟數(shù)據(jù)、也就是未生成冗余碼的寫數(shù)據(jù)的情況下,與主機i/o非同步地執(zhí)行。在本處理中,生成與寫數(shù)據(jù)對應(yīng)的冗余碼,然后,將寫數(shù)據(jù)及生成的冗余碼寫入到驅(qū)動(113)。在此,為了簡化說明,假設(shè)寫數(shù)據(jù)的大小與條帶的大小相等。此外,主機臟數(shù)據(jù)通過臟隊列來管理。當本處理開始后,處理器119選擇未生成冗余碼的寫數(shù)據(jù)(s801)。將所選擇的寫數(shù)據(jù)稱為特定寫數(shù)據(jù)。接著,處理器119生成與特定寫數(shù)據(jù)對應(yīng)的冗余碼(s802)。接著,處理器119將特定寫數(shù)據(jù)及所生成的冗余碼寫入到驅(qū)動(113)(s803)。接下來,處理器119判定是否存在未生成冗余碼的寫數(shù)據(jù)(s804)。如果判定結(jié)果是肯定的(s804:是),則處理器119進入s801,如果判定結(jié)果是否定的(s804:否),則處理器119結(jié)束本處理。圖13a表示重復(fù)數(shù)據(jù)刪除處理的流程圖。在本處理中,決定節(jié)點重復(fù)數(shù)據(jù)刪除、站點重復(fù)數(shù)據(jù)刪除、異地重復(fù)數(shù)據(jù)刪除這些重復(fù)數(shù)據(jù)刪除的對象數(shù)據(jù),對對象數(shù)據(jù)執(zhí)行各自的重復(fù)數(shù)據(jù)刪除。在本處理中,還決定節(jié)點重復(fù)數(shù)據(jù)刪除解除、站點重復(fù)數(shù)據(jù)刪除解除、異地重復(fù)數(shù)據(jù)刪除解除這些重復(fù)數(shù)據(jù)刪除解除的對象數(shù)據(jù),對對象數(shù)據(jù)執(zhí)行各自的重復(fù)數(shù)據(jù)刪除解除。本處理與主機i/o非同步地啟動。例如,既可以在用戶指定的定時啟動,也可以在預(yù)先設(shè)定的定時啟動。作為定時,能夠使用用戶指示了處理開始的定時、每隔一定周期的定時、新的寫數(shù)據(jù)的量超過了預(yù)定量的定時等。本處理還通過多個計算機節(jié)點101的協(xié)作來執(zhí)行。圖13a中,預(yù)先決定的節(jié)點編號的計算機節(jié)點101的處理器119決定主節(jié)點(s9001)。主節(jié)點是在多個計算機節(jié)點101協(xié)作動作的圖13a的重復(fù)數(shù)據(jù)刪除處理中進行處理的控制的計算機節(jié)點101。主節(jié)點是分布式存儲系統(tǒng)內(nèi)的計算機節(jié)點101的任意一個。分布式存儲系統(tǒng)內(nèi)的主節(jié)點以外的計算機節(jié)點101是從節(jié)點。從節(jié)點接受主節(jié)點的指示而動作。主節(jié)點也可以同時具有作為從節(jié)點的作用。s9002~s9006中,更新fpt231。具體而言,與虛擬卷被更新的區(qū)域?qū)?yīng)的條目(行)被登記在fpt231中,從fpt231刪除與舊的fp對應(yīng)的條目(行)。主節(jié)點的處理器119對從節(jié)點之一指示生成fpt更新日志239(s9002)。接收到指示的從節(jié)點(稱為特定節(jié)點)的處理器119(稱為特定處理器)確定出虛擬卷的更新區(qū)域(s9003)。具體而言,進行以下(1)、(2)的處理。(1)特定處理器參照頁映射表215,確定出頁映射表215的節(jié)點編號欄為特定節(jié)點的條目。表示與該條目對應(yīng)的虛擬卷的區(qū)域的數(shù)據(jù)被分配給了特定節(jié)點。(2)特定處理器關(guān)于確定出的各條目進行以下(2-1)~(2-2)的處理。(2-1)特定處理器參照與該條目對應(yīng)的、重復(fù)數(shù)據(jù)刪除映射表234的虛擬組塊的“狀態(tài)”,在上一次的圖13a的重復(fù)數(shù)據(jù)刪除處理的執(zhí)行以后判定該虛擬組塊是否有更新(稱為判定a)。(2-2)在判定a的判定結(jié)果是肯定的(“是”)情況下,將與該條目對應(yīng)的虛擬卷的區(qū)域確定為更新區(qū)域。通過(2-1)及(2-2)的處理,特定處理器確定出一個或多個虛擬卷的更新區(qū)域(被更新的虛擬組塊)。接下來,特定處理器基于所確定出的虛擬卷的更新區(qū)域的信息,生成fpt更新日志239(s9004)。具體而言,對在s9003中確定出的虛擬卷的更新區(qū)域分別進行以下(1)及(2)的處理。將作為處理對象的、更新區(qū)域之一稱為特定虛擬組塊。(1)特定處理器讀出特定虛擬組塊的數(shù)據(jù),對所讀出的數(shù)據(jù)的fp進行計算,將計算得到的fp與特定虛擬組塊的地址(虛擬卷編號、lba、地址范圍)及“操作”一起保存到特定節(jié)點內(nèi)的fpt更新日志239。在此,“操作”的值是“登記”。地址是“用于識別虛擬組塊的信息”。(2)特定處理器讀出與特定虛擬組塊對應(yīng)的、重復(fù)數(shù)據(jù)刪除映射表234的“fp”的值,將讀出的fp與特定虛擬組塊的地址(虛擬卷編號、lba、地址范圍)及“操作”一起保存到特定節(jié)點內(nèi)的fpt更新日志239。在此,“操作”的值是“刪除”。地址是“用于識別虛擬組塊的信息”。在上述(1)中,保存在特定節(jié)點的fpt更新日志239中的“fp”和“用于識別虛擬組塊的信息”的組是應(yīng)登記到分布式存儲系統(tǒng)的fpt231中的條目。在上述(2)中,保存在特定節(jié)點的fpt更新日志239中的“fp”和“用于識別虛擬組塊的信息”的組是應(yīng)從分布式存儲系統(tǒng)的fpt231刪除的條目。主節(jié)點的處理器119判定是否對所有的從節(jié)點執(zhí)行了fpt更新日志239的生成指示(s9005)。如果判定結(jié)果是肯定的(s9005:是),則進入s9006,如果判定結(jié)果是否定的(s9005:否),則進入s9002,執(zhí)行對下一個從節(jié)點的指示。此外,s9003~s9004的處理在多個不同的計算機節(jié)點101中執(zhí)行,因此也可以并行執(zhí)行。該情況下,主節(jié)點需要等待直到在所有的從節(jié)點中s9003~s9004的處理完成為止。接下來,主節(jié)點的處理器119對從節(jié)點之一(特定從節(jié)點)指示發(fā)送fpt更新日志(s9006)。接下來,計算機節(jié)點101進行fpt更新日志的收發(fā)(s9007)。具體而言,進行以下(1)~(3)的處理。(1)從主節(jié)點接收到指示的特定從節(jié)點對保存在特定從節(jié)點中的fpt更新日志239進行分割。具體方法與圖7a的fpt231的構(gòu)成例的說明中的“將fpt231分割為多個部分表的方法”相同,因此省略說明。但是,在fpt更新日志239的分割時,需要代替fpt231的fp,而使用fpt更新日志239的fp。將分割得到的fpt更新日志(稱為部分fpt更新日志)的保存目的地節(jié)點(與圖7a的說明中的、被分割的fpt231的配置節(jié)點對應(yīng))稱為擔當節(jié)點。決定保存目的地節(jié)點的決定方法(圖7a的說明中的“fp值%n”等)需要在“fpt231的分割”和“fpt更新日志239的分割”中使用相同的方法。部分fpt更新日志的數(shù)據(jù)構(gòu)造與fpt更新日志239相同,因此以下有時將部分fpt更新日志稱為部分fpt更新日志239。(2)特定從節(jié)點將在(1)中生成的各部分fpt更新日志239發(fā)送到對應(yīng)的擔當節(jié)點。(3)各擔當節(jié)點接收在(2)中發(fā)送的部分fpt更新日志239。此外,(2)、(3)的處理按照主節(jié)點的指示由各計算機節(jié)點101的處理器119執(zhí)行。接下來,接收到部分fpt更新日志239的擔當節(jié)點(特定擔當節(jié)點)基于接收到的部分fpt更新日志239(稱為特定部分fpt更新日志239)來更新fpt231(s9008)。具體而言,進行以下(1)~(3)的處理。(1)特定擔當節(jié)點對包含在特定部分fpt更新日志239中的條目中的、“操作”(圖7b的“操作”)的值為“刪除”的各行(稱為特定fpt更新日志條目)執(zhí)行以下的處理。即,將特定擔當節(jié)點內(nèi)的fpt231的行中的、fpt231的fp的值與特定fpt更新日志條目的fp的值相等的行刪除。(2)特定擔當節(jié)點對包含在特定部分fpt更新日志239中的條目中的、“操作”(圖7b的“操作”)的值為“登記”的各行(稱為特定fpt更新日志條目)執(zhí)行以下的處理。即,對特定擔當節(jié)點內(nèi)的fpt231追加基于特定fpt更新日志條目的內(nèi)容而生成的新行。在此,新行的“fp”、“虛擬卷編號”、“l(fā)ba”、“地址范圍”分別與特定fpt更新日志條目的“fp”、“虛擬卷編號”、“l(fā)ba”、“地址范圍”相等。(3)擔當節(jié)點刪除特定部分fpt更新日志239。接下來,主節(jié)點判定是否對所有的從節(jié)點執(zhí)行了fpt更新日志239的發(fā)送指示(s9009)。如果判定結(jié)果是肯定的(s9009:是)則進入s9010,如果判定結(jié)果是否定的(s9009:否)則進入s9006,執(zhí)行對下一從節(jié)點的指示。此外,s9007~s9008的處理通過多個不同的計算機節(jié)點101來執(zhí)行,因此也可以并行地執(zhí)行。該情況下,主節(jié)點需要等待直到在所有的從節(jié)點中s9007~s9008的處理完成為止。接下來,主節(jié)點對各計算機節(jié)點101執(zhí)行后述的圖13b的節(jié)點重復(fù)數(shù)據(jù)刪除處理(s9010)。接著,主節(jié)點執(zhí)行后述的圖13c的跨節(jié)點重復(fù)數(shù)據(jù)刪除處理(s9011)。接下來,主節(jié)點執(zhí)行后述的圖13e的跨節(jié)點重復(fù)數(shù)據(jù)刪除解除處理(s9012)。由于先執(zhí)行基于重復(fù)數(shù)據(jù)刪除的執(zhí)行而io處理時的計算機節(jié)點101間通信沒有增加的節(jié)點重復(fù)數(shù)據(jù)刪除,然后執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,因此能夠抑制因重復(fù)數(shù)據(jù)刪除導(dǎo)致的性能劣化。圖13b表示節(jié)點重復(fù)數(shù)據(jù)刪除處理的流程圖。本處理通過主節(jié)點而被啟動。本處理對各計算機節(jié)點101內(nèi)的重復(fù)數(shù)據(jù)執(zhí)行節(jié)點重復(fù)數(shù)據(jù)刪除。首先,主節(jié)點的處理器119選擇從節(jié)點之一(s9101)。接下來,主節(jié)點的處理器119對在前步驟中選擇的從節(jié)點指示節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行(s9102)。接下來,從主節(jié)點接收到節(jié)點重復(fù)數(shù)據(jù)刪除執(zhí)行的指示的從節(jié)點(特定從節(jié)點)的處理器119(稱為特定處理器)基于各計算機節(jié)點101內(nèi)的fpt231的信息生成未圖示的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240(s9103)。具體而言,執(zhí)行以下(1)~(5)的處理。(1)fpt231被分散地保持在多個計算機節(jié)點101中,因此特定處理器對其他各計算機節(jié)點101(稱為特定節(jié)點)指示與特定從節(jié)點相關(guān)的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的一部分的生成。(2)特定節(jié)點的處理器119生成與特定從節(jié)點相關(guān)聯(lián)的節(jié)點重復(fù)數(shù)據(jù)刪除的列表。具體而言,特定節(jié)點的處理器119提取出特定節(jié)點內(nèi)的fpt231的行中的、與該行的地址(虛擬卷編號、lba、地址范圍)對應(yīng)的頁映射表215的節(jié)點編號與特定從節(jié)點的節(jié)點編號一致的行。由所提取出的行構(gòu)成的表是與特定從節(jié)點相關(guān)聯(lián)的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的一部分。(3)特定節(jié)點的處理器119將在(2)中生成的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的一部分發(fā)送到特定從節(jié)點。(4)特定處理器通過與上述(2)相同的處理生成與特定從節(jié)點相關(guān)的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的一部分。(5)特定處理器將在上述(1)~(4)的步驟中生成的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的一部分連結(jié)而生成節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240。此外,fpt231和節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的數(shù)據(jù)構(gòu)造相同。接下來,特定處理器選擇一對節(jié)點重復(fù)數(shù)據(jù)刪除候選(s9104)。具體而言,選擇一對節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的行中的、行的“fp”的值相等的行。接著,特定處理器準備重復(fù)候選數(shù)據(jù)(s9105)。具體而言,特定處理器對在s9104中選擇的對中包含的各行,從與各行對應(yīng)的虛擬卷的區(qū)域?qū)⒅貜?fù)候選數(shù)據(jù)的對讀出到高速緩存181。接著,特定處理器執(zhí)行重復(fù)候選數(shù)據(jù)的二進制比較,判定重復(fù)候選數(shù)據(jù)的對的內(nèi)容是否完全一致(s9106)。具體而言,將在s9105中讀出到高速緩存181的重復(fù)候選數(shù)據(jù)的對逐字節(jié)(byte-by-byte)地進行比較,判定重復(fù)候選數(shù)據(jù)的對的內(nèi)容是否完全一致。接下來,在s9107中,如果s9106的判定結(jié)果是肯定的(s9107:是),則特定處理器進入s9108,如果并非如此(s9107:否),則特定處理器進入s9110。接下來,特定處理器將在s9104中選擇的對所對應(yīng)的重復(fù)數(shù)據(jù)(與節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的兩行對應(yīng))的某一個選擇為刪除對象數(shù)據(jù)(s9108)。接下來,特定處理器更新在前步驟中選擇為刪除對象數(shù)據(jù)的數(shù)據(jù)所對應(yīng)的地址映射(s9109)。具體而言,執(zhí)行以下(1)~(4)的處理。(1)基于與在前步驟(s9108)中選擇為刪除對象數(shù)據(jù)的數(shù)據(jù)對應(yīng)的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的行中包含的虛擬卷的地址(虛擬卷編號、lba、地址范圍),確定出應(yīng)更新的重復(fù)數(shù)據(jù)刪除映射表234的映射。(2)以與在前步驟(s9108)中沒有選擇為刪除對象數(shù)據(jù)的數(shù)據(jù)對應(yīng)的節(jié)點重復(fù)數(shù)據(jù)刪除候選列表240的行中包含的地址(虛擬卷編號、lba、地址范圍)作為關(guān)鍵字,檢索重復(fù)數(shù)據(jù)刪除映射表234,并確定出映射目的地的池卷的地址(池卷編號、lba、地址范圍)。(3)將在上述(1)中確定出的映射更新為映射目的地為在上述(2)中確定出的池卷的地址。另外,為了追加從上述(2)中確定出的池卷的地址向上述(1)的虛擬卷的地址映射那樣的逆映射,更新重復(fù)數(shù)據(jù)刪除逆映射表235。(4)與上述(3)中的表的更新相應(yīng)地適當更新池卷區(qū)域量表238的值。接下來,特定處理器判定與所有節(jié)點重復(fù)數(shù)據(jù)刪除候選的對有關(guān)的處理是否已完成,如果判定結(jié)果是肯定的(s9110:是),則進入s9111,如果并非如此(s9110:否),則進入s9104,執(zhí)行與接下來的節(jié)點重復(fù)數(shù)據(jù)刪除候選的對有關(guān)的處理。接下來,主節(jié)點判定是否與所有從節(jié)點有關(guān)的處理已完成,如果判定結(jié)果是肯定的(s9111:是),則結(jié)束節(jié)點重復(fù)數(shù)據(jù)刪除處理,如果并非如此(s9111:否),則進入s9101,選擇接下來的從節(jié)點。以后,對圖13a的s9011~s9012的步驟中的跨節(jié)點重復(fù)數(shù)據(jù)刪除處理、跨節(jié)點重復(fù)數(shù)據(jù)刪除解除處理進行說明,但在這些處理中,使用前述的“數(shù)據(jù)單位”。作為“數(shù)據(jù)單位”能夠使用虛擬組塊或虛擬頁,在以下的說明中,對作為“數(shù)據(jù)單位”使用虛擬組塊的情況進行說明。圖13c和圖13d表示跨節(jié)點重復(fù)數(shù)據(jù)刪除處理的流程圖。本處理通過主節(jié)點及從節(jié)點執(zhí)行。本處理對保存在分布式存儲系統(tǒng)內(nèi)的不同計算機節(jié)點101中的重復(fù)數(shù)據(jù)執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除(站點重復(fù)數(shù)據(jù)刪除、異地重復(fù)數(shù)據(jù)刪除)。在跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判斷中使用的信息包含變量y1、y2、y3中的至少一個。在此,變量y1、y2、y3分別是“通過跨節(jié)點重復(fù)數(shù)據(jù)刪除而產(chǎn)生的伴隨重復(fù)數(shù)據(jù)跨節(jié)點讀取的網(wǎng)絡(luò)負荷的預(yù)測值”、“分布式存儲系統(tǒng)的平均響應(yīng)時間的預(yù)測值”、“分布式存儲系統(tǒng)的平均處理能力的預(yù)測值”。此外,在圖13c和圖13d中,存在主節(jié)點參照保存在主節(jié)點中的各種表的情況、和參照或更新保存在主節(jié)點以外的節(jié)點中的各種表的情況。在前一種情況下,主節(jié)點不需要與其他計算機節(jié)點101通信,而在后一種情況下,主節(jié)點需要向其他計算機節(jié)點101委托表的參照或更新。但是,以下為了簡化記述,將前一種情況和后一種情況均僅記載為“主節(jié)點的處理器119參照(或更新)xx表”。首先,主節(jié)點的處理器119將變量y1的值設(shè)定為0(s9201)。接下來,主節(jié)點的處理器119基于io頻率對數(shù)據(jù)單位按升序進行排序(s9202)。具體而言,生成虛擬組塊負荷頻率表225的復(fù)制,基于io頻率對所復(fù)制的表按升序進行排序。接下來,主節(jié)點的處理器119按照io頻率的升序的順序選擇一個數(shù)據(jù)單位(s9203)。具體而言,從在s9202中排序得到的表按照io頻率的升序的順序選擇一行。將所選擇的數(shù)據(jù)單位稱為特定數(shù)據(jù)單位。接下來,主節(jié)點的處理器119選擇一個包含在特定數(shù)據(jù)單位中的虛擬組塊(s9204)。目前將“數(shù)據(jù)單位”設(shè)為“虛擬組塊”,因此應(yīng)選擇的虛擬組塊是與在s9203中選擇的行對應(yīng)的虛擬組塊本身。將在s9204中選擇的虛擬組塊稱為特定第一虛擬組塊。接下來,主節(jié)點的處理器119判定是否存在具有與特定第一虛擬組塊的fp值相同的fp值的虛擬組塊(s9205)。具體而言,執(zhí)行以下(1)~(3)的處理。(1)主節(jié)點的處理器119通過參照與特定第一虛擬組塊對應(yīng)的重復(fù)數(shù)據(jù)刪除映射表234的fp來確定出特定第一虛擬組塊的數(shù)據(jù)的fp值。將確定出的fp值稱為特定fp值。(2)主節(jié)點的處理器119參照特定fp值的擔當節(jié)點(稱為特定擔當節(jié)點)內(nèi)的fpt231,判定是否存在持有特定fp值的條目(但是,是與對應(yīng)于特定第一虛擬組塊的條目不同的條目)。在此,與特定擔當節(jié)點對應(yīng)的節(jié)點編號使用基于“fp值%n”這樣的計算式而決定的方法等、與圖7a的說明中所用的方法相同的方法。(3)如果上述(2)的判定結(jié)果是肯定的,則判定為s9205的判定結(jié)果是肯定的(s9205:是),并進入s9206,如果上述(2)的判定結(jié)果是否定的,則判定為s9205的判定結(jié)果是否定的(s9205:否),并進入s9216。接下來,主節(jié)點的處理器119選擇一個保存有如下數(shù)據(jù)的虛擬組塊(稱為特定第二虛擬組塊):該數(shù)據(jù)具有與第一虛擬組塊的數(shù)據(jù)的fp值相同的fp值(s9206)。具體而言,執(zhí)行以下(1)~(2)的處理。(1)主節(jié)點的處理器119參照特定fp值的擔當節(jié)點(稱為特定擔當節(jié)點)內(nèi)的fpt231,并確定出具有特定fp值的條目(但是,是與對應(yīng)于特定第一虛擬組塊的條目不同的條目)。(2)從所確定出的條目中選擇一個條目。與所選擇的條目對應(yīng)的虛擬組塊是特定第二虛擬組塊。接下來,主節(jié)點的處理器119判定是否能夠在特定第一虛擬組塊與特定第二虛擬組塊之間執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除(s9207)。具體而言,執(zhí)行以下(1)~(3)的處理。(1)主節(jié)點的處理器119參照重復(fù)數(shù)據(jù)刪除映射表234,確定出與特定第一虛擬組塊對應(yīng)的池卷,接下來參照池卷管理表219,確定出與所確定出的池卷對應(yīng)的計算機節(jié)點101。(2)主節(jié)點的處理器119對特定第二虛擬組塊執(zhí)行與上述(1)相同的處理,確定出與特定第二虛擬組塊所對應(yīng)的池卷對應(yīng)的計算機節(jié)點101。(3)如果在上述(1)中確定出的計算機節(jié)點101和在上述(2)中確定出的計算機節(jié)點101相同,則判定為s9207的判定結(jié)果是肯定的,進入s9208,如果并非如此,則判定為s9207的判定結(jié)果是否定的,并進入s9216。接下來,在說明s9208的步驟之前,對在s9208的步驟中執(zhí)行的、重復(fù)數(shù)據(jù)刪除效果管理表232的更新處理所需的概念進行說明。重復(fù)數(shù)據(jù)刪除效果管理表232如前述那樣在分布式存儲系統(tǒng)中是對具有某個fp的邏輯組塊通過節(jié)點重復(fù)數(shù)據(jù)刪除、站點重復(fù)數(shù)據(jù)刪除、異地重復(fù)數(shù)據(jù)刪除而分別被刪除了多少重復(fù)數(shù)據(jù)進行管理的表。為了進行本表的條目的更新,使用重復(fù)數(shù)據(jù)刪除逆映射表235的逆映射的信息。重復(fù)數(shù)據(jù)刪除逆映射表235的逆映射對一個邏輯組塊(與圖8的數(shù)據(jù)250對應(yīng))對應(yīng)關(guān)聯(lián)一個或多個虛擬組塊(但這是特定邏輯組塊是有效的邏輯組塊的情況)。重復(fù)數(shù)據(jù)刪除逆映射表235中的、關(guān)于有效邏輯組塊的逆映射分為以下兩種的某一種。即,(1)主逆映射、(2)副逆映射這兩種。(1)的主逆映射是對有效的邏輯組塊必然對應(yīng)關(guān)聯(lián)有一個的逆映射,是對基于重復(fù)數(shù)據(jù)刪除(節(jié)點重復(fù)數(shù)據(jù)刪除、站點重復(fù)數(shù)據(jù)刪除、異地重復(fù)數(shù)據(jù)刪除)的數(shù)據(jù)量削減沒有幫助的逆映射。(2)的副逆映射是對有效的邏輯組塊對應(yīng)關(guān)聯(lián)有0個以上的逆映射,是有助于基于重復(fù)數(shù)據(jù)刪除(同上)的數(shù)據(jù)量削減的逆映射。主逆映射是在通過數(shù)據(jù)的寫入而對虛擬組塊分配邏輯組塊時生成的逆映射,副逆映射是在通過重復(fù)數(shù)據(jù)刪除而對一個邏輯組塊對應(yīng)關(guān)聯(lián)多個虛擬組塊時生成的逆映射。但是,不是必須將以寫入為契機生成的逆映射選擇為主逆映射。在有效的邏輯組塊對應(yīng)關(guān)聯(lián)有多個逆映射的情況下,能夠?qū)⑦@些多個逆映射的任意一個逆映射選擇為主逆映射。上述(2)的副逆映射進一步被再分類為3種中的某一種。即,(2-1)節(jié)點副逆映射、(2-2)站點副逆映射、(2-3)異地副逆映射這3種。(2-1)、(2-2)、(2-3)分別是與節(jié)點重復(fù)數(shù)據(jù)刪除、站點重復(fù)數(shù)據(jù)刪除、異地重復(fù)數(shù)據(jù)刪除相關(guān)的副逆映射。在此,將與某個邏輯組塊(稱為特定邏輯組塊)對應(yīng)的計算機節(jié)點101(能夠通過基于與特定邏輯組塊對應(yīng)的池卷編號參照池卷管理表219,來確定出與特定邏輯組塊對應(yīng)的計算機節(jié)點101)稱為第一節(jié)點,將與某個虛擬組塊(稱為特定虛擬組塊)對應(yīng)的計算機節(jié)點101(能夠通過基于與特定虛擬組塊對應(yīng)的虛擬卷編號參照頁映射表215,來確定出與特定虛擬組塊對應(yīng)的計算機節(jié)點101)稱為第二節(jié)點。假設(shè)某個副逆映射(稱為特定副逆映射)將特定邏輯組塊和特定虛擬組塊對應(yīng)關(guān)聯(lián)起來。在第一節(jié)點和第二節(jié)點為相同節(jié)點的情況下,特定副逆映射是節(jié)點副逆映射。另外,在第一節(jié)點和第二節(jié)點是不同的節(jié)點、且第一節(jié)點和第二節(jié)點位于同一站點內(nèi)的情況下,特定副逆映射是站點副逆映射。另外,在第一節(jié)點和第二節(jié)點是不同的節(jié)點、且第一節(jié)點和第二節(jié)點不位于同一站點內(nèi)的情況下,特定副逆映射是異地副逆映射。能夠通過以下方法設(shè)定重復(fù)數(shù)據(jù)刪除效果管理表232的行(稱為特定行)。即,在將與特定行相關(guān)的計算機節(jié)點101稱為特定節(jié)點、將與特定行相關(guān)的fp稱為特定行fp的情況下,重復(fù)數(shù)據(jù)刪除效果管理表232的“節(jié)點重復(fù)數(shù)據(jù)刪除削減數(shù)”、“站點重復(fù)數(shù)據(jù)刪除削減數(shù)”、“異地重復(fù)數(shù)據(jù)刪除削減數(shù)”分別與特定節(jié)點中的、具有與特定行fp相同值的fp的邏輯組塊所對應(yīng)關(guān)聯(lián)的、節(jié)點副逆映射的合計數(shù)、站點副逆映射的合計數(shù)、異地副逆映射的合計數(shù)相等。返回到s9208的步驟的說明。步驟s9208中,主節(jié)點的處理器119判定跨節(jié)點重復(fù)數(shù)據(jù)刪除執(zhí)行判定式。本步驟對應(yīng)于在圖1的“跨節(jié)點重復(fù)數(shù)據(jù)刪除的執(zhí)行的判定方法(2)”中說明的判定方法。具體而言,執(zhí)行以下(1)~(2)的處理。(1)主節(jié)點的處理器119對與特定fp值對應(yīng)的重復(fù)數(shù)據(jù)刪除效果管理表232的行(特定行)進行更新。具體而言,主節(jié)點的處理器119將與分布式存儲系統(tǒng)內(nèi)的特定fp對應(yīng)的邏輯組塊對應(yīng)關(guān)聯(lián)的節(jié)點副逆映射的總數(shù)、站點副逆映射的總數(shù)、異地副逆映射的總數(shù)分別設(shè)定為特定行的“節(jié)點重復(fù)數(shù)據(jù)刪除削減數(shù)”、“站點重復(fù)數(shù)據(jù)刪除削減數(shù)”、“異地重復(fù)數(shù)據(jù)刪除削減數(shù)”。此外,主節(jié)點的處理器119需要適當?shù)貙ζ渌嬎銠C節(jié)點101委托表的參照及更新。(2)在此,將r設(shè)為上述(1)的特定行的“節(jié)點重復(fù)數(shù)據(jù)刪除削減數(shù)”。對以下的跨節(jié)點重復(fù)數(shù)據(jù)刪除執(zhí)行判定式進行評估,如果判定結(jié)果是肯定的,則判定為s9208的判定結(jié)果是肯定的,如果并非如此,則判定為s9208的判定結(jié)果是否定的??绻?jié)點重復(fù)數(shù)據(jù)刪除執(zhí)行判定式:r<“跨節(jié)點重復(fù)數(shù)據(jù)刪除執(zhí)行判定式的閾值”此外,“跨節(jié)點重復(fù)數(shù)據(jù)刪除執(zhí)行判定式的閾值”是預(yù)先決定的值,其信息保存在存儲器118中(未圖示)。接下來,在s9209的步驟中,關(guān)于主節(jié)點的處理器119,如果s9208的判定結(jié)果是肯定的,則進入s9210,如果s9208的判定結(jié)果是否定的,則進入s9216。在s9210~s9215的步驟中,有時執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除(站點重復(fù)數(shù)據(jù)刪除或異地重復(fù)數(shù)據(jù)刪除)。接下來,主節(jié)點的處理器119選擇一個計算機節(jié)點101來作為從節(jié)點(s9210)。將所選擇的計算機節(jié)點101稱為特定從節(jié)點。只要特定從節(jié)點是保存有與特定第一虛擬組塊或特定第二虛擬組塊對應(yīng)的邏輯組塊的計算機節(jié)點101,就能夠削減s9211中的數(shù)據(jù)轉(zhuǎn)送量。接下來,主節(jié)點的處理器119對保存有與特定第一虛擬組塊對應(yīng)的邏輯組塊(稱為特定第一邏輯組塊)的計算機節(jié)點101指示將特定第一邏輯組塊內(nèi)的數(shù)據(jù)向特定從節(jié)點發(fā)送,另外對保存有與特定第二虛擬組塊對應(yīng)的邏輯組塊(稱為特定第二邏輯組塊)的計算機節(jié)點101指示將特定第二邏輯組塊內(nèi)的數(shù)據(jù)向特定從節(jié)點發(fā)送,收到指示的計算機節(jié)點101按照指示發(fā)送數(shù)據(jù)(s9211)。接下來,特定從節(jié)點執(zhí)行二進制比較,將結(jié)果向主節(jié)點發(fā)送(s9212)。具體而言,特定從節(jié)點逐字節(jié)地對特定第一邏輯組塊內(nèi)的數(shù)據(jù)和特定第二邏輯組塊內(nèi)的數(shù)據(jù)進行比較,判定這些數(shù)據(jù)的內(nèi)容是否完全一致。特定從節(jié)點將判定結(jié)果(“一致”或“不一致”)向主節(jié)點發(fā)送。接下來,關(guān)于主節(jié)點的處理器119,如果s9212的判定結(jié)果為“一致”,則進入s9214,如果s9212的判定結(jié)果為“不一致”,則進入s9214(s9213)。接下來,主節(jié)點的處理器119將與io頻率比較小的數(shù)據(jù)單位相關(guān)的數(shù)據(jù)決定為刪除對象數(shù)據(jù)(s9214)。具體而言,主節(jié)點的處理器基于虛擬組塊負荷頻率表225來確定出特定第一虛擬組塊和特定第二虛擬組塊的io頻率,將與io頻率比較小的虛擬組塊對應(yīng)的邏輯組塊決定為刪除對象數(shù)據(jù)。此外,s9214中,也可以基于頁負荷頻率表216來確定出與特定第一虛擬組塊對應(yīng)的虛擬頁和與特定第二虛擬組塊對應(yīng)的虛擬頁的io頻率,將與io頻率比較小的虛擬頁對應(yīng)的邏輯組塊決定為刪除對象數(shù)據(jù)。接下來,主節(jié)點的處理器119對與在s9214中決定為刪除對象數(shù)據(jù)的數(shù)據(jù)對應(yīng)的地址映射進行更新(s9215)。具體方法與s9109相同。另外,s9215中,主節(jié)點的處理器119對關(guān)于與刪除對象數(shù)據(jù)對應(yīng)的虛擬組塊的、虛擬組塊負荷頻率表225的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”設(shè)定無效值。接下來,主節(jié)點的處理器119判定是否沒有未處理的第二虛擬組塊(s9216),如果判定結(jié)果是肯定的(s9216:是),則進入s9217,如果判定結(jié)果是否定的(s9216:否),則進入s9206。接下來,主節(jié)點的處理器119判定是否沒有未處理的第一虛擬組塊(s9217),如果判定結(jié)果是肯定的(s9217:是),則進入s9218,如果判定結(jié)果是否定的(s9217:否),則進入s9204。接下來,主節(jié)點的處理器119更新y1、y2、y3的值(s9218)。具體而言,執(zhí)行以下(1)~(3)的處理。(1)本處理中,更新“在執(zhí)行了跨節(jié)點重復(fù)數(shù)據(jù)刪除的情況下產(chǎn)生的伴隨重復(fù)數(shù)據(jù)跨節(jié)點讀取的網(wǎng)絡(luò)負荷y1”。主節(jié)點的處理器119基于以下的計算式更新y1。計算式:“y1”←“y1”+“δ”本計算式中,“δ”是“與在s9203中選擇的數(shù)據(jù)單位相關(guān)的重復(fù)數(shù)據(jù)跨節(jié)點讀取的io頻率的預(yù)測值”。作為“δ”的值,能夠使用與在s9203中選擇的數(shù)據(jù)單位有關(guān)的、虛擬組塊負荷頻率表225的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”。但是,在虛擬組塊負荷頻率表225的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”為無效值的情況下,作為“δ”的值,能夠使用由虛擬組塊負荷頻率表225管理的、與讀有關(guān)的i/o頻率(訪問頻率)的值。在此,i/o頻率是與在s9203中選擇的數(shù)據(jù)單位有關(guān)的i/o頻率。該情況下,“δ”的值是重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率的近似值。(2)主節(jié)點的處理器119通過以下的計算式來計算y2,并將計算出的值設(shè)定給y2。計算式:“y2”=(σi=1至nwi×ri)+(σi=n+1至mwi×ra)(n<m的情況)“y2”=(σi=1至nwi×ri)(n=m的情況)wi=li÷(σi=1至mli)ri=ra(后述情形(a)的情況)ri=rb(后述情形(b)的情況)ri=rc(后述情形(c)的情況)ra=“向計算機節(jié)點101內(nèi)的數(shù)據(jù)訪問時的標準響應(yīng)時間”rb=“跨過站點內(nèi)的不同計算機節(jié)點101間地訪問數(shù)據(jù)時的標準響應(yīng)時間”rc=“跨過不同站點內(nèi)的計算機節(jié)點101間地訪問數(shù)據(jù)時的標準響應(yīng)時間”在該計算式中,σ是表示計算總和的數(shù)學(xué)符號?!癷”表示在s9202中排序得到的表(稱為特定表)的行編號?!皀”表示特定數(shù)據(jù)單位在特定表中相當于第幾行的編號?!癿”是表示特定表的總行數(shù)的數(shù)字。ri是特定數(shù)據(jù)單位的響應(yīng)時間(平均響應(yīng)時間)。wi是對于特定數(shù)據(jù)單位的響應(yīng)時間的加權(quán)(此外,假設(shè)在wi的計算式的分母為0的情況下,wi的值為0)。li是特定數(shù)據(jù)單位的io頻率。ri及l(fā)i的值通過虛擬組塊負荷頻率表225而確定出。接下來,對“情形(a)~(c)”進行說明。在此,將與特定數(shù)據(jù)單位(在此為虛擬組塊)對應(yīng)的計算機節(jié)點101(通過頁映射表215確定出的計算機節(jié)點101)稱為第一節(jié)點,將與特定表的行編號“i”對應(yīng)的數(shù)據(jù)單位(在此為虛擬組塊)對應(yīng)的邏輯組塊所對應(yīng)的計算機節(jié)點101(通過池卷管理表219而確定出的計算機節(jié)點101)稱為第二節(jié)點。情形(a)是第一節(jié)點和第二節(jié)點相同的情形。情形(b)是第一節(jié)點和第二節(jié)點雖然不同,但第一節(jié)點和第二節(jié)點位于同一站點內(nèi)的情形。情形(c)是第一節(jié)點和第二節(jié)點位于不同站點的情形。ra既可以是預(yù)先設(shè)定的值,也可以使用各io處理(向計算機節(jié)點101內(nèi)的數(shù)據(jù)訪問的io處理)中的響應(yīng)時間的平均值。rb既可以是預(yù)先設(shè)定的值,也可以是各io處理(跨過站點內(nèi)的不同計算機節(jié)點101間地訪問數(shù)據(jù)的io處理)中的響應(yīng)時間的平均值。rc既可以是預(yù)先設(shè)定的值,也可以使用各io處理(跨過不同站點內(nèi)的計算機節(jié)點101間地訪問數(shù)據(jù)的io處理)中的響應(yīng)時間的平均值。(3)主節(jié)點的處理器119通過以下的計算式計算y3,并將計算出的值設(shè)定給y3。此外,以下的計算式內(nèi)的符號與上述(2)的計算式相同。另外,y3的值有時與實際的“分布式存儲系統(tǒng)的平均處理能力”的值不同。此外,也可以基于以下的計算式以外的計算式計算出y3的值。在y3的計算中可以使用各虛擬組塊的io負荷的值、下述s的值、上述ri的值、上述ra的值、上述rb的值、上述rc的值中的任一個或組合。計算式:“y3”=(σi=1至nwi×s÷ri)+(σi=n+1至mwi×s÷ra)(n<m的情況)“y3”=(σi=1至nwi×s÷ri)(n=m的情況)s=“數(shù)據(jù)單位的大小”s9219中,主節(jié)點的處理器119判定是否y1>t1或y2>t2或y3<t3或者是否沒有未處理的數(shù)據(jù)單位。在此,t1、t2、t3是預(yù)先設(shè)定的閾值。這些閾值的值也可以經(jīng)由未圖示計算機節(jié)點101的管理終端而由用戶設(shè)定。此外,主節(jié)點的處理器119也可以判定不等式“y1>t1”、“y2>t2”、“y3<t3”中的任一個或者任意兩個的組合(必須需要判定“是否沒有未處理的數(shù)據(jù)單位”)?;趕9219的判定限定執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)單位,由此能夠?qū)o負荷(“由重復(fù)數(shù)據(jù)跨節(jié)點讀取產(chǎn)生的網(wǎng)絡(luò)負荷”、“平均響應(yīng)時間”或者“平均處理能力”)的影響抑制在一定范圍內(nèi)。s9220中,主節(jié)點的處理器119將s9203中最后選擇的數(shù)據(jù)單位存儲為數(shù)據(jù)單位閾值(與圖1的p對應(yīng))。以上是跨節(jié)點重復(fù)數(shù)據(jù)刪除處理的流程圖的說明。能夠通過跨節(jié)點重復(fù)數(shù)據(jù)刪除而僅對io負荷低的數(shù)據(jù)單位適用跨節(jié)點重復(fù)數(shù)據(jù)刪除。圖13e表示跨節(jié)點重復(fù)數(shù)據(jù)刪除解除處理的流程圖。本處理對于被判定為不應(yīng)進行跨節(jié)點重復(fù)數(shù)據(jù)刪除的虛擬組塊解除跨節(jié)點重復(fù)數(shù)據(jù)刪除。s9301中,主節(jié)點的處理器119按照升序的順序選擇一個數(shù)據(jù)單位閾值以后的數(shù)據(jù)單位。具體而言,主節(jié)點的處理器119按照io頻率的升序的順序選擇在s9202中排序得到的表的行中的、與在s9220中存儲的數(shù)據(jù)單位閾值對應(yīng)的行以后的一行。將所選擇的數(shù)據(jù)單位稱為特定數(shù)據(jù)單位。s9302中,主節(jié)點的處理器119選擇一個包含在特定數(shù)據(jù)單位中的虛擬組塊。由于目前將“數(shù)據(jù)單位”設(shè)為“虛擬組塊”,因此應(yīng)選擇的虛擬組塊是與在s9301中選擇的行對應(yīng)的虛擬組塊本身。將在s9302中選擇的虛擬組塊稱為特定第三虛擬組塊。在s9303中,主節(jié)點的處理器119判定特定第三虛擬組塊是否已跨節(jié)點重復(fù)數(shù)據(jù)刪除完畢。具體而言,首先,主節(jié)點的處理器119將與特定第三虛擬組塊對應(yīng)的計算機節(jié)點101(通過頁映射表215確定出的、與特定第三虛擬組塊對應(yīng)的計算機節(jié)點101)確定為節(jié)點a。接著,主節(jié)點的處理器119將保存有與特定虛擬組塊對應(yīng)的邏輯組塊(稱為特定邏輯組塊)的計算機節(jié)點101確定為節(jié)點b。具體而言,主節(jié)點的處理器119首先通過重復(fù)數(shù)據(jù)刪除映射表234而確定出與特定虛擬組塊對應(yīng)的池卷,接著通過池卷管理表219確定出與所述確定出的池卷對應(yīng)的計算機節(jié)點101,將確定出的計算機節(jié)點101確定為節(jié)點b。接下來,主節(jié)點的處理器119判定是否為節(jié)點a和節(jié)點b不同的計算機節(jié)點101且與特定邏輯組塊對應(yīng)關(guān)聯(lián)的重復(fù)數(shù)據(jù)刪除逆映射的個數(shù)是否為2以上(與特定邏輯組塊對應(yīng)的重復(fù)數(shù)據(jù)刪除逆映射表235的索引數(shù)是否為2以上)。如果判定結(jié)果是肯定的(s9303:是),則進入s9304,如果并非如此(s9303:否),則進入s9306。在s9304中,主節(jié)點的處理器119讀出特定第三虛擬組塊的數(shù)據(jù)。在s9305中,主節(jié)點的處理器119將在s9304讀出的數(shù)據(jù)寫入到特定第三虛擬組塊。寫入的具體處理與圖11的處理相同,因此省略說明。將通過s9304及s9305的步驟對特定第三虛擬組塊的跨節(jié)點重復(fù)數(shù)據(jù)刪除解除。此外,s9304及s9305的步驟也可以代替主節(jié)點,而在與特定第三虛擬組塊對應(yīng)的計算機節(jié)點101(通過頁映射表215而確定出的計算機節(jié)點101)中執(zhí)行。在s9306中,主節(jié)點的處理器119判定是否沒有未處理的第三虛擬組塊。如果沒有未處理的第三虛擬組塊(s9306:是),則進入s9307,如果并非如此(s9306:否),則進入s9302。在s9307中,主節(jié)點的處理器119判定是否沒有未處理的數(shù)據(jù)單位。如果不存在未處理的數(shù)據(jù)單位(s9307:是),則結(jié)束跨節(jié)點重復(fù)數(shù)據(jù)刪除解除處理,如果并非如此(s9307:否),則進入s9301。以上是跨節(jié)點重復(fù)數(shù)據(jù)刪除解除處理的流程圖的說明。能夠通過跨節(jié)點重復(fù)解除排除來對io負荷高的數(shù)據(jù)單位適用跨節(jié)點重復(fù)數(shù)據(jù)刪除解除。由此,能夠提高io頻率高的數(shù)據(jù)單位的io性能。接下來,對本發(fā)明的變形實施方式進行說明。在本變形實施方式中,在圖13a~圖13e中作為數(shù)據(jù)單位代替虛擬組塊而使用虛擬頁。本變形實施方式中的不同點之一是在圖13c的s9202中代替虛擬組塊負荷頻率表225而使用頁負荷頻率表216。能夠在以虛擬組塊單位進行重復(fù)數(shù)據(jù)刪除的同時,以大小比虛擬組塊大的虛擬頁單位管理負荷頻率,由此不需要虛擬組塊負荷頻率表225那樣的虛擬組塊單位的管理信息,能夠削減管理信息。本變形實施方式中的另一不同點在于,作為在s9218中為了更新“y1”所使用的“δ”的值,使用與在s9203中選擇的數(shù)據(jù)單位有關(guān)的、頁負荷頻率表216的“重復(fù)數(shù)據(jù)跨節(jié)點讀取的頻率”。此外,作為該“δ”的值,可以使用與頁負荷頻率表216的讀取有關(guān)的io頻率(訪問頻率)。本變形實施方式中的“δ”的值是“δ”的實際值的近似值,因此基于本變形實施方式中的“δ”的值而計算出的y1的值成為y1的實際值的近似值。使用頁負荷頻率表216的優(yōu)點如前所述。本變形實施方式中的又一不同點在于,s9218中的ri及l(fā)i的值通過頁負荷頻率表216來確定。使用頁負荷頻率表216的優(yōu)點如前所述。通過本公開的重復(fù)數(shù)據(jù)刪除技術(shù),能夠在抑制性能劣化的同時執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,從而能夠?qū)崿F(xiàn)較大的數(shù)據(jù)量削減效果和高性能雙方。另外,能夠避免產(chǎn)生基于網(wǎng)絡(luò)的瓶頸。具體而言,由于在節(jié)點重復(fù)數(shù)據(jù)刪除處理的執(zhí)行后執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除處理,因此能夠按照對性能的影響從小到大的順序進行重復(fù)數(shù)據(jù)刪除,能夠降低基于重復(fù)數(shù)據(jù)刪除處理產(chǎn)生的性能劣化。按照io頻率的順序?qū)?shù)據(jù)單位進行排序,按照升序的順序以對性能的影響收斂在預(yù)定的范圍內(nèi)的方式進行跨節(jié)點重復(fù)數(shù)據(jù)刪除,由此能夠優(yōu)先地對io負荷的影響小的數(shù)據(jù)單位執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,能夠?qū)崿F(xiàn)較大的數(shù)據(jù)量削減效果和高性能雙方。另外,由于在跨節(jié)點重復(fù)數(shù)據(jù)刪除的判定對象的數(shù)據(jù)單位的映射目的地的逆映射數(shù)為預(yù)定的閾值以下的情況下執(zhí)行跨節(jié)點重復(fù)數(shù)據(jù)刪除,因此能夠同時實現(xiàn)較大的數(shù)據(jù)量削減效果和高性能。此外,本發(fā)明不限于上述的實施例,包含各種變形例。例如,上述實施例是為了便于理解地說明本發(fā)明而進行的詳細說明,不必限定于具有所說明的所有構(gòu)成。另外,能夠?qū)⒛骋粚嵤├臉?gòu)成的一部分置換為另一實施例的構(gòu)成,還能夠?qū)δ骋粚嵤├臉?gòu)成加入另一實施例的構(gòu)成。另外,能夠?qū)Ω鲗嵤├臉?gòu)成的一部分進行其它構(gòu)成的追加、刪除、置換。另外,關(guān)于上述各構(gòu)成、功能、處理部等,它們的一部分或全部能夠通過例如集成電路設(shè)計等而由硬件實現(xiàn)。另外,上述的各構(gòu)成、功能等也可以通過處理器解釋并執(zhí)行實現(xiàn)各個功能的程序而由軟件實現(xiàn)。實現(xiàn)各功能的程序、表、文件等的信息能夠放置于存儲器、硬盤、ssd等記錄裝置、或者ic卡、sd卡等記錄介質(zhì)中。另外,控制線和信息線示出了認為是說明上所需的部分,不限于必須示出產(chǎn)品上所有的控制線和信息線。也可以認為實際上幾乎所有的構(gòu)成均是彼此連接的。附圖標記說明101···計算機節(jié)點102···計算機域106···端口111···處理器封裝113···磁盤驅(qū)動118···存儲器119···處理器。當前第1頁12當前第1頁12