আমি কি খুব বড় সংখ্যক খালি ফাইল তৈরি করে ডিস্ক স্পেস ছাড়তে পারি?


35

এটি সুপরিচিত যে খালি পাঠ্য ফাইলগুলির শূন্য বাইট রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

যাইহোক, তাদের প্রত্যেকটিতে মেটাডেটা রয়েছে , যা আমার গবেষণা অনুসারে, ইনোডে সংরক্ষণ করা হয় এবং স্পেস ব্যবহার করে

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


কিছু চেক করার জন্য, আমি চালিত করি df -iতবে এটি স্পষ্টতই দেখায় যে তাদের কতটা ওজন হবে তার পরিবর্তে% (%) ব্যবহার করা হচ্ছে (?)

Filesystem             Inodes  IUsed    IFree IUse% Mounted on
udev                   947470    556   946914    1% /dev
tmpfs                  952593    805   951788    1% /run
/dev/sda2            28786688 667980 28118708    3% /
tmpfs                  952593     25   952568    1% /dev/shm
tmpfs                  952593      5   952588    1% /run/lock
tmpfs                  952593     16   952577    1% /sys/fs/cgroup
/dev/sda1                   0      0        0     - /boot/efi
tmpfs                  952593     25   952568    1% /run/user/1000
/home/lucho/.Private 28786688 667980 28118708    3% /home/lucho

সম্পর্কিত: unix.stackexchange.com/q/62049
মূইলিপ

উত্তর:


40

এই আউটপুটটি 28786688সামগ্রিকভাবে ইনোডগুলির পরামর্শ দেয় , এরপরে রুট ফাইল সিস্টেম (ডিভাইস /dev/sda2) এ একটি ফাইল তৈরির পরবর্তী প্রয়াস ফিরে আসবে ENOSPC("ডিভাইসে কোনও স্থান অবশিষ্ট নেই")।

ব্যাখ্যা: মূল * নিক্স ফাইল সিস্টেম ডিজাইনে, ফাইল সিস্টেম তৈরির সময় সর্বাধিক সংখ্যক ইনোড সেট করা হয়। তাদের জন্য উত্সর্গীকৃত স্থান বরাদ্দ করা হয়। আপনি ডেটাগুলির স্থান ছাড়িয়ে যাওয়ার আগে, বা তদ্বিপরীতভাবে ইনোডগুলি চালিয়ে যেতে পারেন। সর্বাধিক সাধারণ ডিফল্ট লিনাক্স ফাইল সিস্টেমে ext4এখনও এই সীমাবদ্ধতা রয়েছে। Ext4- এ ইনোড আকার সম্পর্কে তথ্যের জন্য, mkfs.ext4 এর ম্যান্যাপটি দেখুন।

লিনাক্স এই সীমাবদ্ধতা ছাড়াই অন্যান্য ফাইল সিস্টেমগুলিকে সমর্থন করে। চালু btrfs, গতিশীলভাবে স্থান বরাদ্দ করা হয়। "ইনোড কাঠামো তুলনামূলকভাবে ছোট এবং এতে এম্বেড করা ফাইল ডেটা বা বর্ধিত বৈশিষ্ট্যযুক্ত ডেটা থাকবে না।" ( বর্ধিত বৈশিষ্ট্যের জন্য ext3 / 4 ইনোডের ভিতরে কিছু জায়গা বরাদ্দ করে )। অবশ্যই আপনি অত্যধিক মেটাডেটা / ডিরেক্টরি এন্ট্রি তৈরি করে ডিস্কের স্থান ছাড়িয়ে যেতে পারেন।

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


"এক্সএফএসও গতিশীলভাবে ইনোডগুলি বরাদ্দ করে So জেএফএসও তাই করে / পুনরায় অসম্পূর্ণ করে F ব্যতিক্রম, নিয়ম না।

"বিটিডাব্লু, এক্সএফএস আপনাকে ইনোডগুলি দ্বারা ব্যবহৃত সর্বোচ্চ জায়গার সীমা নির্ধারণ করতে দেয়, সুতরাং আপনি বিদ্যমান ফাইলগুলিতে সংযোজন করতে পারবেন না এমন বিন্দুতে পৌঁছানোর আগে আপনি ইনোডগুলি চালিয়ে যেতে পারেন ((এফএসএসের জন্য ডিফল্ট 25% হয় 1 টিবির অধীনে, 50TB অবধি ফাইল সিস্টেমের জন্য 5%, তার চেয়েও বড় 1%।) যাইহোক, মেটাডাটাতে এই স্থানের ব্যবহার (ইনোড এবং পরিমাণ মানচিত্র) নিয়মিত প্রতিফলিত হবে df -h"- পিটার কর্ডস এই উত্তরের মন্তব্যে


