linux – ¿Qué son los espacios de nombres nvme? ¿Cómo trabajan?

Pregunta:

Recientemente comencé a admitir Linux instalado en dispositivos con nvme ssds incorporados. Noté que los archivos del dispositivo tenían un número adicional, más allá de un número que identifica el número de unidad y el número de partición. Las unidades IDE / SATA / SCSI normalmente solo tienen una letra de unidad y un número de partición.

Por ejemplo: / dev / nvme0n1p2

Llegué a preguntarme qué era la parte n1, y después de un poco de búsqueda, parece que identifica un 'espacio de nombres' nvme. Las definiciones eran un poco vagas: "Un espacio de nombres NVMe es una cantidad de memoria no volátil (NVM) que se puede formatear en bloques lógicos".

Entonces, ¿esto actúa como una partición que está definida en el nivel del controlador de hardware y no en una tabla de particiones MBR o GPT? ¿Puede un espacio de nombres abarcar varios ssd nvme físicos? Por ejemplo, ¿puede crear un espacio de nombres que agrupe el almacenamiento de varios ssd en un solo espacio de nombres lógico, similar a RAID 0?

¿Qué haría con un espacio de nombres NVME que ya no puede lograr usando tablas de particiones o LVM o un sistema de archivos que pueda administrar múltiples volúmenes (como ZFS, Btrfs, etc.)?

Además, ¿por qué parece que la numeración del espacio de nombres comienza en 1 en lugar de 0? ¿Es eso algo que ver con la forma en que NVME rastrea los números de espacio de nombres en un nivel bajo (por ejemplo, las particiones también comienzan en 1, no en 0, porque así es como se estableció el estándar para los números de partición, por lo que el kernel de Linux solo usa cualquier número de partición? que está almacenado en el disco es – ¿supongo que nvme funciona de la misma manera?)

Respuesta:

En NVM Express y estándares relacionados, los controladores dan acceso al almacenamiento dividido en uno o más espacios de nombres. Los espacios de nombres se pueden crear y eliminar a través del controlador, siempre que haya espacio para ellos (o el almacenamiento subyacente admita el aprovisionamiento ligero), y varios controladores pueden proporcionar acceso a un espacio de nombres compartido. La forma en que se organiza el almacenamiento subyacente no está especificada por el estándar, hasta donde yo sé.

Sin embargo, los SSD NVMe típicos no se pueden combinar, ya que cada uno proporciona su propio almacenamiento y controlador conectado a un puerto PCI Express, y el punto de acceso es el controlador, por encima de los espacios de nombres; por lo tanto, un espacio de nombres no puede agrupar varios controladores (varios controladores pueden proporcionar acceso a un espacio de nombres compartido). Es mejor pensar en los espacios de nombres como algo parecido a los LUN SCSI que se utilizan en el almacenamiento empresarial (SAN, etc.).

La numeración del espacio de nombres comienza en 1 porque así es como funcionan los identificadores de espacio de nombres por controlador. Los espacios de nombres también tienen identificadores más largos y únicos a nivel mundial.

Los espacios de nombres se pueden manipular mediante el comando nvme , que brinda soporte para funciones NVMe de bajo nivel, que incluyen:

  • formateo, que realiza un formateo de bajo nivel y permite utilizar varias funciones (borrado seguro, selección de formato LBA …);
  • adjuntar y desconectar, lo que permite que los controladores se adjunten o desconecten de un espacio de nombres (si lo admiten y el espacio de nombres lo permite).

Conectar y desconectar no es algo que encontrará en las unidades NVMe de computadoras portátiles o de escritorio. Lo usaría con bahías de almacenamiento NVMe como las vendidas por Dell EMC, que reemplazan las SAN iSCSI del pasado.

Consulte los estándares de NVM Express para obtener más detalles (son relativamente fáciles de leer) y este tutorial de presentación de NVM Express para una buena introducción.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım