NDCTL-LIST(1) ndctl Manual NDCTL-LIST(1)

ndctl-list - تخلیه مکان‌نگاری و ویژگی‌های دستگاه‌های nvdimm سامانه در قالب json

ndctl list [<options>]

پیمایش تمام گذرگاه‌های nvdimm در سیستم و فهرست کردن تمام دستگاه‌های متصل به همراه برخی از ویژگی‌های اصلی آن‌ها.

می‌توان گزینه‌هایی را برای محدود کردن خروجی به دستگاه‌هایی از یک کلاس مشخص تعیین کرد. این کلاس‌ها عبارتند از: buses، dimms، regions و namespaces. به‌طور پیش‌فرض، اجرای ndctl list بدون هیچ گزینه‌ای معادل دستور زیر است:

ndctl list --namespaces --bus=all --region=all

# ndctl list --buses --namespaces
{
  "provider":"nfit_test.1",
  "dev":"ndbus2",
  "namespaces":[
    {
      "dev":"namespace9.0",
      "mode":"raw",
      "size":33554432,
      "blockdev":"pmem9"
    }
  ]
}
{
  "provider":"nfit_test.0",
  "dev":"ndbus1"
}
{
  "provider":"e820",
  "dev":"ndbus0",
  "namespaces":[
    {
      "dev":"namespace0.0",
      "mode":"fsdax",
      "size":8589934592,
      "blockdev":"pmem0"
    }
  ]
}

-r, --region=

یک نام دستگاه regionX یا شماره شناسه region. عملیات را به ناحیه(ها)ی مشخص‌شده محدود می‌کند. کلیدواژه all می‌تواند برای مشخص کردن نبود هیچ محدودیتی تعیین شود، با این حال این کار معادل تعیین نکردن گزینه --region است.

-b, --bus=

یک شماره شناسه bus یا یک رشته فراهم‌کننده (مانند "ACPI.NFIT"). عملیات را به گذرگاه(ها)ی مشخص‌شده محدود می‌کند. کلیدواژه all می‌تواند برای مشخص کردن نبود هیچ محدودیتی تعیین شود، با این حال این کار معادل تعیین نکردن گزینه --bus است.

-d, --dimm=

یک نام دستگاه nmemX یا شماره شناسه dimm. شماره شناسه dimm در اینجا X در nmemX است. خروجی را بر اساس دستگاه‌هایی که به dimm داده‌شده ارجاع دارند فیلتر می‌کند. برای نمونه برای دیدن تمام namespaceهایی که شامل ظرفیت ذخیره‌سازی روی nmem0 هستند:
# ndctl list --dimm=nmem0 --namespaces

-n, --namespace=

یک نام دستگاه namespaceX.Y، یا تاپل شناسه به‌علاوه ناحیه فضای نام X.Y. در صورت وجود، فهرست namespace را به تک دستگاه شناسایی‌شده محدود می‌کند.

-m, --mode=

فیلتر کردن فهرست بر اساس حالت (raw، fsdax، sector یا devdax) مربوط به namespace(ها).

-U, --numa-node=

فیلتر کردن فهرست بر اساس گره numa.

-B, --buses

گنجاندن اطلاعات گذرگاه (bus) در فهرست خروجی.

-D, --dimms

گنجاندن اطلاعات dimm در فهرست خروجی.
{
  "dev":"nmem0",
  "id":"cdab-0a-07e0-ffffffff",
  "handle":0,
  "phys_id":0,
  "security:":"disabled"
}

-H, --health

گنجاندن اطلاعات سلامت dimm در فهرست خروجی. برای نمونه:
{
  "dev":"nmem0",
  "health":{
    "health_state":"non-critical",
    "temperature_celsius":23,
    "spares_percentage":75,
    "alarm_temperature":true,
    "alarm_spares":true,
    "temperature_threshold":40,
    "spares_threshold":5,
    "life_used_percentage":5,
    "shutdown_state":"clean"
  }
}

-F, --firmware

