এক্সট্রা-ফাইল সিস্টেমগুলি লিনাক্সে নিজের জন্য কম স্থান ব্যবহার করার উপায় আছে কি?


48

আমার একটি বাহ্যিক এবং অভ্যন্তরীণ এইচডিডি রয়েছে যা আমি লিনাক্স সিস্টেমে ব্যবহার করি। আমার কাছে কেবল লিনাক্স সিস্টেম রয়েছে, তাই লিনাক্স ফাইল-সিস্টেম ব্যবহার করা কেবলমাত্র বোধগম্য হবে, তাই না? তবে আমি বর্তমানে সর্বত্র এনটিএফএস ব্যবহার করছি, কারণ এটি আমাকে এইচডিডি থেকে সবচেয়ে ব্যবহারযোগ্য স্থান দেয় space

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

তবে আমি যখন এইচডিডি ফর্ম্যাট করেছি তখন আমি বিভিন্ন ফাইল সিস্টেম এবং প্রতিটি লিনাক্স ফাইল সিস্টেমের একটি গুচ্ছ চেষ্টা করেছিলাম, এমনকি ext2 যা আমার জানা হিসাবে কোন জার্নালিং নেই, নিজের জন্য প্রচুর স্থান ব্যবহার করেছিল। আমি সঠিক মানগুলি স্মরণ করি না, তবে এটি 100 গিগাবাইটের বেশি ছিল যে এনটিএফএস 2TB এইচডিডি আমাকে আরও পেয়েছে, যা অনেক বেশি।

সুতরাং আমার প্রশ্নটি হ'ল: কী এক্সট্রা-ফাইল সিস্টেমগুলি নিজের জন্য কম স্থান ব্যবহার করার উপায় আছে? বা অন্য ফাইল সিস্টেম আছে (আমি ext2, ext3, ext4, এনটিএফএস এবং ভিফ্যাট চেষ্টা করেছি - নিখুঁত লিনাক্স সমর্থন এবং দুর্দান্ত ব্যবহারযোগ্য জায়গার সাথে এনটিএফস যে আমার ব্যবহারযোগ্য স্থান এনটিএফএসের কাছাকাছি আসেনি তার কাছাকাছি কেউই আসে নি)?

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



4
আমার কাছে রয়েছে এবং এটি ব্যাখ্যা করেছে যে অতিরিক্ত স্থান কী ব্যবহার করে তবে এনটিএফএস এবং এক্সট্রাক্টের মধ্যে পার্থক্যটি রিসার্ফ এবং এক্সট্রাক্টের চেয়ে অনেক বড় এবং আমি আরও ভাবছি যে এটি আরও ছোট করার কোনও উপায় আছে কিনা। উদাহরণস্বরূপ 1TB HDD এ আমি এনটিএফএসের সাথে 989 জিবি ব্যবহার করতে সক্ষম। ext4 আমাকে প্রায় 909GB দেয়।
কনফিটি

যথেষ্ট ফর্সা। শালীন প্রশ্ন এবং উত্তরটিও আলোকিত।
জ্যাকগল্ড

3
কোন স্থানটি উপলব্ধ তা আপনি কীভাবে পরিমাপ করবেন? এটি গুরুত্বপূর্ণ কারণ আপনি কী মূল্যবোধের দিকে তাকান তার উপর নির্ভর করে আপনি 5% সংরক্ষণের প্রভাব দেখতে পাচ্ছেন না উদাহরণস্বরূপ
লিঙ্কিত

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

উত্তর:


97

ডিফল্টরূপে, ext2 এবং এর উত্তরসূরিরা মূল ব্যবহারকারী দ্বারা ব্যবহারের জন্য 5% ফাইল সিস্টেম সংরক্ষণ করে। এটি খণ্ডকে হ্রাস করে এবং প্রশাসক বা কোনও মূলের মালিকানাধীন ডেমনগুলি কাজ করার কোনও জায়গা ছাড়বে না বলে কম সম্ভাবনা তৈরি করে।

