আমি কীভাবে আরএসসিএনকে কমিয়ে দেব?


35

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

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


24
আপনি কি ড্রাইভ শীতল করার বিষয়ে চিন্তা করেছেন?
এওনএক্স

3
ড্রাইভ কত পূর্ণ? ড্রাইভ যদি 50% এরও বেশি পূর্ণ হয় তবে প্রথমে ব্যর্থ হওয়া ড্রাইভটি মিরর করা এবং তারপরে কেবল আয়নাতে আরও জটিল স্টাফ নিয়ে কাজ শুরু করা ভাল।
ক্যাস্পারড

1
@ অয়নাক্স: বাক্সের বাইরে একটি শীতল (sic!) ধারণা থাকা সত্ত্বেও আমি এটির পরামর্শ দেব না: আপনি ডিভাইসে অতিরিক্ত তাপ চাপ দিচ্ছেন, এবং এটি সম্পূর্ণরূপে ব্যর্থ হতে পারে।
পিসকভোর

উত্তর:


46

ডোপগোতির অভিজ্ঞতার বিপরীতে, --bwlimitপতাকাটি আমার আরএসসিএন (v3.1.2) সহ ডেটা স্থানান্তর সীমাবদ্ধ করে।

পরীক্ষা:

$ dd if=/dev/urandom bs=1M count=10 of=data
10+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.0871822 s, 120 MB/s

$ du -h data
10M     data

$ time rsync -q data fast
0.065 seconds

$ time rsync -q --bwlimit=1M data slow
10.004 seconds

(দ্রষ্টব্য: আমার timeআউটপুট বেশিরভাগ timeঅনুরোধের ( zshবৈশিষ্ট্য) থেকে আলাদা দেখায় , সেই সময়গুলি আমার দ্বারা সম্পাদিত হয়নি)

অন্যথায়, সম্ভবত একটি ডাবল -execইন লাইন বরাবর কিছু find। আমি বিশ্বাস করি যে rsync -Rপিতামাতার ফোল্ডারগুলি তৈরি এবং অনুলিপি করা উচিত, তবে এটি যদি না হয় তবে cp --parentsঅবশ্যই উচিত।

$ find /failing/usb -exec rsync -R {} /somewhere/safe/ \; -exec sleep 1 \;

দ্রষ্টব্য : এছাড়াও ড্রেডস্কু পরীক্ষা করে দেখুন , আপনি যা খুঁজছেন তা ঠিক হতে পারে :)


1
হা. ডিজি "ব্যান্ডউইথ" শব্দটি দ্বারা বিভ্রান্ত হয়ে থাকতে পারে - তবে এটি কেবল নেটওয়ার্ক নয়, কোনও তথ্য বহনকারী চ্যানেলের ক্ষেত্রে প্রযোজ্য। ম্যান পৃষ্ঠা বিশেষভাবে বলেছেন: --bwlimit=KBPS limit I/O bandwidth; KBytes per second, নেটওয়ার্ক কোনো উল্লেখ। কোডটি সাধারণভাবে ব্রাউজ করা, এটি গন্তব্য নির্বিশেষে পঠনের গতি সীমিত করে । এছাড়াও, উপাখ্যান: স্থানীয় থেকে স্থানীয় লেখার গতি সীমাবদ্ধ করার জন্য আমি এখন বছরের পর বছর ধরে এই বিকল্পটি ব্যবহার করছি । linux.die.net/man/1/rsync
পিসকভোর

1
ঠিক আছে, দ্বিতীয় চেহারাতে এটি লিখিত বাইটের সংখ্যা গণনা করে এবং গণনা করা সময়ের জন্য ঘুমায়। io.c, লাইন 832-3: if (bwlimit_writemax) sleep_for_bwlimit(n);যে কোনও ক্ষেত্রে, এটি সম্ভবত উদ্দেশ্য হিসাবে কাজ করবে, সংক্ষিপ্ত বিস্ফোরণে পড়া এবং এর মধ্যে ঘুমানো। আমি কম মান দিয়ে শুরু করার এবং সাবধানতার সাথে বাড়ানোর পরামর্শ দিচ্ছি বা কেবল ধীরে ধীরে স্থানান্তরটি রাতারাতি চলতে দিন।
পিসকভোর

25

কিছুটা ম্যাকগাইভার সলিউশন কিন্তু অতীতে আমার এটিতে ভাল সাফল্য রয়েছে:
স্টিক এবং কম্পিউটারের মধ্যে একটি পুরানো ইউএসবি 1 হাব রাখুন। জাহান্নামে কোনও উপায়ই সেভাবে দ্রুত অনুলিপি করতে চলেছে :-)

অন্যান্য সম্ভাবনা: আপনার যদি অন্য কোনও স্টিক পাওয়া যায় তবে এটি একই রুট-হাবের সাথে যুক্ত অন্য একটি ইউএসবি পোর্টে রেখে দিন (যাতে এটি আপনার সমস্যার স্টিকের সাথে ব্যান্ডউইথ শেয়ার করে)।
এখন অতিরিক্ত স্টিকের জন্য একটি বড় রাইটিং অপারেশন শুরু করুন যাতে উভয় লাঠি ব্যান্ডউইথের জন্য প্রতিযোগিতা করে। আরও নিয়ন্ত্রণের জন্য আপনি সমস্যার স্টিকটির অগ্রাধিকারটিকে আরও কমিয়ে আয়নকে ব্যবহার করতে পারেন ।


