নতুন এক্সট 4 ইনলাইন ডেটা বৈশিষ্ট্যটি কীভাবে ব্যবহার করবেন? (সরাসরি ইনোডে ডেটা সংরক্ষণ করা)


9

আমি যদি এক্সট 4 ডকুমেন্টেশন সঠিকভাবে পড়ে থাকি তবে লিনাক্স ৩.৮ থেকে শুরু করে খুব ছোট ফাইলের ফুলদানিতে সরাসরি ইনোডে ডেটা সংরক্ষণ করা উচিত।

আমি এই জাতীয় ফাইলটি 0 টি ব্লকের আকারের আশা করছিলাম, তবে এটি ক্ষেত্রে নয়।

#creating a small file
printf "abcde" > small_file

#checking size of file in bytes
stat --printf='%s\n' small_file
5

#number of blocks used by files
stat --printf='%b\n' small_file
8

আমি এখানে এই শেষ সংখ্যাটি 0 হওয়ার আশা করব? আমি কি কিছু মিস করছি?


1
সমস্যাটি রোধ করার জন্য এটি সম্ভবত একটি ফাইল সিস্টেম অপশন যা ফাইল সিস্টেম তৈরির সময় সক্রিয় করা দরকার, যদি আপনি পরবর্তী সময়ে কোনও পুরানো কার্নেল দিয়ে ফাইল-সিস্টেম মাউন্ট করতে চান তবে prevent
wurtel

উত্তর:


7

ইনলাইন ডেটা সক্ষম করতে ext4, আপনাকে e2fsprogs1.43 বা তার পরে প্রয়োজন। ইনলাইন ডেটার জন্য সমর্থন মার্চ ২০১৪ সালে gitভান্ডারে যুক্ত হয়েছিল তবে কেবল ২০১ May সালের মে মাসে প্রকাশ করা হয়েছিল।

এটি একবার হয়ে গেলে, আপনি mke2fs -O inline_dataইনলাইন ডেটা সমর্থন সহ একটি নতুন ফাইল সিস্টেম তৈরি করতে একটি উপযুক্ত ডিভাইসে চালনা করতে পারেন ; এটি আপনার সমস্ত ডেটা মুছে ফেলবে । বিদ্যমান ফাইল সিস্টেমের ইনলাইন ডেটা সক্রিয় করা আপাতদৃষ্টিতে এখনও সম্ভব হয়নি (কমপক্ষে, tune2fsএটি সমর্থন করে না)।

এখন একটি ছোট ফাইল তৈরি debugfsকরুন এবং ফাইল সিস্টেমে চালান । cdউপযুক্ত ডিরেক্টরিতে, এবং চালান stat smallfile; আপনি কিছু পেতে হবে

Inode: 32770   Type: regular    Mode:  0644   Flags: 0x10000000
Generation: 2302340561    Version: 0x00000000:00000001
User:  1000   Group:  1000   Size: 6
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
 atime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
 mtime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
crtime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
Size of extra inode fields: 28
Extended attributes:
  system.data (0)
Size of inline data: 60

আপনি দেখতে পাচ্ছেন যে ডাটাগুলি ইনলাইন সঞ্চিত ছিল। এটি ব্যবহার করেও দেখা যায় df; ফাইলটি তৈরি করার আগে:

% df -i /mnt/new 
Filesystem                           Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg--large--mirror-inline  65536    12 65524    1% /mnt/new
% df /mnt/new 
Filesystem                           1K-blocks  Used Available Use% Mounted on
/dev/mapper/vg--large--mirror-inline   1032088  1280    978380   1% /mnt/new

ফাইলটি তৈরি করার পরে:

% echo Hello >| smallfile
% ls -l
total 1
-rw-r--r-- 1 steve steve 6 Apr 22 07:35 smallfile
% df -i /mnt/new
Filesystem                           Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg--large--mirror-inline  65536    13 65523    1% /mnt/new
% df /mnt/new
Filesystem                           1K-blocks  Used Available Use% Mounted on
/dev/mapper/vg--large--mirror-inline   1032088  1280    978380   1% /mnt/new

ফাইলটি সেখানে রয়েছে, এটি একটি ইনোড ব্যবহার করে তবে উপলব্ধ স্টোরেজ স্পেসটি পরিবর্তিত হয়নি।


4

যদি আপনার e2fsprogsসংস্করণটি খুব পুরানো, বা ফাইল সিস্টেমটি ইতিমধ্যে তৈরি হয়েছে, তবে আপনি বৈশিষ্ট্যযুক্ত পতাকাটি ব্যবহার করে সেট করতে পারেন debugfs(পতাকাটি ২০১২ সাল থেকে সমর্থিত, অন্যদিকে mke2fsঅন্যান্য সরঞ্জামগুলি ২০১৪+ তে সমর্থন যোগ করেছে এবং অনেকগুলি ডিস্ট্রিবিউশনগুলি এখনও এটিকে 2016 সালে পাঠানো হয়নি don't , সহ উবুন্টু জেনিয়াল)।

এটি করতে, পঠন-লিখন মোডে পার্টিশনটি খুলুন:

debugfs -w /dev/sdxx

এবং তারপরে পতাকাটি যুক্ত করুন:

feature inline_data

(বা feature -inline_dataএটিকে টগল বন্ধ করতে, তবে যদি ইতিমধ্যে ইনলাইন ফাইল থাকে তবে এটি সম্ভবত একটি খারাপ ধারণা!)

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

আরও মনে রাখবেন যে বর্তমান GRUB(2.02) এটি সমর্থন করে না, সুতরাং এটি বুট পার্টিশনে সেট করা সিস্টেমটিকে বুটবিহীনভাবে রেন্ডার করে। সমর্থন যুক্ত করার জন্য একটি নিমজ্জিত প্যাচ রয়েছে

এই লেখার সময় হিসাবে, আপ ফাইল এবং ডিরেক্টরি অন্তর্ভুক্ত করা inode_size-128যেতে পারে, তাই ডিফল্ট 256 বাইট ইনোড জন্য 128 বাইট। আপনি যদি আরও ইনলাইনিং চান তবে আপনি আরও বড় ইনোড ব্যবহার করতে পারেন।

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