.TH "NFSDCLD" "8" "مه ۲۰۲۵" "nfs-utils" "دستورات مدیریت سیستم" .if n .ad l .nh .SH "نام (NAME)" nfsdcld \- دیمن ردیابی کلاینتهای سرور NFSv4 .SH "خلاصه دستور (SYNOPSIS)" .B nfsdcld [\fB\-d\fR] [\fB\-F\fR] [\fB\-p\fR \fIمسیر\fR] [\fB\-s\fR \fIپوشه_ذخیره‌سازی\fR] .SH "توضیحات (DESCRIPTION)" دیمن \fBnfsdcld\fR مسئول ثبت و نگهداری وضعیت کلاینتهای NFS نسخه ۴ در سرور است. اجرای این دیمن روی سیستم‌هایی که به عنوان سرور NFSv4 عمل نمی‌کنند ضرورتی ندارد. .PP هنگامی که تفکیک و قطعی شبکه با راه‌اندازی مجدد سرور هم‌زمان شود، شرایط مرزی خاصی به وجود می‌آید که ممکن است سرور اقدام به بازپس‌دهی قفل‌ها (lock reclaims) کند، در حالی که سایر کلاینت‌ها در این فاصله قفل‌های متداخل ایجاد کرده‌اند. توضیح دقیق‌تر این مسئله در استاندارد RFC 3530، بخش ۸.۶.۳ شرح داده شده است. .PP برای جلوگیری از این مشکلات، سرور باید مقدار کمی از اطلاعات مربوط به هر کلاینت را در یک فضای ذخیره‌سازی پایدار ردیابی و نگهداری کند. این دیمن بخش مربوط به فضای کاربری (userspace) این قابلیت را فراهم می‌سازد. .SH "گزینه‌ها (OPTIONS)" .IP "\fB\-d\fR, \fB\-\-debug\fR" 4 فعال‌سازی گزارش‌گیری در سطح اشکال‌زدایی (debug). .IP "\fB\-F\fR, \fB\-\-foreground\fR" 4 اجرای دیمن در پیش‌زمینه و چاپ تمامی خروجی‌ها در خطای استاندارد (stderr). .IP "\fB\-p\fR \fIpath\fR, \fB\-\-pipefsdir\fR=\fIpath\fR" 4 محل فایل‌سیستم rpc_pipefs. مقدار پیش‌فرض \&\fI/var/lib/nfs/rpc_pipefs\fR است. .IP "\fB\-s\fR \fIstorage_dir\fR, \fB\-\-storagedir\fR=\fIstorage_dir\fR" 4 پوشه‌ای که اطلاعات ذخیره‌سازی پایدار باید در آن نگهداری شود. مقدار پیش‌فرض \&\fI/var/lib/nfs/nfsdcld\fR است. .SH "فایل پیکربندی (CONFIGURATION FILE)" مقادیر زیر در بخش \fB[nfsdcld]\fR از فایل پیکربندی \fI/etc/nfs.conf\fR شناسایی می‌شوند: .IP "\fBstoragedir\fR" 4 معادل \fB\-s\fR/\fB\-\-storagedir\fR. .IP "\fBdebug\fR" 4 تنظیم «debug = 1» معادل \fB\-d\fR/\fB\-\-debug\fR است. .LP علاوه بر این، مقدار زیر از بخش \fB[general]\fR شناسایی می‌شود: .IP "\fBpipefs\-directory\fR" 4 معادل \fB\-p\fR/\fB\-\-pipefsdir\fR. .SH "نکات (NOTES)" سرور NFSv4 در هسته لینوکس از نظر تاریخی این اطلاعات را روی فضای ذخیره‌سازی پایدار با دستکاری مستقیم اطلاعات فایل‌سیستم، در دایرکتوری مشخص‌شده توسط \fI/proc/fs/nfsd/nfsv4recoverydir\fR ردیابی می‌کرد. .PP این سازوکار با معرفی اولیه فراخوانی به فضای کاربر (upcall) دیمن \fBnfsdcld\fR در نسخه ۳.۴ هسته تغییر کرد، که بعداً به نفع برنامه usermodehelper با نام \fBnfsdcltrack\fR(8) منسوخ شد (پشتیبانی از آن در نسخه ۳.۸ هسته افزوده شده بود). با این حال، از آنجا که فراخوانی usermodehelper درون کانتینرها کار نمی‌کند، پشتیبانی از نسخه جدیدی از فراخوانی \fBnfsdcld\fR در نسخه ۵.۲ هسته افزوده شد. .PP این دیمن به هسته‌ای نیاز دارد که از فراخوانی \fBnfsdcld\fR پشتیبانی کند. در هسته‌های قدیمی‌تر، اگر کد سنتی ردیابی نام کلاینت در حال استفاده بود، هسته لوله (pipe) ارتباطی مورد استفاده \fBnfsdcld\fR با هسته را ایجاد نمی‌کرد. در هسته‌های جدیدتر، nfsd تلاش می‌کند ردیابی کلاینت را به این ترتیب راه‌اندازی کند: ابتدا فراخوانی \fBnfsdcld\fR، سپس فراخوانی usermodehelper دیمن \fBnfsdcltrack\fR، و در نهایت ردیابی سنتی کلاینت. .PP این دیمن باید با دسترسی کاربر ریشه (root) اجرا شود، زیرا لوله ارتباطی با هسته تنها توسط root قابل دسترسی است. البته دیمن پس از راه‌اندازی، تمام دسترسی‌های کاربر ارشد را رها می‌کند. به همین دلیل، مالکیت \fIstoragedir\fR باید متعلق به root بوده و برای مالک قابل خواندن و نوشتن باشد. .PP این دیمن اکنون از نسخه‌های متفاوتی از upcall پشتیبانی می‌کند تا هسته بتواند داده‌های اضافی را جهت ذخیره در پایگاه‌داده روی دیسک ارسال کند. هسته نسخه upcall مورد پشتیبانی را هنگام راه‌اندازی ردیابی کلاینت از \fBnfsdcld\fR استعلام می‌کند. پس از ارتقای \fBnfsdcld\fR راه‌اندازی مجدد \fBnfsd\fR الزامی نیست، اما \fBnfsd\fR تا زمان شروع مجدد از نسخه upcall جدیدتر استفاده نخواهد کرد. پس از تنزیل (downgrade) نسخه \fBnfsdcld\fR، راه‌اندازی مجدد \fBnfsd الزامی است\fR تا اطمینان حاصل شود که \fBnfsd\fR از نسخه‌ای از upcall که توسط \fBnfsdcld\fR پشتیبانی نمی‌شود استفاده نکند. علاوه بر این، تنزیل \fBnfsdcld\fR مستلزم تنزیل ساختار (schema) پایگاه‌داده روی دیسک نیز هست که می‌توان آن را با ابزار \fBnfsdclddb\fR(8) انجام داد. .SH "فایل‌ها (FILES)" .TP .B /var/lib/nfs/nfsdcld/main.sqlite .SH "همچنین ببینید (SEE ALSO)" .BR nfsdcltrack (8), .BR nfsdclddb (8) .SH "نویسندگان (AUTHORS)" دیمن nfsdcld توسط Jeff Layton با اصلاحات Scott Mayhew توسعه یافته است.