گنجاندن اطلاعات سفت‌افزار در فهرست خروجی، شامل وضعیت و قابلیت فعال‌سازی سفت‌افزار در زمان اجرا:
# ndctl list -BDF
[
  {
    "provider":"nfit_test.0",
    "dev":"ndbus2",
    "scrub_state":"idle",
    "firmware":{
      "activate_method":"suspend",
      "activate_state":"idle"
    },
    "dimms":[
      {
        "dev":"nmem1",
        "id":"cdab-0a-07e0-ffffffff",
        "handle":0,
        "phys_id":0,
        "security":"disabled",
        "firmware":{
          "current_version":0,
          "can_update":true
        }
      },
...
]

-X, --device-dax

گنجاندن جزئیات device-dax ("daxregion") هنگامی که یک namespace در حالت "devdax" است.
{
  "dev":"namespace0.0",
  "mode":"devdax",
  "size":4225761280,
  "uuid":"18ae1bbb-bb62-4efc-86df-4a5caacb5dcc",
  "daxregion":{
    "id":0,
    "size":4225761280,
    "align":2097152,
    "devices":[
      {
        "chardev":"dax0.0",
        "size":4225761280
      }
    ]
  }
}

-R, --regions

گنجاندن اطلاعات ناحیه (region) در فهرست خروجی.

-N, --namespaces

گنجاندن اطلاعات فضای نام (namespace) در فهرست خروجی. در صورتی که گزینه دیگری به دستور داده نشود، اطلاعات namespace به‌طور پیش‌فرض فهرست می‌شود.

-i, --idle

گنجاندن دستگاه‌های بیکار (فعال‌نشده) در فهرست خروجی.

-c, --configured

گنجاندن دستگاه‌های پیکربندی‌شده (namespaceهای با اندازه غیرصفر) بدون در نظر گرفتن فعال بودن یا نبودن آن‌ها. سایر دستگاه‌ها به جز namespaceها همیشه «پیکربندی‌شده» در نظر گرفته می‌شوند.

-C, --capabilities

گنجاندن قابلیت‌های ناحیه در فهرست خروجی؛ یعنی حالت‌های پشتیبانی‌شده namespace و ویژگی‌های متغیر مانند اندازه‌های بخش (sector) و هم‌ترازی‌ها.

-M, --media-errors

گنجاندن خطاهای رسانه (badblocks) در فهرست خروجی. توجه داشته باشید که ویژگی badblock_count در صورت غیرصفر بودن مقدار، به‌طور پیش‌فرض در خروجی گنجانده می‌شود، در غیر این صورت پنهان است. همچنین، اگر namespace در حالت sector باشد، فهرست badblocks گنجانده نمی‌شود و ویژگی badblock_count ممکن است بلوک‌هایی را که در فراداده (metadata) یا ظرفیت استفاده‌نشده namespace قرار دارند نیز در بر بگیرد. برای فهرست کردن آفست‌های دقیق badblocks، یک namespace از نوع sector را به حالت raw تبدیل کنید.
{
  "dev":"namespace7.0",
  "mode":"raw",
  "size":33554432,
  "blockdev":"pmem7",
  "badblock_count":17,
  "badblocks":[
    {
      "offset":4,
      "length":1
    },
    {
      "offset":32768,
      "length":8
    },
    {
      "offset":65528,
      "length":8
    }
  ]
}

-v, --verbose

افزایش پرگویی خروجی. این گزینه می‌تواند چندین بار برای نمایش جزئیات بیشتر در خروجی‌های اطلاعاتی و متفرقه تعیین شود، و می‌تواند برای نادیده گرفتن پرچم‌های حذف‌شده جهت نمایش اطلاعات خاص به کار رود.
•-v علاوه بر خروجی پیش‌فرض namespaceهای فعال، مقادیر numa_node، raw_uuid و خطاهای رسانه بلوک‌های بد را نمایش می‌دهد.
•-vv شامل تمام موارد ارائه‌شده توسط -v، به‌علاوه فعال‌سازی خودکار --dimms، --buses و --regions.
•-vvv شامل تمام موارد ارائه‌شده توسط -vv، به‌علاوه --health، --capabilities، --idle و --firmware. :: همچنین می‌توان محدوده پرگویی را بر اساس نوع شیء تعیین کرد. برای نمونه فقط برای فهرست کردن regionها به همراه قابلیت‌ها و اطلاعات خطای رسانه.
# ndctl list -Ru -vvv -r 0
{
  "dev":"region0",
  "size":"4.00 GiB (4.29 GB)",
  "available_size":0,
  "max_available_extent":0,
  "type":"pmem",
  "numa_node":0,
  "target_node":2,
  "capabilities":[
    {
      "mode":"sector",
      "sector_sizes":[
        512,
        520,
        528,
        4096,
        4104,
        4160,
        4224
      ]
    },
    {
      "mode":"fsdax",
      "alignments":[
        4096,
        2097152,
        1073741824
      ]
    },
    {
      "mode":"devdax",
      "alignments":[
        4096,
        2097152,
        1073741824
      ]
    }
  ],
  "persistence_domain":"unknown"
}

-u, --human

قالب‌بندی اعدادی که اندازه فضای ذخیره‌سازی یا آفست‌ها را نشان می‌دهند به‌صورت رشته‌های خوانا برای انسان به همراه یکاها، به جای قالب پیش‌فرض عدد صحیح خام که مناسب ماشین است. همچنین فیلدهای عددی دیگر را به رشته‌های هگزادسیمال تبدیل می‌کند.
# ndctl list --region=7
{
  "dev":"region7",
  "size":67108864,
  "available_size":67108864,
  "type":"pmem",
  "iset_id":-6382611090938810793,
  "badblock_count":8
}
# ndctl list --human --region=7
{
  "dev":"region7",
  "size":"64.00 MiB (67.11 MB)",
  "available_size":"64.00 MiB (67.11 MB)",
  "type":"pmem",
  "iset_id":"0xa76c6907811fae57",
  "badblock_count":8
}

NDCTL_LIST_LINT

یک باگ در خروجی «ndctl list» باید با احتیاط نسبت به سایر ابزارهایی که ممکن است به این رفتار دارای باگ وابسته شده باشند برطرف شود. متغیر NDCTL_LIST_LINT سازوکاری اختیاری برای اعمال اصلاحات است تا رفتار قبلاً منتشرشده به‌طور پیش‌فرض دچار پس‌رفت (regression) نشود. این متغیر محیطی اصلاحات زیر را اعمال می‌کند:
•اصلاح «ndctl list -Rv» به‌گونه‌ای که تنها اشیاء region را نشان دهد و شامل اشیاء namespace نشود. ::

حق نشر © 2016 - 2022، شرکت Intel. مجوز GPLv2: گنو GPL نسخه ۲ http://gnu.org/licenses/gpl.html. این نرم‌افزار آزاد است: شما مجاز به تغییر و بازتوزیع آن هستید. هیچ‌گونه ضمانتی وجود ندارد، تا حدی که قانون اجازه می‌دهد.

ndctl-create-namespace(1)

2026-06-30 ndctl