বাস্তবে আই-নোডের বাইরে থাকা অবস্থায় কেন লিনাক্স কার্নেলটি "ডিস্কের স্থানের বাইরে" রিপোর্ট করে?


10

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

তিনি আমাকে জিজ্ঞাসা করলেন কেন লিনাক্স কার্নেল সঠিকভাবে রিপোর্ট করার পরিবর্তে ("ইনডের বাইরে") ত্রুটি বার্তাটি ("ডিস্কের বাইরে") রিপোর্ট করেছিল? আমি জানতাম না, তাই আমি বুঝতে পেরেছিলাম স্ট্যাক এক্সচেঞ্জকে জিজ্ঞাসা করব।

কেউ জানেন কেন এমন হয়? এবং কেন এত বছর পরে এটি স্থির করা হয়নি? (আমার মনে আছে অন্য এক বন্ধু আমাকে 1995 সালে এই সমস্যাটি সম্পর্কে বলছিলেন))

উত্তর:


18

একটি একক ত্রুটি নম্বর,, ENOSPCউভয় অবস্থার প্রতিবেদন করতে ব্যবহৃত হয়, তাই একই ত্রুটি বার্তা।

মান ISO Cএবং POSIXমানের সাথে সম্মতি রাখতে , কার্নেল বিকাশকারীদের উভয় ইভেন্টের জন্য একটি একক ত্রুটি নম্বর ব্যবহার করা ছাড়া বিকল্প নেই। একটি নতুন ত্রুটি নম্বর যুক্ত করা বিদ্যমান প্রোগ্রামগুলিকে ভেঙে দেবে।

তবে, যেমন ট্র্যাডিশনাল ত্রুটি বার্তাগুলির সাথে আঁকানো AFAIK বাধ্যতামূলক নয়, কোনও বিকাশকারীকে একক বার্তা পরিষ্কার করতে বাধা দেওয়া উচিত নয়, উদাহরণস্বরূপ out of disk/inode space

প্রযুক্তিগতভাবে, ইনোড স্পেসের বাইরে থাকা বা ডেটা স্পেসের বাইরে থাকা সমান, অর্থাৎ এর অর্থ সিস্টেম কল সফল হওয়ার জন্য পর্যাপ্ত ফ্রি ডিস্ক স্পেস নেই।

আমি অনুমান করি যে আপনার ডিস্কটি এখনও পুরোপুরি বিনামূল্যে ইনোডস স্লট থাকা অবস্থায় রিপোর্ট করা থাকলে আপনি অভিযোগ করতে যাবেন না।

নোট ফাইল সিস্টেম চাই যে JFS, XFS, ZFSএবং btrfsবরাদ্দ inodes পরিবর্তনশীল তাই আর কোন প্রদর্শনী এই সমস্যা না।


সাম্প্রতিক ফাইল সিস্টেমগুলিতে ext4 অন্তর্ভুক্ত?
ক্যামিলো মার্টিন

@ ক্যামিলোমার্টিন আমার মনে হয় না এটি হয়।
jlliagre

@ ক্যামিলোমার্টিন দুর্ভাগ্যক্রমে না, ext4এফএস তৈরির সময় এক্সট 2/3 এর মতো ইনোড বরাদ্দ করে এবং পরে এটি পরিবর্তন করা যায় না।
ম্যাট

নিবন্ধন করুন আমার সম্ভবত এটি পিছনে-সামঞ্জস্যের কিছু জিনিস। অন্য কোন ফাইল সিস্টেমে দুর্দান্ত বৈশিষ্ট্য রয়েছে তবে যথেষ্ট স্থিতিশীল (বিটিআরএফএস স্থিতিশীল)? ext4 "ধরণের ডিফল্ট পছন্দ" বলে মনে হচ্ছে (কমপক্ষে আমার নবজাতকের দিক থেকে)।
ক্যামিলো মার্টিন

1
হ্যাঁ এক্সট এর সর্বদা পূর্ববর্তী সংস্করণটির বর্ধন এবং পিছনের দিকে সামঞ্জস্যপূর্ণ তাই কোনও বড় পরিবর্তন হয়নি তবে এর অর্থ এটি মোটামুটি শক্ত এবং স্থিতিশীল রয়ে গেছে remained আমি ব্যক্তিগতভাবে আমার সমস্ত বড় ভলিউম স্টোরেজ জেডএফএসের সাথে ফ্রিবিএসডি বক্সগুলিতে করি। বিটিআরএফএসকে এখনও "অস্থির" হিসাবে বিবেচনা করা হয়, যদিও বেশিরভাগ বিতরণ আপনাকে অন্তত এটি ব্যবহার করতে দেয়।
ম্যাট

