TW202411835A - 記憶體系統及記憶體系統之控制方法 - Google Patents

記憶體系統及記憶體系統之控制方法 Download PDF

Info

Publication number
TW202411835A
TW202411835A TW112104601A TW112104601A TW202411835A TW 202411835 A TW202411835 A TW 202411835A TW 112104601 A TW112104601 A TW 112104601A TW 112104601 A TW112104601 A TW 112104601A TW 202411835 A TW202411835 A TW 202411835A
Authority
TW
Taiwan
Prior art keywords
namespace
host
controller
virtual controller
instruction
Prior art date
Application number
TW112104601A
Other languages
English (en)
Inventor
佐佐木達哉
Original Assignee
日商鎧俠股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日商鎧俠股份有限公司 filed Critical 日商鎧俠股份有限公司
Publication of TW202411835A publication Critical patent/TW202411835A/zh

Links

Abstract

本發明提供一種主機能夠經由網路而操作命名空間之記憶體系統及記憶體系統之控制方法。  根據實施方式,控制器根據自第1主機接收到要求連接之第1指令,基於將非揮發性記憶體之記憶區域於邏輯上進行分割而創建之命名空間之裝設情況,創建虛擬控制器,該虛擬控制器用以能夠經由網路而自第1主機受理包含命名空間之創建、刪除或裝卸之操作之要求,且用以使第1主機能夠與其他主機中之命名空間之裝卸無關地獨自裝卸命名空間。控制器於自第1主機接收到與命名空間之操作相關之第2指令之情形時,基於虛擬控制器中之命名空間之裝設情況,執行與第2指令要求之命名空間之操作相關之處理。

Description

