صرف پڑھنے کے لیے بنی امیج سے بوٹ ہو کر اپنی رن ٹائم حالت tmpfs پر رکھنے والا VPN سرور حقیقی اور مفید ڈیزائن ہے۔ اسے لاگز کے بغیر بتانا بھی آسان ہے، جسے ڈیزائن ثابت نہیں کرتا۔ اسٹوریج کی جگہ طے کرتی ہے کہ نقل کہاں رہتی ہے؛ جمع آوری اور برقراری طے کرتی ہیں کہ ریکارڈ ہے بھی یا نہیں، اور ری بوٹ صرف پہلے پر اثر ڈالتا ہے۔ ان دونوں کو الگ رکھنا ہی پورا جائزہ ہے۔

ان تمام عملوں کی فہرست بنا کر شروع کریں جو حالت لکھ سکتے ہیں: ڈیمن، تصدیق کی خدمت، جرنل، کوئی بھی نگرانی ایجنٹ اور انتظامی اوزار۔

اسٹوریج اور جمع آوری دو مختلف سوالات ہیں

ہر لکھنے والے کی اپنی منزل اور اپنی پالیسی ہوتی ہے۔ VPN ڈیمن حالت کی فائلیں لکھتا ہے، تصدیق کا بیک اینڈ اکاؤنٹ کے واقعات لکھتا ہے، جرنل خدمات کی آؤٹ پٹ جمع کرتا ہے، اور نگرانی ایجنٹ میٹرکس بالکل کسی اور جگہ بھیجتا ہے۔ ایسا ڈیزائن جو ان میں سے ایک کو ری بوٹ پر غائب کر دے، باقی تین کے بارے میں کچھ نہیں کہتا۔ ہر لکھنے والے کا اس کے منزل تک پیچھا کریں اور نوٹ کریں کہ وہ منزل مشین پر ہے بھی یا نہیں۔

ایپلیکیشن سے مخصوص فائلیں، اپ لوڈ شدہ تشخیص اور بیرونی خدمات کو بھی وہی سلوک درکار ہے۔ کسی مانوس مقامی لاگ کا نہ ہونا ثابت نہیں کرتا کہ کنکشن یا اکاؤنٹ کے ریکارڈ کہیں نہیں ہیں؛ یہ ثابت کرتا ہے کہ آپ نے ابھی نہیں ڈھونڈا کہ وہ کہاں جاتے ہیں۔

tmpfs کوئی ضمانت نہیں

Linux tmpfs کوئی طبعی RAM ڈسک نہیں ہے۔ کرنل کی دستاویزات واضح ہیں کہ جب ماؤنٹ اجازت دے تو صفحات swap میں لکھے جا سکتے ہیں، اس لیے tmpfs فائل ڈسک تک پہنچ سکتی ہے چاہے ایپلیکیشن نے اسے کبھی وہاں نقل نہ کیا ہو۔ mount دکھاتا ہے کہ swap کی حامی tmpfs کام میں ہے یا نہیں، اور دیگر میموری فائل سسٹم اس سے بھی مختلف برتاؤ کرتے ہیں۔ /run کے نیچے راستے کو غیر مستقل ہونے کا مطلب سمجھنے کے بجائے حقیقی ماؤنٹ اختیارات پڑھیں۔

پھر ان چیزوں کی فہرست بنائیں جو لوگوں کے بھولے ہوئے طریقوں سے ری بوٹ کے بعد بھی رہتی ہیں: مستقل اوپری تہہ، منسلک اسٹوریج، ہائبرنیشن امیج، کریش ڈمپ اور پورے VM کے بنیادی ڈھانچے کے اسنیپ شاٹ۔ ہر ایک ایسی حالت کے لیے ممکنہ منزل ہے جسے آپ عارضی سمجھتے تھے۔ وہ فہرست جانچنے کی چیز ہے، یہ دعویٰ نہیں کہ ہر ہوسٹ کے پاس سب کچھ ہے۔

Journald کے دو منزل اور ایک فارورڈر ہے

Journald اس تقسیم کو صاف دکھاتا ہے۔ غیر مستقل اسٹوریج اندراجات /run/log/journal کے نیچے رکھتا ہے، مستقل /var/log/journal کے نیچے، اور خودکار موڈ دونوں میں سے انتخاب کرتا ہے؛ نافذ موڈ چلتی ہوئی نظام سے آتا ہے، امیج کی تفصیل سے نہیں۔ غیر مستقل پر جانا پہلے سے مستقل لکھی گئی چیز کو مٹاتا نہیں۔ فارورڈنگ بھی الگ چینل ہے: مقامی طور پر کچھ نہ رکھنے والی اسٹوریج سیٹنگ بھی پیغامات کسی اور ہدف کو دے سکتی ہے۔

نافذ موڈ جرنل سے ہی یا اس کی کنفیگریشن فائل سے پڑھیں، پھر فارورڈنگ ہدف الگ سے جانچیں، کیونکہ ایک سیٹنگ دوسری کو کنٹرول نہیں کرتی۔

ری بوٹ کے بعد کیا بچنا چاہیے

بے حالت رن ٹائم قابل تکرار تبدیلی کی حمایت کرتا ہے، اور اسے کنفیگریشن، اجازت اور بازیابی کے مواد کے لیے دانستہ ذرائع چاہیے جو خدمت خود نہیں بنا سکتی۔ مقامی تحریریں غائب ہونے کے لیے واحد کارآمد رجسٹریشن یا منسوخی کی حالت کھونا برا سودا ہے، اور عام بھی۔ دانستہ طور پر طے کریں کہ کیا بچنا چاہیے، پھر تصدیق کریں کہ بچتا ہے۔

یہی استدلال آپریشنل ریکارڈ پر بھی لاگو ہوتا ہے۔ طے کریں کہ سلامتی اور خدمت کے انتظام کو واقعی کون سے واقعات درکار ہیں، مناسب دائرہ اور برقراری کے ساتھ، اور باقی کم سے کم کریں۔ کم کرنا ہر تشخیص کو بند کرنے کے برابر نہیں۔

نافذ اسٹوریج اور فارورڈنگ کنفیگریشن کا چند بے ضرر واقعات سے موازنہ کریں، پھر مشین کو ری بوٹ یا تبدیل کریں اور دوبارہ جانچیں کہ کیا باقی رہا اور خدمت نے اپنی حالت کہاں سے بحال کی۔

متعلقہ مضامین