চলমান চলাকালীন 'এমডিএডিএম' র‌্যাডগুলি কীভাবে চেক করবেন?


41

আমি ঘরে বসে কম্পিউটারের সংগ্রহ পেতে শুরু করেছি এবং তাদের সমর্থন করার জন্য আমার একটি "সার্ভার" লিনাক্স বাক্স একটি রেড অ্যারে চালাচ্ছে।

এটি বর্তমানে mdadm RAID-1, RAID-5একবার আমার আরও গাড়ি চালানো হবে (এবং তারপরে RAID-6আমি আশা করছি)। তবে আমি এক ড্রাইভে ডেটা দূষিত হওয়ার বিষয়ে বিভিন্ন গল্প শুনেছি এবং অন্য ড্রাইভটি ব্যবহার করার কারণে আপনি কখনই লক্ষ্য করবেন না, প্রথম ড্রাইভটি ব্যর্থ হওয়া অবধি এবং আপনি দেখতে পান যে আপনার দ্বিতীয় ড্রাইভটিও স্ক্রুযুক্ত হয়েছে (এবং তৃতীয়, চতুর্থ) , 5 তম ড্রাইভ)।

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

সমস্ত ডিস্ক এখনও স্বাভাবিকভাবে প্রিফর্ম করছে তা নিশ্চিত করার জন্য আপনি কীভাবে চলমান রেডটি পরীক্ষা করবেন?

আমি সমস্ত ড্রাইভে স্মার্ট নিরীক্ষণ করি এবং mdadmব্যর্থতার ক্ষেত্রে আমাকে ইমেলও প্রস্তুত করেছিলাম তবে আমি মাঝে মাঝে আমার ড্রাইভগুলি নিজেও "চেক" করে জানতে চাই।


মনে হচ্ছে আপনি ইতিমধ্যে সঠিক পথে রয়েছেন, আপনার ড্রাইভের জন্য আপনাকে স্মার্টক্টলের ফলাফল প্রেরণের জন্য আপনাকে ক্রোন সেটআপ করতে হবে।
লেবেশদে

উত্তর:


56

অপ্রয়োজনীয়তা সহ RAID এর বিন্দুটি এটি যতটা সম্ভব চালিয়ে যেতে থাকবে, তবে স্পষ্টতই এটি ত্রুটিগুলি সনাক্ত করবে যা এটি একটি অবনতিযুক্ত মোডে ফেলেছে, যেমন একটি ব্যর্থ ডিস্ক। আপনি এর সাথে একটি অ্যারের বর্তমান অবস্থা প্রদর্শন করতে পারেন mdadm -D:

# mdadm -D /dev/md0
<snip>
       0       8        5        0      active sync   /dev/sda5
       1       8       23        1      active sync   /dev/sdb7

mdadm -Dতবুও যদি কোনও ব্যর্থ উপাদান (1 ত্রুটি নির্দেশ করে যে RAID মোডের ক্ষতিপূরণ দেয়, এবং 2 সম্পূর্ণ ব্যর্থতার ইঙ্গিত দেয়) এর মতো রিটার্নের স্থিতিটি ননজারো।

