কীভাবে একটি বিটিআরএফএস সাবভলিউমের নাম পরিবর্তন করবেন?


24

আমার একটি বিটিআরএফএস ফাইল সিস্টেম রয়েছে যাতে এটিতে সাবভলিউমের একটি সেট থাকে। এ পর্যন্ত সব ঠিকই. আমার একটি সাবভলিউমের নাম পরিবর্তন করতে হবে, দুর্ভাগ্যক্রমে btrfsপ্রোগ্রামটি আমাকে সাবভলিউমের নতুন নামকরণের অনুমতি দেয় না। গুগলের সাথে অনুসন্ধান করা কিছু ফলাফল পেয়েছে, একজন বলেছিল আমি ঠিক পারি mv, অন্যটি বলেছিল যে আমি কেবল snapshotনতুন নাম করতে পারি এবং পুরাতন সাবভলিউম মুছতে পারি। আমি আমার পার্টিশনটি ক্রাশ করার আগে এবং ব্যাকআপ থেকে এটি পুনরায় লোড করার আগে (এটি বেশ বড়) আমার প্রশ্নটি হ'ল:

  • সাবভলিউমের নতুন নামকরণের জন্য বর্তমানে সর্বোত্তম উপায় কী?
  • এটি কি ঠিক এটি ঠিক আছে mv, বা এটি কিছু অভ্যন্তরীণ কাঠামোকে অকার্যকর করবে?
  • একটি নতুন স্ন্যাপশট তৈরি করে পুরানো সাবভলিউমটি যাওয়ার পথে সরিয়ে ফেলা হচ্ছে, বা এর কিছু অসুবিধা রয়েছে?

আমি জানি যে এখনও সবকিছু পরীক্ষামূলক, তবে আমার উদ্দেশ্যগুলির জন্য এটি বেশ ভালভাবে কাজ করে চলেছে (এখনও পর্যন্ত, এবং আমার প্রতিটি দিনের জন্য বাড়তি ব্যাকআপ রয়েছে)।


1
শুনে বিটিআরএফস আপনার জন্য ভাল কাজ করছে। এটি এখন পর্যন্ত আমার পক্ষে ভাল কাজ করছে। কোন সমস্যা নাই.
মনিকা সেলিও

উত্তর:


16

ঠিক আছে mvউবুন্টু সম্প্রদায়ের ডকুমেন্টেশনের এটাই প্রস্তাবিত উপায় ।

এবং এটি করার সঠিক উপায় কেন তা আরও পরিষ্কার করার জন্য, এখানে বিটিআরএফএস সিসাদমিন গাইডের একটি উদ্ধৃতি দেওয়া হয়েছে:

স্ন্যাপশট

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


8

লক্ষ্য করার মতো কয়েকটি গুরুত্বপূর্ণ বিষয় রয়েছে। নাম:

বিটিআরএফস সাবভলিউম - স্বাধীন ডেটা কনটেইনার insideফাইল সিস্টেম। এটি বিদ্যমান এফএসের ডিরেক্টরি হিসাবে উপস্থাপিত হয় । আপনি যদি নতুন সাবভলিউম তৈরি করেন তবে এটি ফাঁকা থাকবে, ফাইল সিস্টেমের অভ্যন্তরে লজিকাল ডেটা ব্লক ব্যবহারের জন্য প্রস্তুত। ডেটা যুক্তিযুক্তভাবে পৃথক করা উচিত যেখানে ব্যবহার করার জন্য খুব সুবিধাজনক যেমন বিভিন্ন ভিএম এর বা বিভিন্ন সাবভলিউমের বিভিন্ন ক্লায়েন্ট। এটি কেবলমাত্র সাবভলিউম মুছুন কমান্ড সহ সমস্ত লজিকাল ডেটা ব্লক very fastঅপসারণের অনুমতি দেয় ।

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

বর্তমান (2016-12-30) বিটিআরএফএস সীমাবদ্ধতা:

সাবভলিউমের মধ্যে ডেটা অনুলিপি করা বা সরিয়ে নেওয়া, উদাহরণস্বরূপ, mv dir1/dataset1 dir_subvolume1/অন্য একটি সাবভলিউমে ডেটা অনুলিপি করতে এবং আসল ক্ষেত্রে থেকে মুছে ফেলার ক্ষেত্রে সমস্ত বাস্তব io উত্পাদন করে। এবং কেবলমাত্র রেফারেন্স তৈরি করে এবং এইভাবে বিটিআরএফএস এর COW বৈশিষ্ট্যটি ব্যবহার করে টন ডেটাগুলির খুব দক্ষ অনুলিপি:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

এবং যদি প্রয়োজন হয়:

rm -rf dir1/dataset1

কেবলমাত্র পড়ুন সাবভলিউম স্ন্যাপশটকে mvবিদ্যমান ডিরেক্টরি স্তরে নতুন নামকরণ (সাথে সরানো ) করা যেতে পারে, তবে নাম পরিবর্তন / বিভিন্ন সাব-ডিরেক্টরি ডিরেক্টরিতে স্থানান্তরিত করা যায় না। যেমন mv /btrfs/subvol_snap1 /btrfs/.snaphotsসম্ভব নয়, অনেক ব্যাখ্যা না উত্পাদন ত্রুটি: mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system। এই জাতীয় স্ন্যাপশটটি স্থানান্তর করতে সক্ষম হতে আপনাকে বিদ্যমান পঠনযোগ্য কেবল স্ন্যাপশটের নতুন পাঠ্য স্ন্যাপশটকে নতুন পছন্দসই স্থানে তৈরি করতে হবে এবং তারপরে পুরানোটি সরিয়ে ফেলতে হবে:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

আরও সহজ লাইভের জন্য:

btrfs sub list /btrfs

আমি আশা করি এটি সমস্ত নতুন বিটিআরএফ ভক্তদের জন্য প্রচুর সময় সাশ্রয় করবে :)


4

আপনি যদি নেস্টেড সাবভলিউমে রুট ভলিউমের নাম পরিবর্তন করতে চান তবে আপনাকে এটি স্ন্যাপশট করতে হবে এবং তারপরে find $ROOT_VOL -xdev -deleteরুট ভলিউমের পূর্ববর্তী বিষয়বস্তুগুলি সরিয়ে ফেলতে হবে। বিপরীত ম্যানিপুলেশন (মূল ভলিউমে একটি সাবভলিউমের নামকরণ) সম্ভব বলে মনে হচ্ছে না।

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