Rechercher

20.7. Création d'un espace de noms DAX sur un NVDIMM

download PDF

Configurez le périphérique NVDIMM connecté à votre système en mode DAX pour prendre en charge le stockage de caractères avec des capacités d'accès direct.

Envisagez les options suivantes :

  • Reconfiguration d'un espace de noms existant en mode DAX.
  • Création d'un nouvel espace de noms DAX pour les appareils, s'il y a de la place disponible.

20.7.1. NVDIMM en mode d'accès direct au périphérique

L'accès direct aux périphériques (device DAX, devdax) permet aux applications d'accéder directement au stockage, sans passer par un système de fichiers. L'avantage de device DAX est qu'il fournit une granularité de faute garantie, qui peut être configurée en utilisant l'option --align de l'utilitaire ndctl.

Pour les architectures Intel 64 et AMD64, les granularités de défaut suivantes sont prises en charge :

  • 4 KiB
  • 2 MiB
  • 1 GiB

Les nœuds DAX ne prennent en charge que les appels système suivants :

  • open()
  • close()
  • mmap()

Vous pouvez afficher les alignements pris en charge pour votre périphérique NVDIMM à l'aide de la commande ndctl list --human --capabilities. Par exemple, pour les visualiser pour le périphérique region0, utilisez la commande ndctl list --human --capabilities -r region0.

Note

Les appels système read() et write() ne sont pas pris en charge, car le cas d'utilisation du dispositif DAX est lié au modèle de programmation de la mémoire non volatile de la SNIA.

20.7.2. Reconfiguration d'un espace de noms NVDIMM existant en mode DAX de périphérique

Vous pouvez reconfigurer un espace de noms NVDIMM (Non-Volatile Dual In-line Memory Modules) existant en mode DAX.

Avertissement

La reconfiguration d'un espace de noms supprime les données précédemment stockées dans l'espace de noms.

Conditions préalables

Procédure

  1. Liste de tous les espaces de noms de votre système :

    # ndctl list --namespaces --idle
    
    [
      {
        "dev":"namespace1.0",
        "mode":"raw",
        "size":34359738368,
        "uuid":"ac951312-b312-4e76-9f15-6e00c8f2e6f4"
        "state":"disabled",
        "numa_node":1
      },
      {
        "dev":"namespace0.0",
        "mode":"raw",
        "size":38615912448,
        "uuid":"ff5a0a16-3495-4ce8-b86b-f0e3bd9d1817",
        "state":"disabled",
        "numa_node":0
      }
    ]
  2. Reconfigurer tout espace de noms :

    # ndctl create-namespace --force --mode=devdax --reconfig=namespace-ID

    Exemple 20.3. Reconfiguration d'un espace de noms en tant que dispositif DAX

    La commande suivante reconfigure namespace0.1 pour le stockage de données prenant en charge DAX. Elle est alignée sur une granularité de panne de 2 Mo afin de garantir que le système d'exploitation effectue des pannes sur des pages de 2 Mo à la fois :

    # ndctl create-namespace --force --mode=devdax  --align=2M --reconfig=namespace0.1
    {
      "dev":"namespace0.1",
      "mode":"devdax",
      "map":"dev",
      "size":"35.44 GiB (38.05 GB)",
      "uuid":"426d6a52-df92-43d2-8cc7-046241d6d761",
      "daxregion":{
        "id":0,
        "size":"35.44 GiB (38.05 GB)",
        "align":2097152,
        "devices":[
          {
            "chardev":"dax0.1",
            "size":"35.44 GiB (38.05 GB)",
            "target_node":4,
            "mode":"devdax"
          }
        ]
      },
      "align":2097152
    }

    L'espace de noms est désormais disponible sur le site /dev/dax0.1.

Vérification

  • Vérifiez si les espaces de noms existants sur votre système sont reconfigurés :

    # ndctl list --namespace namespace0.1
    [
      {
        "dev":"namespace0.1",
        "mode":"devdax",
        "map":"dev",
        "size":38048628736,
        "uuid":"426d6a52-df92-43d2-8cc7-046241d6d761",
        "chardev":"dax0.1",
        "align":2097152
      }
    ]