記憶體系統及記憶體系統之控制方法
本發明之實施方式係關於一種記憶體系統及記憶體系統之控制方法。
NVMe TM-oF(NVMe over Fabrics)係主機能夠將經由網路而連接之目標作為局部之NVMe元件利用之技術。目標例如為SSD(Solid State Drive,固態驅動器)之類之記憶體系統。
通常,NVMe元件能夠將NVMe元件之記憶區域於邏輯上進行分割,而創建複數個NS(Namespace,命名空間)。藉由於記憶區域創建複數個NS,能夠靈活地使用NVMe元件。例如,能夠將主機所使用之NVMe元件之記憶區域按應用程式進行劃分。又,於利用NVMe-oF將複數個主機連接於1個目標之情形時,能夠將複數個主機所使用之NVMe元件之記憶區域按主機進行劃分。
於主機與NVMe元件直接連接之環境下,主機藉由將作為NS操作用指令之Admin指令發送至所連接之NVMe元件,能夠進行與NS相關之操作,如NS之創建、刪除,或NS之附接(attach)(裝設)、解除附接(detach)(脫卸)等。附接係將NS組裝至存取對象之操作,解除附接係將NS自存取對象卸除之操作。又,NS之刪除係解放被確保用於NS之NVMe元件之一部分記憶區域。
另一方面,於藉由複數個主機能夠利用1個目標之NVMe-oF來將1個目標用作局部之NVMe元件之環境下,主機發送至目標之Admin指令被目標視為不支持之指令,並進行錯誤應答。然而,藉由目標對Admin指令進行錯誤應答,來防止將某主機使用之NS根據其他主機發送至目標之Admin指令刪除或解除附接。
如此,目標與經由網路而連接之主機能夠使用附接狀態之NS,但無法進行與NS相關之操作。
本發明之1個實施方式提供一種能夠實現主機經由網路進行與命名空間相關之操作之記憶體系統及記憶體系統之控制方法。
根據實施方式,記憶體系統具備非揮發性記憶體、及控制器。非揮發性記憶體具有記憶區域。控制器能夠經由網路而與包含第1主機之1個以上之主機進行通信,能夠將非揮發性記憶體之記憶區域於邏輯上進行分割而創建命名空間。控制器根據自第1主機接收到要求連接之第1指令,基於命名空間於非揮發性記憶體之記憶區域中之裝設情況,創建虛擬控制器,該虛擬控制器用以能夠經由網路而自第1主機受理包含命名空間之創建、刪除或裝卸之操作之要求,且用以使第1主機能夠與其他主機中之命名空間之裝卸無關地獨自裝卸命名空間。控制器於自第1主機接收到與命名空間之操作相關之第2指令之情形時,基於虛擬控制器中之命名空間之裝設情況,執行與第2指令要求之命名空間之操作相關之處理。
以下,參照圖式對實施方式進行說明。
(第1實施方式)
首先,對第1實施方式進行說明。
圖1係表示包含第1實施方式之目標(記憶體系統)1之應用NVMe-oF之電腦系統1000之一構成例之圖。
電腦系統1000將包含1個以上之目標1之目標系統100、與包含1個以上之主機2之主機系統200經由網路設備3而連接。目標1與網路設備3以及網路設備3與主機2例如利用IEEE 802.3標準之網路來連接。
目標1係具有利用NVMe-oF標準之協定與主機2進行通信之功能之儲存裝置。主機2係伺服器或PC(Personal Computer,個人電腦)之類之資訊處理裝置。網路設備3例如係開關或路由器。目標1經由網路設備3而接收來自作為外部裝置之主機2之指令。
圖2係表示目標1之一構成例之圖。於圖2中,一併表示了目標1所具有之下述控制器10之一構成例。
目標1具有控制器10及記憶體20。控制器10構成為SoC(System-on-Chip,系統單晶片)等。記憶體20例如為NAND型之快閃記憶體。
控制器10執行包含記憶體20之控制之目標1之整體性控制。上述利用NVMe-oF標準之協定與主機2進行通信之功能藉由控制器10來實現。控制器10能夠根據來自主機2之Admin指令,於記憶體20之記憶區域創建NS,或者刪除既有之NS,或者裝卸NS。然而,先前,經由網路而與目標1連接之主機2無法根據Admin指令來操作NS。第1實施方式之目標1之控制器10具備經由網路而與目標1連接之主機2能夠根據Admin指令來操作NS之構造。以下,對該方面進行詳細敍述。
控制器10具有主機側控制器11、記憶體側控制器12、NS狀態確認部13、及虛擬控制器創建部14。該等部件可藉由控制器10內之處理器執行程式來實現,亦可作為電路等硬體實現。以下,亦將NS狀態確認部13稱為確認部13,亦將虛擬控制器創建部14稱為創建部14。
主機側控制器11例如利用IEEE 802.3標準之格式,經由網路設備3而接收來自主機2之指令或資料。主機側控制器11將所接收到之指令或資料轉換為記憶體側控制器12能夠解釋之格式,向記憶體側控制器12中繼。又,主機側控制器11將自記憶體側控制器12接收到之指令之處理結果按例如IEEE 802.3標準之格式以主機2為目的地向網路設備3發送。
主機側控制器11具有Admin指令直通(pass-through)部111。以下,亦將Admin指令直通部111稱為直通部111。直通部111於經由網路設備3接收之來自主機2之指令為與NS之操作相關之Admin指令之情形時,執行用以將該Admin指令向記憶體側控制器12中繼之處理。如上所述,經由網路設備3接收之來自主機2之Admin指令於先前會被作為不支持之指令進行錯誤應答。再者,來自與目標1直接連接之主機之Admin指令無論直通部111如何,均與先前相同,向記憶體側控制器12中繼。
記憶體側控制器12根據自主機側控制器11接收到之指令,來控制向記憶體20寫入資料或自記憶體20讀出資料。又,於接收到與NS之操作相關之Admin指令之情形時,記憶體側控制器12能夠確保記憶體20之一部分記憶區域且創建NS,或者刪除NS且解放被確保用於該NS之記憶體20之一部分記憶區域,或者裝卸(附接、解除附接)NS。
確認部13基於來自主機側控制器11之指示,確認記憶體側控制器12中之NS之附接狀態。自主機側控制器11向確認部13之指示於要求與目標1進行連接之連接指令自主機2發送之情形時執行。例如,於3個NS「「1」、NS「2」、NS「3」於記憶體20之記憶區域創建,其中2個NS「1」、NS「2」處於附接狀態之情形時,確認部13確認3個NS「1」、NS「2」、NS「3」之中之2個NS「1」、NS「2」處於附接狀態。確認部13將該確認結果通知給創建部14。
創建部14創建已發送連接指令之主機2用虛擬控制器11A(參照圖3)。利用創建部14創建虛擬控制器11A亦係基於連接指令接收時來自主機側控制器11之指示來執行。創建部14基於來自確認部13之通知,創建反映記憶體側控制器12中之NS之附接狀態之虛擬控制器11A。例如,創建3個NS「1」、NS「2」、NS「3」之中之2個NS「1」、NS「2」處於附接狀態之虛擬控制器11A。創建部14將虛擬控制器11A之創建已完成之情況通知給主機側控制器11。
創建部14具有NS附接部141。NS附接部141基於主機側控制器11之指示,執行虛擬控制器11A中之NS之附接/解除附接。關於主機側控制器11對該NS附接部141發送指示之時序將於下文敍述。
當完成利用創建部14創建虛擬控制器11A時,主機側控制器11經由網路設備3而對主機2應答連接完成。於連接完成後,主機側控制器11並行地管理虛擬控制器11A中之NS之附接狀態、記憶體側控制器12中之NS之附接狀態。主機側控制器11基於該管理,根據主機2發送之指令,控制對記憶體20之存取。
圖3係表示第1實施方式之目標1中創建之虛擬控制器11A之一例之圖。
此處,表示於記憶體20之記憶區域,創建2個NS21「A」、NS21「B」,且這2個NS21於記憶體側控制器12中處於附接狀態之例子。記憶體側控制器12將NS21「A」識別為識別碼NSID「1」,將NS21「B」識別為識別碼NSID2。
又,此處,以於虛擬控制器11A中,NS21「A」、NS21「B」這兩者亦處於附接狀態之情況為例進行表示。即,圖3所示之虛擬控制器11A之狀態為根據自主機2接收連接指令而創建之虛擬控制器11A之狀態。於主機2中,亦將NS21「A」識別為「1」,將NS21「B」識別為「2」。於圖3中,虛擬控制器11A之框內所示之識別碼NSID「1」、「2」為主機2用於識別NS21之識別碼。於主機2發送以NS21「A」為對象之指令之情形時,使用識別碼NSID「1」。藉此,例如於將該指令向記憶體側控制器12中繼時,藉由記憶體側控制器12來進行以NS21「A」為對象之處理。
此處,假設主機2發送要求NS21「A」解除附接之Admin指令時,主機側控制器11判定於該主機2以外之其他主機2用之虛擬控制器11A中NS21「A」是否處於附接狀態。當存在使NS21「A」為附接狀態之其他虛擬控制器11A時,主機側控制器11對NS附接部141傳送自已發送Admin指令之主機2用之虛擬控制器11A解除附接NS21「A」之指示,並向主機2應答NS21「A」之解除附接完成。因此,於該情形時,Admin指令沒有利用直通部111移交給記憶體側控制器12,於記憶體側控制器12中NS21「A」仍然保持著附接狀態。換言之,僅於已發送Admin指令之主機2用之虛擬控制器11A中,進行NS21「A」之解除附接。
另一方面,當沒有使NS21「A」成為附接狀態之其他虛擬控制器11A時,主機側控制器11首先利用直通部111向記憶體側控制器12移交要求解除附接之Admin指令。記憶體側控制器12根據該Admin指令,執行NS21「A」之解除附接之處理。於自記憶體側控制器12被通知NS21「A」之解除附接完成時,主機側控制器11對NS附接部141傳送自已發送Admin指令之主機2用之虛擬控制器11A解除附接NS21「A」之指示,並且向主機2應答NS21「A」之解除附接完成。於自記憶體側控制器12被通知NS21「A」之解除附接失敗之情形時,主機側控制器11不對NS附接部141傳送解除附接NS21「A」之指示,而向主機2應答NS21「A」之解除附接失敗。再者,與下述附接之情況不同,於解除附接之情形時,亦可無論記憶體側控制器12中之解除附接是否成功,均進行虛擬控制器11A中之解除附接。然而,自目標1之管理上來說,於記憶體側控制器12中之解除附接之處理失敗之情形時,較佳為將其結果通知給指令發送源之主機2。此處,記憶體側控制器12中解除附接之處理失敗亦稱為解除附接之處理錯誤。
又,於NS21「A」之解除附接後,主機2發送要求NS21「A」之附接之Admin指令。於該情形時,主機側控制器11亦判定是否存在使NS21「A」成為附接狀態之其他虛擬控制器11A。當存在使NS21「A」成為附接狀態之其他虛擬控制器11A時,於記憶體側控制器12中,NS21「A」亦處於附接狀態。主機側控制器11對NS附接部141傳送向已發送Admin指令之主機2用之虛擬控制器11A附接NS21「A」之指示,並向主機2應答NS21「A」之附接完成。於該情形時,主機側控制器11沒有利用直通部111將Admin指令移交給記憶體側控制器12。
另一方面,當不存在使NS21「A」成為附接狀態之其他虛擬控制器11A時,主機側控制器11首先利用直通部111向記憶體側控制器12移交要求附接之Admin指令。記憶體側控制器12根據該Admin指令,執行NS21「A」之附接之處理。於自記憶體側控制器12被通知NS21「A」之附接完成時,主機側控制器11對NS附接部141傳送向已發送Admin指令之主機2用之虛擬控制器11A附接NS21「A」之指示,並且向主機2應答NS21「A」之附接完成。於自記憶體側控制器12被通知NS21「A」之附接失敗之情形時,主機側控制器11不對NS附接部141傳送附接NS21「A」之指示,而向主機2應答NS21「A」之附接失敗。虛擬控制器11A中之NS附接,其前提係於記憶體側控制器12中該NS亦附接。因此,於記憶體側控制器12中之NS附接失敗之情形時,必然會向主機2進行附接失敗之應答。此處,亦將附接失敗之應答稱為錯誤應答。
接下來,主機2發送要求刪除NS21「A」之Admin指令。於該情形時,主機側控制器11亦判定是否存在使NS21「A」成為附接狀態之其他虛擬控制器11A。當存在使NS21「A」成為附接狀態之其他虛擬控制器11A時,由於無法進行NS21「A」之刪除,故而主機側控制器11向主機2應答錯誤。於該情形時,主機側控制器11沒有利用直通部111向記憶體側控制器12移交Admin指令。當不存在使NS21「A」成為附接狀態之其他虛擬控制器11A時,主機側控制器11利用直通部111向記憶體側控制器12移交要求刪除之Admin指令。記憶體側控制器12根據該Admin指令,執行NS21「A」之刪除之處理。於自記憶體側控制器12被通知NS21「A」之刪除完成時,主機側控制器11向主機2應答NS21「A」之刪除完成。此時,若於已發送Admin指令之主機2用之虛擬控制器11A中NS21「A」為附接狀態,則主機側控制器11會於該主機2用之虛擬控制器11A中解除附接NS21「A」。於自記憶體側控制器12被通知NS21「A」之刪除失敗之情形時,主機側控制器11向主機2應答NS21「A」之刪除失敗。
再者,若當接收要求刪除NS21「A」之Admin指令時,於已發送該Admin指令之主機2用之虛擬控制器11A中NS21「A」正在附接中,則主機側控制器11亦可向主機2應答NS21「A」之刪除失敗。
又,主機2例如發送要求創建NS21「C」之Admin指令,作為該時間點不存在之新NS。此時,此後將要創建之NS21「C」於其他虛擬控制器11A中亦不附接,故而主機側控制器11實時地利用直通部111向記憶體側控制器12移交要求創建新的NS21之Admin指令。記憶體側控制器12根據該Admin指令,執行新的NS21之創建之處理。於自記憶體側控制器12通知創建完成,即表明創建了新的NS即NS21「C」時,主機側控制器11向主機2應答NS21「C」之創建完成。於通知NS21「C」之創建失敗之情形時,主機側控制器11向主機2應答NS21「C」之創建失敗。
如此,第1實施方式之目標1針對根據連接指令要求與目標1進行連接之每個主機2創建虛擬控制器11A,管理各虛擬控制器11A上之NS之附接狀態,藉此,經由網路而連接之主機2能夠按照Admin指令來操作NS。
圖4係表示第1實施方式之目標1中之連接指令接收時之動作順序之流程圖。
於接收到連接指令之情形時,確認部13確認記憶體側控制器12中之NS之附接狀態(S101)。創建部14創建自確認部13通知之與記憶體側控制器12中之NS之附接狀態一致之虛擬控制器11A(S102)。
主機側控制器11於虛擬控制器11A創建之後,創建與主機2之連接完成之應答(S103),將該創建之應答向主機2發送(S104)。
圖5係表示第1實施方式之目標1中之NS創建指令接收時之動作順序之流程圖。
主機側控制器11於自主機2接收到之Admin指令為NS創建指令之情形時,利用直通部111,向記憶體側控制器12實時地中繼(S201)。主機側控制器11接收來自記憶體側控制器12之應答(S202),向主機2發送該接收到之應答(S203)。
圖6係表示第1實施方式之目標1中之NS刪除指令接收時之動作順序之流程圖。
主機側控制器11判定是否存在使利用NS刪除指令(Admin指令)指定之NS成為附接狀態之其他虛擬控制器11A(S301)。所謂其他虛擬控制器11A,係指為了發送NS刪除指令之主機2以外之主機2用而創建之虛擬控制器11A。
當不存在使對象NS成為附接狀態之其他虛擬控制器11A時(S301:否),主機側控制器11將所接收到之NS刪除指令利用直通部111向記憶體側控制器12中繼(S302)。然後,主機側控制器11向主機2發送自記憶體側控制器12接收到之應答(S303)。
另一方面,當存在使對象NS成為附接狀態之其他虛擬控制器11A時(S301:是),主機側控制器11不利用直通部111將NS刪除指令向記憶體側控制器12中繼,向主機2發送錯誤應答(S303)。
圖7係表示第1實施方式之目標1中之NS附接指令或NS解除附接指令接收時之動作順序之流程圖。
主機側控制器11判定是否存在使利用NS附接指令或NS解除附接指令(Admin指令)指定之NS成為附接狀態之其他虛擬控制器11A(S401)。
當不存在使對象NS成為附接狀態之其他虛擬控制器11A時(S401:否),主機側控制器11將所接收到之NS附接指令或NS解除附接指令利用直通部111向記憶體側控制器12中繼(S402)。主機側控制器11判定來自記憶體側控制器12之應答是否表示成功(S403)。
當來自記憶體側控制器12之應答表示成功時(S403:是),主機側控制器11利用NS附接部141,於發送NS附接指令或NS解除附接指令之主機2用之虛擬控制器11A中附接或解除附接對象NS(S404)。然後,主機側控制器11向主機2發送NS21之附接完成或解除附接完成之應答(S405)。
另一方面,當來自記憶體側控制器12之應答表示失敗時(S403:否),主機側控制器11不進行虛擬控制器11A中之NS之附接或解除附接,而向主機2發送NS之附接失敗或解除附接失敗之應答(S405)。
又,當存在使對象NS成為附接狀態之其他虛擬控制器11A時(S401:是),主機側控制器11不進行向記憶體側控制器12之指令中繼,而利用NS附接部141進行虛擬控制器11A中之NS之附接或解除附接(S404),向主機2發送NS之附接完成或解除附接完成之應答(S405)。
如以上所述,於第1實施方式之目標1中,主機2能夠經由網路來操作NS。
(第2實施方式)
接下來,對第2實施方式進行說明。圖8係表示第2實施方式之目標1a中之控制器10a之一構成例之圖。
第2實施方式之控制器10a與第1實施方式之控制器10進行比較,進而具有虛擬控制器/NS狀態管理部15。以下,亦將虛擬控制器/NS狀態管理部15稱為管理部15。管理部15記憶附接於虛擬控制器11A中之NS之資訊(NS管理資訊)。管理部15具有NSID轉換部151,上述NSID轉換部151基於NS管理資訊,轉換NSID。
於第1實施方式之說明中所參照之圖3中,表示了記憶體側控制器12中之NS之附接狀態、與虛擬控制器11A中之NS之附接狀態一致之情況。於NVMe-oF中,由於複數個主機2能夠連接於同一個目標1a,故而有於記憶體側控制器12中之NS之附接狀態、與虛擬控制器11A中之NS之附接狀態之間產生矛盾之可能性。圖9係表示於記憶體側控制器12中之NS之附接狀態、與虛擬控制器11A中之NS之附接狀態之間產生矛盾之一例之圖。
於圖9中,表示了於記憶體20之記憶區域創建3個NS21「A」、NS21「B」、NS21「C」之情況。這3個NS21全部於記憶體側控制器12中處於附接狀態。又,記憶體側控制器12將NS21「A」識別為識別資訊NSID1,將NS21「B」識別為識別資訊NSID2,將NS21「C」識別為識別資訊NSID3。
另一方面,於主機[1]2用之虛擬控制器[1]11A中,附接有與識別資訊NSID1對應之NS21「A」、與識別資訊NSID2對應之NS21「B、之2個NS21,於主機[2]2用之虛擬控制器[2]11A中,附接有與識別資訊NSID1對應之NS21「B」,與識別資訊NSID2對應之NS21「C」之2個NS21。該狀態例如可根據分別來自主機[1]2及主機[2]2之連接指令及解除附接指令之接收來產生。具體而言,首先,隨著來自各者之連接指令之接收,主機[1]2用及主機[2]2用之虛擬控制器[1]、[2]11A以與記憶體側控制器12中之NS之附接狀態一致之狀態被創建。然後,於接收來自主機[1]2之NS21「C」之解除附接指令,接收來自主機[2]2之NS21「A」之解除附接指令之情形時,可產生圖9之狀態。於自主機[1]2發送NS21「C」之解除附接指令時,若主機[2]2用之虛擬控制器[2]11A附接該NS21「C」,則僅於主機[1]2用之虛擬控制器[1]11A中進行NS21「C」之解除附接。同樣地,於自主機[2]2發送NS21「A」之解除附接指令時,若主機[1]2用之虛擬控制器[1]11A附接該NS21「A」,則僅於主機[2]2用之虛擬控制器[2]11A中進行NS21「A」之解除附接。
此處,主機[1]2及主機[2]2對處於附接狀態之各NS21,以升序且無缺號地酌情分配1以上之整數之識別碼NSID。因此,主機[2]2於解除附接NS21「A」之後,將NS21「B」識別為識別碼NSID1,將NS21「C」識別為識別碼NSID2。於該情形時,若主機[2]2將以NS21「B」為對象之指令使用識別碼NSID1來發送,則於將該指令自主機側控制器11中繼之記憶體側控制器12中,主機[2]2意料之外之NS21「A」成為指令之對象。
於第2實施方式之目標1a中,控制器10a進而具備包含NSID轉換部151之管理部15。藉此,即便於記憶體側控制器12上之NS21之附接狀態、與虛擬控制器11A中之NS21之附接狀態之間產生矛盾,亦可防止主機2意料之外之NS21成為指令之對象。以下,對該方面進行詳細敍述。
圖10係表示管理部15所記憶之NS管理資訊之一例之圖。
如圖10所示,於NS管理資訊中,針對每個虛擬控制器11A,對應之主機2、於該虛擬控制器11A中附接之狀態之NS21、附接之各NS之虛擬控制器11A中之識別碼NSID及記憶體側控制器12中之識別碼NSID建立了關聯。管理部15於目標1a處於圖9所示之狀態時,記憶包含圖10所示之內容之NS管理資訊。
具體而言,管理部15於NS管理資訊中記憶:關於虛擬控制器[1]11A為主機[1]2用;附接有NS21「A」、NS21「B」;NS21「A」之虛擬控制器11A中之識別碼NSID為「1」且記憶體側控制器12中之識別碼NSID為「1」;NS21「B」之虛擬控制器11A中之識別碼NSID為「2」且記憶體側控制器12中之識別碼NSID為「2」。
又,管理部15於NS管理資訊中記憶:關於虛擬控制器[2]11A為主機[2]2用;附接有NS21「B」、NS21「C」;NS21「A」之虛擬控制器11A中之識別碼NSID為「1」且記憶體側控制器12中之識別碼NSID為「2」;NS21「B「之虛擬控制器11A中之識別碼NSID為「2」且記憶體側控制器12中之識別碼NSID為「3」。
主機側控制器11於將自主機2接收到之指令向記憶體側控制器12中繼之前,將指令中所包含之NS21之識別碼NSID之轉換指示給NSID轉換部151。NSID轉換部151基於管理部15中所記憶之NS管理資訊,將指令中所包含之NS21之識別碼NSID視需要轉換。例如,於主機[2]2發送之指令包含識別碼NSID1之情形時,NSID轉換部151將該識別碼NSID自「1」轉換為「2」。主機側控制器11將包含轉換後之NS21之識別碼NSID2之指令向記憶體側控制器12中繼。
藉此,記憶體側控制器12利用識別碼NSID2來識別NS21「B」,另一方面,即便主機[2]2使用識別碼NSID1發送指定NS21「B」之指令,於記憶體側控制器12中,主機[2]2意料之中之NS21「B」亦成為指令之對象。
圖11係表示第2實施方式之目標1a中之連接指令接收時之動作順序之流程圖。圖11所示之S501、S502、S504、S505係分別與圖4所示之S101~104實質上相同之處理。
於接收到連接指令之情形時,確認部13確認記憶體側控制器12中之NS之附接狀態(S501)。創建部14創建自確認部13通知之與記憶體側控制器12中之NS之附接狀態一致之虛擬控制器11A(S502)。管理部15登錄所創建之虛擬控制器11A之NS管理資訊(S503)。
主機側控制器11於創建虛擬控制器11A,又登錄該創建之虛擬控制器11A之NS管理資訊之後,創建與主機2之連接完成之應答(S504),向主機2發送該創建之應答(S505)。
圖12係表示第2實施方式之目標1a中之要求向記憶體20寫入資料或自記憶體20讀出資料之I/O指令接收時之動作順序之流程圖。
主機側控制器11利用NSID轉換部151,將指令中所包含之NS21之識別碼NSID向記憶體側控制器12中之識別碼NSID轉換(S601)。主機側控制器11將包含所轉換之NS21之識別碼NSID之指令向記憶體側控制器12中繼(S602)。記憶體側控制器12執行與該指令相關之處理。
主機側控制器11接收來自記憶體側控制器12之應答(S603),利用NSID轉換部151,此次將該應答中所包含之NS21之識別碼NSID向虛擬控制器11A中之識別碼NSID轉換(S604)。主機側控制器11向主機2發送包含所轉換之NS21之識別碼NSID之應答(S605)。
圖13係表示第2實施方式之目標1a中之NS附接指令接收時之動作順序之流程圖。圖13所示之S701~S704、S706係分別與圖4所示之S401~405實質上相同之處理。
主機側控制器11判定是否存在使利用NS附接指令(Admin指令)指定之NS成為附接狀態之其他虛擬控制器11A(S701)。
當不存在使對象NS成為附接狀態之其他虛擬控制器11A時(S701:否),主機側控制器11將所接收到之NS附接指令利用直通部111向記憶體側控制器12中繼(S702)。主機側控制器11判定來自記憶體側控制器12之應答是否表示成功(S703)。
當來自記憶體側控制器12之應答表示成功時(S703:是),主機側控制器11利用NS附接部141,於已發送NS附接指令之主機2用之虛擬控制器11A中附接對象NS21(S704)。管理部15隨著NS21之附接,更新該主機2用之虛擬控制器11A之NS管理資訊(S705)。然後,主機側控制器11向主機2發送NS21之附接完成之應答(S706)。
另一方面,當來自記憶體側控制器12之應答表示失敗時(S703:否),主機側控制器11不進行虛擬控制器11A中之NS之附接,而向主機2發送NS之附接失敗之應答(S706)。
又,當存在使對象NS成為附接狀態之其他虛擬控制器11A時(S701:是),主機側控制器11不進行向記憶體側控制器12之指令中繼,而利用NS附接部141,進行虛擬控制器11A中之NS之附接(S704)。管理部15隨著NS21之附接,更新對象虛擬控制器11A之NS管理資訊(S705)。主機側控制器11向主機2發送NS21之附接完成之應答(S706)。
圖14係表示第2實施方式之目標1a中之NS解除附接指令接收時之動作順序之流程圖。圖14所示之S803~S805係分別與圖4所示之S401、S402、S405實質上相同之處理。
主機側控制器11利用NS附接部141,於已發送NS解除附接指令之主機2用之虛擬控制器11A中解除附接對象NS21(S801)。管理部15隨著NS21之解除附接,更新對象虛擬控制器11A之NS管理資訊(S802)。
接著,主機側控制器11判定是否存在使對象NS成為附接狀態之其他虛擬控制器11A(S803)。當不存在使對象NS成為附接狀態之其他虛擬控制器11A時(S803:否),主機側控制器11將所接收到之NS解除附接指令利用直通部111向記憶體側控制器12中繼(S804)。主機側控制器11向主機2發送來自記憶體側控制器12之應答(S805)。
當存在使對象NS成為附接狀態之其他虛擬控制器11A時(S803:是),主機側控制器11不進行向記憶體側控制器12之指令中繼,而向主機2發送NS21之解除附接完成之應答(S805)。
以上,於第2實施方式之目標1a中,進而,即便係於記憶體側控制器12中之NS之附接狀態、與虛擬控制器11A中之NS之附接狀態之間產生矛盾之情形時,亦能夠沒有問題地執行主機2所要求之NS之操作。
(第3實施方式)
接下來,對第3實施方式進行說明。圖15係表示第3實施方式之目標1b中之控制器10b之一構成例之圖。
第3實施方式之控制器10b與第2實施方式之控制器10a進行比較,管理部15進而具有NS管理資訊提供部152。NS管理資訊提供部152係為了將由管理部15記憶之NS管理資訊向主機2提供而設置。
例如,將供應商能夠獨自定義用途之複數個NVMe指令之中之1個預先分配以用於獲取NS管理資訊。主機側控制器11於自主機2接收到該供應商固有之NVMe指令之後,對NS管理資訊提供部152要求提供NS管理資訊。主機側控制器11將自NS管理資訊提供部152提供之NS管理資訊向主機2發送。再者,NS管理資訊之獲取亦可使用Redfish等儲存管理之API或Swordfish等儲存設定用處理。
第3實施方式之目標1b構成為能夠對主機2提供NS管理資訊。藉由主機2自目標1b獲取NS管理資訊,主機2例如能夠識別哪個NS21由哪個主機2使用。因此,能夠期待防止將NS21按主機2分開使用時之誤存取或削減維護成本等效果。
(第4實施方式)
接下來,對第4實施方式進行說明。圖16係表示第4實施方式之目標1c中之控制器10c之一構成例之圖。
第4實施方式之控制器10c與第2實施方式之控制器10a進行比較,管理部15進而具有NS管理資訊保存部153。NS管理資訊保存部153係為了將由管理部15記憶之NS管理資訊保存於記憶體20中而設置。
例如,將供應商能夠獨自定義用途之複數個NVMe指令之中之1個預先分配以用於保存NS管理資訊。主機側控制器11於自主機2接收該供應商固有之NVMe指令之後,對NS管理資訊保存部153要求NS管理資訊向記憶體20之保存。再者,NS管理資訊之保存亦可使用Redfish等儲存管理之API或Swordfish等儲存設定用處理。又,較佳為之係,要求保存NS管理資訊之NVMe指令能夠利用參數等,保存僅與已發送該指令之主機2相關之NS管理資訊,或者保存與包含該主機2在內之所有主機2相關之NS管理資訊。
第4實施方式之目標1c若於連接指令之接收時,與已發送指令之主機2相關之NS管理資訊保存於記憶體20中,則就不以與記憶體側控制器12中之NS21之附接狀態一致之方式創建該主機2用之虛擬控制器11A。第4實施方式之目標1c以再現由保存於記憶體20中之NS管理資訊所示之NS21之附接狀態之方式創建該主機2用之虛擬控制器11A,來代替如此之虛擬控制器11A之創建。
藉此,例如於因維護或故障排除而將主機2與目標1c再連接之情形時,即便不自主機2重新進行NS操作,亦能夠再現切斷時之NS21之附接狀態。然後,隨之能夠期待削減維護成本或停工時間等效果。
圖17係表示第4實施方式之目標1c中之接收到NS管理資訊之保存要求時之動作順序之流程圖。
主機側控制器11例如藉由供應商固有之NVMe指令接收到NS管理資訊之保存要求時,判定保存對象是否為所有主機2之NS管理資訊(S901)。當保存對象為所有主機2之NS管理資訊時(S901:是),主機側控制器11利用NS管理資訊保存部153,將所有主機2之NS管理資訊保存於記憶體20中(S902),向主機2發送NS管理資訊保存完成之應答(S904)。另一方面,當保存對象並非所有主機2之NS管理資訊時(S901:否),主機側控制器11利用NS管理資訊保存部153,僅將要求源之主機2之NS管理資訊保存於記憶體20中(S903),向主機2發送NS管理資訊保存完成之應答(S904)。
圖18係表示第4實施方式之目標1c中之連接指令接收時之動作順序之流程圖。
於接收到連接指令之情形時,主機側控制器11將NS管理資訊自記憶體20讀出(S1001)。主機側控制器11參照所讀出之NS管理資訊,判定發送連接指令之主機2(對象主機2)之NS管理資訊是否保存於記憶體20中(S1002)。
於保存有對象主機2之NS管理資訊之情形時(S1002:是),創建部14基於自記憶體20讀出之NS管理資訊,創建將於上次切斷時附接之NS21附接之虛擬控制器11A(S1003)。管理部15登錄所創建之虛擬控制器11A之NS管理資訊(S1007)。主機側控制器11向主機2發送連接完成之應答(S1006)。
另一方面,於未保存對象主機2之NS管理資訊之情形時(S1002:否),確認部13確認記憶體側控制器12中之NS之附接狀態(S1004)。創建部14創建自確認部13通知之與記憶體側控制器12中之NS之附接狀態一致之虛擬控制器11A(S1005)。管理部15登錄所創建之虛擬控制器11A之NS管理資訊(S1007)。主機側控制器11向主機2發送與主機2之連接完成之應答(S1006)。
第4實施方式之目標1c藉由於記憶體20中保存NS管理資訊,能夠於再連接時再現切斷時之NS21之連接狀態,故而能夠期待成本降低或停工時間之效果。
對本發明之幾個實施方式進行了說明,但該等實施方式係作為示例而提出者,並不意圖限定發明之範圍。該等新穎之實施方式能夠以其他各種方式實施,能夠於不脫離發明主旨之範圍內,進行各種省略、替換、變更。該等實施方式或其變化包含於發明之範圍或主旨中,並且包含於申請專利範圍中所記載之發明及其均等之範圍中。  [相關申請案]
本申請案享有以日本專利申請案2022-140780號(申請日:2022年9月5日)為基礎申請案之優先權。本申請案藉由參照該基礎申請案而包含基礎申請案之所有內容。
1:目標 1a:目標 1b:目標 1c:目標 2:主機 3:網路設備 10:控制器 10a:控制器 10b:控制器 10c:控制器 11:主機側控制器 11A:虛擬控制器 12:記憶體側控制器 13:NS狀態確認部 14:虛擬控制器創建部 15:虛擬控制器/NS狀態管理部 20:記憶體 21:NS 100:目標系統 111:Admin指令直通部 141:NS附接部 151:NSID轉換部 152:NS管理資訊提供部 153:NS管理資訊保存部 200:主機系統 1000:電腦系統
圖1係表示包含第1實施方式之目標(記憶體系統)之應用NVMe-oF之電腦系統之一構成例之圖。  圖2係表示第1實施方式之目標之一構成例之圖。  圖3係表示於第1實施方式之目標中創建之虛擬控制器之一例之圖。  圖4係表示第1實施方式之目標中之連接指令接收時之動作順序之流程圖。  圖5係表示第1實施方式之目標中之NS創建指令接收時之動作順序之流程圖。  圖6係表示第1實施方式之目標中之NS刪除指令接收時之動作順序之流程圖。  圖7係表示第1實施方式之目標中之NS附接/解除附接指令接收時之動作順序之流程圖。  圖8係表示第2實施方式之目標中之控制器之一構成例之圖。  圖9係表示第2實施方式之目標中之記憶體側控制器及虛擬控制器中之NS之附接狀態之一例之圖。  圖10係表示第2實施方式之目標所記憶之NS管理資訊之一例之圖。  圖11係表示第2實施方式之目標中之連接指令接收時之動作順序之流程圖。  圖12係表示第2實施方式之目標中之I/O(Input/Output,輸入/輸出)指令接收時之動作順序之流程圖。  圖13係表示第2實施方式之目標中之NS附接指令接收時之動作順序之流程圖。  圖14係表示第2實施方式之目標中之NS解除附接指令接收時之動作順序之流程圖。  圖15係表示第3實施方式之目標中之控制器之一構成例之圖。  圖16係表示第4實施方式之目標中之控制器之一構成例之圖。  圖17係表示第4實施方式之目標中之NS管理資訊之保存要求接收時之動作順序之流程圖。  圖18係表示第4實施方式之目標中之連接指令接收時之動作順序之流程圖。
1:目標
10:控制器
11:主機側控制器
12:記憶體側控制器
13:NS狀態確認部
14:虛擬控制器創建部
20:記憶體
111:Admin指令直通部
141:NS附接部

