দুটি সার্ভারের মধ্যে কীভাবে বড় সংখ্যক ফাইলগুলি অনুলিপি করা যায়


90

আমার দুটি সার্ভের (উবুন্টু) মধ্যে বিশাল পরিমাণে এমপি 3 স্থানান্তর করতে হবে। বিশাল দ্বারা আমি প্রায় এক মিলিয়ন ফাইল যা গড়ে 300K হয় mean আমি চেষ্টা করেছিলাম scpতবে এটি প্রায় এক সপ্তাহ সময় নিতে পারে। (প্রায় 500 কেবি / গুলি) আমি যদি এইচটিটিপি দ্বারা কোনও একক ফাইল স্থানান্তর করি তবে আমি 9-10 এমবি / সেকেন্ড পাই, তবে সেগুলি কীভাবে স্থানান্তর করতে হয় তা আমি জানি না।

সেগুলি দ্রুত স্থানান্তর করার কোনও উপায় আছে কি?


1
সার্ভারগুলির মধ্যে আপনার কী ধরণের নেটওয়ার্ক রয়েছে। আমি প্রতিটি মেশিনে 1 এনআইসির মধ্যে একটি জিবি ইথারনেট ক্রসওভার ব্যবহার করেছি। এসসিপি
জিম ব্লাইজার্ড

আপনি scp কেন এত ধীর তা তদন্ত করতে চাইতে পারেন। এটি এনক্রিপশনের কারণে এফটিপি-র মতো জিনিসগুলি ধীর হতে পারে তবে এটি এত ধীর হওয়া উচিত নয়।
জোড়াদেচ

তাদের মধ্যে আমার 100 এমবিপিএস রয়েছে। scp ছোট ফাইলগুলিতে ধীরে ধীরে (বেশিরভাগই ছোট)
নিকুডোট্রো

উত্তর:


115

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

tar -c /path/to/dir | ssh remote_server 'tar -xvf - -C /absolute/path/to/remotedir'

ম্যাকিন্টোষের নীচের মন্তব্য অনুসারে এটি হ'ল কমান্ডটি আপনি rsync এর জন্য ব্যবহার করবেন

rsync -avW -e ssh /path/to/dir/ remote_server:/path/to/remotedir

2
+1 টার বিকল্পটি বৃহত সংখ্যক ছোট ফাইলের জন্য আরও কার্যকর কারণ স্ক্যাপ এবং আরএসসিএনসি উভয়ই নেটওয়ার্ক জুড়ে ফাইলের জন্য আরও অনেকগুলি রাউন্ড ট্রিপ করে।
সেকেনরে


4
এছাড়াও, আপনার কাছে প্রচুর সিপিইউ উপলব্ধ (উভয় প্রান্তে), তবে (কমপক্ষে) হোস্টগুলির মধ্যে একটি ধীর লিঙ্ক, এটি টার কমান্ডে সংক্ষেপণ (gzip বা bzip) সক্ষম করার জন্য উপযুক্ত হতে পারে।
ভ্যাটাইন

1
@ জ্যামি: আপনি যদি ssh-এজেন্ট ব্যবহার করে থাকেন তবে তা ব্যবহার করা উচিত। অন্যথায় ব্যক্তিগত কীটি কোথায় পাওয়া যাবে তা নির্দিষ্ট করতে কেবল '-i' বিকল্পটি ব্যবহার করুন। বিশদ জন্য ম্যান পৃষ্ঠা দেখুন।
স্কট প্যাক 17

3
@niXar ~এসএসএইচ একটি টার্মিনাল ব্যবহার করা হয় তবেই পালানোর অক্ষর সক্ষম হয়। আপনি যখন রিমোট কমান্ডটি নির্দিষ্ট করেন (আপনি -tবিকল্পটি পাস না করেন ) ক্ষেত্রে এটি নয়। সুতরাং আপনার উদ্বেগ অবৈধ।
গিলস

35

বাহ্যিক হার্ড ড্রাইভ এবং একই দিনের কুরিয়ার বিতরণ।


10
হেইহে হেই ... কোনও নেটওয়ার্কিং প্রযুক্তি 90 এমপিএইচ করে টেপ বোঝাই কোনও স্টেশন ওয়াগনের ব্যান্ডউইথকে মারছে না, তাই না? (স্নিকার) আমি ধরে নিয়েছিলাম তিনি ল্যানে ছিলেন কারণ তিনি বলেছিলেন যে তিনি এইচটিটিপি দিয়ে 9-10 এমবি / সেকেন্ড পাচ্ছেন।
ইভান অ্যান্ডারসন

2
আমি ইন্টারনেটে এই ধরণের গতি পাই, তবে আমি যেখানে থাকি সেখানে আমি কেবল ভাগ্যবান! যদি এটি ল্যানে থাকে তবে এখনও কম দামে!
আদম

2
আহ - আপনার অবস্থানের দিকে নজর দেয়নি। হ্যাঁ - আমি শুনেছি যে কোরিয়ার ইন্টারনেট সংযোগ বেশ দর্শনীয়। মার্কিন যুক্তরাষ্ট্রে এখানে আটকে, আমি 'নেট'র উপরে 900KB / সেকেন্ড পেয়ে খুশি ...
ইভান অ্যান্ডারসন

