উবুন্টুতে খারাপ ব্লক পুনরায় চেষ্টা / অপেক্ষা করার সময় হ্রাস করুন


10

আমি কীভাবে আইও অপেক্ষা করার সময়টি কমাতে এবং বারগুলি আবার চেষ্টা করতে পারি যাতে ওএস ক্রমাগত একটি ব্যর্থ ড্রাইভে লেখার চেষ্টা না করে?

আমার একটি সিস্টেম রয়েছে যা আমি নিয়মিত SATA ডেস্কটপ হার্ড ড্রাইভে গ্রাহকদের loanণ নিয়ে যায় এমন ডেমো সামগ্রীগুলির অনুলিপি তৈরি করতে ব্যবহার করি। আমরা এসএএসের মাধ্যমে অনেকগুলি ড্রাইভ একবারে সংযুক্ত করি এবং স্ক্রিপ্ট ব্যবহার করে তাদের সাথে সামগ্রী অনুলিপি করি।

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

আমি খারাপ ড্রাইভগুলি পুনরুদ্ধার করার বিষয়ে চিন্তা করি না। আমার কেবল তাদের আগাছা করা দরকার যাতে তারা অন্য সমস্ত কিছু কমিয়ে দেয় না।

আমি ব্যাডব্লকস এবং স্মার্টমোনটুলগুলি নিয়েও গবেষণা করছি এবং লেখা শুরু করার আগে ড্রাইভে একটি প্রাক-চেক লেখার বিষয়টি বিবেচনা করছি।

ওএস: উবুন্টু লিনাক্স (12.04 এলটি)


udisks/ এর মাধ্যমে স্মার্ট ডেটা পরীক্ষা করে কী ভুল smartmonctl? এখানে ক্লাসিকাল এক্সওয়াই সমস্যা, মিথথিক্স।
হরিণ হান্টার

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

প্রশ্নটির সরাসরি উত্তর পাওয়া যায় নি, সুতরাং এটি আমরা জানি না যে এটি লিনাক্সের কোনও সম্ভাব্য জিনিস কিনা: আমি কীভাবে আইও অপেক্ষা করার সময় এবং পুনরায় চেষ্টা করব?
ইম্জ - ইভান জ্যাকারিয়াশেভ

@ imz - IvanZakharyaschev unix.stackexchange.com/a/147304/25985 তবে, কার্নেলটি এই ত্রুটিগুলি লগ করে, তাই আপনি যা করতে চান তা যদি আরও সমস্যা হওয়ার আগে একটি ব্যর্থ ডিস্কটি ধরা হয় তবে আপনি সিস্টেম লগগুলি এখানে স্ক্যান করতে পারবেন নিয়মিত বিরতি।
গোল্ডিলোকস

@gol আমি যদি দ্রুত এটি ধরতে চাই তবে কী হবে? অপেক্ষা না করে Godশ্বর জানেন যে আইও অপারেশনের আগে ত্রুটির প্রতিবেদনটি অবরোধ করে রাখার কতক্ষণ আগে? (প্রকৃতপক্ষে, আমি ত্রুটিযুক্ত একটি ডিস্ক থেকে ডেটা সংরক্ষণ করার চেষ্টা করছি, তবে আমার সমস্যাটিও একই: এই "ভ্রান্ত" ক্ষেত্রগুলিতে দৌড়ানোর ফলে প্রচুর বিলম্ব ঘটে ... স্মার্ট টেস্ট থেকে তথ্যটি খাওয়ান ddrescueযাতে এটি স্মার্ট দ্বারা রিপোর্ট করা খাতগুলিকেও স্পর্শ না করে))
ইম্জ - ইভান জ্যাকারিয়াশেভ

উত্তর:


7

আমি আগে এই টিউনটেবলটি ব্যবহার করি নি তবে আপনি সম্ভবত ড্রাইভের জন্য প্রশ্নে থাকা eh_ টাইমআউট (ত্রুটি পরিচালনা করার সময়সীমা) সামঞ্জস্য করতে চান :

[root@localhost device]# cat /sys/block/sda/device/eh_timeout
10
[root@localhost device]# 

উপরের শোগুলি sda10 সেকেন্ডে সেট হয়েছে। রেড হ্যাট নলেজবেস থেকে:

নির্দিষ্ট স্টোরেজ কনফিগারেশনগুলিতে (উদাহরণস্বরূপ, অনেকগুলি LUNs সহ কনফিগারেশন), SCSI ত্রুটি পরিচালনার কোডটি প্রতিক্রিয়াবিহীন স্টোরেজ ডিভাইসগুলিতে টেস্ট UNIT READY এর মতো কমান্ড জারি করতে প্রচুর সময় ব্যয় করতে পারে। এসসিএসআই ডিভাইস অবজেক্টে একটি নতুন সিএসএফএস প্যারামিটার, এএইচটাইমআউটআউট যুক্ত করা হয়েছে, যা এসসিএসআই ত্রুটি পরিচালনার কোড দ্বারা ব্যবহৃত টেস্ট UNIT READY এবং রিকুইয়েস্ট সেন্সি কমান্ডের টাইমআউট মানকে কনফিগার করার অনুমতি দেয়। এটি এই প্রতিক্রিয়াবিহীন ডিভাইসগুলি পরীক্ষা করতে ব্যয় করা সময়ের পরিমাণ হ্রাস করে। Eh_Timeout এর ডিফল্ট মান 10 সেকেন্ড, যা এই কার্যকারিতা যুক্ত করার আগে টাইমআউট মান ব্যবহৃত হয়েছিল।


