অপ্রত্যাশিত শক্তি হ্রাস একটি লিনাক্স ইনস্টল ক্ষতি করতে পারে?


22

আমি একটি লিনাক্স এম্বেডেড বোর্ডে (ডেবিয়ান চালায়) যেমন অ্যাপ্লিকেশনটি তৈরি করছি যেমন রাস্পবেরি পাই, বিগল বোর্ড / হাড় বা অ্যালিমেক্স। বোর্ডগুলি এমন পরিবেশে কাজ করে যেটি বিদ্যুতটি অপ্রত্যাশিতভাবে কাটা হয় (এটি পিএসইউ ইত্যাদি স্থাপন করা অনেক জটিল) এবং এটি প্রতিদিন কয়েকবার ঘটে happen আমি অবাক হয়েছি যে অপ্রত্যাশিত বিদ্যুতের কাটগুলি লিনাক্স অপারেশন সিস্টেমে ক্রাশ / সমস্যা সৃষ্টি করবে? যদি এটি এমন কিছু হয় যা আমার চিন্তা করা উচিত তবে অপ্রত্যাশিত বিদ্যুতের কাটগুলির বিরুদ্ধে ওএসের ক্ষতিগুলি রোধ করার জন্য আপনি কী পরামর্শ করবেন?

গীত। অ্যাপ্লিকেশনটির স্টোরেজ মিডিয়ামে (এসডি কার্ড) কিছু তথ্য লেখা দরকার, আমি মনে করি এটি কেবল পঠনযোগ্য হিসাবে মাউন্ট করা উপযুক্ত হবে না।


1
আপনি প্রচুর সংশোধন করেছেন এমন ফাইল সিস্টেমে ext2 (ext3 বা উচ্চতর ব্যবহার করুন) থেকে দূরে থাকুন এবং আপনার বেশিরভাগ অংশের জন্য ঠিক থাকতে হবে।
লরেন্স

আপনি যদি আপনার এসডি কার্ডগুলি নির্দিষ্ট করতে খুব সাবধান হন না তবে আপনি অপ্রত্যাশিতভাবে শক্তি কেটে দিলে কার্ডগুলি কোনও কিছুর গ্যারান্টি দেয় না। কার্ডটি একটি পরিধান স্তরের সমতলকরণের মাঝামাঝি হতে পারে, যার ফলে অদ্ভুত, অপ্রত্যাশিত দুর্নীতি দেখা দিতে পারে a যা এমনকি আলাদা পার্টিশনে থাকতে পারে!
ডারোবার্ট

এটি কীভাবে করা যায় আমি ঠিক জানি না তবে আপনি আপনার কী অ্যাপ্লিকেশনগুলি লেনদেন ভিত্তিক করে বিবেচনা করতে চাইতে পারেন। এইভাবে, আপনি আপনার বর্তমান ফাইল এবং একটি ব্যাকআপ নিতে পারেন। আপনি আপনার বর্তমান ফাইলে লেনদেনগুলি প্রয়োগ করেন এবং যদি এটি ব্যর্থ হয় তবে আপনি বর্তমান ফাইলটিকে ব্যাকআপ থেকে পুনরুদ্ধার করতে পারেন এবং লেনদেনগুলি পুনরায় প্রয়োগ করতে পারেন। আপনি যদি সিমলিংক ব্যবহার করে বা ফাইলের নাম অদলবদল করে বর্তমান এবং ব্যাকআপের মধ্যে স্যুইচ করেন, তবে অনুলিপি করার চেয়ে ত্রুটি হওয়ার খুব কম সম্ভাবনা নিয়ে এটি খুব দ্রুত ঘটতে পারে। সফল আপডেটের পরে আপনার বর্তমান ফাইলটি আপনার ব্যাকআপ হয়ে যায় এবং ব্যাকআপটি বর্তমান হয়ে যায়।
জো

ক্রমাগত। এটি প্রায় কাজ করে। নতুন বর্তমান ফাইলটিতে লেনদেনের জন্য দু'বার প্রক্রিয়াজাতকরণের জন্য এটিতে লেনদেনেরও প্রয়োজন হবে, তাই আমি নিশ্চিত যে এর থেকে আরও ভাল উপায় আছে। যাইহোক, পুরো ফাইলটি বড় হয়ে গেলে এটি অনুলিপি করার চেয়ে অনেক দ্রুত এবং নিরাপদ হতে পারে।
জো

উত্তর:


14

অপ্রত্যাশিত পাওয়ার কাটগুলি ফাইল সিস্টেমের ডেটাগুলির দুর্নীতির কারণ হতে পারে - উদাহরণস্বরূপ যদি কোনও প্রক্রিয়া কোনও ফাইলটিতে লেখা শুরু করে, তবে এখনও এটি লেখা শেষ না করে, ফাইলটি কেবল অর্ধেক লিখিতভাবে শেষ হতে পারে। এখন ভাবুন যে আপনি যখন কার্নেল আপগ্রেডের মধ্য দিয়ে অর্ধেক পথ চলেছেন তখন পাওয়ার কাটা ঘটে কিনা ...

যেমন l0b0 লিখেছেন, একটি জার্নালিং ফাইল সিস্টেম ব্যবহার করা সাহায্য করবে, যেহেতু এটি আসলে কী করেছে তা ট্র্যাক রাখতে সক্ষম হবে। উইকিপিডিয়া তথ্য যে l0b0 লিঙ্ক উপরন্তু, আপনি আগ্রহী হতে পারেন /unix/12699/do-journaling-filesystems-guarantee-against-corruption-after-a-power-failure পাশাপাশি ।

