আপনার btrfs quota
এবং btrfs qgroups
(কোটা গ্রুপ) একবার দেখে নেওয়া উচিত ।
মূলত qgroups
আপনি যা অনুরোধ করেছিলেন ঠিক তেমন করুন, তারা ট্র্যাক করে যে সাবভলিউমগুলি কতটা বরাদ্দ করেছে। qgroup
একটি btrfs
ফাইল সিস্টেমের জন্য কার্যকারিতা সক্ষম করতে আপনাকে করতে হবে
# btrfs quota enable /path/to/btrfs/filesystem
তবে এটি করার আগে আপনাকে সতর্ক করে দেওয়া হবে যে এটি qgroup
ডেটাটির সম্পূর্ণ পুনরায় গণনা ট্রিগার করে যা বিশেষত অনেক সাবভলিউম সহ বড় ফাইল সিস্টেমগুলির জন্য কিছুটা সময় নেবে। এই প্রক্রিয়াটি পটভূমিতে অবিচ্ছিন্নভাবে চলে। আপনি ইতিমধ্যে এর qgroups
সাথে স্থিতি পরীক্ষা করতে পারেন
# btrfs qgroup show /path/to/btrfs/filesystem
এটি আপনাকে এরকম কিছু আউটপুট দেবে:
WARNING: rescan is running, qgroup data may be incorrect
qgroupid rfer excl
-------- ---- ----
0/5 843.69GiB 61.91MiB
0/4881 811.06GiB 9.34GiB
0/7990 867.32GiB 329.91MiB
0/8400 867.17GiB 37.64MiB
(যতক্ষণ না রেসান চলমান ততক্ষণ প্রথম লাইনে সতর্কতা উপস্থিত রয়েছে))
বিটিআরএফস qgroup
প্রতিটি সাবভলিউমের জন্য স্বয়ংক্রিয়ভাবে একটি তৈরি করে । এই ক্ষেত্রে সাবভলিউম আইডি 4881, 7990, এবং 8400 সহ তিনটি সাবভলিউম রয়েছে the ফরোয়ার্ড স্ল্যাশের আগের অংশটি হল স্তর qgroup
। প্রতিটি উপভলিউম qgroup
স্তর স্তর 0 এ থাকে। অতিরিক্ত qgroup
স্তর 0 তে একটি বিশেষ রয়েছে যা সর্বদা আইডি 5 থাকে এবং বিটিআরএফএস ফাইল সিস্টেমের মূলের সাথে মিলে যায়।
qgroup
উপরের প্রতিটি আউটপুট দেখায় যে এর দ্বারা কতটা স্থান রেফারেন্স করা হয়েছে। এর মানে হল যে সংশ্লিষ্ট সাবভোলিউমে এমন ফাইল রয়েছে যার মোট আকারটি দেখানো সংখ্যার সমান।
তবে স্ন্যাপশট এবং বিটিআরএফএস সাবভলিউমের কপিরাইট অন লিখনের কারণে ফাইলগুলি ভাগ করা যেতে পারে। এর অর্থ ফাইলগুলির বিষয়বস্তু (বা আসলে এক্সটেন্টস) একাধিক সাবভলিউম দ্বারা রেফারেন্স করা যেতে পারে। এটি দ্বিতীয় সংখ্যা দ্বারা প্রকাশ করা হয়েছে যা দেখায় যে প্রতিটি সাবভলিউম দ্বারা একচেটিয়াভাবে কতগুলি স্থান বরাদ্দ করা হয় এবং অন্য কোনও সাবভলিউমের সাথে ভাগ করা হয় না। আপনি যদি একটি সাবভলিউম মুছুন তবে এটি সেই স্থান যা আসলে মুক্তি পাবে reed
আপনি যদি একাধিক সাবভলিউমগুলি মুছে ফেলেন তবে আপনি কতটা জায়গা মুক্ত করবেন তা সন্ধান করতে চাইলে আপনি উপরোক্ত স্তরগুলি ব্যবহার করতে পারেন। qgroups
হয় একটি hierachy সংগঠিত উপরের স্তরে এবং দলের (0 চেয়ে উচ্চতর) নিম্ন মাত্রায় তথ্য সমষ্টি।
সুতরাং, সাবভলিউম 4881 এবং 7990 (উপরের উদাহরণে) মুছে ফেলা হবে তবে কতটা জায়গা মুক্ত হবে qgroup
তা সন্ধান করতে স্তরের 1 তে একটি নতুন (নির্বিচারে আইডি 0 দিয়ে তৈরি করতে পারেন, তবে আপনি এখানে যা পছন্দ করতে পারেন) বেছে নিতে পারেন
# btrfs qgroup create 1/0 /path/to/btrfs/filesystem
তারপরে আপনি যে সাব-ভলিউমগুলি মুছতে চান qgroup
তার পিতা-মাতা হিসাবে সদ্য নির্মিতটি নির্ধারণ করুনqgroups
# btrfs qgroup assign 0/4881 1/0 /path/to/btrfs/filesystem
# btrfs qgroup assign 0/7990 1/0 /path/to/btrfs/filesystem
এটি কোটা তথ্যের আরও একটি পুনরায় স্ক্যান ট্রিগার করবে যা কিছুটা সময় নিতে পারে। এটি শেষ হয়ে গেলে এবং আপনি এখন ইস্যু করুন
# btrfs qgroup show -p /path/to/btrfs/filesystem
আপনি এই মত একটি আউটপুট পেতে:
qgroupid rfer excl parent
-------- ---- ---- ------
0/5 1.38TiB 2.51GiB ---
0/4881 1.11TiB 10.86GiB 1/0
0/7990 1.23TiB 502.41MiB 1/0
0/8400 1.34TiB 1.69GiB 1/0
1/0 1.51TiB 132.23GiB ---
( আউটপুটটিতে কলামটি যুক্ত করতে আমি -p
পতাকাটি যুক্ত করেছি parent
যা এর পিতামাতার / সন্তানের সম্পর্ক দেখায় qgroups
))
এখনকার লাইনটি qgroup
1/0
আপনাকে জানায় যে আপনি যে দুটি সাবভলিউমগুলি মুছতে চান তার দ্বারা কতটা স্থান রেফারেন্স করা হয়েছে এবং আরও গুরুত্বপূর্ণ এটি আপনাকে বলবে যে তাদের দ্বারা কতগুলি স্থান একচেটিয়াভাবে বরাদ্দ করা হয়েছে । এটি উভয় সাবভলিউম মুছলে এমন পরিমাণের পরিমাণ মুক্ত হবে।
আমিও আশ্চর্য হই যে তারা কেন বলছে যে এটি এত ধীর হবে?
এটি স্ন্যাপশট সহ একসাথে বিটিআরএফ-র অনুলিপি স্বভাবের কারণে। আপনি যদি বিটিআরএফসগুলিতে একটি স্ন্যাপশট তৈরি করেন (সাধারণত) সদ্যরূপে তৈরি হওয়া সাবভলিউমের সমস্ত আসল ডেটা স্ন্যাপশটের উত্সের সাথে ভাগ করা হয়। উত্সটিতে কোনও ফাইল পরিবর্তন বা প্রতিস্থাপন করা হয় কেবল তখনই এটি বিভিন্ন সামগ্রীতে (এক্সটেন্টস) নির্দেশ করে। এটি একটি সাবভলিউম মুছে ফেলা হলে প্রকৃতপক্ষে কতটা জায়গা মুক্ত হবে তা নির্ধারণ করা খুব কঠিন করে তোলে কারণ অন্যান্য সাবভলিউমের সাথে ভাগ করা সমস্ত জায়গার জন্য আপনাকে অ্যাকাউন্ট করতে হবে।