এম্বেডড লিনাক্সের জন্য দুর্নীতি-প্রমাণ এসডি কার্ড ফাইল সিস্টেম?


36

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

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

লিনাক্সে উপলভ্য কোন ফাইল সিস্টেমটি অপ্রত্যাশিত শক্তি ব্যর্থতার বিরুদ্ধে দুর্নীতির বিরুদ্ধে সর্বোত্তম প্রতিরোধ সরবরাহ করবে এবং এসডি তে ইনস্টল করার জন্য yaffs2 এর মতো অসম্ভব হুপের মধ্য দিয়ে ঝাঁপ দেওয়ার প্রয়োজন পড়বে না।

পরিধান-ভারসাম্য একটি প্লাস, তবে কোনও প্রয়োজন নয় - এসডি কার্ডগুলির সাধারণত নিজস্ব ব্যবস্থা থাকে, নিখুঁত থেকে কম হলেও, যদিও সিস্টেমটি "ফ্ল্যাশের জন্য মৃদু" হওয়া উচিত (এনটিএফএসের মতো সিস্টেমগুলি এক মাসের মধ্যে একটি এসডি কার্ড হত্যা করতে পারে)।


1
ব্যক্তিগতভাবে, আমি অন্য উপায়ে যাব এবং পাওয়ার অফের একটি নিরাপদ শাটডাউন নিয়ে কাজ করব, সম্ভবত একটি ক্যাপ ব্যবহার করে একটি শাটডাউন চালানোর জন্য পর্যাপ্ত ওম্প সরবরাহ করবে।
স্কট সিডম্যান 21'14

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

@ স্কটসিডম্যান: এটি বেশিরভাগ ক্ষুধার্ত RP আপনি সুপারক্যাপগুলির পুরো ব্যাটারিতে বিনিয়োগ না করে বেশ ক্যাপাসিটার জিনিস নয়।
এসএফ

@ আরবার্টিইগ: একটি রিচার্জেবল ব্যাটারি সহ একটি বাক্স, চার্জ করার জন্য যথাযথ ইলেকট্রনিক্স, আউটপুট ভোল্টেজ স্থিতিশীল করা (সম্ভবত ব্যাটারির নিজস্ব থেকে ধাপে আপ), শাটডাউন সিগন্যাল প্রেরণ, শাটডাউন শেষ হওয়ার পরে আউটপুট শক্তি কাটা, ইনপুট শক্তি পুনরুদ্ধার না হওয়া পর্যন্ত স্ব-শাট ডাউন - নিশ্চিতভাবেই এটি সমস্ত করণীয় তবে আপনি যদি এটি পরিমাণে তৈরি করেন না, তবে এটি আরপিআইয়ের দাম দ্বিগুণ করে (যদিও সেই কিওস্কের ক্ষেত্রে, টিভি সেটটি 10 ​​গুণ বেশি ব্যয়বহুল ...)
এসএফ।

1
@SF। - নোট করুন যে পাওয়ারফেল ফাইল সিস্টেমের বিরুদ্ধে শক্তিশালী দুটি সমস্যা রয়েছে। প্রথমটি হ'ল এফএস নিজেই শক্তিশালী, দ্বিতীয়টি হ'ল অন্তর্নিহিত হার্ডওয়্যারটি ডিস্কে ডেটা ফ্লাশিং সম্পর্কে মিথ্যা নয়। আমি জানি যে স্পিনিং ডিস্কগুলি সাম্প্রতিক বছরগুলিতে তাদের আপাত কার্যকারিতা বাড়াতে মিথ্যা কথা বলেছে, আপনি নিশ্চিত করতে চাইবেন যে আপনার এসডি কার্ডগুলি সেগুলি করছে না।
মাইকেল কোহেন

উত্তর:


17

একক এসডি কার্ডে দুর্নীতির বিরুদ্ধে সর্বোত্তম প্রতিরোধের বিআইটিআরএফএস RAID1 মোডে অফার করবে প্রতি সময়ের পূর্বনির্ধারিত সময়কালে স্বয়ংক্রিয় স্ক্রাব দিয়ে।

সুবিদাসুমূহ:

  1. ফাইল সিস্টেমে আরডব্লিউ করার ক্ষমতা বজায় রাখা
  2. স্বচ্ছ সংকোচনের এবং স্ন্যাপশটের মতো আরপিআইয়ের জন্য খুব দরকারী বিকল্পগুলির সাথে আধুনিক, সম্পূর্ণরূপে বৈশিষ্ট্যযুক্ত ফাইল সিস্টেম
  3. ফ্ল্যাশ মেমরিটি মাথায় রেখে তৈরি করা হয়েছে (অন্যান্য জিনিসের মধ্যে)