Claims (11)

  1. 一種記憶體系統,其具備:  非揮發性記憶體,其具備記憶區域;及  控制器,其能夠經由網路而與包含第1主機在內之1個以上之主機進行通信,且能夠將上述非揮發性記憶體之上述記憶區域於邏輯上進行分割而創建命名空間;  上述控制器係  根據自上述第1主機接收到要求連接之第1指令,基於上述命名空間對於上述非揮發性記憶體之上述記憶區域中之裝設情況,創建虛擬控制器,該虛擬控制器用以能夠經由上述網路而自上述第1主機受理包含上述命名空間之創建、刪除或裝卸之操作之要求,且用以使第1主機能夠與其他主機中之上述命名空間之裝卸無關地獨自裝卸命名空間,  於自上述第1主機接收到與上述命名空間之操作相關之第2指令之情形時,基於上述虛擬控制器中之命名空間之裝設情況,執行與上述第2指令要求之上述命名空間之操作相關之處理。
  2. 如請求項1之記憶體系統,其中  上述控制器係  於自上述第1主機接收到上述第1指令之情形時,為了上述第1主機用而創建第1虛擬控制器,  於自第2主機接收到上述第1指令之情形時,為了上述第2主機用而創建第2虛擬控制器,  於自上述第1主機接收到要求裝設或脫卸上述命名空間作為上述命名空間之上述操作之上述第2指令之情形時,將上述第2指令指定之上述命名空間於上述第1虛擬控制器中裝設或脫卸,  於自上述第2主機接收到要求裝設或脫卸上述命名空間作為上述命名空間之上述操作之上述第2指令之情形時,將上述第2指令指定之上述命名空間於上述第2虛擬控制器中裝設或脫卸,  管理上述非揮發性記憶體中創建之上述命名空間之第1識別碼、與於上述第1虛擬控制器中處於裝設狀態之上述命名空間之第2識別碼之對應關係,且管理上述第1識別碼、與於上述第2虛擬控制器中處於裝設狀態之上述命名空間之第3識別碼之對應關係,  於自上述第1主機接收到由上述第2識別碼指定上述命名空間且要求向上述命名空間進行存取之第3指令之情形時,將上述第2識別碼轉換為上述第1識別碼,對由上述第1識別碼所示之上述命名空間執行與上述第3指令要求之存取相關之處理,  於自上述第2主機接收到由上述第3識別碼指定上述命名空間之上述第3指令之情形時,將上述第3識別碼轉換為上述第1識別碼,對由上述第1識別碼所示之上述命名空間執行與上述第3指令要求之存取相關之處理。
  3. 如請求項2之記憶體系統,其中  上述控制器係  於第1命名空間於包含上述第1虛擬控制器在內之任一個虛擬控制器中均未裝設之狀態下,自上述第1主機接收到要求裝設上述第1命名空間作為上述第1命名空間之上述操作之上述第2指令之情形時,於上述非揮發性記憶體中創建上述第1命名空間,且於上述第1虛擬控制器中裝設上述第1命名空間,  於上述第1命名空間於上述第1虛擬控制器以外之虛擬控制器中裝設之狀態下,自上述第1主機接收到要求裝設上述第1命名空間作為上述第1命名空間之上述操作之上述第2指令之情形時,省略於上述非揮發性記憶體中創建上述第1命名空間,而於上述第1虛擬控制器中裝設上述第1命名空間。
  4. 如請求項2之記憶體系統,其中  上述控制器係  於第2命名空間於上述第1虛擬控制器中裝設,且於上述第1虛擬控制器以外之虛擬控制器中未裝設之狀態下,自上述第1主機接收到要求脫卸上述第2命名空間作為上述第2命名空間之上述操作之上述第2指令之情形時,將上述第2命名空間自於上述非揮發性記憶體中創建之狀態轉為解放狀態,且將上述第2命名空間自於上述第1虛擬控制器中裝設之狀態轉為脫卸狀態,  於上述第2命名空間於上述第1虛擬控制器與上述第1虛擬控制器以外之虛擬控制器中裝設之狀態下,自上述第1主機接收到要求脫卸上述第2命名空間作為上述第2命名空間之上述操作之上述第2指令之情形時,省略將上述第2命名空間自於上述非揮發性記憶體中創建之狀態轉為解放狀態,而將上述第2命名空間自於上述第1虛擬控制器中裝設之狀態轉為脫卸狀態。
  5. 如請求項2之記憶體系統,其中  上述控制器係  於第3命名空間於上述第1虛擬控制器以外之虛擬控制器中未裝設之狀態下,自上述第1主機接收到要求刪除上述第3命名空間作為上述第3命名空間之上述操作之上述第2指令之情形時,將上述第3命名空間自上述非揮發性記憶體刪除,  於上述第3命名空間於上述第1虛擬控制器以外之虛擬控制器中裝設之狀態下,自上述第1主機接收到要求刪除上述第3命名空間作為上述第3命名空間之上述操作之上述第2指令之情形時,向上述第1主機發送錯誤應答。
  6. 如請求項5之記憶體系統,其中  上述控制器係於上述第3命名空間於上述第1虛擬控制器以外之虛擬控制器中未裝設之狀態下,自上述第1主機接收到要求刪除上述第3命名空間之上述第2指令時,於上述第3命名空間於上述第1虛擬控制器中裝設之情形時,將上述第3命名空間自於上述第1虛擬控制器中裝設之狀態轉為脫卸狀態,且將上述第3命名空間自上述非揮發性記憶體刪除。
  7. 如請求項5之記憶體系統,其中  上述控制器係於上述第3命名空間於上述第1虛擬控制器以外之虛擬控制器中未裝設之狀態下,自上述第1主機接收到要求刪除上述第3命名空間作為上述第3命名空間之上述操作之上述第2指令時,於上述第3命名空間於上述第1虛擬控制器中裝設之情形時,向上述第1主機發送錯誤應答。
  8. 如請求項2之記憶體系統,其中  上述控制器係於自上述第1主機接收到要求創建命名空間作為命名空間之上述操作之上述第2指令之情形時,於上述非揮發性記憶體之上述記憶區域創建由上述第2指令指定之命名空間。
  9. 如請求項2之記憶體系統,其中  上述控制器係  管理第1表,該第1表記憶於上述非揮發性記憶體之上述記憶區域創建之上述命名空間之識別碼、與於上述虛擬控制器中處於裝設狀態之上述命名空間之識別碼之對應關係,該對應關係包含上述第1識別碼與上述第2識別碼之對應關係及上述第1識別碼與上述第3識別碼之對應關係,  於自上述主機接收到要求上述第1表之第4指令之情形時,向上述主機發送上述第1表。
  10. 如請求項2之記憶體系統,其中  上述控制器係  管理第1表,該第1表記憶於上述非揮發性記憶體之上述記憶區域創建之上述命名空間之識別碼、與於上述虛擬控制器中處於裝設狀態之上述命名空間之識別碼之對應關係,該對應關係包含上述第1識別碼與上述第2識別碼之對應關係及上述第1識別碼與上述第3識別碼之對應關係,  於自上述主機接收到要求將上述第1表儲存至上述非揮發性記憶體之第5指令之情形時,將上述第1表儲存於上述非揮發性記憶體中。
  11. 一種記憶體系統之控制方法,其能夠經由網路而與包含第1主機在內之1個以上之主機進行通信,能夠將具備記憶區域之非揮發性記憶體之上述記憶區域於邏輯上進行分割而創建命名空間,且  根據自上述第1主機接收到要求連接之第1指令,基於上述命名空間對於上述非揮發性記憶體之上述記憶區域中之裝設情況,創建虛擬控制器,該虛擬控制器用以能夠經由上述網路而自上述第1主機受理包含上述命名空間之創建、刪除或裝卸之操作之要求,且用以使第1主機能夠與其他主機中之上述命名空間之裝卸無關地獨自裝卸命名空間,  於自上述第1主機接收到與上述命名空間之操作相關之第2指令之情形時,基於上述虛擬控制器中之命名空間之裝設情況,執行與上述第2指令要求之上述命名空間之操作相關之處理。