2

আমি ধরে নিলাম আপনার বন্ধুটি একটি এক্স এফএস ব্যবহার করছে, কারণ এটি কয়েকটি আধ্যাত্মিক fs এর মধ্যে একটি যা ইনোডগুলি সরিয়ে যেতে পারে।

এটি আপনার বন্ধুটি হয় তার ফাইল সিস্টেমের সাথে ঝাঁকিয়ে পড়েছিল এবং এটি ভেঙে ফেলেছে বা বেশ কয়েকটি টিবিতে একটি হাস্যকর আকারে বড় পরিমাণ রয়েছে। আইওনডগুলি একবার ব্যবহার করে ফেলে দেওয়া জিনিস নয়। যদি তিনি সত্যই ইনোডের বাইরে চলে যান তবে এর অর্থ হ'ল তিনি হাস্যকরভাবে অনেকগুলি ফাইল এবং ডিরেক্টরি ... যা একটি> 4 টিবি (শিক্ষিত অনুমান) পরিমাণে ঘটতে পারে, যেখানে "কেবল" 700 জিবি বিনামূল্যে। Fs এর অতিরিক্ত পরিবারের জন্য fs তৈরি হওয়ার সময় আইনের সংখ্যা নির্ধারণ করা হয়। থেকে mkfs.ext4মানুষ পৃষ্ঠা:

-i bytes-per-inode
          Specify  the  bytes/inode ratio.  mke2fs creates an inode for every bytes-per-inode
          bytes of space on the disk.  The larger the bytes-per-inode ratio, the fewer inodes
          will  be  created.  This value generally shouldn't be smaller than the blocksize of
          the filesystem, since in that case more inodes would be made than can ever be used.
          Be  warned  that  it is not possible to expand the number of inodes on a filesystem
          after it is created, so be careful deciding the correct value for this parameter.

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

আপনার বন্ধু কি এমন কোনও ডেস্কটপ এনভায়রনমেন্ট ব্যবহার করেন যা ফাইলগুলি বা অন্য কোনও ফর্ম ব্যাকআপের জন্য "ট্র্যাশ ক্যান" ধারণার প্রয়োগ করে যা প্রচুর পরিমাণে ফাইল তৈরি করতে পারে? অযৌক্তিকর ফাইলগুলি থেকে কেবল মুক্তি পেয়ে তিনি তার সমস্যা সমাধান করতে পারেন।

আমি ext2 সহ এই সমস্যাটি মনে করি যখন কার্নেল ২.৪ মোটামুটি নতুন ছিল। থাম্বের নিয়ম হিসাবে, আমি সর্বদা এক্সএফএস ব্যবহার করে ভলিউমের জন্য যা বর্তমানে প্রচলিত সাধারণের তুলনায় খুব বড়। বর্তমানে আমি একক ভলিউমের জন্য 250 জিবি থেকে 1 টিবি-এর মধ্যে সমস্ত কিছু কল করেছি এবং আমরা 4 টিবি এইচডিডি কিনতে পারি। সুতরাং সমস্ত কিছুর জন্য> 3 টিবির আমি এক্সের চেয়ে এক্সএফএস ব্যবহার করব। কেবলমাত্র থাম্বের একটি নিয়ম, তবে দীর্ঘ সময় ধরে ইনোডগুলি শেষ হয়নি ...


1
আমি আশঙ্কা করছি আপনি জিজ্ঞাসা করা প্রশ্নের উত্তর দিচ্ছেন না।
jlliagre

সত্য। আমি প্রথম ইনলাইন প্রশ্নের উত্তর দেওয়ার চেষ্টা করছিলাম আমি আঘাত করে "" কেন এমন হয় এমন কেউ জানেন? ", কিন্তু শিরোনামে থাকা একটি নয়।
বনাঙ্গুইন

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

@ বনাঙ্গুইন - আপনি কি জানেন যে ডিফল্ট বাইট / ইনোড অনুপাতটি কী?
প্রিটজেল

@ প্রিটজেল: আমি মনে করি আমার মনে আছে যে ডিফল্টটি প্রতিটি 4 কে এর জন্য একটি ইনোড হয়। আমি শুধু আমার কম্পিউটার (পরীক্ষিত tune2fs -l /dev/sda1) এবং আমি প্রতি চার ব্লক 1 inode একটি অনুপাত আছে এরকম এবং প্রতি ব্লক আকার 1k হয়। এটিকে কতটা "ডিফল্ট" হিসাবে বিবেচনা করা যায়, তা আমি জানি না।
বনাঙ্গুইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.