NFS پشت VPN: نصب هنگام بوت یا نصب خودکار بر اساس تقاضا؟
نصب هنگام بوت روی تونلی که ممکن است هنوز بالا نیامده باشد مسدود میشود. نصب خودکار منتظر اولین دسترسی میماند و وابستگی VPN باید روی واحد نصب باشد، نه روی محرک.
دو پیکربندی یک مشکل را حل میکنند و در دو جهت مخالف شکست میخورند. نصب اشتراک هنگام بوت به هر سرویس یک فایلسیستم میدهد که یا وجود دارد یا دلیلی برای متوقف شدن بوت. نصب خودکار بر اساس تقاضا به ماشین بوت سریع میدهد و انتظار را به کسی میسپارد که اول به مسیر دست میزند. پشت VPN معمولاً گزینه دوم معامله بهتری است و دلیلش این است که تونل ترتیبی را تحمیل میکند که ترتیب بوت آن را نمیبیند.
نصب هنگام بوت در برابر نصب خودکار
نصب هنگام بوت ساده است. هدف فایلسیستم منتظر نصب میماند، سرویسهایی که وابستگی به آن اعلام میکنند بعداً شروع میشوند، و اگر سرور در دسترس نباشد ماشین بسته به گزینهها یا منتظر میماند یا شکست میخورد. هر چیزی که پاییندست است آن تصمیم واحد را به ارث میبرد.
نصب خودکار این را برعکس میکند. مسیر فوراً وجود دارد، نصب واقعی وقتی رخ میدهد که چیزی آن را باز کند، و سرویسهایی که زود شروع میشوند روی تونلی که هنوز بالا نیامده مسدود نمیشوند.
مقایسه به این برمیگردد که چه کسی باید تأخیر را جذب کند. ایستگاه کاری که پیش از آنکه کاربر بتواند کار کند به اشتراک نیاز دارد احتمالاً باید صبر کند. لپتاپی که در کیف بوت میشود، یا سروری که اشتراکش اختیاری است، نباید.
هیچکدام از دو گزینه مسیر گمشده را درست نمیکند. هر دو فقط تصمیم میگیرند که شکست چه زمانی مشاهده شود.
خط fstab، گزینه به گزینه
فرض کنید نمونهای موجود از کارخواه OpenVPN برابر [email protected] است، سرور files.corp.example و نقطه نصب /mnt/work. هر سه را با مقادیر مجاز سایت خود جایگزین کنید. یک خط کارآمد چنین است:
files.corp.example:/export/work /mnt/work nfs _netdev,nofail,x-systemd.automount,[email protected],x-systemd.mount-timeout=30s 0 0
_netdev نصب را به شبکه نیازمند علامت میزند و هیچ تونلی را نام نمیبرد. nofail اشتراک را برای هدف عادی فایلسیستم اختیاری نگه میدارد. x-systemd.automount محرک بر اساس تقاضا را بهجای نصب فوری میسازد.
x-systemd.requires= همان بخشی است که تلاش نصب را به واحد VPN گره میزند و به عملیات نصب تعلق دارد، نه به محرک. گذاشتن ترتیب گسترده روی خود واحد نصب خودکار همان روشی است که مردم چرخههایی میسازند که systemd بعداً با زبانی از آنها شکایت میکند که کسی دو بار نمیخواند.
x-systemd.mount-timeout=30s فرمان نصب اولیه را محدود میکند. چیزی را که بعداً رخ میدهد محدود نمیکند، و این شایعترین سوءتفاهم درباره این گزینه است.
«شروع شده» چه معنایی ندارد
بررسی کنید فعال بودن برای واحد VPN که نام بردید چه معنایی دارد. یک سرویس تونل میتواند خود را شروعشده گزارش کند پیش از آنکه مسیر به سرور فایل وجود داشته باشد یا پیش از آنکه نام خصوصی حل شود، و مرتبسازی بعد از آن چیزی برایتان نمیخرد. تقریباً هر تلاش ناموفقی در همین شکاف زندگی میکند. همچنین نامرئی است مگر اینکه به مسیر و حلکننده نگاه کنید نه به وضعیت واحد.
از سیگنال آمادگی خود صاحب اتصال بهعنوان پیششرط اضافی در جایی که وجود دارد استفاده کنید. خواب ثابت حدسی است که روی میز شما کار میکند و در شبکهای کندتر یا پس از اتصال دوباره شکست میخورد.
واحدهای تولیدشده برای مسیر نمونه را بررسی کنید: mnt-work.automount و mnt-work.mount. پس از تغییری بازبینیشده در fstab، systemd را دوباره بارگذاری کنید و آن واحدها را مستقیم مدیریت کنید بهجای اجرای فرمان نصب یکسرهای که ورودیهای نامرتبط را به کار میاندازد.
یک هشدار دیگر هم به اینجا تعلق دارد. سرویسی که هنگام شروع /mnt/work را لمس میکند هنوز نصب را تحریک میکند و هنوز برایش صبر میکند، پس اختیاری علامت زدن اشتراک هر برنامهای را شکیبا نمیکند.
پس از نصب شکست نوع دیگری است
وقتی NFS نصب شد، رفتار تلاش دوباره و بازیابی فایلسیستم تعیین میکند که قطعی بعدی با یک خواندن یا نوشتن چه میکند. مهلت نصبی که تعیین کردید هیچ تأثیری بر آن ندارد.
نصب نرم برخی انتظارها را کوتاه میکند و معنای خطاها را تغییر میدهد، با پیامدهایی برای یکپارچگی داده که وقتی هدف بوت سریعتر است آسان از نظر میافتند. انتخاب آن برای بردن دو ثانیه از شروع بهندرت معامله خوبی است. اگر نیاز واقعاً یک عملیات کراندار در هنگام قطعی است، آن تصمیمی در سطح برنامه است، نه پرچمی در fstab.
تصمیم بگیرید که با فرایندی که وسط نوشتن است وقتی تونل میافتد چه باید بشود، و آن را بنویسید. آن پاسخ از هر رشته گزینهای سودمندتر است.
چهار حالت را آزمایش کنید، نه یکی را
شروع عادی با تونل در دسترس حالت آسان است و تقریباً چیزی را ثابت نمیکند. تأیید میکند که رشته درست نوشته شده و نه بیشتر. اولین دسترسی را بدون VPN آزمایش کنید، سپس بازیابی را وقتی بالا میآید، سپس یک قطعی کنترلشده پس از نصب موفق.
چهار حالت، چهار مشاهده، و یادداشتها کنار ورودی fstab میروند. نفر بعدی رفتار را به ارث میبرد نه پیکربندیای که باید مهندسی معکوسش کند.