1
হ্যাঁ, তবে আপনি ডাউনলোডটি শেষ হওয়ার অপেক্ষায় থাকাকালীন আপনি সুস্বাদু বুরিটো পেতে পারেন এবং এমনকি সিওলে প্রায় তিনটি অর্ধ-শালীন মেক্সিকান রেস্তোঁরা রয়েছে ...
অ্যাডাম

17

আমি আরএসসিএনসি ব্যবহার করব

যদি আপনি এইচটিটিপি-র মাধ্যমে ডিরেক্টরি তালিকাভুক্ত তালিকা রফতানি করে থাকেন তবে আপনি উইজেট এবং - এমিরার আর্গুমেন্টও ব্যবহার করতে পারেন।

আপনি ইতিমধ্যে দেখতে পাচ্ছেন যে এসটিপি এসসিপির চেয়ে দ্রুততর কারণ এসসিপি সবকিছু এনক্রিপ্ট করছে (এবং এইভাবে সিপিইউতে বাধা দিচ্ছে)। HTTP এবং rsync দ্রুত স্থানান্তরিত করতে চলেছে কারণ তারা এনক্রিপ্ট করছে না।

উবুন্টুতে rsync স্থাপনের জন্য এখানে কিছু ডক্স রয়েছে: https://help.ubuntu.com/commune/rsync

এই দস্তাবেজগুলি এসএসএইচের মাধ্যমে আরএসএনসি টানেলিং সম্পর্কে কথা বলে তবে আপনি যদি কেবল একটি বেসরকারী ল্যানে ডেটা ঘুরিয়ে নেন তবে আপনার এসএসএইচ দরকার নেই need (আমি ধরে নিচ্ছি আপনি একটি প্রাইভেট ল্যানে আছেন। আপনি যদি ইন্টারনেটের মাধ্যমে 9-10MB / সেকেন্ড পান তবে আপনার কী সংযোগ রয়েছে তা আমি জানতে চাই!)

এখানে কয়েকটি অন্যান্য খুব বেসিক ডকস যা আপনাকে আপেক্ষিক নিরাপত্তাহীন আরএসসিএন সার্ভার (এসএসএইচ / ডাব্লু / কোনও নির্ভরতা নয়) সেটআপ করার অনুমতি দেবে: http://transamrit.net/docs/rsync/


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

প্রদত্ত যে তিনি এসসিপি-র জন্য 300 কে এবং এইচটিটিপি-র 9MB দেখছেন, আমি ধরে নিয়েছিলাম যে এসসিপি-সম্পর্কিত একটি বাধা (সাধারণত সিপিইউ) চালু হচ্ছে play যদিও এটি অবশ্যই অন্য কিছু হতে পারে। ডাব্লু / ও প্রশ্নযুক্ত মেশিনগুলির হার্ডওয়্যার চশমাগুলি জানার পক্ষে তা বলা শক্ত।
ইভান অ্যান্ডারসন

1
rsync প্রায় নিশ্চিতভাবে পরিবহনের জন্য ssh ব্যবহার করবে, কারণ এটি পূর্বনির্ধারিত আচরণ, সুতরাং scp এ এনক্রিপশন দ্বারা সৃষ্ট যে কোনও ওভারহেড এছাড়াও আরএসআইএনসিতে উপস্থিত থাকবে
ড্যানিয়েল লসন

3
"আপনি ইতিমধ্যে দেখতে পাচ্ছেন যে এসটিপি এসসিপির চেয়ে দ্রুততর কারণ এসসিপি সবকিছু এনক্রিপ্ট করছে" → র্রং। যদি তার 10 বছরের পুরানো সার্ভার না থাকে তবে তিনি এই টাস্কের উপর সিপিইউ আবদ্ধ নন।
নিক্সার

1
@ রমজানপোল্যাট - আপনার একটি কমান্ড-লাইন খুব দীর্ঘ। ফাইল নির্বাচনটি আলাদাভাবে উল্লেখ করুন এবং এটি আপনার পক্ষে ভাল কাজ করবে। সাধারণত আপনি শেষে সোর্স ডিরেক্টরি ডাব্লু / ওএ ওয়াইল্ডকার্ড নির্দিষ্ট করতে পারেন। এছাড়াও আপনি ব্যবহার করতে পারেন --includeএবং --excludeআরো nuanced পেতে আর্গুমেন্ট।
ইভান অ্যান্ডারসন

15

বেশি আলোচনা ছাড়াই নেটকাট, নেটওয়ার্ক সুইজার্মি ছুরি ব্যবহার করুন। কোনও প্রোটোকল ওভারহেড নয়, আপনি সরাসরি সরাসরি সোকেটে অনুলিপি করছেন। উদাহরণ

srv1$ tar cfv - *mp3 | nc -w1 remote.server.net 4321

srv2$ nc -l -p 4321 |tar xfv -

2
দুর্ভাগ্যক্রমে, আমি নেটকাট যা দেখেছি তা থেকে খুব অকার্যকর হলেও তা না হওয়া উচিত।
ক্রিশ্চিয়ান সিউপিতু

