NODESET(1) ClusterShell User Manual NODESET(1)

nodeset - محاسبه و مدیریت نام‌ها و دامنه‌های گره‌های خوشه‌ای

nodeset [OPTIONS] [COMMAND] [nodeset1 [OPERATION] nodeset2|...]

نکته: دستورات nodeset و cluset یکسان هستند.

دستور nodeset ابزاری ارائه‌شده همراه با کتابخانهٔ ClusterShell است که برخی از قابلیت‌های کلاس‌های پایتون NodeSet و RangeSet در ClusterShell را پیاده‌سازی می‌کند. این ابزار امکان کارکرد و مدیریت آسان گره‌های خوشه و گروه‌های گره با نمایه‌های تک‌بعدی (1D) یا چندبعدی (nD) را فراهم می‌کند.

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

نمایش شماره نسخه برنامه و خروج
نمایش این پیام راهنما و خروج
منبع گروه اختیاری در groups.conf(5) برای استفاده
استفاده از فایل پیکربندی جایگزین برای groups.conf(5)
دستورها:
نمایش تعداد گره‌ها در مجموعه‌گره(ها)
گسترش مجموعه‌گره(ها) به گره‌های مجزا (همچنین -S SEPARATOR را ببینید)
خلاصه‌سازی مجموعه‌گره(ها) (یا گره‌های مجزا) در قالب یک مجموعه‌گره واحد
فهرست کردن گروه‌های گره، فهرست کردن گروه‌های گره و گره‌ها (-ll) یا فهرست کردن گروه‌های گره، گره‌ها و تعداد گره‌ها (-lll). هنگامی که هیچ آرگومانی مشخص نشود، این دستور تمام نام‌های گروه‌های گره یافت‌شده در منبع گروه انتخابی را فهرست می‌کند (همچنین -s GROUPSOURCE را ببینید). اگر هرگونه مجموعه‌گره به عنوان آرگومان مشخص شود، این دستور گروه‌های گره‌ای که این گره‌ها (به‌صورت تک‌تک) به آن‌ها تعلق دارند را پیدا می‌کند. به‌صورت اختیاری برای هر گروه، کسر اعضای این گره‌ها در آن گروه (با -ll) و همچنین تعداد اعضا/تعداد کل گره‌های گروه (با -lll) قابل نمایش است. اگر یک خط تیره منفرد (-) به عنوان مجموعه‌گره داده شود، از ورودی استاندارد خوانده خواهد شد.
فهرست کردن گروه‌های گره از تمام منابع گروه (-LL گره‌ها را نشان می‌دهد و -LLL تعداد گره‌ها را اضافه می‌کند). همانند -l، اگر هرگونه مجموعه‌گره به عنوان آرگومان مشخص شود، این دستور گروه‌های گره‌ای که این گره‌ها (به‌صورت تک‌تک) به آن‌ها تعلق دارند را پیدا می‌کند.
خلاصه‌سازی گره‌ها با استفاده از گروه‌های گره (ببینید -s GROUPSOURCE)
خروجی دادن اندیس NODE در مجموعه‌گره (برعکس -I/--slice)
فهرست کردن تمام منابع گروه فعال (ببینید groups.conf(5))
عملیات‌ها:
مستثنی کردن مجموعه‌گره مشخص‌شده
محاسبه اشتراک مجموعه‌گره‌ها
محاسبه تفاضل متقارن بین مجموعه‌گره‌ها
گزینه‌ها:
فراخوانی پشتیبانی گروه‌های گره خارجی برای نمایش تمام گره‌ها
فعال‌سازی نحو با الگوی a-b/step هنگام خلاصه‌سازی مجموعه‌گره‌ها؛ مقدار آن آستانهٔ حداقل تعداد گره است (عدد صحیح '4'، درصد '50%' یا 'auto'). اگر مشخص نشود، گام خودکار غیرفعال است (بهترین حالت برای سازگاری با سایر ابزارهای خوشه). مثال: با autostep=4 عبارت "node2 node4 node6" به node[2,4,6] خلاصه می‌شود، اما با autostep=3 عبارت "node2 node4 node6" به node[2-6/2] خلاصه می‌شود.
چاپ پیام‌های بیشتر برای مقاصد اشکال‌زدایی
حالت بی‌صدا، چاپ تنها خروجی‌های ضروری
تغییر وضعیت به RangeSet به جای NodeSet. هنگام کار روی بازه‌های عددی خوشه، مثلاً 1,5,18-31، مفید است
عدم نمایش پیشوند منبع گروه (همیشه به‌صورت @groupname)
رشته جداکننده برای استفاده هنگام باز کردن مجموعه‌گره‌ها (پیش‌فرض: ' ')
قالب خروجی (پیش‌فرض: '%s')
بازگرداندن نتیجهٔ برش‌خورده؛ نمونه‌هایی از SLICE_RANGESET عبارتند از "0" برای انتخاب ساده بر اساس اندیس، یا "1-9/2,16" برای انتخاب پیچیدهٔ rangeset
تقسیم نتیجه به چندین زیرمجموعه
تقسیم نتیجه به زیرمجموعه‌های پیوسته (یعنی برای nodeset، زیرمجموعه‌ها شامل گره‌هایی با نام الگوی یکسان و بازهٔ پیوسته‌ای از اندیس‌ها خواهند بود، مانند foobar[1-100]؛ برای rangeset، زیرمجموعه‌ها شامل بازه‌های پیوستهٔ اندیس هستند)
برای nodesetهای nبعدی، خلاصه‌سازی تنها در امتداد محور ارائه‌شده انجام می‌شود. محورها از 1 تا n نمایه می‌شوند و می‌توان آن‌ها را در اینجا با استفاده از نحو rangeset (مانند '1'، '1-2'، '1,3') یا با یک عدد منفی منفرد به معنای شمارش اندیس از انتها مشخص کرد. از آنجا که ممکن است برخی nodesetها ابعاد مختلفی داشته باشند، اندیس‌های محور بدون اخطار کوتاه می‌شوند تا در بازهٔ مجاز قرار گیرند.
انتخاب تصادفی N گره از مجموعه‌گره