সুতরাং, আপনি কি বলছেন যে আমি যদি 28786688-667980=28118708খালি ফাইলগুলি তৈরি করি তবে আমি কার্যকরভাবে ইনোডগুলি শেষ করে "আমার সিস্টেম ভেঙে দেব"?
লুচোনাচো

1
এক্সএফএস গতিশীলভাবে ইনোড বরাদ্দ করে। জেএফএসও তাই করে। তেমনি / পুনরায় অসম্পূর্ণ কাজ করেছে। সুতরাং করে F2FS । Ditionতিহ্যবাহী ইউনিক্স ফাইল সিস্টেমগুলি এমকেএফএস সময়ে স্ট্যাটিকভাবে আইনোডগুলি বরাদ্দ করে এবং তাই এক্সট 4 এর মতো আধুনিক এফএসগুলি তাদের heritageতিহ্যকে এটির কাছে সন্ধান করে তবে এই ব্যতিক্রমটি, নিয়ম নয়। (যদি আপনি ইনস্টলড-বেসের মাধ্যমে জিনিসপত্রের ওজন না করেন তবে এটি সম্ভবত সঠিক যে বন্যের * নিক্স সিস্টেমে ডিস্কে থাকা বেশিরভাগ ফাইলসেটগুলি স্থিরভাবে ইনোড বরাদ্দ করেছে have)
পিটার

বিটিডাব্লু, এক্সএফএস আপনাকে আইওনডগুলি ব্যবহার করে সর্বাধিক শতাংশের জায়গার সীমা নির্ধারণ করতে দেয়, যাতে আপনি বিদ্যমান ফাইলগুলিতে সংযোজন করতে পারবেন না এমন পয়েন্টে পৌঁছানোর আগে আপনি ইনোডগুলি সরিয়ে নিতে পারেন। (ডিফল্ট 1TB অধীনে FSes জন্য 25%, আপ 50TB, যে চেয়ে বড় 1% এর ফাইল-সিস্টেমের জন্য 5%।) যাই হোক, মেটাডেটা (inodes এবং ব্যাপ্তি মানচিত্র) উপর এই স্থান ব্যবহার নিয়মিত প্রতিফলিত হবে df -h, @luchonacho।
পিটার

26

খালি ফাইল তৈরিতে নিম্নলিখিতগুলি ব্যবহার করে:

  • ইনোডস, ফাইল প্রতি এক;
  • অতিরিক্ত ডিরেক্টরি এন্ট্রি, প্রতি ফাইলের জন্য একটি, তবে একত্রিত।

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

ডিরেক্টরি এন্ট্রি উপলব্ধ ডিস্কের স্থান থেকেও স্থান গ্রহণ করে। আপনি এটি একটি ডিরেক্টরি এর আকার দেখে এটি দেখতে পারেন: এটি সর্বদা ব্লকের আকারের একাধিক এবং যখন কোনও ডিরেক্টরিতে প্রচুর পরিমাণে ফাইল থাকে তখন এর আকার বৃদ্ধি পায়। আপনি যদি ডিস্কের জায়গা না পেয়ে থাকেন তবে আপনি ইনডস উপলব্ধ থাকলেও, আপনি "পূর্ণ" ( যেমন , যেখানে একটি নতুন ফাইল যুক্ত করা একটি নতুন ব্লক বরাদ্দ করতে জড়িত) কোনও ডিরেক্টরিতে নতুন ফাইল বা ডিরেক্টরি তৈরি করতে পারবেন না ।

সুতরাং হ্যাঁ, কেবল খালি ফাইল ব্যবহার করে ডিস্কের স্থান শেষ হয়ে যায়।


সুতরাং আমার কি 100% ইনোডের ব্যবহারের পর্যাপ্ত ফাঁকা ফাইলগুলি তৈরি করতে হবে?
লুচোনাচো

@ লুচোনাচো হ্যাঁ, কার্যকরভাবে ইনোডে একটি খালি ফাইল।
স্টিফেন কিট

এছাড়াও বর্ধিত বৈশিষ্ট্যগুলি নোট করুন যা এর উপরে স্থান যুক্ত করতে পারে। উদাহরণস্বরূপ, যদি ডিরেক্টরিটিতে প্রচুর ডিফল্ট এসিএল থাকে তবে এতে একটি ফাইল তৈরি করার জন্য সেই এসিএলগুলি সঞ্চয় করার জন্য স্থানের প্রয়োজন হবে।
স্টাফেন চেজেলাস

