এক্সট 4 / লিনাক্স ড্রাইভে ডেটা দুর্নীতি প্রতিরোধ করুন


9

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

অধিক তথ্য

ড্রাইভটি একটি 4 জিবি আদর্শ ফ্ল্যাশ মডিউল। আমার একটি পার্টিশন রয়েছে যা ext4। ওএসটি সেই পার্টিশনে ইনস্টল করা আছে এবং গ্রুব আমার বুটলোডার।

fdisk -l আমার প্রাথমিক পার্টিশন হিসাবে / dev / sda1 সহ আমার ফ্ল্যাশ মডিউল হিসাবে / dev / sda প্রদর্শন করে।

বিদ্যুৎ হ্রাসের পরে আমি সাধারণত এটি সম্পূর্ণরূপে বুট থ্রি স্ক্রিপ্টগুলির মাধ্যমে তৈরি করতে পারি না।

আমি যখন অন্য পিসিতে ড্রাইভটি মাউন্ট করি তখন আমি fsck / dev / sda1 চালাই। এটি সর্বদা মত বার্তা প্রদর্শন করে shows

"zero datetime on node 1553 ... fix (y)?"

আমি এগুলি ঠিক করে রেখেছি এবং পরবর্তী ক্ষয়ক্ষতি না হওয়া পর্যন্ত এটি ঠিক আছে ots

আগামীকাল আমি যখন অফিসে যাব, আমি fdisk -l এর আসল আউটপুট পোস্ট করব

সিস্টেমটি কীভাবে কাজ করে সে সম্পর্কে এটিই আমি জানি। আমি কোনও সিস্টেমের লোক নই, আমি এমন একটি সফটওয়্যার ইঞ্জিনিয়ার যাঁর চাকরির বর্ণনার বাইরে যে ভবিষ্যদ্বাণী করা যায় তার অভ্যাস রয়েছে। আমি জানি যে কীভাবে ড্রাইভগুলি বিন্যাস করতে হবে, একটি বুটলোডার ইনস্টল করতে হবে, সফ্টওয়্যারটি লিখতে হবে এবং কোনও অপারেটিং সিস্টেম হ্যাক করতে হবে।

এখানে dumpe2fs থেকে আউটপুট দেওয়া হয়

#sudo dumpe2fs /dev/sda1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   VideoServer
Last mounted on:          /
Filesystem UUID:          9cba62b0-8038-4913-be30-8eb211b23d78
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         not clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              245760
Block count:              977949
Reserved block count:     48896
Free blocks:              158584
Free inodes:              102920
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      239
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Fri Feb  4 15:12:00 2011
Last mount time:          Sun Oct  2 23:48:37 2011
Last write time:          Mon Oct  3 16:34:01 2011
Mount count:              2
Maximum mount count:      26
Last checked:             Tue Oct  4 07:44:50 2011
Check interval:           15552000 (6 months)
Next check after:         Sun Apr  1 07:44:50 2012
Lifetime writes:          21 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   half_md4
Directory Hash Seed:      249d2b79-1e20-49a3-b324-6cb631294a63
Journal backup:           inode blocks

উত্তর:


6

লেখার ক্যাশে সাধারণত BIOS এর সাথে কিছুই করার থাকে না, বেশিরভাগ ক্ষেত্রে সেখানে ডিস্ক ক্যাশে সেটিংস স্যুইচ করার কোনও বিকল্প নেই। লিনাক্স সহ, ব্যবহারে hdparm -W 0সহায়তা করা উচিত।

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

