Skip to main content

কেন A/B পার্টিশন?

এম্বেডেড সিস্টেমগুলিতে, ব্যর্থ আপডেটগুলি ডিভাইসগুলিকে ইট করতে পারে। একটি এ / বি লেআউট দুটি রুট ফাইল সিস্টেম বজায় রেখে এটি সমাধান করে:

  • স্লট এ — সক্রিয় রুটফ
  • স্লট বি - পরবর্তী আপডেটের জন্য স্ট্যান্ডবাই রুটফস

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

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

উদ্ধার ব্যবস্থার সঙ্গে swupdate

আরেকটি পদ্ধতি হ'ল, একটি ছোট রেসকিউ সিস্টেমের জন্য পার্টিশন তৈরি করা এবং সাধারণ চলমান সিস্টেমের জন্য একটি বৃহত্তর পার্টিশন তৈরি করা।

উদাহরণ: পার্টিশন লেআউট

একটি সাধারণ Raspberry Pi Compute Module 5 (সিএম 5) লেআউটটি দেখতে এরকম হতে পারে:
পার্টিশনটাইপ উদ্দেশ্য
পি 1FAT32/boot_A (কার্নেল, সিএমডিলাইন, বুটলোডার)
পি 2ext4রুটএফএস এ
পি 3FAT32/boot_B (কার্নেল, সিএমডিলাইন, রেসকিউ সিস্টেমের জন্য বুটলোডার)
পি 4ext4rootfs_B
পি 5ext4উপাত্ত / কনফিগারেশন
বুটলোডার একটি পতাকা ব্যবহার করতে পারে (উদাহরণস্বরূপ, আরপিআই-ইপ্রোমে জিপিআইও 17 = 1) রেসকিউ পার্টিশন থেকে বুট করা হবে কিনা তা নির্ধারণ করতে।

ব্যবহারিক উদাহরণ

এই সেটআপটি দুটি rpi-image-genউদাহরণ প্রকল্পে প্রদর্শিত হয়:

প্রথমটি উদ্ধার সিস্টেম তৈরি করে এবং দ্বিতীয়টি উদ্ধার সিস্টেমকে অন্য চলমান সিস্টেমের সাথে একত্রিত করে, cmdline.txt এবং fstabপার্টিশন লেবেলগুলি সামঞ্জস্য করে।

আপডেট পরিচালনা করা হচ্ছে

কনফিগারেশন, অ্যাপ্লিকেশন বা সিস্টেম উপাদানগুলি আপডেট করতে আপনি নিষ্ক্রিয় সিস্টেম পার্টিশনটি ম্যানুয়ালি মাউন্ট করতে পারেন।
উত্পাদন সিস্টেমের জন্য, আপডেটগুলি সাধারণত SWUpdateএর মাধ্যমে পরিচালিত হয়, যা এই প্রক্রিয়াটিকে নিরাপদে স্বয়ংক্রিয় করে।

SWUpdate সঙ্গে একীকরণ

SWUpdate স্থানীয়ভাবে ডুয়াল-রুটফ (এ / বি) আপডেট কৌশলগুলি সমর্থন করে।
পার্টিশন এবং আপডেট লজিক সরাসরি sw-description ফাইলে সংজ্ঞায়িত করা হয়।

এই পদ্ধতিটি বিল্ট-ইন রোলব্যাক সুরক্ষা সহ পারমাণবিক সিস্টেম আপডেটগুলি নিশ্চিত করে - হেডলেস বা দূরবর্তী ডিভাইসগুলির জন্য একটি প্রয়োজনীয় বৈশিষ্ট্য, যেখানে ম্যানুয়াল পুনরুদ্ধার সম্ভব নয়।