আপনি সমস্ত রেড ডিভাইসের স্থিতি দেখে তাড়াতাড়ি সংক্ষিপ্তসার পেতে পারেন /proc/mdstat। আপনি একটি RAID ডিভাইস সম্পর্কেও তথ্য পেতে পারেন /sys/class/block/md*/md/*; দেখতে Documentation/md.txtকার্নেল ডকুমেন্টেশনে। কিছু /sysএন্ট্রি পাশাপাশি লেখার যোগ্য; উদাহরণস্বরূপ আপনি এর md0সাথে একটি সম্পূর্ণ চেক ট্রিগার করতে পারেন echo check >/sys/class/block/md0/md/sync_action

এই স্পট চেকগুলি ছাড়াও, কোনও খারাপ কিছু হওয়ার সাথে সাথে এমডডেম আপনাকে অবহিত করতে পারে। নিশ্চিত করুন যে আপনি আছে করুন MAILADDR rootমধ্যে /etc/mdadm.conf(কিছু ডিস্ট্রিবিউশন (যেমন ডেবিয়ান) এই স্বয়ংক্রিয়ভাবে সেট আপ)। তারপরে ত্রুটি (অবনমিত অ্যারে) দেখা মাত্রই আপনি একটি ইমেল বিজ্ঞপ্তি পাবেন

স্থানীয় মেশিনে রুট করার জন্য আপনি মেইল ​​প্রাপণ পেয়েছেন তা নিশ্চিত করুন (কিছু আধুনিক বিতরণ এটি বাদ দেয় কারণ তারা বিবেচনা করে যে সমস্ত ইমেল বহিরাগত সরবরাহকারীদের মধ্য দিয়ে যায় - তবে কোনও গুরুতর সিস্টেম প্রশাসকের জন্য স্থানীয় মেল প্রাপ্তি প্রয়োজনীয়)। রুট মেইল পাঠিয়ে এই পরীক্ষা করুন: echo hello | mail -s test root@localhost। সাধারণত, সঠিক ইমেল সেটআপের জন্য দুটি জিনিস প্রয়োজন:

  • আপনার স্থানীয় মেশিনে একটি এমটিএ চালান । স্থানীয় মেল সরবরাহের অনুমতি দেওয়ার জন্য কমপক্ষে এমটিএ স্থাপন করতে হবে। সমস্ত বিতরণ উপযুক্ত এমটিএ নিয়ে আসে, কিছু বাছাই করুন (তবে আপনি যদি স্থানীয়ভাবে ইমেলটি সরবরাহ করতে চান তবে নালমেলার নয়)।
  • rootআপনি নিয়মিত পড়েন এমন কোনও ঠিকানায় মেল সিস্টেম অ্যাকাউন্টগুলিতে (কমপক্ষে ) পুনর্নির্দেশ করুন । এটি স্থানীয় মেশিনে আপনার অ্যাকাউন্ট বা কোনও বাহ্যিক ইমেল ঠিকানা হতে পারে। বেশিরভাগ এমটিএ সহ, ঠিকানাটি কনফিগার করা যেতে পারে /etc/aliases; আপনার মত একটি লাইন করা উচিত

    root: djsmiley2k
    

    স্থানীয় প্রসবের জন্য, বা

    root: djsmiley2k@mail-provider.example.com
    

    দূরবর্তী বিতরণ জন্য। যদি আপনি রিমোট ডেলিভারি চয়ন করেন তবে নিশ্চিত হন যে এটির জন্য আপনার এমটিএ কনফিগার করা আছে। আপনার এমটিএর উপর নির্ভর করে newaliasesসম্পাদনা করার পরে আপনার কমান্ডটি চালানোর প্রয়োজন হতে পারে /etc/aliases


নালমিলার কেন ব্যবহার করা উচিত নয় তা আপনি ব্যাখ্যা করতে পারেন? এটি কি ইউনিক্স.স্ট্যাকেক্সেঞ্জাওয়েজ.কম / সেকশনস / 1449/… এ উল্লিখিত কারণগুলির কারণে ? আপনি কোন এমটিএ সুপারিশ করবেন?
ক্যামেরন মার্টিন

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

19

এটি অনলাইনে থাকা অবস্থায় আপনি পুরো অ্যারের চেক জোর করতে পারেন। উদাহরণস্বরূপ, অ্যারে চালু করতে /dev/md0, রুট হিসাবে চালান:

echo check > /sys/block/md0/md/sync_action

আমার একটি ক্রোন জব রয়েছে যা মাসে একবার নিম্নলিখিত কমান্ডটি চালায়:

tar c /dir/of/raid/filesystem > /dev/null

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

একটি সামান্য সতর্কতা হ'ল যদি আপনার ফাইল সিস্টেমটি বড় হয়, তবে এই আদেশটি দীর্ঘ সময় নিতে চলেছে; আমার সিস্টেমে প্রায় 6 ঘন্টা / টিবি লাগে takes আমি এটি ব্যবহার করে এটি চালিত করি ioniceযাতে ড্রাইভ চেক চলাকালীন বাকী সিস্টেমটি থামতে না পারা যায়:

ionice -c3 tar c /dir/of/raid/filesystem > /dev/null

নোটটি ioniceকেবলমাত্র তখনই কাজ করবে যদি আপনি (ডিফল্ট) সিএফকিউ I / O শিডিয়ুলার ব্যবহার করেন।
টোটার

সুতরাং এটি বেশিরভাগের কাছেই সুস্পষ্ট হতে পারে তবে এটি আমার কাছে নয় - এমন স্ক্রিপ্ট কীভাবে চালাবেন যাঁর আউটপুটটি ডিভানলকে পুনঃনির্দেশিত করা হয় আসলে আপনাকে কোনও বিষয়ে অবহিত করে? এই ক্ষেত্রে যদি "টার" কোনও ত্রুটির মুখোমুখি হয় তবে এটি এমডিএমডিএম ডেমন পর্যন্ত প্রচারিত হবে যা আপনাকে সম্ভবত ইমেল পাঠাবে?
ljwobker

আপনার কাছে আমার কাছে প্রশ্ন, আপনি যদি এই ক্রোন কাজ থেকে চালাচ্ছেন তবে আপনি কীভাবে তারর ত্রুটিগুলি গ্রহণ করবেন? কোথায় যে আউটপুট? আমি ভেবেছিলাম আপনি স্টাডারের জন্য এমন কোনও ফাইলে পুনর্নির্দেশ যুক্ত করেছেন যা পর্যায়ক্রমে পর্যবেক্ষণ করা যেতে পারে বা এর লেজটি টার্মিনাল উইন্ডো খোলার কনসোলে প্রিন্ট করা হচ্ছে :)
মাদিবাদ

1
@ljwobker একটি পুরানো থ্রেড পুনরুদ্ধার করার জন্য দুঃখিত। আমি মনে করি এখানে টার কমান্ডের উদ্দেশ্যটি হ'ল ভলিউমের পুরো বিষয়বস্তু পড়ার চেষ্টা করা। এটি পুরো ভলিউমটি এখনও পঠনযোগ্য যাচাই করবে এবং এমডিকে একটি খারাপ ডিস্ক সনাক্ত করার সুযোগ দেবে।
মাইকপিজ

1
যদি এটি ক্রোনজ থেকে আসে, ক্রোন সাধারণত তার সমস্ত আউটপুট সরাসরি মেইলটো = লোকেশনে প্রেরণ করবে, যদি সেট করা থাকে, অন্যথায় রুট করতে। যাইহোক ... আমি ভাবছি ডিডি কি নীচে থেকে ওভারহেডের জন্য ভাল হবে?
djsmiley2k - CoW

11

ডেবিয়ান এবং উবুন্টু 'mdadm' প্যাকেজে ফাইল রয়েছে

/etc/cron.d/mdadm

যা প্রতিটি মাসের প্রথম রবিবার কমান্ডটি চালায়

/usr/share/mdadm/checkarray --cron --all --idle --quiet

এটি আপনার সমস্ত অ্যারেটিকে ধারাবাহিকতার জন্য পরীক্ষা করবে (যদি আপনি অটোচেককে / / etc / ডিফল্ট / এমডিএমএম এ মিথ্যা হিসাবে সেট না করেন )। 'রুট' ব্যবহারকারীর কাছে একটি প্রতিবেদন প্রেরণ করা হবে (নিশ্চিত করুন যে আপনি এই জাতীয় ইমেল পেয়েছেন)।


8

আমি পরীক্ষা করতে এই সাধারণ ফাংশনটি ব্যবহার করি /proc/mdstat:

#Health of RAID array
raid() { awk '/^md/ {printf "%s: ", $1}; /blocks/ {print $NF}'  /proc/mdstat; }

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