এই সংরক্ষিত ব্লকগুলি আপনার ডিস্কটি পূরণ থেকে প্রোগ্রাম হিসাবে রুট হিসাবে চলমান না। এই বিবেচনার ক্ষমতা ক্ষতির ন্যায্যতা কিনা তা নির্ভর করে ফাইল সিস্টেমের জন্য কী ব্যবহৃত হয় তার উপর।

5% পরিমাণটি 1980 এর দশকে সেট করা হয়েছিল যখন ডিস্কগুলি অনেক ছোট ছিল, তবে ঠিক যেমনটি বাকি ছিল। আজকাল 1% সিস্টেমের স্থায়িত্বের জন্য যথেষ্ট enough

কমান্ডের -mবিকল্পটি ব্যবহার করে রিজার্ভেশন পরিবর্তন করা যেতে পারে tune2fs:

tune2fs -m 0 /dev/sda1

এটি সংরক্ষিত ব্লকগুলির শতাংশকে 0% (0 ব্লক) এ সেট করবে।

বর্তমান মান পেতে (অন্যদের মধ্যে), কমান্ডটি ব্যবহার করুন:

tune2fs -l <device> 

10
এটি পুরোপুরি ব্যবহারযোগ্য স্থানে অপরিহার্য পার্থক্যটি ব্যাখ্যা করবে (যেহেতু 2TB এর 5% 100 গিগাবাইট)। রুট বা সিস্টেম-ফাইল সম্পর্কিত কোনও হিসাবে ডিস্কগুলি ব্যবহার করা হবে না, তাই আমি মনে করি এটি অক্ষম করার জন্য এটি সংরক্ষণ করা হবে। যদিও আমি একটি প্রশ্ন পেয়েছি: রুট-মালিকানাধীন প্রোগ্রামগুলি কীভাবে জানতে পারে যে নন-রুট প্রোগ্রামের চেয়ে আরও মুক্ত স্থান রয়েছে? রুটহীন dfবনাম মূল হিসাবে চালানো কোনও তফাত দেখায় না।
কনফিটি

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

1
tune2fs -l <device>অন্যদের মধ্যে এই মান দেওয়া উচিত। 5% পরিমাণটি 1980 এর দশকে সেট করা হয়েছিল যখন ডিস্কগুলি অনেক ছোট ছিল, তবে ঠিক যেমনটি বাকি ছিল। আজকাল 1% সিস্টেমের স্থায়িত্বের জন্য যথেষ্ট enough
harrymc

7
এক্সএফএস 5% বা 8192 ব্লকের (32 মাইবি) এর চেয়ে ছোট সংরক্ষণ করে, তাই সংরক্ষিত পরিমাণটি সাধারণত ফাইল সিস্টেমের আকারের তুলনায় ক্ষুদ্র।
মাইকেল হ্যাম্পটন

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

3

যদি আপনি এটিতে সংরক্ষণ করতে চান সেই ডেটাটি যদি সংকোচনযোগ্য হয়, compress=zstd(বা compress-force=zstd) দিয়ে মাউন্ট করা বিটিআরএফগুলি এক্সট * এর চেয়ে ডিস্কের স্পেসটি উল্লেখযোগ্যভাবে কম ব্যবহার করতে পারে

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

1
এই উত্তরে আরও তথ্য যুক্ত করতে আপনার কি আপত্তি আছে? (এটি কীভাবে কাজ করে, এটি কী করে, সম্ভবত একটি রেফারেন্স, ...)
কনফিটি

@ কনফেট্টি এই মত? patchwork.kernel.org/patch/9817875
হানশেনরিক

আমি এই ধারণাটি সত্যিই পছন্দ করি তবে এটি কীভাবে গতি এবং পারফরম্যান্সকে প্রভাবিত করবে এবং এগুলি সম্পর্কে আরও তথ্য দুর্দান্ত।
কনফিটি

2
@ কনফেটি, যেহেতু আপনি একটি হার্ড ড্রাইভ ব্যবহার করছেন, এটি সম্ভবত কর্মক্ষমতা উন্নত করবে। হার্ড ড্রাইভের তুলনায় সিপিইউগুলি এত দ্রুততর যে ডিস্ক অ্যাক্সেসের ধীর অংশটি ডিস্কটি চালু এবং বন্ধ করে দেয়; সংকোচনের বা ডিকম্প্রেসিংয়ে ব্যয় করা সময়টি লক্ষণীয় হবে না।
চিহ্নিত করুন

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