برای توضیحی کوتاه دربارهٔ این گزینه‌ها، -h, --help را ببینید.

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

دستور nodeset از محاسبات پایه‌ای حسابی ClusterShell NodeSet بهره می‌برد. این قابلیت الگوهای رشته‌ای شناخته‌شده را با پشتیبانی از عملگرهای منطبق بر تمام عملیات‌هایی که پیش‌تر بیان شد، گسترش می‌دهد. الگوهای رشته‌ای از چپ به راست خوانده می‌شوند و هر عملگر نویسه‌ای متناسب با آن پردازش می‌گردد.

عملگرهای نویسه‌ای پشتیبانی‌شده
,
نشان می‌دهد که باید پیش از ادامه، اجتماع هر دو مجموعه‌گره چپ و راست محاسبه شود
!
نشان‌دهنده عملیات تفاضل است
&
نشان‌دهنده عملیات اشتراک است
^
نشان‌دهنده عملیات تفاضل متقارن (XOR) است

باید دقت شود هنگامی که پوسته این نویسه‌ها را به‌صورت تحت‌اللفظی (literal) تفسیر نمی‌کند، در صورت نیاز با نویسه گریز (escape) محافظت شوند.

مثال‌هایی از کاربرد الگوهای گسترش‌یافته
$ nodeset -f node[0-7],node[8-10]
node[0-10]
$ nodeset -f node[0-10]!node[8-10]
node[0-7]
$ nodeset -f node[0-10]&node[5-13]
node[5-10]
$ nodeset -f node[0-10]^node[5-13]
node[0-4,11-13]
نمونه‌ای از کاربرد پیشرفته
$ nodeset -f @gpu^@slurm:bigmem!@chassis[1-9/2]

این دستور یک مجموعه‌گره خلاصه‌شده (folded) حاوی گره‌های موجود در گروه‌های @gpu و @slurm:bigmem را بدون احتساب گره‌های مشترک در هر دو، منهای گره‌های موجود در گروه‌های فرد chassis از ۱ تا ۹ محاسبه می‌کند.

افزونهٔ "همه گره‌ها"
نشانه‌گذاری‌های ویژهٔ @* و @SOURCE:* ممکن است در الگوهای گسترش‌یافته برای نمایش همه گره‌ها (در SOURCE) مطابق با دستور خارجی پوسته all استفاده شوند (نگاه کنید به groups.conf(5)) و معادل هستند با:
$ nodeset [-s SOURCE] -a -f
نام‌های گروه در عبارت‌ها
نشانه‌گذاری @@SOURCE می‌تواند برای دسترسی به همه نام‌های گروه از SOURCE مشخص‌شده (یا از منبع گروه پیش‌فرض در صورت استفاده از @@ به تنهایی) در عبارت‌های مجموعه‌گره استفاده شود؛ این قابلیت هم با منابع گروه مبتنی بر فایل و هم با منابع گروه خارجی که دارای فراخوانی بالادستی (upcall) تعریف‌شدهٔ list یا mapall هستند کار می‌کند (نگاه کنید به groups.conf(5)):
$ nodeset -f @@rack
J[1-3]

هر ماسک نویسه عمومی که پیدا شود، در برابر تمام گره‌های منبع گروه مطابقت داده می‌شود (نگاه کنید به groups.conf(5) و گزینه -a/--all در بالا). * به معنای تطابق با صفر یا چند نویسه از هر نوع است؛ ? به معنای تطابق با دقیقاً یک نویسه از هر نوع است. این قابلیت می‌تواند به‌ویژه برای مزارع سرور یا هنگامی که نام گره‌های خوشه متفاوت است، بسیار مفید باشد.

