NFSREF(8) دستورات مدیریت سیستم NFSREF(8)

nfsref - مدیریت ارجاعات و اتصال مجدد شاخه‌ها در NFS

nfsref [-?d] [-t type] add pathname server export [ server export ... ]

nfsref [-?d] [-t type] remove pathname

nfsref [-?d] [-t type] lookup pathname

نسخه ۴ پروتکل NFS مفهوم ارجاعات سیستم فایل (file system referrals) را به NFS معرفی می‌کند.

یک ارجاع سیستم فایل شبیه یک پیوند نمادین (یا symlink) به اشتراک سیستم فایل دیگر است که معمولاً روی سرور فایل دیگری قرار دارد. کلاینت NFS تحت هدایت سرور، اشتراک NFS ارجاع‌شده را هنگامی که یک برنامه برای نخستین بار به آن دسترسی پیدا می‌کند، به‌طور خودکار سوار (mount) می‌کند.

ارجاعات NFSv4 می‌توانند برای هدایت شفاف کلاینت‌ها به سیستم فایل‌هایی که به مکان دیگری منتقل شده‌اند، یا برای ایجاد یک فضای نام یکپارچه در میان چندین سرور فایل استفاده شوند. از آنجا که سرورهای فایل ساختار کل فضای نام فایل را کنترل می‌کنند، به هیچ‌گونه پیکربندی سمت کلاینت نیازی نیست.

دستور nfsref برای ایجاد، اصلاح، حذف و بازبینی ارجاعات اتصالی (referrals) در فایل‌سیستم‌های اشتراکی NFS استفاده می‌شود.

یک نقطه اتصال (junction) شیئی در سیستم فایل روی سرور NFS است که هرگاه کلاینت NFS با آن مواجه شود، یک ارجاع را فعال می‌کند. همانند یک symlink، یک junction شامل یک یا چند مکان مقصد است که سرور آن‌ها را در قالب ارجاع NFSv4 به کلاینت‌ها ارسال می‌کند.

در لینوکس، یک دایرکتوری موجود می‌تواند به‌صورت اتمیک (تجزیه‌ناپذیر) و بدون از دست رفتن محتویات دایرکتوری به یک junction و برعکس تبدیل شود. هنگامی که یک دایرکتوری در نقش junction عمل می‌کند، محتویات محلی آن از دید کلاینت‌های NFSv4 پنهان می‌شود.

دستور nfsref(8) روشی ساده برای شروع مدیریت نقاط اتصال (junctions) و محتوای آن‌ها است.

زیردستورهای معتبر nfsref(8) عبارتند از:

اطلاعات نقطه اتصال را به دایرکتوری مشخص‌شده توسط pathname اضافه می‌کند. دایرکتوری نام‌برده باید از قبل وجود داشته باشد و نباید از قبل حاوی اطلاعات نقطه اتصال باشد. با این عملیات، محتویات عادی دایرکتوری از دید کلاینت‌های NFS پنهان می‌شود.
فهرستی از یک یا چند جفت سرور فایل و مسیر صادرات نیز در خط فرمان مشخص می‌شود. هنگام ایجاد یک نقطه اتصال پایه NFS، این فهرست در یک صفت توسعه‌یافته (extended attribute) از دایرکتوری ذخیره می‌شود.
اگر ایجاد نقطه اتصال موفقیت‌آمیز باشد، دستور nfsref(8) حافظه نهان صادرات هسته (export cache) را تخلیه (flush) می‌کند تا اطلاعات نقطه اتصال کش‌شده قبلی حذف شود.
اطلاعات نقطه اتصال را از دایرکتوری مشخص‌شده توسط pathname حذف می‌کند. دایرکتوری مشخص‌شده باید وجود داشته باشد و حاوی اطلاعات نقطه اتصال باشد. با این عملیات، محتویات عادی دایرکتوری دوباره برای کلاینت‌های NFS قابل مشاهده می‌شود.
اگر حذف نقطه اتصال موفقیت‌آمیز باشد، دستور nfsref(8) حافظه نهان صادرات هسته را تخلیه می‌کند تا اطلاعات نقطه اتصال کش‌شده قبلی حذف شود.
اطلاعات نقطه اتصال ذخیره‌شده در دایرکتوری مشخص‌شده توسط pathname را نمایش می‌دهد. دایرکتوری مشخص‌شده باید وجود داشته باشد و حاوی اطلاعات نقطه اتصال باشد.
هنگام جستجوی یک نقطه اتصال پایه NFS، اطلاعات نقطه اتصال موجود در دایرکتوری در stdout فهرست می‌شود.

پیام‌های اشکال‌زدایی را هنگام عملیات فعال می‌کند.
نوع نقطه اتصال را برای این عملیات تعیین می‌کند. مقادیر معتبر برای junction-type شامل nfs-basic یا nfs-fedfs است.
برای زیردستور add، اگر این گزینه مشخص نشود، مقدار پیش‌فرض nfs-basic است. نوع nfs-fedfs در این پیاده‌سازی استفاده نمی‌شود.
برای زیردستورهای remove و lookup، گزینه --type الزامی نیست. دستور nfsref(8) بر روی هر محتوای نقطه اتصالی که موجود باشد عمل می‌کند.

فرض کنید دو سرور فایل دارید: top.example.net و home.example.net. می‌خواهید همه کلاینت‌های شما top.example.net:/ را سوار (mount) کنند و سپس فایل‌های زیر home.example.net:/ را به‌طور خودکار در top:/home ببینند.

روی top.example.net، می‌توانید این دستور را به عنوان کاربر root اجرا کنید:

# mkdir /home
# nfsref add /home home.example.net /
Created junction /home.

RFC 8881 برای توصیف سازوکار ارجاع در NFS نسخه ۴

Chuck Lever <chuck.lever@oracle.com>

مه ۲۰۲۵ nfs-utils