What is a Namespace in SSD?
Namespace is an area or quantity of non-volatile memory that is formatted into small logical blocks count. After formation each namespace contains “n” number of logical blocks with logical block addresses from 0 to (n-1). Thus namespace is a  collection of logical blocks.

Namespace ID  is an identifier used by a controller to provide access to a namespace. 

Private namespace
A namespace that is accessible by only one controller. A host may determine whether a namespace is a private namespace or may be a shared namespace by the value of the Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC) field in the Identify Namespace data structure.

Shared namespace
A namespace that is accessible by two or more controllers. A host may determine whether a namespace is a private namespace or may be a shared namespace by the value of the Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC) field in the Identify Namespace data structure.