TW112104601A 2022-09-05 2023-02-09 記憶體系統及記憶體系統之控制方法 TW202411835A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022-140780 2022-09-05

Publications (1)

Publication Number Publication Date
TW202411835A true TW202411835A (zh) 2024-03-16

Family

ID=

Similar Documents

Publication Publication Date Title
US7669022B2 (en) Computer system and data management method using a storage extent for backup processing
EP2254036B1 (en) Storage apparatus and data copy method
JP2006260292A (ja) リモートコピー方法及びストレージシステム
US11573737B2 (en) Method and apparatus for performing disk management of all flash array server
EP3367206B1 (en) Server management method and server
JP6136629B2 (ja) ストレージ制御装置,ストレージシステム,および制御プログラム
JP2009205614A (ja) ストレージシステムの制御方法、スイッチ装置およびストレージシステム
US20210089379A1 (en) Computer system
JP2008140142A (ja) 情報処理システム
US9342418B2 (en) Storage system, storage control device and data transfer method
CN109407975B (zh) 写数据方法与计算节点以及分布式存储系统
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
JP4322240B2 (ja) 再起動方法、システム及びプログラム
KR101427535B1 (ko) 정보 처리 장치, 기록 매체 및 영역 해방 제어 방법
US20100235549A1 (en) Computer and input/output control method
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
TW202411835A (zh) 記憶體系統及記憶體系統之控制方法
CN109165117B (zh) 数据处理的方法和系统
JP2009251756A (ja) クライアント装置、分散ファイルシステム、共有リソース多重化方法およびプログラム
JP6287308B2 (ja) レプリケーション制御システム、レプリケーション制御方法、及び、レプリケーション制御プログラム
US11734133B2 (en) Cluster system and fail-over control method of cluster system
JP2007334668A (ja) メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラム
WO2016046951A1 (ja) 計算機システム及びそのファイル管理方法
CN115373908A (zh) 一种数据存储方法及相关装置
JP2024036068A (ja) メモリシステムおよび制御方法