ঠিক আছে, আমি সংশোধন করছি। কথাটি হ'ল, আমার ব্রাউজারে রেন্ডার এবং নির্দিষ্ট-প্রস্থের ফন্টগুলির সাথে এটি উভয়ই আমার কাছে অদ্ভুত লাগে। কৌতূহলের বাইরে আপনি কীভাবে এগুলি ?োকান? আপনার কীবোর্ডের সেই অক্ষর এবং ইউ + 0022 টির জন্য আলাদা কী আছে?
স্টাফেন চ্যাজেলাস

ধন্যবাদ, কৌতূহলবশত, আমি তাদের আমার ইউ কে কীবোর্ড লেআউটে ছিল কিনা তা যাচাই করেছিলাম এবং প্রকৃতপক্ষে তারা AltGr + Shift + V / B এ রয়েছে (শিফট ছাড়াই ডাবল উদ্ধৃতি)। যদিও আমি ইউ + 0022 দিয়ে থাকি।
স্টাফেন চেজেলাস

7

খাঁটি যুক্তি যুক্তি:

একটি ফাইলের নামটিতে শূন্য-পরিমাণের বাইট থাকে। এমনকি ফাইলের নাম পরম সর্বাধিক পরিমাণ অনুমতি পরিকল্পিত একটি প্রকল্পিত ফাইল সিস্টেমের মধ্যে তাত্ত্বিক সর্বাধিক কম্প্রেশন সঙ্গে, প্রতিটি ফাইল নাম এখনও অন্তত একটি বিট এ পুড়িয়ে ফেলবে কোথাও আপনার শারীরিক ডিস্কে। সম্ভবত আরও বেশি, তবে "ফাইল প্রতি 1 বিট" হ'ল ন্যূনতম।

আপনার প্লাটারগুলিতে সম্ভবত বিটগুলির পরিমাণের পরিমাণ গণনা করুন এবং এটি এটিতে কোনও তাত্ত্বিক সর্বাধিক সংখ্যক (খালি বা খালি নয়) ফাইল সংরক্ষণ করতে পারেন।

তাই উত্তর হবে হ্যাঁ. অবশেষে, আপনি খালি ফাইল যুক্ত করা চালিয়ে যান না কেন, আপনি কোন স্টোরেজ ব্যবহার করছেন তা বিবেচনা না করেই আপনি স্থান ছাড়িয়ে যাবেন। স্পষ্টতই আপনি এই ফ্যাশনে গণনা করা সর্বাধিকের চেয়ে খুব শীঘ্রই রান আউট হয়ে যাবেন তবে আপনি তা চালিয়ে যাবেন।


0

সহজভাবে নয় তবে আপনি লিনাক্সের ইনোডগুলি চালিয়ে যেতে পারবেন যা স্থানের বাইরে চলে যাওয়ার মতোই হবে be

আপনি নিজের শেলটিতে এরকম কিছু চেষ্টা করতে পারেন n=0; while :; do touch $n; let n=n+1; done

এটি ভার্চুয়াল মেশিনে চালানো নিশ্চিত করুন বা আপনি খুব দ্রুত ইনোডের বাইরে চলে যাবেন।


এই আদেশ কি করছে?
লুচোনাচো

এটি শুরু হওয়ার সাথে সাথে শুরু হয় প্রকৃত অসীম লুপ যা প্রতিটি ফাইলে একটি ফাইলের নাম তৈরি করে যা 0 থেকে শুরু করে 1 2 3 দিয়ে পূর্ণসংখ্যা হয় ... এটি শেষ পর্যন্ত ফাইল সিস্টেমের সমস্ত ইনোড ব্যবহার করার জন্য পর্যাপ্ত ফাইল তৈরি করবে।
in1t3r

1
যদি / কমান্ডটি স্বতন্ত্র হয় তবে আপনার / হোম পার্টিশনে এই কমান্ডটি চালান আপনার সমস্যা হবে না আপনি নিজের / হোম পার্টিশনে আর লিখতে পারবেন না। আমার পরামর্শটি ইনডেস্টেস্ট সিডি নামের একটি ডিরেক্টরি এতে তৈরি করুন এবং তারপরে আপনার ত্রুটিগুলি দেখার পরে কমান্ড চালান যে আপনি আর ফাইল সিস্টেমে ফাইল তৈরি করতে পারবেন না সিটিটিএল + সি চাপুন এবং rm -fr inodetestখালি ফাইলগুলি থেকে মুক্তি পেতে এবং আবার স্বাভাবিকভাবে কাজ করতে পারেন run :)
in1t3r

0

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

(বার্ড কোপ্পেরুডের একটি মন্তব্যে উত্তর)


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