.TH "namespace.yaml" "5" "Slurm Configuration File" "Slurm 26.05" "Slurm Configuration File" .SH "نام (NAME)" namespace.yaml \- فایل پیکربندی اسلورم برای پلاگین namespace/linux .SH "توضیحات (DESCRIPTION)" .LP فایل \fBnamespace.yaml\fR یک فایل پیکربندی با قالب YAML است که پارامترهای مورد استفاده توسط پلاگین namespace/linux اسلورم را تعریف می‌کند. بر اساس این پارامترها، پلاگین فضای‌نام (یا فضاهای‌نام) متناسب و مختص به هر کار را ایجاد خواهد کرد. پلاگین namespace/linux می‌تواند یک فضای‌نام سیستم‌فایل ایجاد کرده و یک فضای‌نام سیستم‌فایل خصوصی (یا به صورت اختیاری مشترک) بسازد و فهرستی از دایرکتوری‌ها (به طور پیش‌فرض /tmp و /dev/shm) را درون آن سوار کند، که نمایی اختصاصی از این دایرکتوری‌ها به کار ارائه می‌دهد. این مسیرها درون مکانی که توسط \fBbase_path\fR در فایل \fBnamespace.yaml\fR مشخص شده است سوار می‌شوند. این پلاگین همچنین می‌تواند فضاهای‌نام جدید کاربر (User) و شناسه فرایند (PID) را برای کار ایجاد کند. هنگامی که کار به پایان می‌رسد، فضای‌نام پیاده‌سازی (unmount) شده و تمامی فایل‌های درون آن به طور خودکار حذف می‌شوند. برای استفاده از این پلاگین‌ها، عبارت 'PrologFlags=Contain' نیز باید مطابق نمونه زیر در فایل \fBslurm.conf\fR شما وجود داشته باشد: .nf NamespaceType=namespace/linux PrologFlags=Contain .fi این فایل همیشه در همان دایرکتوری حاوی \fBslurm.conf\fR قرار خواهد داشت. این فایل باید در همان دایرکتوری \fBslurm.conf\fR قرار گیرد. هر متنی پس از یک «#» در این فایل تا پایان آن سطر به عنوان توضیح (کامنت) در نظر گرفته می‌شود. تغییرات اعمال‌شده در فایل پیکربندی پس از راه‌اندازی مجدد دیمن‌های Slurm اعمال خواهند شد. .SH "پارامترها (PARAMETERS)" .LP فایل namespace.yaml شامل ویژگی‌های زیر است: .LP .TP \fBdefaults\fR پیکربندی پیش‌فرض فضای‌نام. در صورت مشخص شدن، شامل فیلدهای شرح داده‌شده در گزینه‌ها (options) خواهد بود. .IP .TP \fBdisable_bpf_token\fR در صورت تعیین، استفاده از توکن‌های bpf را در پلاگین فضای‌نام غیرفعال می‌کند. استفاده از این گزینه هنگامی که ConstrainDevices در فایل cgroup.conf تنظیم شده باشد، منجر به این می‌شود که دستگاه‌ها فقط در سطح کار محدود شوند؛ اگر گام‌های مجزا دستگاه‌های کمتری نسبت به کار درخواست کنند، در عمل محدود نخواهند شد. این همچنین به ConstrainDevices اجازه می‌دهد روی هسته‌هایی (کرنل‌هایی) که توکن‌های bpf در دسترس نیستند کار کند. .IP .TP \fBnode_confs\fR فهرستی از پیکربندی‌های فضای‌نام گره. ویژگی‌های عناصر این فهرست در ادامه شرح داده شده است. .IP .SS "تعاریف عناصر فهرست node_confs (node_confs list element definitions)" .LP هر عنصر node_confs شامل ویژگی‌های زیر است: .LP .TP \fBnodes\fR فهرستی از نام‌های گره‌ها که گزینه‌ها روی آن‌ها اعمال خواهند شد. .IP .TP \fBoptions\fR گزینه‌های پیکربندی فضای‌نام. گزینه‌های مشخص‌شده، موارد تعیین‌شده توسط \fBdefaults\fR را بازنویسی (override) خواهند کرد. .IP .SS "تعاریف گزینه‌ها (options definitions)" .LP بخش \fBoptions\fR شامل ویژگی‌های زیر است: .LP .TP \fBauto_base_path\fR این گزینه تعیین می‌کند که آیا پلاگین باید دایرکتوری BasePath را بسازد یا خیر. اگر دایرکتوری پیش از راه‌اندازی slurm از قبل ایجاد نشده است، آن را برابر 'true' قرار دهید. اگر روی true تنظیم شود، دایرکتوری با مجوز 0755 ایجاد می‌شود. دایرکتوری در طول خاموش شدن slurm حذف نمی‌گردد. اگر برابر 'false' تنظیم شود یا مشخص نگردد، پلاگین انتظار دارد دایرکتوری از قبل وجود داشته باشد. این گزینه می‌تواند به صورت سراسری یا سطربه‌سطر استفاده شود. هنگامی که \fBdir_confs\fR تنظیم شده باشد، هر ورودی \fBbase_path\fR مربوط به هر دایرکتوری در \fBdir_confs\fR نیز ایجاد خواهد شد. این پارامتر اختیاری است. .IP .TP \fBbase_path\fR مسیر (\fIPATH\fR) پایه‌ای را مشخص کنید که پلاگین فضای‌نام باید به عنوان پایه برای سوار کردن دایرکتوری‌های اختصاصی استفاده کند. این مسیر باید توسط پلاگین قابل خواندن و نوشتن باشد. پلاگین درون این مسیر دایرکتوری ویژه‌ای برای هر کار می‌سازد که سپس برای سوار کردن استفاده می‌شود. مقدار \fBbase_path\fR در طول شروع slurmd به عنوان 'private' سوار می‌شود و تا زمان خاموش شدن سوار باقی می‌ماند. اولین «%h» در نام با نام میزبان (hostname) که \fBslurmd\fR روی آن اجرا می‌شود جایگزین می‌گردد. اولین «%n» در نام با نام گره Slurm که \fBslurmd\fR روی آن اجرا می‌شود جایگزین می‌شود. برای غیرفعال کردن پلاگین namespace/linux روی زیرمجموعه‌ای از گره‌ها هنگامی که یک تنظیم سراسری در \fBdefaults\fR وجود دارد، \fIPATH\fR را برابر 'none' قرار دهید. \fBنکته\fR: مقدار \fBbase_path\fR باید برای هر گره منحصربه‌فرد باشد. اگر base_path روی یک سیستم‌فایل مشترک قرار دارد، می‌توانید از «%h» یا «%n» برای ایجاد دایرکتوری‌های منحصربه‌فرد برای هر گره استفاده کنید. \fBنکته\fR: پارامتر \fBbase_path\fR نمی‌تواند روی هیچ‌یک از مسیرهای مشخص‌شده توسط \fBdirs\fR تنظیم شود. استفاده از این دایرکتوری‌ها هنگام تلاش برای سوار کردن و پیاده‌سازی دایرکتوری‌های اختصاصی برای کار باعث بروز تداخل خواهد شد. .IP .TP \fBclone_ns_script\fR مسیر کامل و مطلق یک اسکریپت راه‌اندازی اختیاری را مشخص می‌کند. این اسکریپت پس از ساخت فضای‌نام یک کار اجرا می‌شود. متغیر محیطی SLURM_NS حاوی مسیر فضای‌نام که می‌تواند توسط دستور nsenter استفاده شود، در اختیار این اسکریپت قرار می‌گیرد. این متغیر به اسکریپت اجازه می‌دهد تا به فضای‌نام تازه ایجادشده بپیوندد و کارهای پیکربندی بیشتری را انجام دهد. این پارامتر اختیاری است. .IP .TP \fBclone_ns_script_wait\fR تعداد ثانیه‌هایی که باید منتظر تکمیل \fBclone_ns_script\fR ماند پیش از آنکه اسکریپت شکست‌خورده تلقی شود. مقدار پیش‌فرض ۱۰ ثانیه است. .IP .TP \fBclone_ns_epilog\fR مسیر کامل و مطلق یک اسکریپت پس‌گفتار (epilog) اختیاری را مشخص می‌کند. این اسکریپت درست قبل از برچیده شدن فضای‌نام اجرا می‌شود. متغیر محیطی SLURM_NS حاوی مسیر فضای‌نام که می‌تواند توسط دستور nsenter استفاده شود، در اختیار این اسکریپت قرار می‌گیرد. این متغیر به اسکریپت اجازه می‌دهد تا به فضای‌نامی که به‌زودی حذف می‌شود بپیوندد و کارهای پاک‌سازی را انجام دهد. این پارامتر اختیاری است. .IP .TP \fBclone_ns_epilog_wait\fR تعداد ثانیه‌هایی که باید منتظر تکمیل \fBclone_ns_epilog\fR ماند پیش از آنکه اسکریپت شکست‌خورده تلقی شود. مقدار پیش‌فرض ۱۰ ثانیه است. .IP .TP \fBclone_ns_flags\fR این پارامتر حاوی فهرستی از مقادیر رشته‌ای پرچم است و مشخص می‌کند چه فضاهای‌نام دیگری باید برای کار ایجاد شوند. مقادیر معتبر شامل "CLONE_NEWPID" و "CLONE_NEWUSER" به ترتیب برای ایجاد فضاهای‌نام جدید PID و USER هستند. مقدار "CLONE_NEWNS" نیز پذیرفته می‌شود، اما همیشه فعال است. \fBنکته\fR: هنگامی که CLONE_NEWUSER مشخص شود، در صورت استفاده از ConstrainDevices در \fBcgroup.conf\fR، پشتیبانی از توکن bpf نیز الزامی است. .IP .TP \fBdirs\fR فهرستی جداشده با کاما از دایرکتوری‌هایی که باید نقاط سوار کردن اختصاصی برای آن‌ها ایجاد شود. این پارامتر اختیاری است و در صورت عدم تعیین، مقدار پیش‌فرض آن "/tmp,/dev/shm" خواهد بود. این گزینه با \fBdir_confs\fR مانعةالجمع است. در صورت تنظیم هر دو، \fBdir_confs\fR اولویت خواهد داشت. \fBنکته\fR: مسیر /dev/shm مدیریت ویژه‌ای دارد و به جای یک سوار کردن اتصالی (bind mount)، همیشه یک سیستم‌فایل تازه tmpfs است. \fBنکته\fR: هنگامی که CLONE_NEWPID مشخص شود، یک سیستم‌فایل منحصربه‌فرد /proc برای کانتینر به طور خودکار سوار خواهد شد. .IP .TP \fBdir_confs\fR فهرستی ساختاریافته از پیکربندی‌های سوار کردن به ازای هر دایرکتوری. هر ورودی یک مسیر، ذخیره‌سازی پشتیبان اختیاری برای هر دایرکتوری، و گزینه‌های سوار کردن اختیاری را مشخص می‌کند. در صورت تنظیم، جایگزین \fBdirs\fR می‌شود. ویژگی‌های عناصر این فهرست در بخش \fBتعاریف عناصر فهرست dir_confs (dir_confs list element definitions)\fR در ادامه شرح داده شده است. این پارامتر اختیاری است. .IP .TP \fBinit_script\fR مسیر کامل و مطلق یک اسکریپت راه‌اندازی اختیاری را مشخص می‌کند. این اسکریپت قبل از ساخت فضای‌نام یک کار اجرا می‌شود. می‌توان از آن برای پیوستن کار به فضاهای‌نام دیگر پیش از ساخت فضای‌نام /tmp یا برای هرگونه راه‌اندازی ویژه سیستم استفاده کرد. این پارامتر اختیاری است. .IP .TP \fBshared\fR تنظیم Shared=true سوار کردن‌های جدید را بین فضای‌نام سیستم‌فایل مختص کار و فضای‌نام سیستم‌فایل ریشه منتقل می‌کند و استفاده از autofs را روی گره فعال می‌سازد. این پارامتر اختیاری است. .IP .TP \fBuser_ns_script\fR مکان اسکریپتی را مشخص می‌کند که راه‌اندازی فضای‌نام کاربر (user namespace) را انجام می‌دهد. این اسکریپت هنگام راه‌اندازی فضای‌نام در ابتدا اجرا می‌شود. متغیر محیطی "SLURM_NS_PID" برای امکان‌پذیر ساختن ساخت مسیر به فایل‌های نقشه‌برداری گوناگونی که این اسکریپت می‌تواند در آن‌ها بنویسد فراهم شده است. اگر مشخص نشود، هر کاربر و گروهی نگاشت خواهد شد. .IP .SS "تعاریف عناصر فهرست dir_confs (dir_confs list element definitions)" .LP هر عنصر \fBdir_confs\fR شامل ویژگی‌های زیر است: .LP .TP \fBpath\fR دایرکتوری مقصد برای سوار کردن اختصاصی، مانند "/tmp". جایگزینی‌های زیر پشتیبانی می‌شوند: \fB%j\fR (شناسه کار)، \fB%S\fR (SLUID)، و \fB%u\fR (نام کاربری). این پارامتر الزامی است. .IP .TP \fBbase_path\fR ریشه فضای ذخیره‌سازی پشتیبان اختیاری برای هر دایرکتوری. مقدار سراسری \fBbase_path\fR را برای این سوار کردن بازنویسی می‌کند. یک زیردایرکتوری مختص کار در اینجا برای پشتیبانی از سوار کردن اختصاصی ایجاد خواهد شد. هنگام تنظیم \fBtmpfs\fR نادیده گرفته می‌شود. این پارامتر اختیاری است. .IP .TP \fBoptions\fR فهرستی جداشده با کاما از گزینه‌های \fBmount\fR. پشتیبانی برای ارسال گزینه‌های زیر به دستور \fBmount\fR فراهم شده است: .RS .TP \fBnoatime\fR زمان‌های دسترسی به inode را در این سیستم‌فایل به‌روزرسانی نکن. .IP .TP \fBnodev\fR دستگاه‌های ویژه کاراکتری یا بلوکی را در این سیستم‌فایل تفسیر نکن. .IP .TP \fBnodiratime\fR زمان‌های دسترسی به inode دایرکتوری را در این سیستم‌فایل به‌روزرسانی نکن. .IP .TP \fBnoexec\fR اجرای مستقیم فایل‌های باینری را در سیستم‌فایل سوارشده مجاز ندان. .IP .TP \fBnosuid\fR بیت‌های set\-user\-ID و set\-group\-ID یا قابلیت‌های فایل را هنگام اجرای برنامه‌ها از این سیستم‌فایل در نظر نگیر. .IP .TP \fBrelatime\fR زمان‌های دسترسی به inode را متناسب با زمان تغییر یا اصلاح به‌روزرسانی کن. .IP .TP \fBro\fR سیستم‌فایل را به صورت فقط‌خواندنی سوار کن. .RE .IP برای سوار کردن‌های tmpfs، گزینه‌های داده‌ای اضافی مانند \fBsize=4g\fR و \fBmode=1777\fR نیز می‌توانند مشخص شوند و مستقیماً به هسته (کرنل) ارسال می‌شوند. گزینه‌هایی که به عنوان پرچم شناخته نشوند به عنوان داده سوار کردن tmpfs تلقی شده و در سوار کردن‌های bind بدون اعلام خطا نادیده گرفته می‌شوند. این پارامتر اختیاری است. \fBنکته\fR: سوار کردن‌های tmpfs صرف‌نظر از این تنظیم، همیشه دارای \fBnosuid\fR و \fBnodev\fR هستند. .IP .TP \fBtmpfs\fR اگر روی true تنظیم شود، به جای ایجاد یک سوار کردن bind پشتیبانی‌شده توسط \fBbase_path\fR، یک tmpfs تازه را در این مسیر سوار می‌کند. این پارامتر اختیاری است. .IP .SH "نکات (NOTES)" .LP اگر هر پارامتری در namespace.yaml در هنگام اجرای slurm تغییر داده شود، سرویس slurmd در گره‌های مربوطه برای اعمال تغییرات باید مجدداً راه‌اندازی شود (اجرای دستور scontrol reconfigure کافی نیست). علاوه بر این، این موضوع می‌تواند باعث اختلال در کارهایی شود که هم‌اکنون روی گره در حال اجرا هستند. بنابراین باید دقت شود تا در صورت استقرار هرگونه تغییری در namespace.yaml، هیچ کاری در حال اجرا نباشد. راه‌اندازی مجدد slurmd تا زمانی که namespace.yaml بین راه‌اندازی‌های مجدد تغییر نکرده باشد، ایمن بوده و بدون اختلال در کارهای در حال اجرا انجام می‌شود، که در غیر این صورت نکته بالا صادق خواهد بود. .SH "مثال (EXAMPLE)" .nf --- defaults: auto_base_path: true base_path: "/var/nvme/storage_0" clone_ns_flags: - "CLONE_NEWPID" - "CLONE_NEWUSER" - "CLONE_NEWNS" clone_ns_epilog: "/path/to/epilog_script" clone_ns_epilog_wait: 10 clone_ns_script: "/path/to/ns_script" init_script: "/path/to/init_script" shared: true node_confs: - nodes: - "n1" - "n[2-4,6]" options: auto_base_path: true base_path: "/var/nvme/storage_1" clone_ns_script_wait: 20 dir_confs: - path: "/tmp" options: "noexec,nosuid,size=8g" tmpfs: true - path: "/scratch" base_path: "/var/nvme/storage_1" options: "noexec,nosuid" shared: false user_ns_script: "/path/to/user_script" - nodes: - "n[7-10]" options: auto_base_path: true base_path: "/var/nvme/storage_2" init_script: "/etc/slurm/init.sh" .fi .SH "کپی‌رایت و تکثیر (COPYING)" Copyright (C) 2025 SchedMD LLC. .LP این فایل بخشی از Slurm است؛ یک برنامه مدیریت منابع. برای جزئیات بیشتر، نشانی را ببینید. .LP نرم‌افزار Slurm یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همان‌گونه که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز و چه (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده یا تغییر دهید. .LP نرم‌افزار Slurm با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا تناسب برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید. .SH "همچنین ببینید (SEE ALSO)" .LP \fBslurm.conf\fR(5)