| CPC G06F 3/0617 (2013.01) [G06F 3/0644 (2013.01); G06F 3/0679 (2013.01)] | 20 Claims | 

| 
               1. A memory system comprising: 
            a nonvolatile memory including a storage area; and 
                a controller capable of communicating with a plurality of hosts including a first host and a second host via a network and capable of creating a namespace by logically dividing the storage area of the nonvolatile memory, 
                wherein the controller is configured to 
              create a virtual controller based on an attached state of the namespace with respect to the storage area of the nonvolatile memory based on reception of a first command requesting connection from the first host, the virtual controller being configured to enable a request for an operation including creation, deletion, attachment, or detachment of the namespace to be received from the first host via the network and configured to enable the first host to independently attach or detach the namespace regardless of attachment or detachment of the namespace by the second host, 
                  execute processing related to an operation of the namespace requested by a second command related to the operation of the namespace based on an attached state of the namespace in the virtual controller when the second command is received from the first host, 
                  create a first virtual controller for the first host when the first command is received from the first host, 
                  create a second virtual controller for the second host when the first command is received from the second host, 
                  attach or detach the namespace designated by the second command in the first virtual controller when the second command requesting attachment or detachment as the operation of the namespace is received from the first host, 
                  attach or detach the namespace designated by the second command in the second virtual controller when the second command requesting attachment or detachment as the operation of the namespace is received from the second host, 
                  manage a correspondence between a first identifier of the namespace created in the nonvolatile memory and a second identifier of the namespace in a state of being attached to the first virtual controller, and manage a correspondence between the first identifier and a third identifier of the namespace in a state of being attached to the second virtual controller, 
                  convert the second identifier into the first identifier, and execute a processing relating to access requested by a third command with respect to the namespace indicated by the first identifier when the third command is received from the first host, the third command being a command in which the namespace is designated by the second identifier and requesting the access to the namespace, and 
                  convert the third identifier into the first identifier, and execute a processing related to the access requested by a fourth command with respect to the namespace indicated by the first identifier when the fourth command is received from the second host, the fourth command being a command in which the namespace is designated by the third identifier and requesting the access to the namespace. 
                 |