আমি কীভাবে যাচাই করতে পারি যে 1TB ফাইলটি সঠিকভাবে স্থানান্তরিত হয়েছে?


25

আমি প্রায়শই হাইপারভাইজারগুলি থেকে দীর্ঘমেয়াদী স্টোরেজের জন্য একটি সংরক্ষণাগার সার্ভারে ভিএম চিত্রগুলি স্থানান্তর করি।

আমি নেটকাট ব্যবহার করে স্থানান্তর করি যেহেতু এটি স্কিপ, আরএসসিএনসি, ইসি .. এর চেয়ে দ্রুত is

hypervisor$ cat foo.box | nc <archive IP> 1234

archive$ nc -l -p 1234 > foo.box

ফাইলটি স্থানান্তর শেষ হয়ে গেলে, আমি যাচাই করি md5sumলক্ষ্য এবং উত্স উভয়কে চালিয়ে কোনও দুর্নীতি হয়নি ।

দুর্ভাগ্যক্রমে, একটি বড় ফাইলে একটি এমডি 5সাম চালানো খুব দীর্ঘ সময় নিতে পারে। আমি কীভাবে আরও দুটি বড় ফাইলের সততার তুলনা করতে পারি?

হালনাগাদ:

  • আমার সংক্রমণ খুব কমই বাধা পেয়েছে তাই পুনরায় চালু করার ক্ষমতা কোনও সমস্যা নয়।
  • সাধারণত এনসি হয়ে ট্রান্সফার করতে 3-4 ঘন্টা সময় লাগে এবং এমডি 5সাম পেতে 40 মিনিট সময় লাগে।
  • এই ক্ষেত্রে হ্যাশের সুরক্ষা কোনও সমস্যা নয়।

2
আপনি বিভিন্ন চেকসাম চেষ্টা করতে পারেন: en.wikedia.org/wiki/Checksum । যদিও তাদের অভিনয় সম্পর্কে আমি জানি না
তুমচাদিত্য

প্রকৃত স্থানান্তরটি কত সময় নেয় এবং এমডি 5সাম কতক্ষণ সময় নিতে পারে?
কিথ থম্পসন

স্থানান্তরটি সাধারণত 3-4 ঘন্টা সময় নেয় এবং md5sums গণনা করতে প্রায় 40 মিনিট সময় নেয়।
tbenz9

উত্তর:


18

আপনি এ জাতীয় কিছু দিয়ে ফ্লাইয়ের যোগফল করতে টি ব্যবহার করতে পারেন (আপনার প্রয়োজনের জন্য নেটক্যাট আদেশগুলি মানিয়ে নিন):

সার্ভার:

netcat -l -w 2 1111 | tee >( md5sum > /dev/stderr )

ক্লায়েন্ট:

tee >( md5sum > /dev/stderr ) | netcat 127.0.0.1 1111

1
কেবলমাত্র একটি চিন্তাধারায়: md5deep" শঙ্কিত " মোড রয়েছে ( md5deep.sourceforge.net/md5DP.html ) এটি এর জন্য কার্যকর হতে পারে।
লরেন্স

@ultrasawblade - এটি দুর্দান্ত লিঙ্ক, আমি অন্য উদ্দেশ্যে এটি পরীক্ষা করে দেখতে হবে। এটি উল্লেখ করার জন্য ধন্যবাদ!
নারদওয়ালার

10

Nerdwaller এর উত্তর ব্যবহার সম্পর্কে teeএকযোগে স্থানান্তর এবং একটি চেকসাম নিরূপণ একটি ভালো পদ্ধতি হল যদি আপনি প্রাথমিকভাবে নেটওয়ার্কের মাধ্যমে দুর্নীতি সম্পর্কে চিন্তিত করছি। এটি ডিস্ক ইত্যাদির পথে দুর্নীতির হাত থেকে রক্ষা করবে না, যদিও এটি ডিস্কে আঘাত হানার আগে চেকসাম গ্রহণ করবে।

