CLUSET(1) ClusterShell User Manual CLUSET(1)

cluset - محاسبه و اجرای عملیات پیشرفته روی مجموعه‌های گره کلاستر

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

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

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

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

نمایش شماره نسخه برنامه و خروج
نمایش این پیام راهنما و خروج
منبع گروه اختیاری در groups.conf(5) برای استفاده
استفاده از فایل پیکربندی جایگزین برای groups.conf(5)
دستورها:
نمایش تعداد گره‌ها در nodeset(ها)
گسترش nodeset(ها) به گره‌های مجزا (همچنین -S SEPARATOR را ببینید)
جمع کردن nodeset(ها) (یا گره‌های مجزا) در قالب یک nodeset واحد
فهرست کردن گروه‌های گره، فهرست کردن گروه‌های گره و گره‌ها (-ll) یا فهرست کردن گروه‌های گره، گره‌ها و تعداد گره‌ها (-lll). هنگامی که هیچ آرگومانی مشخص نشود، این دستور تمام نام‌های گروه‌های گره یافت‌شده در منبع گروه انتخابی را فهرست می‌کند (همچنین -s GROUPSOURCE را ببینید). اگر هرگونه nodeset به عنوان آرگومان مشخص شود، این دستور گروه‌های گره‌ای که این گره‌ها (به‌صورت منفرد) به آن‌ها تعلق دارند را پیدا می‌کند. به‌صورت اختیاری برای هر گروه، کسر اعضای این گره‌ها در آن گروه (با -ll) و همچنین تعداد اعضا/تعداد کل گره‌های گروه (با -lll) قابل نمایش است. اگر یک خط تیره منفرد (-) به عنوان nodeset داده شود، از ورودی استاندارد خوانده خواهد شد.
فهرست کردن گروه‌های گره از تمام منابع گروه (-LL گره‌ها را نشان می‌دهد و -LLL تعداد گره‌ها را اضافه می‌کند). همانند -l، اگر هرگونه nodeset به عنوان آرگومان مشخص شود، این دستور گروه‌های گره‌ای که این گره‌ها (به‌صورت منفرد) به آن‌ها تعلق دارند را پیدا می‌کند.
جمع کردن گره‌ها با استفاده از گروه‌های گره (ببینید -s GROUPSOURCE)
خروجی دادن اندیس NODE در nodeset (برعکس -I/--slice)
فهرست کردن تمام منابع گروه فعال (ببینید groups.conf(5))
عملیات‌ها:
مستثنی کردن nodeset مشخص‌شده
محاسبه اشتراک nodesetها
محاسبه تفاضل متقارن بین nodesetها
گزینه‌ها:
فراخوانی پشتیبانی گروه‌های گره خارجی برای نمایش تمام گره‌ها
فعال‌سازی نحو با الگوی a-b/step هنگام جمع کردن nodesetها؛ مقدار آن آستانهٔ حداقل تعداد گره است (عدد صحیح '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)
رشته جداکننده برای استفاده هنگام باز کردن nodesetها (پیش‌فرض: ' ')
قالب خروجی (پیش‌فرض: '%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 گره به‌صورت تصادفی از nodeset

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

اگر یک خط تیره منفرد (-) به عنوان nodeset داده شود، از ورودی استاندارد خوانده خواهد شد..SH "الگوهای گسترش‌یافته (EXTENDED PATTERNS)"

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

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

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

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

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

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

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

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

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

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

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

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

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

clubak(1), clush(1), nodeset(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