আমি আপনাকে হ্রাস করছি কারণ এটি সত্যই, সত্যই ভয়ঙ্কর পরামর্শ। একটি সঠিক উত্তর আছে: rsync। আমি কেন এটি সর্বোত্তম কারণগুলির তালিকা করতে পারি তবে এটি এই পৃষ্ঠায় মানায় না, এই ক্ষুদ্র মন্তব্য বাক্সটি ছেড়ে দিন।
নিক্সর

2
@নিএক্সআর: আপনি যা করতে চান তা যদি কোনও একক ফাইল স্থানান্তর হয় (আরও সিঙ্ক করার দরকার নেই), তবে তারপাইপটি যা আপনার প্রয়োজন তা সত্যিই।
উইটিকো

2
@niXar নেটক্যাটটি ঠিক আছে যদি আপনি ব্যক্তিগত ভ্যালান এবং / অথবা ভিপিএন এর মতো সুরক্ষিত পরিবেশে এটি করছেন।
লেস্টার চেউং

নেটকাট সুরক্ষিত পরিবেশের জন্য দুর্দান্ত যতক্ষণ না আপনি কিছুটা উল্টান এবং পুরো 1TB স্ট্রিমটি খারাপ না হয়। সমান্তরাল সংক্ষেপণ, অগ্রগতি আউটপুট (মাধ্যমে pv) এবং এর মাধ্যমে অখণ্ডতা যাচাইয়ের সাথে আমার কাছে এর মতো একটি বিস্তৃত স্ক্রিপ্ট রয়েছে sha512sumতবে একবার যদি কিছুটা উল্টে যায় তবে পুরো স্ট্রিমটি খারাপ কারণ এটি পুনরুদ্ধারের কোনও উপায় নেই। আমাদের যখন কম ওভারহেডের প্রয়োজন হয় তখন আমাদের সুরক্ষিত পরিবেশগুলির জন্য স্ট্রিমিং টরেন্টের মতো হালকা ওজনের প্রোটোকলটি দরকার - এটি এমন কিছু যা খণ্ড (যেমন, 4 এমবি) স্তরে নিখরচায়তা পরীক্ষা করে এবং কোনও ব্যর্থ হলে একটি অংশকে পুনরায় প্রেরণ করতে পারে। টিসিপি crc যথেষ্ট শক্তিশালী নয়।
ড্যানিয়েল স্যান্টোস

8

আপনি আরএসসিএনসি দিয়ে যান তবে প্রচুর ফাইল সহ, আমি উভয় প্রান্তে 3 বা তার বেশি সংস্করণ পাওয়ার চেষ্টা করব । হ'ল কারণটি হ'ল স্থানান্তর শুরু হওয়ার আগে একটি স্বল্প সংস্করণ প্রতিটি ফাইলকে গণনা করবে। নতুন বৈশিষ্ট্যটিকে ইনক্রিমেন্টাল-রিকার্সন বলা হয় ।

একটি নতুন ইনক্রিমেন্টাল-রিকার্সন অ্যালগরিদম এখন ব্যবহৃত হয় যখন আরএসসিএন আরও একটি 3.x সংস্করণে কথা বলছে। এটি স্থানান্তর আরও দ্রুত চলে যাওয়া শুরু করে (সমস্ত ফাইল সন্ধানের আগে) এবং এর জন্য অনেক কম মেমোরি দরকার। কিছু সীমাবদ্ধতার জন্য ম্যানপেজে --recursive বিকল্পটি দেখুন।


7

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

rsync -ax -e 'ssh -c blowfish' /local/path user@host:/remote/path


সাইফার পরিবর্তন সম্পর্কে পয়েন্টের জন্য +1
ড্যানিয়েল লসন

আপনার 10 জি ইথারনেট এবং 10 বছরের পুরাতন সিপিইউ না থাকলে সিপিইউ কোনও বাধা হয়ে দাঁড়াবে না।
নিক্সার

1
কেবল মন্তব্য করুন: সাইফার "-সি আরকফোর" দ্রুত।
আরমান

@niXar: তবে আপনার মেশিনে ইতিমধ্যে যদি কোনও সিপিইউ গ্রাহক কাজ থাকে তবে এটি উদ্বেগজনক।
ইসহাক

6

তথ্য গতকাল (ছোট্ট ফাইল লক্ষ লক্ষ), থেকে সুইচিং 80 টিবি চলন্ত rsyncথেকে tar প্রমাণিত অনেক দ্রুত হতে , যেমন আমরা চেষ্টা বন্ধ

# slow
rsync -av --progress /mnt/backups/section01/ /mnt/destination01/section01

এবং tarপরিবর্তে স্যুইচ করা হয়েছে ...

# fast
cd /mnt/backups/
tar -cf - section01 | tar -xf - -C /mnt/destination01/ 

যেহেতু এই সার্ভারগুলি একই ল্যানে রয়েছে তাই গন্তব্যটি সোর্স সিস্টেমে এনএফএস-মাউন্টড, যা পুশ করছে। এটি আরও দ্রুততর না করে, আমরা atimeফাইলগুলির সংরক্ষণ না করার সিদ্ধান্ত নিয়েছি :

mount -o remount,noatime /mnt/backups
mount -o remount,noatime /mnt/destination01