1
আমি নিশ্চিত যে ইউএসবি কার্নেল মডিউলটিকে অপশন দিয়ে সম্ভবত পোর্টগুলি কোনও সফ্টওয়্যার সমাধানের মাধ্যমে ইউএসবি 1.1 হিসাবে কাজ করার একটি উপায় থাকা উচিত।
আন্দ্রে বোরি

@ অ্যান্ড্রোবোরি: বিবিএস.আরলিনিক্স.অর্গ / ভিউটোপিক.এফপি? পিড= 1342593 # p1342593 রয়েছে , তবে যেহেতু এসডাব্লুতে কার্যকর থ্রোটল রয়েছে, এটি কিছুটা নিষ্ঠুর শক্তি সমাধান solution
পিসকভোর

@ পিসকভোর এটি ইউএসবি 1 হাব ব্যবহারের মতো ডিভাইসের সাথে স্বল্প স্থানান্তর হারের সাথে আলোচনা করে। আমি এটি সম্পর্কে "বর্বর শক্তি" কিছুই দেখতে পাচ্ছি না।
আন্দ্রে বোরি

ঠিক আছে, শব্দের খারাপ পছন্দ, আমি স্বীকার করি। তবে আইএমএইচও পুনর্নির্মাণ ডিভাইসগুলির জন্য বিশেষ সুযোগগুলি (মূল বা কমপক্ষে% অ্যাড) প্রয়োজন হবে, যেখানে প্রতি-প্রক্রিয়া পড়ার গতি নিয়ন্ত্রণ করা সহজ হবে। (প্লাস, এমন ডিভাইস রয়েছে যা ইউএসবি ২.০ এর বাইরে
মোটেও

13

আপনি rsync --bwlimit=RATEফাইল স্থানান্তর গতিটি থ্রোটল্ট করতে ব্যবহার করতে পারেন যা নীচের মন্তব্যের উপর ভিত্তি করে, বিশেষত ডেটা পড়ার গতি থ্রোটল করে কাজ করে বলে মনে হচ্ছে, যা আপনি যা খুঁজছেন তা অবিকল।



3
আয়নিস কেবল অগ্রাধিকার দেয়, যদি দুটি জিনিস পড়ে থাকে তবে ডিফল্টরূপে তারা 50/50 পেয়ে থাকে। আয়নিস এটিকে সামঞ্জস্য করতে পারে, তবে যদি কেবল একটি জিনিস পড়া হয় তবে তা 100% পাবেন।
coteyr

@ কোটায়ার আপনি ঠিক বলেছেন এবং সে কারণেই আপনাকে এটি একই ইউএসবি রুট-হাবের 2 য় ব্যান্ডউইথ খাওয়ার প্রক্রিয়াটির সাথে একত্রিত করতে হবে। আমার উত্তর দেখুন।
টনি

2
ভাগ্যক্রমে, আপনার উত্তরটি ভুল: --bwlimitI / O সীমা সেট করে, অগত্যা কোনও নেটওয়ার্ক সীমা। বিভিন্ন পরিস্থিতিতে বহুবার পরীক্ষা করা হয়েছে: গন্তব্য নির্বিশেষে এই বিকল্পটি আরএসসিএনকে পড়তে সীমাবদ্ধ করে তোলে । (এটি একটি অনুরূপ
দৃশ্যে এটি সন্ধান পেয়েছে

1
@ পিসকভোর - এর জন্য ধন্যবাদ! এই জায়গাটি সম্পর্কে আমি এটাই পছন্দ করি; আমি নতুন জিনিস শিখতে থাকি (:
DopeGhoti

8

rsync --bwlimit=100100KiB / s এর জন্য আরওগুলি সমাধান ছাড়াও ।

  1. ব্যবহার করুন ddrescueসঙ্গে --max-read-rateএকটি পূর্ণ ডিস্ক কপি বিকল্প। এটি আপনাকে একটি সম্পূর্ণ ডিস্ক অনুলিপি পুনরায় আরম্ভ করার অনুমতি দেয় যেখানে এটি ত্রুটির পরে ছেড়ে গেছে।

    ddrescue --max-read-rate=100K /failing/usb output.img output.logfile
    

ddrescueএছাড়াও তথ্য পুনরুদ্ধারের সাথে সম্পর্কিত অন্যান্য প্রচুর বিকল্প রয়েছে, ম্যানুয়ালটি এখানে দেখুন

  1. বিকল্পটি pv("পাইপ ভিউয়ার") ব্যবহার করে --rate-limit, বা throttleসীমাবদ্ধ পাইপগুলিকে রেট দেওয়ার সরঞ্জামটি ব্যবহার করুন। pvঅগ্রগতিও দেখাতে পারে। আপনি পাইপ ব্যবহার করা বা পাইপ ব্যবহার করতে পারেন এমন কোনও সরঞ্জামের জন্য এই কাজটি করতে পারেন:

    tar -cf - /failing/usb | throttle -K 100 | tar -C /your/outputfolder/ -xvf -
    

    অথবা

    tar -cf - /failing/usb | pv --rate-limit 100k | tar -C /your/outputfolder/  -xvf -
    

    কটাক্ষপাত PV র manpage আরো সেটিংস এবং উদাহরণ জন্য। এর জন্য throttle, আপনি -wবিকল্পটিও দেখতে চাইতে পারেন , যা গতি কীভাবে গণনা করা হয় তা নির্ধারণ করে, থ্রোটল ম্যানপেজটি দেখুন


এখন এটি একটি দরকারী সরঞ্জাম, এটি জানেন না, ধন্যবাদ! pvম্যানপেজে বিভিন্ন ব্যবহারের আরও উদাহরণ রয়েছে।
পিসকভোর

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