তবে আমি কিছু যুক্ত করতে চাই:

1 টিআইবি / 40 মিনিট ≈ 437 মাইবি / সেকেন্ড 1

আসলে এটি বেশ দ্রুত। মনে রাখবেন যে আপনার কাছে প্রচুর র‍্যাম না থাকলে স্টোরেজ থেকে ফিরে আসতে হবে। সুতরাং iostat -kx 10আপনার চেকসামগুলি চালানোর সময় প্রথমে যাচাই করা উচিত ; বিশেষত আপনি %utilকলামটি মনোযোগ দিতে চান । আপনি যদি ডিস্কগুলি প্যাগিং করে থাকেন (প্রায় 100%), তবে উত্তরটি দ্রুত সঞ্চয়স্থান কেনা হবে।

অন্যথায়, উল্লিখিত অন্যান্য পোস্টারগুলি হিসাবে, আপনি বিভিন্ন চেকসাম অ্যালগরিদম চেষ্টা করতে পারেন। এমডি 4, এমডি 5, এবং এসএএএ -1 এগুলি সমস্তই ক্রিপ্টোগ্রাফিক হ্যাশ হিসাবে ডিজাইন করা হয়েছে (যদিও সেগুলির কোনওটিই সেই উদ্দেশ্যে আর ব্যবহার করা উচিত নয়; সবগুলি খুব দুর্বল হিসাবে বিবেচনা করা হয়)। গতি অনুযায়ী, আপনি তাদের সাথে তুলনা করতে পারেন openssl speed md4 md5 sha1 sha256। আমি SHA256 এ ফেলেছি কমপক্ষে একটি এখনও যথেষ্ট শক্তিশালী হ্যাশ পেতে।

The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md4              61716.74k   195224.79k   455472.73k   695089.49k   820035.58k
md5              46317.99k   140508.39k   320853.42k   473215.66k   539563.35k
sha1             43397.21k   126598.91k   283775.15k   392279.04k   473153.54k
sha256           33677.99k    75638.81k   128904.87k   155874.91k   167774.89k

উপরেরগুলির মধ্যে, আপনি দেখতে পাচ্ছেন যে এমডি 4 দ্রুত এবং SHA256 সবচেয়ে ধীর। এই ফলাফলটি কমপক্ষে, পিসির মতো হার্ডওয়্যারটিতে সাধারণ।

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

সুতরাং, আপনার সেরা বাজি গতি অনুসারে openssl md4 -r(এটি -rএমডি 5সাম আউটপুটটির মতো দেখায়)।

আপনি যদি কিছু সংকলন এবং / বা ন্যূনতম প্রোগ্রামিং করতে ইচ্ছুক হন তবে স্ট্যাক ওভারফ্লোতে এবং অ্যাডক্সএক্সে মার্ক অ্যাডলারের কোডটি দেখুন । আপনার কাছে এসএসই ৪.২ থাকলে আপনি হার্ডওয়ার সিআরসি নির্দেশের গতিটি হারাতে সক্ষম হবেন না।


1 1 টিআইবি = 1024⁴ বাইট; 1 এমআইবি = 1024² বাইট। 1000 ইউনিটের পাওয়ারগুলির সাথে with417MB / সেকেন্ডে আসে।


এটি দ্রুত, আমি একটি বড় RAID অ্যারে থেকে ২ য় বড় RAID অ্যারে অনুলিপি করছি।
tbenz9

@ tbenz9 আমি বুঝতে পেরেছি, একক ডিস্কের কোনও উপায় নেই! আমি কিছু সত্যিই দ্রুত হ্যাশগুলিতে কিছু পয়েন্টার যুক্ত করেছি, যা দুর্ভাগ্যক্রমে তাদের কমপক্ষে সংকলন করা প্রয়োজন ... তবে তারা অবশ্যই আপনার ডিস্কগুলি (বা এমনকি আপনার র্যাম) ডেটা সরবরাহ করতে পারে তত দ্রুত চলবে। (এবং আপনি যদি মার্ক অ্যাডলার বনাম অ্যাডলার 32 সম্পর্কে ভাবছেন তবে হ্যাঁ, এটি অ্যাডলার 32 এর স্রষ্টা বলে মনে হচ্ছে)
ডার্বার্ট