নীচের গ্রাফিকটিতে আরএসইএনসি থেকে টার তৈরির পার্থক্য চিত্রিত হয়েছে। এটি আমার বসের ধারণা এবং আমার সহকর্মী উভয়েই এটি সম্পাদন করেছিলেন এবং তাঁর ব্লগে দুর্দান্ত লেখার ব্যবস্থা করেছিলেন । আমি ঠিক সুন্দর ছবি পছন্দ করি । :)

rsync_vs_tar


আমি বিশ্বাস করি এমন একজন হ্যাকার আমাকে "এনএফএসের পরিবর্তে ট্যর ওভার টিসি আরও দ্রুত হতে পারে" বলে tells যেমন ftp.arl.mil/mike/ttcp.htmltar cf - directory | ttcp -t dest_machine থেকে
ফিলিপ

অপ্রাসঙ্গিক প্রশ্ন, কিন্তু সেই গ্রাফটি কোথা থেকে এসেছে?
সাইবার জ্যাকব

4

বিপুল সংখ্যক ফাইল অনুলিপি করার সময়, আমি দেখতে পেলাম যে অনেকগুলি ফাইল খোলার এবং বন্ধ করার ওভারহেড থাকার কারণে টার এবং আরএসএনসি-র মতো সরঞ্জামগুলি তার প্রয়োজনের চেয়ে বেশি অদক্ষ। আমি ফাস্ট-আর্কিভার নামে একটি ওপেন সোর্স সরঞ্জাম লিখেছি যা এই পরিস্থিতিতেগুলির জন্য টারের চেয়েও দ্রুত: https://github.com/replicon/ ব্রেকফাস্ট-archiver ; এটি একাধিক সমবর্তী ফাইল অপারেশন করে দ্রুত কাজ করে।

এখানে দুই মিলিয়নেরও বেশি ফাইলের ব্যাকআপ নেওয়ার জন্য ফাস্ট-আর্কিভার বনাম টারের একটি উদাহরণ রয়েছে; দ্রুত-তীরচিহ্ন সংগ্রহ করতে 27 মিনিট সময় নেয়, বনাম টার 1 ঘন্টা 23 মিনিট সময় নেয়।

$ time fast-archiver -c -o /dev/null /db/data
skipping symbolic link /db/data/pg_xlog
1008.92user 663.00system 27:38.27elapsed 100%CPU (0avgtext+0avgdata 24352maxresident)k
0inputs+0outputs (0major+1732minor)pagefaults 0swaps