Ressources supplémentaires

  • La page de manuel ndctl-create-namespace(1)

20.7.3. Création d'un nouvel espace de noms NVDIMM en mode device DAX

Vous pouvez créer un nouvel espace de noms DAX sur un périphérique NVDIMM (Non-Volatile Dual In-line Memory Modules) s'il y a de l'espace disponible dans la région.

Conditions préalables

  • L'utilitaire ndctl est installé. Pour plus d'informations, voir Installation de ndctl.
  • Le périphérique NVDIMM prend en charge les étiquettes permettant de créer plusieurs espaces de noms dans une région. Vous pouvez le vérifier à l'aide de la commande suivante :

    # ndctl read-labels nmem0 >/dev/null
    read 1 nmem

    Cela indique qu'il a lu l'étiquette d'un périphérique NVDIMM. Si la valeur est 0, cela signifie que votre périphérique ne prend pas en charge les étiquettes.

Procédure

  1. Dressez la liste des régions pmem de votre système qui ont de l'espace disponible. Dans l'exemple suivant, de l'espace est disponible dans les régions region1 et region0:

    # ndctl list --regions
    [
      {
        "dev":"region1",
        "size":2156073582592,
        "align":16777216,
        "available_size":2117418876928,
        "max_available_extent":2117418876928,
        "type":"pmem",
        "iset_id":-9102197055295954944,
        "badblock_count":1,
        "persistence_domain":"memory_controller"
      },
      {
        "dev":"region0",
        "size":2156073582592,
        "align":16777216,
        "available_size":2143188680704,
        "max_available_extent":2143188680704,
        "type":"pmem",
        "iset_id":736272362787276936,
        "badblock_count":3,
        "persistence_domain":"memory_controller"
      }
    ]
  2. Attribuer un ou plusieurs espaces de noms sur l'une des régions disponibles :

    # ndctl create-namespace --mode=devdax --region=region_N_ --size=namespace-size

    Exemple 20.4. Création d'un espace de noms sur une région

    La commande suivante crée un espace de noms DAX de 36 Go sur region0. Il est aligné sur une granularité de panne de 2 Mo afin de garantir que le système d'exploitation effectue des pannes sur des pages de 2 Mo à la fois :

    # ndctl create-namespace --mode=devdax --region=region0 --align=2M --size=36G
    {
      "dev":"namespace0.2",
      "mode":"devdax",
      "map":"dev",
      "size":"35.44 GiB (38.05 GB)",
      "uuid":"89d13f41-be6c-425b-9ec7-1e2a239b5303",
      "daxregion":{
        "id":0,
        "size":"35.44 GiB (38.05 GB)",
        "align":2097152,
        "devices":[
          {
            "chardev":"dax0.2",
            "size":"35.44 GiB (38.05 GB)",
            "target_node":4,
            "mode":"devdax"
          }
        ]
      },
      "align":2097152
    }

    L'espace de noms est désormais disponible à l'adresse /dev/dax0.2.

Vérification

  • Vérifier si le nouvel espace de noms est créé en mode secteur :

    # ndctl list -RN -n namespace0.2
    {
      "regions":[
        {
          "dev":"region0",
          "size":2156073582592,
          "align":16777216,
          "available_size":2065879269376,
          "max_available_extent":2065879269376,
          "type":"pmem",
          "iset_id":736272362787276936,
          "badblock_count":3,
          "persistence_domain":"memory_controller",
          "namespaces":[
            {
              "dev":"namespace0.2",
              "mode":"devdax",
              "map":"dev",
              "size":38048628736,
              "uuid":"89d13f41-be6c-425b-9ec7-1e2a239b5303",
              "chardev":"dax0.2",
              "align":2097152
            }
          ]
        }
      ]
    }

Ressources supplémentaires

  • La page de manuel ndctl-create-namespace(1)
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.