প্রোগ্রামার হিসাবে আপনার অবশ্যই স্পষ্টভাবে বিবেচনা করতে হবে কীভাবে ফাইলগুলিতে রচনাটি পরিচালনা করতে হবে যাতে এটি একটি পারমাণবিক প্রক্রিয়া হয় (যেমন এটি হয় সম্পূর্ণরূপে সম্পন্ন হয় বা মোটেও সম্পন্ন হয় না, তবে কখনও অর্ধেক সম্পন্ন হয় না)। এটি মোটামুটি জটিল সমস্যা।


10
কোনও ফাইলকে দূষিত করে লেখার বাধা রক্ষা করার জন্য কোডের সাধারণ প্রক্রিয়াটি হ'ল সরাসরি ফাইল.নেম পরিবর্তন করার পরিবর্তে আপনি সম্পূর্ণ নতুন ফাইল ফাইল.নাম.নউভার্সন লিখুন এবং তারপরে পুরানো সংস্করণটি প্রতিস্থাপন করতে মুছুন / পুনর্নামকরণ আদেশগুলি ব্যবহার করুন the নতুন একটি. প্রতিটি পদক্ষেপে একটি বাধা থেকে পুনরুদ্ধার করতে আপনাকে ক্লিনআপ কোড যুক্ত করতে হবে; তবে এই পদ্ধতির ফাইলটি সর্বদা ডিস্কে রাখে। এটি আপনার ডিজাইনে প্রভাব ফেলতে পারে যেহেতু এটি একক বিশাল ফাইলগুলিকে খারাপভাবে আপডেট করে বা একক ফাইলে ঘন ঘন পরিবর্তন করে।
ড্যান নীলি

11

ওএস দুর্নীতির সম্ভাবনা কমাতে সহায়তা করার জন্য, এসডি কার্ডে পৃথক "সিস্টেম" এবং "ডেটা" পার্টিশন থাকা ভাল। এইভাবে আপনি "সিস্টেম" পার্টিশনটি কেবল পঠনযোগ্যভাবে মাউন্ট করতে পারেন এবং "ডেটা" পার্টিশনে একটি উচ্চ-স্থিতিস্থাপক এফএস ব্যবহার করতে পারেন।

অতিরিক্তভাবে, এই বোর্ডগুলির বেশিরভাগের খুব কম বিদ্যুতের প্রয়োজনীয়তা থাকে, সুতরাং একটি ব্যাটারি ব্যাকআপ সম্ভব। রাস্পবেরি পাই এর জন্য "লিপো রাইডার" বোর্ডটি বিদ্যুতের ক্ষয়ক্ষতির উপর একটি ক্লিন শাটডাউন সরবরাহের জন্য একটি বেসিক ইউপিএস হিসাবে ব্যবহার করা যেতে পারে।


5

এটি নির্ভর করবে

  1. আপনি জার্নালিং ফাইল সিস্টেম এবং ব্যবহার করছেন কিনা
  2. অ্যাপ্লিকেশনগুলি বাতিল হওয়া প্রক্রিয়াজাতকরণটি কতটা ভাল পরিচালনা করতে সক্ষম।

উদাহরণস্বরূপ এমন একটি অ্যাপ্লিকেশন বিবেচনা করুন যা কোনও ফাইল প্রক্রিয়া করে এবং ফলাফলগুলি সেগুলিতে গণনা করা হয় (অন্য ইনপুট লাইনে এক আউটপুট লাইন) অন্য ফাইলটিতে writes প্রসেসিংয়ের সময় যদি শক্তিটি কেটে ফেলা হয় এবং একই অ্যাপ্লিকেশনটি পুনরায় চালু করার পরে চালানো হয় তবে এটি কেবল ইনপুট ফাইলের শুরু থেকে প্রসেসিং পুনরায় আরম্ভ করতে পারে না - এর অর্থ হবে আউটপুট ফাইলটিতে নকল তথ্য থাকবে।

অনুমানমূলক জটিল সিস্টেম সম্পর্কে সুনির্দিষ্ট কিছু বলা খুব কঠিন হতে পারে তবে বেশিরভাগ স্থিতিশীল লিনাক্স সফ্টওয়্যার ক্র্যাশগুলি বেশ সুন্দরভাবে পরিচালনা করতে সক্ষম হয়েছে বলে মনে হয়।


1

যেহেতু কেউ নির্দিষ্ট ফাইল সিস্টেমের কথা উল্লেখ করেনি: আরও আধুনিক ফাইল-সিস্টেমগুলি (ext3, ext4, ntfs) জার্নালিংয়ের কারণে পুরানো ফাইল সিস্টেমে (ext2, ext, ফ্যাট 32) তুলনায় ক্র্যাশগুলি অনেক ভাল পরিচালনা করতে সক্ষম ।

হার্ড-ড্রাইভটি ক্রাশ হয় না এবং মিথ্যা বলে না তা ধরে নিলে , একটি সম্পূর্ণ পাওয়ার ব্যর্থতা ফাইল সিস্টেমকে দূষিত করবে না। স্বতন্ত্র ফাইলগুলি যা লিখিত ছিল সেগুলি এখনও দূষিত হতে পারে, তবে, যদি বিদ্যুতের ব্যর্থতা দেখা দেয় আপনি যদি ওএস আপডেট করার মাঝামাঝি থাকেন তবে ওএসটি নামিয়ে আনা সম্ভব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.