বিটিডাব্লু: আমি একটি লিখনযোগ্য অযোগ্য ফাইল সিস্টেমের ধারণাটিকে দ্বিতীয় করতাম (যাতে আপনার সিস্টেমটি একধরণের "পুনরুদ্ধার মোডে" বুট করতে পারে এবং কোনও কারণে লিখনযোগ্য ফাইল সিস্টেমটি মাউন্টযোগ্য না হলেও এমনকি দূরবর্তী অ্যাক্সেসের অনুমতি দিতে পারে)। আর তুমি হার্ডওয়্যার নকশা পরিবর্তন করতে পারেন যদি, ব্যবহারের বিষয়ে বিবেচনা mtd ডিভাইসের মত একটি ফ্ল্যাশ-সচেতন ফাইলসিস্টেম সঙ্গে আইডিই / সময় SATA ডিস্ক পরিবর্তে jffs2 । আমরা বেশ কয়েকটি এম্বেড থাকা ডিভাইস (বেশিরভাগ ক্ষেত্রে ভিপিএন রাউটার সলিউশন) ভাল ফলাফল সহ বেশ কয়েকটি বছর ধরে এই সংমিশ্রণটি ব্যবহার করছি।

আপডেট: আপনার সমস্যার মূলে মনে হচ্ছে আপনি জার্নালিং অক্ষম করে একটি এক্সট 4 ফাইল সিস্টেম চালাচ্ছেন - তালিকাটি has_journalথেকে নিখোঁজ রয়েছে Filesystem features। কেবল সমস্ত পরিষেবাদি বন্ধ করে দিন, এখনও কিছু ব্যবহার করে ফাইলগুলি খোলা আছে কিনা তা পরীক্ষা করুন, কেবলমাত্র lsof +f -- /আপনার মূল পার্টিশনটি কেবল রিডিং-এর মাধ্যমে পুনরায় গণনা করুন mount -o remount,ro /, জার্নালটি সক্ষম করুন tune2fs -O has_journal /dev/sda1এবং ডিফল্ট মাউন্ট বিকল্প হিসাবে "অর্ডার" জার্নাল মোড সেট আপ করুন tune2fs -o journal_data_ordered /dev/sda1- আপনাকে পুনরায় করতে হবে এই অপারেশনের পরে fsck (অগ্রাধিকার হিসাবে একটি উদ্ধার ব্যবস্থা থেকে) চালান এবং পুনরায় মাউন্ট / রিবুট করুন।

এই সেটিংসটি স্থানে থাকা অবস্থায়, হঠাৎ বিদ্যুতের ব্যর্থতার ঘটনায় এমনকি মেটাডেটা জার্নাল থেকে পুনরুদ্ধারের গ্যারান্টিযুক্ত। প্রকৃত ডেটাটিও নিয়মিতভাবে ডিস্কে লেখা হয়, যদিও আপনি বুটআপে বিদ্যুৎ বিভক্ত হওয়ার আগে কয়েক সেকেন্ডের ডেটা দেখতে পাবেন। যদি এটি গ্রহণযোগ্য না হয় তবে আপনি tune2fs -o journal_data /dev/sda1নিজের ফাইল সিস্টেমের সাথে মাউন্ট বিকল্পটি ব্যবহার করার কথা বিবেচনা করতে পারেন - এটি জার্নালে ডিস্কে লেখা সমস্ত ডেটা অন্তর্ভুক্ত করবে - এটি সম্ভবত আপনাকে আরও ভাল ডেটা ধারাবাহিকতা দেবে তবে পারফরম্যান্স পেনাল্টি এবং উচ্চতর পরিধানের ব্যয়ে আপনার এসএসডি তে


তাহলে কি লেখার সমস্যা আমার সমস্যা বা অন্য কিছু?
জোনাথন হেনসন

ঠিক আছে, আমি কীভাবে জানতে পারি, এটি সর্বোপরি আপনার সিস্টেম :-) আপনার ব্যবহৃত ফাইল সিস্টেম মাউন্ট বিকল্পগুলির কিছু বিবরণ দেওয়া উচিত (আপনি কি এক্সটেন্টগুলি সক্ষম করেছেন? কী ধরণের ডেটা / জার্নাল মোড?) এবং আপনি যে ধরণের দুর্নীতি করছেন? আরও বিশদ বিশ্লেষণের জন্য দেখা (fsck আউটপুট সেরা হবে)।
দ্য ওয়াববিট

