الاسم
- Provided by: manpages-ar (Version: 4.31.0-1)
- Source: manpages-l10n
- Report a bug
rpc.statd [-dh?FLNvV] [-H prog] [-n my-name] [-o outgoing-port] [-p listener-port] [-P path] [--nlm-port port] [--nlm-udp-port port]
أقفال الملفات ليست جزءًا من حالة نظام الملفات المستمرة. وبالتالي تُفقد حالة القفل عند إعادة تشغيل المضيف.
يجب على أنظمة ملفات الشبكة أيضًا اكتشاف متى تُفقد حالة القفل بسبب إعادة تشغيل مضيف بعيد. بعد إعادة تشغيل عميل NFS، يجب على خادم NFS تحرير جميع أقفال الملفات التي تحتفظ بها التطبيقات التي كانت تعمل على ذلك العميل. بعد إعادة تشغيل الخادم، يجب على العميل تذكير الخادم بأقفال الملفات التي تحتفظ بها التطبيقات التي تعمل على ذلك العميل.
بالنسبة لإصدار NFS 2 [RFC1094] وإصدار NFS 3 [RFC1813]، يُستخدم بروتوكول مراقب حالة الشبكة (أو NSM اختصارًا) لإعلام نظراء NFS بعمليات إعادة التشغيل. في لينكس، يشكل مكونان منفصلان في مساحة المستخدم خدمة NSM:
يقوم مدير أقفال NFS المحلي بتنبيه rpc.statd المحلي لكل نظير بعيد يجب مراقبته. عندما يعيد النظام المحلي التشغيل، يقوم أمر sm-notify بإشعار خدمة NSM على النظراء المراقبين بإعادة التشغيل. عندما يعيد نظير بعيد التشغيل، يقوم ذلك النظير بإشعار rpc.statd المحلي، والذي بدوره يمرر إشعار إعادة التشغيل إلى مدير أقفال NFS المحلي.
يؤدي أول تفاعل لقفل الملفات بين عميل وخادم NFS إلى قيام مديري أقفال NFS في كلا الطرفين بالاتصال بخدمة NSM المحلية الخاصة بهما لتخزين معلومات حول الطرف المقابل. في لينكس، يتصل مدير القفل المحلي بـ rpc.statd.
يسجل rpc.statd معلومات حول كل نظير NFS مٌراقب على وحدة تخزين مستمرة. تصف هذه المعلومات كيفية الاتصال بنظير بعيد في حالة إعادة تشغيل النظام المحلي، وكيفية التعرف على النظير المٌراقب الذي يبلغ عن إعادة التشغيل، وكيفية إخطار مدير القفل المحلي عندما يشير النظير المٌراقب إلى أنه أعاد التشغيل.
يرسل عميل NFS اسم مضيف، يعرف باسم المستدعِي للعميل، في كل طلب قفل ملف. يمكن لخادم NFS استخدام اسم المضيف هذا لإرسال استدعاءات GRANT غير متزامنة للعميل، أو لإشعار العميل بأنه أُعيد تشغيله.
يمكن لخادم NFS في لينكس توفير caller_name الخاص بالعميل أو عنوان شبكة العميل إلى rpc.statd. لأغراض بروتوكول NSM، يُعرف هذا الاسم أو العنوان باسم mon_name للمتراسل المراقب. بالإضافة إلى ذلك، يخبر مدير القفل المحلي rpc.statd بما يعتقد أنه اسم مضيفه الخاص. لأغراض بروتوكول NSM، يُعرف اسم المضيف هذا باسم my_name.
لا يوجد تفاعل مكافئ بين خادم NFS وعميل لإعلام العميل بـ caller_name الخاص بالخادم. لذلك، لا يعرف عملاء NFS فعليًا ما هو mon_name الذي قد يستخدمه خادم NFS في طلب SM_NOTIFY. يستخدم عميل NFS في لينكس اسم مضيف الخادم من أمر التثبيت لتحديد خوادم NFS التي يعاد تشغيلها.
عند إعادة تشغيل النظام المحلي، يقرأ أمر sm-notify قائمة النظراء المراقبين من التخزين الدائم ويرسل طلب SM_NOTIFY إلى خدمة NSM على كل نظير بعيد مدرج. يستخدم سلسلة mon_name كوجهة. لتحديد المضيف الذي أعيد تشغيله، يرسل أمر sm-notify سلسلة my_name المسجلة عند مراقبة ذلك البعيد. يطابق rpc.statd البعيد طلبات SM_NOTIFY الواردة باستخدام هذه السلسلة، أو عنوان شبكة المتصل، مع نظير واحد أو أكثر في قائمة المراقبة الخاصة به.
إذا لم يجد rpc.statd نظيرا في قائمة مراقبته يطابق طلب SM_NOTIFY الوارد، فلن يُمرَّر الإشعار إلى مدير الأقفال المحلي. بالإضافة إلى ذلك، لكل نظير رقم حالة NSM خاص به، وهو عدد صحيح 32-بت يُرفَع بعد كل إعادة تشغيل بواسطة أمر sm-notify. يستخدم rpc.statd هذا الرقم للتمييز بين عمليات إعادة التشغيل الحقيقية والإشعارات المعادة.
جزء من استعادة قفل NFS هو إعادة اكتشاف المتراسلين الذين يحتاجون إلى المراقبة مرة أخرى. يمسح الأمر sm-notify قائمة المراقبة في التخزين المستمر بعد كل إعادة تشغيل.
يمكن التحكم في العديد من الخيارات التي يمكن ضبطها في سطر الأوامر أيضًا من خلال القيم المضبوطة في أقسام [statd] أو، في بعض الحالات، [lockd] من ملف التهيئة /etc/nfs.conf. تشمل القيم المعترف بها في قسم [statd] port وoutgoing-port وname وstate-directory-path وha-callout والتي لكل منها نفس تأثير الخيار الذي يحمل نفس الاسم.
تشمل القيم المعترف بها في قسم [lockd] port وudp-port والتي لها نفس تأثير الخيارين --nlm-port و--nlm-udp-port، على التوالي.
يجب بدء تشغيل البرنامج الخفي rpc.statd كجذر لاكتساب الامتيازات اللازمة لإنشاء مقابس بمنافذ مصدر مميزة، وللوصول إلى قاعدة بيانات معلومات الحالة. نظرًا لأن rpc.statd يحافظ على خدمة شبكة طويلة التشغيل، فإنه يتخلى عن امتيازات الجذر بمجرد بدء التشغيل لتقليل خطر هجوم تصعيد الامتيازات.
خلال العملية العادية، يكون معرف المستخدم الفعال الذي يختاره هو مالك دليل الحالة. يتيح له هذا الاستمرار في الوصول إلى الملفات في ذلك الدليل بعد التخلي عن صلاحيات الجذر. للتحكم في معرف المستخدم الذي يختاره rpc.statd، استخدم ببساطة chown(1) لضبط مالك دليل الحالة.
يمكنك أيضًا حماية مستمعي rpc.statd باستخدام مكتبة tcp_wrapper أو iptables(8). لاستخدام مكتبة tcp_wrapper، أضف أسماء المضيفات للأقران التي يجب السماح لها بالوصول إلى /etc/hosts.allow. استخدم اسم البرنامج الخفي statd حتى لو كان للملف الثنائي rpc.statd اسم ملف مختلف.
لمزيد من المعلومات، راجع صفحات الدليل tcpd(8) وhosts_access(5).
استرداد القفل بعد إعادة التشغيل أمر بالغ الأهمية للحفاظ على سلامة البيانات ومنع تعليق التطبيقات غير الضروري. لمساعدة rpc.statd في مطابقة طلبات SM_NOTIFY مع طلبات NLM، يجب اتباع عدد من أفضل الممارسات، بما في ذلك:
لا يؤدي فصل نظام ملفات NFS بالضرورة إلى توقف عميل NFS أو الخادم عن مراقبة بعضهما البعض. قد يستمر كلاهما في مراقبة بعضهما البعض لفترة في حال أدت حركة مرور NFS اللاحقة بينهما إلى عمليات وصل جديدة وقفل ملفات إضافي.
في لينكس، إذا جرى إلغاء تحميل وحدة النواة lockd أثناء التشغيل العادي، فإن جميع نظراء NFS البعيدين سيصبحون غير مراقبين. يمكن أن يحدث هذا في عميل NFS، على سبيل المثال، إذا قام أداة تركيب تلقائي (automounter) بإزالة جميع نقاط تركيب NFS بسبب عدم النشاط.
يمكن لـ rpc.statd تنفيذ برنامج استدعاء خاص أثناء معالجة طلبات SM_MON وSM_UNMON وSM_UNMON_ALL الناجحة، أو عند استلام SM_NOTIFY. يمكن استخدام مثل هذا البرنامج في بيئات NFS عالية التوفر (HA-NFS) لتتبع حالة القفل التي قد تحتاج إلى ترحيل بعد إعادة تشغيل النظام.
يتم تحديد اسم برنامج الاستدعاء باستخدام الخيار -H. يتم تشغيل البرنامج مع 3 وسائط: الأولى إما add-client أو del-client أو sm-notify اعتمادًا على سبب الاستدعاء. الثانية هي mon_name للنظير المراقَب. الثالثة هي caller_name لمدير القفل الطالب لـ add-client أو del-client، وإلا فهي IP_address للمتصل الذي يرسل SM_NOTIFY. الرابعة هي state_value في طلب SM_NOTIFY.
TI-RPC هو شرط أساسي لدعم NFS على IPv6. إذا كان دعم TI-RPC مدمجًا في rpc.statd، فإنه يحاول بدء المستمعين على ناقلات الشبكة المميزة بـ 'visible' في /etc/netconfig. طالما بدأ مستمع ناقل شبكة واحد على الأقل بنجاح، سيعمل rpc.statd.
sm-notify(8), nfs(5), rpc.nfsd(8), rpcbind(8), tcpd(8), hosts_access(5), iptables(8), netconfig(5)
RFC 1094 - "NFS:
مواصفات
بروتوكول
نظام ملفات
الشبكة"
RFC 1813 - "NFS الإصدار
3 مواصفات
البروتوكول"
بروتوكولات
OpenGroup للعمل
البيني: XNFS،
الإصدار 3W -
الفصل 11
جيف أبوف
<juphoff@users.sourceforge.net>
Olaf Kirch <okir@monad.swb.de>
إتش. جيه. لو
<hjl@gnu.org>
لون
هوبيرجر
<hohberger@missioncriticallinux.com>
بول
كليمنتس
<paul.clements@steeleye.com>
Chuck Lever <chuck.lever@oracle.com>
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.