3

আর একটি বিষয় যা নিয়ে এখনও কথা হয় নি তা হ'ল আপনি নিজের ফাইল সিস্টেমে সংরক্ষণ করা আইওডের সংখ্যা।

ডিফল্টরূপে, mkfs অনেকগুলি ইনোড তৈরি করে যা আপনার ফাইল সিস্টেমে খুব ছোট ফাইলগুলি সম্পূর্ণ করা সম্ভব করে তোলে। যদি আপনি জানেন যে ফাইলগুলি খুব বড় হবে এবং আপনি কেবল এফএসে খুব অল্প সংখ্যক ফাইল রাখবেন তবে আপনি ইনোডের সংখ্যা হ্রাস করতে পারবেন।

যত্ন নিবেন! এই সংখ্যাটি (শর্ত। স্থান এবং ইনোডের সংখ্যার মধ্যে অনুপাত) কেবলমাত্র ফাইল সিস্টেম তৈরির সময় সেট করা যেতে পারে। এমনকি এফএস প্রসারিত করার সময়, অনুপাতটি একই থাকে।


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

@ পারকিনস আপনি ঠিক বলেছেন, তবে আমি মনে করি এটি কেবলমাত্র খুব ছোট ফাইলগুলির জন্য রয়েছে: ডিফল্ট ব্লকের আকার 4kiB (আইআইআরসি) হয়, সর্বনিম্ন 1 কেবি হয়। সুতরাং জয়ের জন্য খুব বেশি কিছু নয়, আপনার ডিস্কটি যদি সত্যিই এই ফাইলগুলিতে পূর্ণ থাকে। তবে তবুও, আমি আগামীকাল এই মধ্যে ডুব দিতে পারেন।
glglgl

2
অথবা বিকল্পভাবে বিটিআরএফ ব্যবহার করুন, যা প্রয়োজন অনুযায়ী ইনোড তৈরি করে। যেখানে ext4 এর ইনোডগুলি ফাইল সিস্টেমে তৈরির সময় বরাদ্দ করা হয় এবং 4 বিলিয়ন এর হার্ড সীমাবদ্ধতার পরে সৃষ্টির পরে পুনরায় আকার দেওয়া যায় না, বিটিআরএফএসের ইনোডগুলি প্রয়োজন অনুযায়ী গতিশীলভাবে তৈরি হয়, এবং হার্ড সীমাটি 2 ^ 64, প্রায় 18.4 কুইন্টিলিয়ন, যা প্রায় ৪. 4. বিলিয়ন একটি
সর্বাধিক

আমাকে ইউজনেট স্পুল স্থাপনের কথা মনে করিয়ে দেয়। ext4 ইনোডের মধ্যেই ক্ষুদ্র (অনেকগুলি জিনিসের উপর নির্ভর করে সীমা 60-160 বাইটের কোথাও কোথাও রয়েছে) সংরক্ষণ করবে।
মিঃ স্পুর্যাটিক

@হানশেরিক মনে রাখবেন যে বিটিআরএফএসে আপনার একই ব্লক সাইজের সীমাবদ্ধতা রয়েছে (এর চারপাশে কাজ করার কয়েকটি উপায় সহ) যাতে আপনার এখনও জানতে হবে যে আপনি কী ধরণের ফাইল (বড় বা ছোট বা উভয়) সংরক্ষণ করতে যাচ্ছেন এবং আপনি যদি সর্বাধিক পরিমাণ সঞ্চয়স্থানের বাইরে বের করতে চান তবে আপনার ফাইল সিস্টেমটি টিউন করুন। স্বয়ংক্রিয় সংকোচনের প্রাপ্যতা কিছুটা হলেও সহায়তা করে যদিও আপনি fluffy ডেটা সংরক্ষণ করছেন।
পারকিন্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.