আমি এখন এটি পরীক্ষা করছি। উবুন্টুর eh_Timeout নেই, তবে টাইমআউট ফাইল রয়েছে যা একই জিনিস হতে পারে। ডিফল্ট উবুন্টু মান 30 সেকেন্ডে উপস্থিত হয়। এটি 5 সেকেন্ডে কমিয়ে ফিরিয়ে রিপোর্ট করবে।
রায়ান সোরেনসেন 21

1
কৌতূহলের বাইরে, আপনার ফলাফল কী হয়েছিল?
ব্র্যাচলে

12.04 এ টাইমআউট পতাকা সেট করা কিছু করার জন্য প্রদর্শিত হয়নি। আমি এই সাপ্তাহিক ছুটির দিনে 14.04-তে একটি পরীক্ষা ব্যবস্থা আপগ্রেড করার পরিকল্পনা করছি কারণ এতে eh_টাইমআউট (এবং টাইমআউটও) রয়েছে।
রায়ান সোরেনসেন

@ রায়ানসোরেনসেন, তাই আপনি এই পরামিতিটি কখনও কাজ করে কিনা তা দেখার সুযোগ পেয়েছেন?
নাট

আমি সংশোধন করতে সক্ষম হইনি eh_timeoutতবে timeoutহাতে থাকা কাজটি সম্পাদন করতে আমি পরিবর্তন করতে সক্ষম হয়েছি ।
গিটারপিকার

2

/sys/block/<dev>/statআপনি আগ্রহী এমন ডিভাইসগুলির জন্য নিরীক্ষণ করুন এবং 10 তম প্যারামিটার (io_ticks) এর সাথে তুলনা করুন।

যেমন, ticks = io_ticks - prev_ticks / seconds_deltatime / 10

ডিস্ক io এর অপেক্ষায় ডিস্কটি যে উপলব্ধ সময়ের জন্য ব্যয় করেছে তার শতাংশ।

100% এর কাছাকাছি অবশ্যই পরীক্ষা করা মূল্যবান হবে, নাহলে সত্যই চালাক হয়ে তা আপনার সমস্ত ডিস্কের গড়ের সাথে তুলনা করুন এবং গড়ের উপরে কোনও ডিস্ক (গুলি) বাছাই করুন।

দেখুন ব্লক স্তর পরিসংখ্যান ডকুমেন্টেশন

অন্যথায় মুনিনের মতো কিছু ব্যবহার করুন এবং এটিকে গ্রাফ করুন। আপনি মুনিনকে সতর্ক করতে পারেন যদি এটি একটি প্রান্তিকের উপরে চলে যায়, যেমন, 90% বা আপনার গ্রাফিংটি যা দেখায় তা ভাল সতর্কতা হিসাবে দেখা যায়।

উদাহরণস্বরূপ, এই দুটি মুনিন গ্রাফগুলি দেখুন যাতে / ডিভ / এসডি দেখার প্রয়োজন হয়। এই উদাহরণে / dev / sdi যদি একটি অ্যারের অংশ হয় তবে পুরো অ্যারে এর কারণে ক্ষতিগ্রস্থ হবে।

ডিভাইস প্রতি ডিস্ক ব্যবহার - দিন দ্বারা

প্রতি ডিভাইসে ডিস্ক ব্যবহার - সপ্তাহে by

আপনি যদি সপ্তাহের গ্রাফটি দেখেন তবে আপনি দেখতে পাবেন যে / dev / sdc এছাড়াও ধীর হতে পারে।

আমার উপরে যোগ করা উচিত / উপরে / ডিডি / এসডি ভাঙা নয়, এটি কেবল একটি স্লো ডিস্ক (আসলে একটি গ্রিন ডিস্ক যা কেউ এন্টারপ্রাইজ গ্রেড সাটা ডিস্কের একটি অ্যারেতে যুক্ত করেছে) যা অ্যারেটিকে ধীর করে দেয়। একটি সত্যিকারের ব্যর্থ ডিস্কটি ব্যথার বুড়ো আঙুলের মতো আটকে থাকবে।

সংক্ষেপে, আমি সময় পেলে সম্ভবত একটি স্ক্রিপ্ট নিয়ে যেতে পারি, তবে মুনিন যদি আমি কেবল একটি দ্রুত সমাধান চাইতাম এবং সার্ভারের সাথে সংযোগ স্থাপন করা সহজ ছিল।


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