فرض کنید پیکربندی گروه شما طوری تنظیم شده است که "همه گره‌ها" را به شکل زیر بازگرداند:
$ nodeset -f -a
bckserv[1-2],dbserv[1-4],wwwserv[1-9]
در این صورت، می‌توانید از نویسه‌های عمومی برای انتخاب گره‌های خاص استفاده کنید، همان‌طور که در زیر نشان داده شده است:
$ nodeset -f 'www*'
wwwserv[1-9]
$ nodeset -f 'www*[1-4]'
wwwserv[1-4]
$ nodeset -f '*serv1'
bckserv1,dbserv1,wwwserv1

ماسک‌های نویسه عمومی پیش از الگوهای گسترش‌یافته تحلیل می‌شوند، اما هر ماسک به عنوان یک عملوند مجموعه‌گره کامل ارزیابی می‌شود. در مثال زیر، ما ابتدا تمام گره‌های منطبق با *serv* را انتخاب می‌کنیم و سپس تمام گره‌های منطبق با www* را حذف می‌نماییم:

$ nodeset -f '*serv*!www*'
bckserv[1-2],dbserv[1-4]

وضعیت خروج صفر بیانگر موفقیت دستور nodeset است. وضعیت خروج غیرصفر نشان‌دهنده شکست است.

دریافت تعداد گره‌ها
$ nodeset -c node[0-7,32-159]
136
$ nodeset -c node[0-7,32-159] node[160-163]
140
$ nodeset -c dc[1-2]n[100-199]
200
$ nodeset -c @login
4
خلاصه‌سازی مجموعه‌گره‌ها
$ nodeset -f node[0-7,32-159] node[160-163]
node[0-7,32-163]
$ echo node3 node6 node1 node2 node7 node5 | nodeset -f
node[1-3,5-7]
$ nodeset -f dc1n2 dc2n2 dc1n1 dc2n1
dc[1-2]n[1-2]
$ nodeset --axis=1 -f dc1n2 dc2n2 dc1n1 dc2n1
dc[1-2]n1,dc[1-2]n2
گسترش مجموعه‌گره‌ها
$ nodeset -e node[160-163]
node160 node161 node162 node163
$ echo 'dc[1-2]n[2-6/2]' | nodeset -e
dc1n2 dc1n4 dc1n6 dc2n2 dc2n4 dc2n6
مستثنی کردن گره‌ها از مجموعه‌گره
$ nodeset -f node[32-159] -x node33
node[32,34-159]
محاسبه اشتراک مجموعه‌گره‌ها
$ nodeset -f node[32-159] -i node[0-7,20-21,32,156-159]
node[32,156-159]
محاسبه تفاضل متقارن مجموعه‌گره‌ها (xor)
$ nodeset -f node[33-159] --xor node[32-33,156-159]
node[32,34-155]
تقسیم گره‌ها به چند مجموعه‌گره (گسترش نتایج)
$ nodeset --split=3 -e node[1-9]
node1 node2 node3
node4 node5 node6
node7 node8 node9
تقسیم مجموعه‌گره‌های غیرپیوسته (خلاصه‌سازی نتایج)
$ nodeset --contiguous -f node2 node3 node4 node8 node9
node[2-4]
node[8-9]
$ nodeset --contiguous -f dc[1,3]n[1-2,4-5]
dc1n[1-2]
dc1n[4-5]
dc3n[1-2]
dc3n[4-5]

نحو دستور از زمان دستور nodeset ارائه‌شده همراه با ClusterShell نسخه ۱.۱ تغییر یافته است. عملیات‌ها، مانند --intersection یا -x، اکنون در خط فرمان بین مجموعه‌گره‌ها مشخص می‌شوند.

$ nodeset -f -x node[3,5-6,9] node[1-9]
node[1-2,4,7-8]
$ nodeset -f node[1-9] -x node[3,5-6,9]
node[1-2,4,7-8]

دستور cluset در نسخهٔ ۱.۷.۳ اضافه شد تا از تداخل با دستور nodeset در ابزار xCAT جلوگیری شود و همچنین با شیوهٔ نام‌گذاری دستورات "clu*" در ClusterShell سازگار باشد.

clubak(1), cluset(1), clush(1), groups.conf(5).

https://clustershell.readthedocs.io

برای ارسال گزارش باگ یا بازخورد از نشانی زیر استفاده کنید:
https://github.com/clustershell/clustershell/issues

Stephane Thiell

GNU Lesser General Public License نسخه ۲.۱ یا بالاتر (LGPLv2.1+)

2026-07-16 1.10.1