@ডারবার্ট, পরীক্ষা করার জন্য ছোট ফাইলগুলি ব্যবহার করার পরিবর্তে, আপনার এটি 1TB এর মতো বড় ফাইল দিয়ে পরীক্ষা করা উচিত নয়?
পেসারিয়ার

@ডারবার্ট, আপনি shasumপরিবর্তে ব্যবহার করবেন না কেন ?
পেসারিয়ার

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

9

opensslকমান্ড বিভিন্ন বার্তা digests সমর্থন করে। আমি যেগুলি চেষ্টা করতে সক্ষম হয়েছি তার md4মধ্যে প্রায় 65% সময় md5এবং প্রায় 54% সময়ের মধ্যে sha1(আমি যে ফাইলটি দিয়ে পরীক্ষা করেছি।

md2ডকুমেন্টেশনে একটি রয়েছে, তবে এটি একই ফলাফল দেয় বলে মনে হয় md5

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

আপনি পুরানো এবং সহজ বার্তা হজমের জন্য আশেপাশে দেখতে পারেন ( md1উদাহরণস্বরূপ এটি ছিল কি?)

একটি ছোট্ট বিন্দু: আপনি একটি অকেজো ব্যবহারcat পেয়েছেন । বরং:

cat foo.box | nc <archive IP> 1234

তুমি ব্যবহার করতে পার:

nc <archive IP> 1234 < foo.box

অথবা এমনকি:

< foo.box nc <archive IP> 1234

এটি করা একটি প্রক্রিয়া সাশ্রয় করে তবে সম্ভবত পারফরম্যান্সে কোনও উল্লেখযোগ্য প্রভাব ফেলবে না।


1
বিড়ালের টিপটির জন্য ধন্যবাদ, প্রশ্নের সাথে সম্পর্কিত নয় তবুও সহায়ক টিপস। চিয়ার্স!
tbenz9

@ tbenz9: পাঠযোগ্য কোডটি ডিবাগ করা এবং বজায় রাখা এবং পরিবর্তন করা সহজ। "অকেজো cat" তাই সম্পূর্ণ খারাপ নয় entire যদি এটিকে এড়িয়ে কোনও পারফরম্যান্স লাভ হয় না, তবে আপনি এই কোডটির রক্ষণাবেক্ষণকারী হবেন বলে ধরে নিয়ে আপনি যা আরও বেশি স্বাচ্ছন্দ্য বোধ করবেন তার সাথে চলাই ভাল
আইকনোক্লাস্ট

1
@ কিথ, লিংক ডাউন ..
পেসারিয়ার

4

দুটি বিকল্প:

ব্যবহার sha1sum

sha1sum foo.box

কিছু পরিস্থিতিতে sha1sum দ্রুত হয়


ব্যবহার rsync

স্থানান্তর করতে আরও বেশি সময় লাগবে, তবে আরএসসিএনসি ফাইলটি অক্ষত রয়েছে তা যাচাই করে।

আরএসআইএনসি ম্যান পৃষ্ঠা থেকে

নোট করুন যে আরএসসিএনসি সর্বদা যাচাই করে যে ফাইলটি স্থানান্তরিত হওয়ার সাথে সাথে তৈরি হওয়া একটি পুরো-ফাইল চেকসামটি যাচাই করে প্রতিটি স্থানান্তরিত ফাইল সঠিকভাবে পুনর্নির্মাণ করা হয়েছিল ...


1
Sha1sum টিপটির জন্য ধন্যবাদ, আরএসআইএনসি স্থানান্তর করতে 10+ ঘন্টার বেশি সময় নেয়, আমি একই ফাইলটি স্থানান্তর করতে পারি এবং এনসি এবং এমডি 5সাম ব্যবহার করে প্রায় 4 ঘন্টা এমডি 5sums চালাতে পারি run আমি আমার 4 ঘন্টা আরও কম করার চেষ্টা করছি।
tbenz9

3

বিজ্ঞান এগিয়ে চলছে। দেখা যাচ্ছে যে নতুন BLAKE2 হ্যাশ ফাংশনটি MD5 এর চেয়ে দ্রুত (এবং ক্রিপ্টোগ্রাফিকভাবে বুট করার চেয়ে অনেক বেশি শক্তিশালী)।

তথ্যসূত্র: https://leastauthority.com/blog/BLAKE2-harder-better-faster-stronger-than-MD5.html

জুকোর স্লাইডগুলি থেকে:

বেল প্রতি ইন্টেল কোর আই 5-3210 এম (আইভি ব্রিজ) 
ফাংশন চক্রের প্রতি বাইট
দীর্ঘ চিত্র 4096 বি 64 বি MD5 5.0 5.2 13.1 SHA1 4.7 4.8 13.7 SHA256 12.8 13.0 30.0 কেইকাক 8.2 8.5 26.0 BLAKE1 5.8 6.0 14.9 BLAKE2 3.5 3.5 9.3

2

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

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

  • উত্স মেশিনে:

    mkfifo myfifo
    টি মাইফিফো < সোর্স_ফাইলে | এনসি ডেসট_হোস্ট পোর্ট_  নাম্বার এবং এমডি 5 সুম মাইফিফো
    
  • গন্তব্য মেশিনে:

    mkfifo myfifo
    nc -l -p port_number | টি মাইফাইফো> ডেস্ট_ফায়াল এবং এমডি 5সুম মাইফিফো
    

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


2

বিশাল ফাইল পাঠানো একটি ব্যথা। প্রতিটি খণ্ডের জন্য একটি হ্যাশ তৈরির ফাইলগুলি কীভাবে আপ করার চেষ্টা করবেন না এবং তারপরে এটি গন্তব্যে প্রেরণ করুন এবং তারপরে হ্যাশ চেক করুন এবং খণ্ডগুলিতে যোগ দিন।

আপনি একটি ব্যক্তিগত বিটটোরেন্ট নেটওয়ার্ক সেট আপ করতে পারেন। এটি নিশ্চিত করবে যে পুরো জিনিসটি নিরাপদে পৌঁছেছে।


আমার বোধগম্যতা যেহেতু এটি একটি উত্স এবং এক গন্তব্য বিট টরেন্ট নেটওয়ার্ক উপকারী হবে না। এটি যখন অনেক উত্স থেকে প্রচুর গন্তব্যস্থলে যায় তখনই কি উপকার হয় না?
tbenz9

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

1
এই পদ্ধতির একমাত্র সুবিধা হ'ল সংক্রমণ ব্যর্থতা থেকে দ্রুত পুনরুদ্ধার সহ পুনঃসূচনা। ওপি কখনই ব্যর্থ হয় বলে দেয়নি, এবং ইঙ্গিত দেয়নি যে এটি এমন কিছু যা তিনি অনুকূলিত করতে চেয়েছিলেন।
স্কট

@ tben9 বিটোরেন্ট হ'ল ফাইলগুলির একক স্থানান্তরের জন্য পছন্দের বর্তমান সরঞ্জাম। ফাইলটির সাথে হ্যাশের তথ্য থাকার অর্থ শেষ ক্লায়েন্টটি ডাউনলোড করা ডেটা যাচাই করতে পারে এবং প্রয়োজনে এটি ঠিক করতে পারে। একাধিক উত্স গতি জন্য। সুতরাং, হ্যাঁ, এই ক্ষেত্রে কোনও ফাইল সঠিকভাবে স্থানান্তরিত হয়েছে তা নিশ্চিত করার জন্য বিটি ব্যবহার করা উপকারী।
আন্ডারওয়্যার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.