কিভাবে করতে হবে এখানে আছে:

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

এখানে পার্টিশন বিন্যাসের একটি উদাহরণ রয়েছে:

/dev/mmcblk0p1: fat32 boot partition
/dev/mmcblk0p2: to be used as btrfs partition
/dev/mmcblk0p3: to be used as btrfs partition (mirrored with the above)
/dev/mmcblk0p4 (optional): swap

RAID1 তে বিটিআরএফএস পেতে, আপনি এই জাতীয় ফাইল সিস্টেমটি তৈরি করেন:

mkfs.btrfs -m raid1 -d raid1 /dev/mmcblk0p2 /dev/mmcblk0p3

তারপরে আপনি rsync -aAXvএটিতে আপনার আগের ব্যাক আপ সিস্টেম।

Raid1 এ বিটিআরএফএস থেকে বুট করার জন্য, আপনাকে initramfs পরিবর্তন করতে হবে । অতএব, আপনার সিস্টেমটি এখনও আপনার পুরানো ফাইল সিস্টেমে চলাকালীন আপনাকে নিম্নলিখিতগুলি করতে হবে।

রাস্পবেরি সাধারণত মकिनিটকপিও ব্যবহার করে না তাই আপনাকে অবশ্যই এটি ইনস্টল করতে হবে। তারপরে, আপনাকে mkinitcpio.conf- এ মডুলস অ্যারেতে "বিটিআরএফএস" যুক্ত করতে হবে এবং এর সাহায্যে ইন্ট্রামফগুলি পুনরায় তৈরি করতে হবে

mkinitcpio -g /boot/initrd -k YOUR_KERNEL_VERSION

YOUR_KERNEL_VERSION এর পরিবর্তে কী টাইপ করতে হবে তা জানতে, চালান

ls /lib/modules

আপনি যদি কার্নেলটি আপডেট করেন তবে আপনাকে পুনরায় বুট করার আগে আপনাকে নতুন করে পুনরায় তৈরি করতে হবে।

তারপরে, আপনাকে আরপি'র বুট ফাইলগুলি পরিবর্তন করতে হবে।

Cmdline.txt এ আপনার থাকা দরকার

root=/dev/mmcblk0p2 initrd=0x01f00000 rootfstype=btrfs

এবং config.txt এ আপনাকে যুক্ত করতে হবে

initramfs initrd 0x01f00000

একবার আপনি সমস্ত কিছু সম্পন্ন করে এবং সফলভাবে আপনার বিটিআরএফএস RAID1 সিস্টেমে বুট করার পরে, কেবলমাত্র সময়সী স্ক্রাব (প্রতি 3-7 দিন) সিস্টেমে টাইমার (পছন্দসই), বা ক্রোন (ডক্রন) এর সাথে সেটআপ করা কেবলমাত্র:

btrfs scrub start /

এটি আপনার ফাইল সিস্টেমে সমস্ত ফাইলের চেকসামের তুলনা করে এবং এটিতে কোনও সমস্যা দেখা দিলে তা ঠিক করে দেওয়া (সঠিক কপি দিয়ে প্রতিস্থাপন) চালানো হবে।

বিটিআরএফএস RAID1, একক মাধ্যম এবং রাস্পবেরি পাই এর সংমিশ্রণটি এই সুন্দর আরকেন স্টাফ তৈরি করে। এটি সমস্ত টুকরা একসাথে রাখার জন্য কিছু সময় এবং কাজ করেছে, কিন্তু এটি এখানে।


প্রতিটি বুট-আপের পরেও কি আমার 'স্ক্রাব' যুক্ত করা উচিত?
এসএফ

@SF। না, এটি প্রয়োজন হয় না। প্রতি X দিনে পর্যায়ক্রমিক স্ক্রাব যথেষ্ট। সাধারণত কমপক্ষে ব্যবহারের ঘন্টা সময়।
লকহিড

দুঃখিত, আমি বুঝতে ব্যর্থ হয়েছি - আমি যদি চর্বিযুক্ত /bootপার্টিশন রাখি, তবে কি এখনও আমার কি ডিগ্রিফ সংশোধন করা দরকার?
বেক্স

বেক্স, হ্যাঁ এটি বিআরটিএফগুলির রাইড 1 বৈশিষ্ট্যটি সহ করতে হবে, ফ্যাট / বুট বিভাজন নয়।
লকহিড