$ time tar -cf - /db/data | cat > /dev/null
tar: Removing leading `/' from member names
tar: /db/data/base/16408/12445.2: file changed as we read it
tar: /db/data/base/16408/12464: file changed as we read it
32.68user 375.19system 1:23:23elapsed 8%CPU (0avgtext+0avgdata 81744maxresident)k
0inputs+0outputs (0major+5163minor)pagefaults 0swaps

সার্ভারগুলির মধ্যে ফাইল স্থানান্তর করতে, আপনি এসএসএস সহ দ্রুত-তীরচিহ্ন ব্যবহার করতে পারেন:

ssh postgres@10.32.32.32 "cd /db; fast-archive -c data --exclude=data/\*.pid" | fast-archiver -x

3

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

host1$ tar cvf - filespec | socat stdin tcp4:host2:portnum

host2$ socat tcp4-listen:portnum stdout | tar xvpf -

উপাধিগুলি alচ্ছিক।



2

দেখে মনে হচ্ছে উপরের উত্তরে কয়েকটি টাইপস থাকতে পারে। এটি আরও ভাল কাজ করতে পারে:

tar -cf - /path/to/dir | ssh remote_server 'tar -xvf - -C /path/to/remotedir'

আমি খুঁজে পেয়েছি যে আমি -f বিকল্পটি ব্যবহার করার সময় কমান্ডটি ব্যর্থ হয়েছে।
ব্যবহারকারী 11749

@ user11749: এই কমান্ডে দুটি-বিকল্প রয়েছে, উভয়ই প্রয়োজনীয়। আপনি কী ব্যাকগ্রাউন্ডে যেতে ssh-to পাশ করার কথা বলছেন?
পুনরায় প্রত্যাহার করুন

2
  • নেটওয়ার্ক ফাইল সিস্টেম (এনএফএস) এবং তারপরে আপনার যা যা পছন্দ করে তা অনুলিপি করুন, যেমন মিডনাইট কমান্ডার (এমসি), নটিলাস (জিনোম থেকে)। ভাল ফলাফল সহ আমি এনএফএস ভি 3 ব্যবহার করেছি।
  • সাম্বা (সিআইএফএস) এবং তারপরে আপনি যা যা চান ফাইলগুলি অনুলিপি করুন তবে এটি কতটা দক্ষ তা আমার কোনও ধারণা নেই।
  • HTTP- র সঙ্গে wget --mirrorযেমন ইভান অ্যান্ডারসন সুপারিশ করেছে বা অন্য কোন HTTP ক্লায়েন্ট। কোনও বাজে symlinks বা বিভ্রান্তিমূলক সূচি ফাইল না যাতে সতর্কতা অবলম্বন করুন। আপনার সমস্ত কিছু যদি এমপি 3 হয় তবে আপনার নিরাপদ থাকা উচিত।
  • rsync । আমি এটি বেশ ভাল ফলাফলের সাথে ব্যবহার করেছি এবং এর দুর্দান্ত বৈশিষ্ট্যগুলির মধ্যে একটি হ'ল আপনি বাধা দিতে এবং পরে স্থানান্তর পুনরায় শুরু করতে পারেন।

আমি লক্ষ্য করেছি যে অন্যান্য ব্যক্তি নেটকাট ব্যবহারের পরামর্শ দিয়েছেন । এটির সাথে আমার অভিজ্ঞতার ভিত্তিতে আমি বলতে পারি যে এটি অন্যান্য সমাধানগুলির সাথে তুলনা করে ধীর।


2

স্কট প্যাকের দুর্দান্ত উত্তরের জন্য ধন্যবাদ (এসএসএস দিয়ে এটি কীভাবে করা যায় তা আমি জানতাম না), আমি এই উন্নতিটি (যদি bashআপনার শেল হয়) দিতে পারি। এটি সমান্তরাল সংক্ষেপণ, একটি অগ্রগতি সূচক এবং নেটওয়ার্ক লিঙ্ক জুড়ে সততা পরীক্ষা করবে:

tar c file_list |
    tee >(sha512sum >&2) |
    pv -prab |
    pigz -9 |
    ssh [user@]remote_host '
        gunzip |
        tee >(sha512sum >&2) |
        tar xC /directory/to/extract/to
    '

pvআপনার পাইপের জন্য একটি দুর্দান্ত অগ্রগতি ভিউয়ার প্রোগ্রাম এবং pigzএটি একটি সমান্তরাল জিজিপ প্রোগ্রাম যা আপনার সিপিইউতে যতটা থ্রেড ডিফল্টরূপে ব্যবহার করে (আমি সর্বোচ্চ 8 টি পর্যন্ত বিশ্বাস করি)। আপনি নেটওয়ার্ক ব্যান্ডউইথের সাথে সিপিইউর অনুপাতটিকে আরও ভালভাবে ফিট করতে সংকোচনের স্তরের টিউন করতে পারেন এবং এটির সাথে অদলবদল করতে পারেন pxz -9eএবং pxz -dযদি আপনার কাছে ব্যান্ডউইথের চেয়ে অনেক বেশি সিপিইউ থাকে। আপনাকে কেবল যাচাই করতে হবে যে সম্পূর্ণ হওয়ার পরে দুটি যোগফল মিলে match

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

নমুনা আউটপুট:

6c1fe5a75cc0280709a794bdfd23d7b8b655f0bbb4c320e59729c5cd952b4b1f84861b52d1eddb601259e78249d3e6618f8a1edbd20b281d6cd15f80c8593c3e  -                     ]
 176MiB [9.36MiB/s] [9.36MiB/s] [                                            <=>                                                                        ]
6c1fe5a75cc0280709a794bdfd23d7b8b655f0bbb4c320e59729c5cd952b4b1f84861b52d1eddb601259e78249d3e6618f8a1edbd20b281d6cd15f80c8593c3e  -

ব্লক ডিভাইসের জন্য:

dd if=/dev/src_device bs=1024k |
    tee >(sha512sum >&2) |
    pv -prab |
    pigz -9 |
    ssh [user@]remote_host '
        gunzip |
        tee >(sha512sum >&2) |
        dd of=/dev/src_device bs=1024k
    '

স্পষ্টতই, নিশ্চিত করুন যে তারা গণনা =, এড়িয়ে যান =, অনুসন্ধান =, ইত্যাদি সহ একই আকার বা সীমা limit

আমি যখন এইভাবে ফাইল dd if=/dev/zero of=/thefs/zero.dat bs=64k && sync && rm /thefs/zero.dat && umount /thefsসিস্টেমগুলি অনুলিপি করি তখন আমি প্রায়শই প্রথমে অব্যবহৃত বেশিরভাগ জায়গাকে শূন্য করতে যা এক্সফারটিকে গতিবেগ করে।


1

আমি মনে করি না আপনি যদি দ্রুত নেটওয়ার্ক কার্ড ইনস্টল না করেন তবে আপনি স্কেপ্পের চেয়ে আরও ভাল কিছু করতে যাচ্ছেন। আপনি যদি ইন্টারনেটে এটি করছেন, তবে এটি সাহায্য করবে না।

আমি ব্যবহার সুপারিশ করবে rsync । এটি কোনও দ্রুত নাও হতে পারে, তবে অন্তত যদি এটি ব্যর্থ হয় (বা আপনি এটি খুব বেশি সময় নিচ্ছেন বলে এটি বন্ধ করে দিয়েছেন), আপনি পরের বার যেখানে গিয়েছিলেন তা আবার শুরু করতে পারেন।

আপনি যদি গিগাবিট ইথারনেট ব্যবহার করে সরাসরি 2 টি মেশিন সংযোগ করতে পারেন তবে এটি সম্ভবত দ্রুততম হবে।


আমার সরাসরি তাদের মধ্যে একটি অব্যবহৃত 100 এমবিপিএস লিঙ্ক রয়েছে
নিকডোট্রো

1
এসসিপি এর চেয়ে ভাল করতে যাচ্ছি না? এসসিপি সমস্ত তথ্য একটি এনক্রিপশন পদক্ষেপের মাধ্যমে চাপছে। এসপিপি এটি অনুলিপি করার অন্যতম ধীরতম উপায় হতে চলেছে!
ইভান অ্যান্ডারসন

ডেটা এনক্রিপ্ট করার ক্ষেত্রে এসসিপি সম্পর্কে সত্য, তবে এনক্রিপশনের গতিটি নেটওয়ার্ক সংযোগের চেয়ে দ্রুততার ক্রম এবং এটি नगणনীয়।
ব্রেন্ট

1

100Mb / s এর জন্য তাত্ত্বিক থ্রুপুটটি 12.5 এমবি / গুলি, সুতরাং 10MB / s এ আপনি বেশ ভাল করছেন।

আমি সম্ভবত এসএসএসের মাধ্যমে আরএসসিএনসি করার পরামর্শও প্রতিধ্বনিত করব। কিছুটা এইরকম:

rsync -avW -e ssh $SOURCE $USER@$REMOTE:$DEST

100Mb / s এ আপনার সিপিইউগুলি ডেটা হারকে প্রশংসাপূর্ণ প্রভাবিত না করে এনক্রিপ্ট / ডিক্রিপ্ট পরিচালনা করতে সক্ষম হবে। এবং যদি আপনি ডেটা প্রবাহকে বাধাগ্রস্থ করেন তবে আপনি যেখান থেকে ছেড়ে গিয়েছিলেন সেখান থেকে আবার শুরু করতে সক্ষম হওয়া উচিত। সাবধান থাকুন, "মিলিয়ন" ফাইলের সাথে স্টার্টআপটি আসলে কিছু স্থানান্তরিত করার আগে কিছুটা সময় নেয়।


1

আমি এর মুখোমুখি হয়েছি, আমি কেবল ওরাকল লগগুলি স্থানান্তর করছি।

এখানে ভাঙ্গন

  • scp কমান্ড

    inefficient and encrypted (encrypted = slower than unencrypted 
    depending on the link and your processor) 
    
  • rsync

    efficient but typically encrypted (though not necessarily)
    
  • FTP- র / HTTP- র

    both seem to be efficient, and both are plaintext. 
    

আমি দুর্দান্ত সাফল্যের সাথে এফটিপি ব্যবহার করেছি (যেখানে দুর্দান্ত সাফল্য একটি জিবি নেটওয়ার্কে M 700Mb / s এর সমতুল্য)। যদি আপনি 10 এমবি (যা 80Mb / s এর সমান) পাচ্ছেন, সম্ভবত কিছু ভুল।

আপনি ডেটা উত্স এবং গন্তব্য সম্পর্কে আমাদের বলতে পারেন? এটি কি একক ড্রাইভ থেকে একক ড্রাইভ? ইউএসবিতে রেড?

আমি জানি এই প্রশ্নের ইতিমধ্যে একটি উত্তর রয়েছে, তবে যদি আপনার নেটওয়ার্কটি কোনও জিবি / স ক্রসওভার কেবলে এই ধীর গতিতে চলেছে তবে কিছু ঠিকঠাক করা দরকার।


1

দুটি মেশিন একই ল্যানে রয়েছে কিনা তা আপনি উল্লেখ করেননি বা কোনও সুরক্ষিত চ্যানেল (যেমন এসএসএইচ ব্যবহার করা) বাধ্যতামূলক, তবে আপনি যে অন্য সরঞ্জামটি ব্যবহার করতে পারেন তা হ'ল নেটক্যাট

আমি গ্রহণকারী মেশিনে নিম্নলিখিতটি ব্যবহার করব:

cd <destdir>
netcat -l -p <port> | gunzip | cpio -i -d -m

তারপরে প্রেরণের দিকে:

cd <srcdir>
find . -type f | cpio -o | gzip -1 | netcat <desthost> <port>

এর নিম্নলিখিত সুবিধা রয়েছে:

  • Ssh থাকা এনক্রিপশনের জন্য কোনও সিপিইউ ওভারহেড নেই।
  • gzip -1একটি CPU- র saturating তাই এটি একটি ভাল ট্রেড বন্ধ করে তোলে, যখন সর্বোচ্চ থ্রুপুট বজায় রাখার কম্প্রেশন একটি বিট প্রদান ছাড়া হালকা কম্প্রেশন প্রদান করে। (এমপি 3 ডেটার জন্য সম্ভবত এটি সুবিধাজনক নয় তবে আঘাত করে না))
  • আপনি যদি ফাইলগুলিকে দলগুলিতে বিভক্ত করতে পারেন তবে আপনি দুটি বা আরও বেশি পাইপ সমান্তরালভাবে চালাতে পারবেন এবং সত্যই নিশ্চিত করুন যে আপনি নিজের নেটওয়ার্ক ব্যান্ডউইথকে স্যাটারুয়েট করছেন।

যেমন,

find <dir1> <dir2> -type f | cpio -o | gzip -1 | netcat <desthost> <portone>
find <dir3> <dir4> -type f | cpio -o | gzip -1 | netcat <desthost> <porttwo>

নোট:

  • আপনি যেভাবেই স্থানান্তর করুন না কেন, আপনি সবকিছু পেয়েছেন তা নিশ্চিত করার জন্য আমি সম্ভবত পরে আরএসসিএনসি বা একযোগে চালাব ।
  • আপনি চাইলে tarপরিবর্তে আপনি ব্যবহার করতে পারেন cpio
  • এমনকি যদি আপনি ssh ব্যবহার করে শেষ না করেন তবে আমি নিশ্চিত করব যে এটি কোনও সংক্ষেপণ নিজেই ব্যবহার করছে না, এবং gzip -1সিপিইউ স্যাচুরেশন এড়ানোর জন্য নিজের মাধ্যমে পাইপ । (বা কমপক্ষে কমপ্রেস লেভেলকে 1 তে সেট করুন))

1

উপযুক্ত বিকল্পগুলির সাথে একটি সাধারণ স্ক্রিপ সহজেই ল্যানের মাধ্যমে 9-10 এমবি / সেকেন্ডে পৌঁছে যাবে:

scp -C -c arcfour256 ./local/files.mp3 remoteuser@remoteserver:/opt/remote

এই বিকল্পগুলির সাহায্যে সম্ভবত থ্রুপুটটি কোনও বিকল্পের চেয়ে 4x বা 5x দ্রুত হয়ে যায় (ডিফল্ট)


তবে এক মিলিয়ন ছোট ফাইলের জন্য নয়। আপনি কি নিজের সমাধানটি চেষ্টা করেছিলেন?
সাজুউক

1

আপনি কি SRC পাশ FTP সার্ভার থেকে থাকে, তাহলে আপনি ব্যবহার করতে পারেন ncftpget থেকে ncftp সাইটে । এটি ছোট ফাইলগুলির সাথে প্রিফ্যাক্ট হিসাবে কাজ করে কারণ এটি অভ্যন্তরীণভাবে টার ব্যবহার করে।

একটি তুলনা এটি দেখায়: 1.9GB ছোট ফাইল (33926 ফাইল) সরানো হচ্ছে

  1. Scp ব্যবহারে 11m59s সময় লাগে
  2. Rsync ব্যবহার করতে 7m10s সময় লাগে
  3. Ncftpget ব্যবহার করতে 1m20s সময় লাগে

1

আপনার স্থানান্তর করতে আপনি বিবিসিপি কমান্ডটি ব্যবহার করে দেখতেও পারেন। এটি একটি বাফার প্যারালাল এসএসএস যা সত্যই চিৎকার করে। আমরা সাধারণত 90% + লাইন-রেট পেতে পারি তবে আমরা পাইপকে খাওয়াতে পারি।

$ bbcp -s 8 -w 64M -N io 'tar -cO srcdirectory' desthostname:'tar -x -C destdir'

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

  1. একটি জেডএফএস স্ন্যাপশট তৈরি করুন এবং নতুন মেশিনে নতুন পুলে স্থানান্তর করুন। এটি যতটা সময় নেয় ততক্ষণ সময় নিতে দিন।
  2. দ্বিতীয় স্ন্যাপশট তৈরি করুন এবং এটি একটি ইনক্রিমেন্টাল হিসাবে প্রেরণ করুন। ইনক্রিমেন্টাল স্ন্যাপশটটিতে প্রথমটি থেকে কেবলমাত্র (অনেক ছোট) পরিবর্তন-সেট অন্তর্ভুক্ত রয়েছে, তাই এটি তুলনামূলক দ্রুত চলে through
  3. একবার ইনক্রিমেন্টাল স্ন্যাপশটটি শেষ হয়ে গেলে আপনি আসলটি ঘুরিয়ে নতুন কপির সাথে কাটাতে পারেন এবং আপনার "অফলাইন ডাউনটাইম" ন্যূনতম রাখে।

আমরা বিবিসিপি-তেও আমাদের জেডএফএস ডাম্পগুলি প্রেরণ করি ... এটি আমাদের নেটওয়ার্কের ব্যবহারকে সর্বাধিক করে তোলে এবং স্থানান্তর সময়কে হ্রাস করে।

বিবিসিপি নিখরচায় উপলভ্য, আপনি এটি গুগল করতে পারেন, এবং এটি একটি সরল-প্রিয়তম সংকলন। কেবল এটি আপনার / usr / স্থানীয় / বিন উভয় এসসিআর এবং গন্তব্য মেশিনে অনুলিপি করুন এবং এটি বেশ কার্যকরভাবে কাজ করবে।


1

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

এফটিপি এর মাধ্যমে সংযোগ করার বিকল্পটি "বাম" এবং "ডান" মেনুতে, ঠিকানার মতো প্রবেশ করে প্রবেশ করুন:

/#ftp:name@server.xy/

অথবা

/#ftp:name@ip.ad.dr.ess/

আপনি নেভিগেট করতে এবং কোনও স্থানীয় ফাইল সিস্টেমের মতোই ফাইল অপারেশন করতে পারেন।

ব্যাকগ্রাউন্ডে অনুলিপি করার জন্য এটি একটি অন্তর্নির্মিত বিকল্প রয়েছে, তবে আমি পর্দা কমান্ডটি ব্যবহার করতে পছন্দ করি এবং এমসি অনুলিপি করার সময় পর্দা থেকে বিচ্ছিন্ন হয়ে যায় (আমার মনে হয় এটি আরও দ্রুত চলে)।


1

RSync অপশনের উত্তর @ স্কটপ্যাক করতে

কমান্ডের নীচে প্রদর্শিত হিসাবে আপলোডের অগ্রগতি প্রদর্শন করতে '--progess' -র বিকল্প হিসাবে ব্যবহার করুন av

rsync -avW --progress -e ssh /path/to/dir/ remote_server:/path/to/remotedir

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


1

কিছু কৌশল তুলনা করার জন্য এখানে একটি দ্রুত মানদণ্ড রয়েছে,

  • উত্স একটি 4-কোর ইন্টেল (আর) জিয়ন (আর) সিপিইউ E5-1620 @ 3.60GHz সহ 250 এমবিপিএস এবং এসএটিএ ড্রাইভ
  • গন্তব্যটি হ'ল একটি জিপিপিএস ব্যান্ডউইথ এবং এসএসডি ড্রাইভ সহ একটি 6-কোর ইন্টেল (আর) জিয়ন (আর) সিপিইউ ই-2136 @ 3.30GHz

ফাইলের সংখ্যা: 9632, মোট আকার: 814 মাইবি, গড় আকার: 84 কিবি

  • আরএসওয়াইএনসি: 1 এম 40.570 এস
  • আরএসওয়াইএনসি + সংক্ষেপণ: 0 মি 26.519 এস
  • টিআর + নেটকাট: 1 এম 58.763 এস
  • টিআর + সংক্ষেপণ + নেটকাট: 0 এম 28.009 এস

টার / নেটকাটের জন্য আদেশ ছিল:

Source : tar -cf - /sourcedir/ | nc -v 11.22.33.44 5000
Dest : nc -v -l 5000 | tar -xf -

0

আরএসআইএনসি বা আপনি এটি এটিকে সমস্ত ফাইলের মধ্যে রেখে তারপরে স্কিপি করতে চান। আপনার যদি ডিস্কস্পেসের অভাব হয় তবে আপনি তার তৈরি হওয়ার সময় সরাসরি তারের উপরে পাইপ করতে পারেন।


0

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


0

আমি 1 জিবি ফাইলটি অনুলিপি করার জন্য কয়েকটি সরঞ্জাম চেষ্টা করেছি ফলাফলটি নীচে: সবচেয়ে দ্রুততম এইচটিটিপি, লাইন স্কিপের মধ্যে সবচেয়ে কম উইগেট-সি এনসি, এবং দু'বার ব্যর্থ হয়েছে। আরএসসিঙ্ক পুনরায় চালু করার কোনও উপায়ই এসএসএসকে ব্যাকএন্ড হিসাবে ব্যবহার করে না, ফলে একই ফলাফল। উপসংহারে, আমি উইজেট-বিকিউসি সহ HTTP এ যাব এবং এটিকে কিছু সময় দেব। আশা করি এটি সাহায্য করবে


HTTP কেন দ্রুততম সে সম্পর্কে আপনি অন্তর্দৃষ্টি সরবরাহ করেন?
সাজুউক

0

আমাকে ব্যাকআপপিসি ডিস্কটি অন্য একটি মেশিনে অনুলিপি করতে হয়েছিল।

আমি আরএসসিএনসি ব্যবহার করেছি।

মেশিনটির 256 এমবি মেমরি ছিল।

আমি যে পদ্ধতিটি অনুসরণ করেছি তা হ'ল:

  • মৃত্যুদণ্ড কার্যকর rsyncনা করে -H(9 ঘন্টা সময় নিয়েছে)
  • যখন rsync সমাপ্ত হয়, আমি cpoolডিরেক্টরিটি সিঙ্ক্রোনাইজ করে এবং ডিরেক্টরিটি দিয়ে শুরু করি pc; আমি স্থানান্তর কাটা।
  • তারপরে পতাকা rsyncসহ পুনরায় -Hসূচনা করুন, এবং pcডিরেক্টরিতে হার্ড লিঙ্কযুক্ত সমস্ত ফাইল সঠিকভাবে স্থানান্তরিত হয়েছিল (পদ্ধতিতে সমস্ত আসল ফাইল খুঁজে পাওয়া যায় cpoolএবং তারপরে pcডিরেক্টরিতে লিঙ্ক করা হয় ) (সময় লাগে 3 ঘন্টা)।

শেষ পর্যন্ত আমি এটি দিয়ে যাচাই করতে পারি df -mযে কোনও অতিরিক্ত জায়গা ব্যয় করা হয়নি।

এইভাবে আমি মেমরি এবং আরএসএনসি-র সাথে সমস্যাটি সরিয়ে দিই। সর্বদা আমি শীর্ষ এবং শীর্ষে ব্যবহার করে পারফরম্যান্স যাচাই করতে পারি এবং শেষ পর্যন্ত আমি 165GB ডেটা স্থানান্তর করেছি।

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