ঠিক আছে ধন্যবাদ. আমি জানি আপনি অসহায় একটি সফটওয়্যার ইঞ্জিনিয়ার :)। আমি কিছু বিশদ পাবেন। আমি মিনিটের মধ্যে কিছু বিশদ যুক্ত করছি।
জনাথন হেনসন

এক্সটেন্টস কী তা আমি জানি না এবং জার্নাল মোডটি কী তা আমি নিশ্চিত নই।
জনাথন হেনসন

আহ আমি দেখি. কেবলমাত্র আউটপুট dumpe2fs /dev/sda1(বা এই সিস্টেমের জন্য আপনার ডিভাইস / পার্টিশনের নাম যাই হোক না কেন) এর প্রথম লাইনগুলি পোস্ট করুন - এগুলিতে সমস্ত প্রাসঙ্গিক তথ্য থাকতে হবে। এবং / etc / fstab থেকে মূল ফাইল সিস্টেমের জন্য মাউন্ট অপশনগুলিও সহায়তা করবে।
দ্য ওয়াববিট

5

লেখার ক্যাশে পরামর্শটি একটি ভাল শুরু তবে এটি আর্কিটেকচারাল ডিজাইনের ত্রুটির মতো মনে হচ্ছে। এম্বেড থাকা সিস্টেমে অভ্যন্তরীণ ফ্ল্যাশটি সম্ভবত বিরল পরিস্থিতিতে বাদ দিয়ে আর / ডাব্লু করা উচিত নয়। আপনার সত্যিই বেশিরভাগ কাজ একটি মেমরি ফাইল সিস্টেমে করা উচিত এবং কিছু ব্যবহারকারী কমান্ড বা নিয়মিত বিরতিতে ফিরে RW ফ্ল্যাশ-এ পরিবর্তনগুলি সিঙ্ক করতে হবে। এম্বেড থাকা সিস্টেমের জন্য স্বাভাবিক অপারেশন চলাকালীন আরডাব্লু মোডে একটি নিয়মিত ফাইল সিস্টেম (ext4 এর মতো) ব্যবহার করা সত্যিই অস্বাভাবিক। আপনার যদি প্রচুর স্টোরেজ স্পেসের দরকার হয় এমন কিছু অ্যাপ্লিকেশন প্রয়োজন হয় তবে আপনার সিস্টেম পার্টিশনটি আলাদা হওয়া এবং এটির নকশা এমনভাবে বিবেচনা করা উচিত যাতে ডেটা পার্টিশনটি প্রারম্ভিক অংশ হিসাবে fsck -y'ed করা যায়।

আপনার যদি কিছু প্রাথমিক পয়েন্ট দরকার হয় তবে আমি কীভাবে লোকেরা ডিস্কলেস লিনাক্স সিস্টেম সেটআপ করে তা দেখব:

http://frank.harvard.edu/~coldwell/diskless/

এবং সেখান থেকে শুরু করুন। সাধারণ ধারণাটি হ'ল আপনার সিস্টেম বাইনারি এবং ডেটা কেবল পঠনযোগ্যভাবে মাউন্ট করা যেতে পারে তাই আপনার ফাইল সিস্টেমটি ক্ষতিগ্রস্থ হবে না। তবে আপনাকে কয়েকটি নির্দিষ্ট জায়গায় লিখতে সক্ষম হতে হবে, তাই আপনার সাধারণত মেমরি ফাইলসিসটেম / tmp, / var / tmp প্রয়োজন। এমনকি যদি কিছু বিষয় লেখার যোগ্য হয় তবে আপনার পার্টিশনটি r + w হিসাবে মাউন্ট করার জন্য একটি স্ক্রিপ্ট তৈরি করে তারপরে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করুন, তারপরে কেবল পঠনযোগ্য হয়ে ফিরে যান।

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


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

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

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

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

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