রেজাল্ট আপডেট: আজ অবধি, কেউ RAID1 এর পরিবর্তে ডুপ-মোড ব্যবহার করার চেষ্টা করতে পারে: "mkfs.btrfs --data dup --metadata dup" তবে আমি 100% নিশ্চিত নই যে এটি RAID1 এর মতো স্থিতিস্থাপক একক ড্রাইভে

10

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

র‌্যাম ডিস্ক

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


10

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

উভয়ই আমার হোমমেড বিল্ড সিস্টেম ওপেনএডকে দিয়ে তৈরি করা সম্ভব। ( http://www.openadk.org )


আরও ফাইল সিস্টেম সাহায্য করে ... তবে সমস্যাটি পুরোপুরি সমাধান করে না।
পিসকভোর

7

ঠিক আছে, আপনার এখানে সমস্যাটি হ'ল ext * এর মতো একটি "আধুনিক" ফাইল সিস্টেম ব্যবহার করার ফলে আপনার এসডি কার্ডটি নীচে পড়ে যাবে; আমার অভিজ্ঞতা থেকে যা এক বছরের মধ্যে ঘটে থাকে বা আপনি যদি উচ্চতর শেষ নেন তবে পরের বছর।

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

যখন আপনি প্রচুর লগিং পরিচালনা করেন তখন এটিও ঘটে থাকে যা আপনার এম্বেড থাকা ডিভাইসটি ডিবাগ করার সময় আপনি করতে চাইতে পারেন। লগিং রাইটিংগুলি সবচেয়ে খারাপ লেখার মতো, কারণ এটি প্রচুর পরিমাণে ছোট্ট লেখাগুলি নিয়মিত ঘটে চলেছে, যা প্রচুর খণ্ডিত করে।

আপনি যেমনটি বলছেন যে আপনার সিস্টেমটি সেন্সরটির ডেটাও পরিচালনা করছে, সম্ভবত তারা আসার সাথে সাথে এগুলি ফ্ল্যাশে সংরক্ষণ করবেন store এবং তারা লগ ডেটার মতোই খারাপ।

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

যদিও, আমি লক্ষ্য করেছি যে "শিল্পকৌশল" গ্রেডের স্যান্ডিস্কগুলির দীর্ঘতর জীবনকাল ছিল যার নাম নেই। কোনটি অবাক করার মতো নয়, যখন আপনি বেশি অর্থ প্রদান করেন, আপনি আরও পান।

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

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

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

এনবি: আমার অভিজ্ঞতা 20 সেন্সর ডিভাইসের একটি ট্রায়াল রানের মধ্যে একটি বিগলবোনটিতে অ্যাংস্ট্রোম লিনাক্স ব্যবহার করে আসছে। সিস্টেমেড জার্নাল সিস্টেমটি ব্যবহার করে সিস্টেমটির লগিং খুব ভার্জোজ ছিল।


4

লিনাক্স অনেকগুলি ফাইল সিস্টেম দেয়। এক্সট 4 হ'ল আমার আরও আস্থা আছে doubt সন্দেহ হলে, ext4 এমন কোনও পার্টিশনের জন্য ব্যবহার করা উচিত যা পঠন-লিখনে মাউন্ট করা হবে।

দ্বারা ext2 ফাইল সিস্টেম অনেক বেশি ভঙ্গুর। এটি এমন সিস্টেমগুলির জন্য একেবারে ভাল ফাইল সিস্টেম যা এটি কেবলমাত্র পঠনযোগ্য হিসাবে মাউন্ট করতে সক্ষম করে বা সঠিকভাবে আনমাউন্ট করতে সক্ষম। কিন্তু দুর্নীতির চূড়ান্ত সম্ভাবনা রয়েছে এক্সট 2 এ পাওয়ার ব্যর্থতায় ।

অন্য বিকল্পটি jfs বিবেচনা করতে পারে যদিও কিছু লিনাক্স সংস্করণে jfs ফাইল সিস্টেম নির্ভরযোগ্য নয়। দুর্নীতির সম্ভাবনা কম হয় JFS সঙ্গে তুলনায় ext4 এইজেফএসে দ্রুত মাউন্ট টাইম এবং ফাইল সিস্টেম চেক সময়ও রয়েছে।


2
হ্যাঁ, ext4 দুর্দান্ত এবং আমি এটি আমার বেশিরভাগ সার্ভারের জন্য ব্যবহার করি। তবে এই প্রশ্নটি এসডি কার্ডে রুট সিস্টেমের জন্য ফাইল সিস্টেম সম্পর্কিত । এটি একটি ভিন্ন পরিবেশ। আপনার পরামর্শটি কি সাধারণ, বা আপনি কী এক্সট 4 কার্ড ব্যবহার করার পরামর্শ দিচ্ছেন?
guettli
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.