ল্যানের উপরে কাঁচা ডিস্ক চিত্রটি স্থানান্তর করুন


8

এখানে আমার অবস্থা:

  • তাদের মধ্যে গিগাবিট ইথারনেট সহ একই ডেটাসেন্টারে দুটি ডেডিকেটেড সার্ভার।
  • উভয় ডেডিকেটেড সার্ভারগুলি অতিরিক্ত সরঞ্জাম এবং ইউটিলিটি যুক্ত করে ডেবিয়ান স্কুইজের উপর ভিত্তি করে একটি উদ্ধার পরিবেশে বুট করেছে। সফ্টওয়্যার ডাউনলোড করতে, প্যাকেজ ইনস্টল করতে, এবং / অথবা প্রয়োজনীয় হিসাবে সংকলনের জন্য প্রচুর পরিমাণে টিএমপি স্পেস (উভয় বাক্সে 32 গিগাবাইট র‌্যাম) রয়েছে।
  • উভয় ডেডিকেটেড সার্ভারের প্রায় 3TB ব্যবহারযোগ্য জায়গা রয়েছে।
  • "উত্স" সার্ভারটিতে অ্যাডাপটেক 4 পোর্ট নিয়ামক সহ হার্ডওয়্যার RAID-10 এ 4 x 1.5TB ডিস্ক রয়েছে।
  • "গন্তব্য" সার্ভারটিতে অ্যাডাপ্টেক 2 পোর্ট নিয়ামক সহ হার্ডওয়্যার RAID-1 এ 2 x 3TB ডিস্ক রয়েছে - অন্যটির মতো একই প্রজন্মের, তবে বিভিন্ন সংখ্যক পোর্ট।
  • ব্যবহারযোগ্য ব্লকের সংখ্যা /dev/sda10 এমবি এর চেয়ে কম পৃথক হয় তবে গন্তব্য সার্ভারের অ্যারে কোনও কারণে কয়েকটি মেগ ছোট।
  • উভয় RAID অ্যারে এক, একক RAID ভলিউম তৈরি করতে সমস্ত উপাদান ডিস্কের পুরো ডিস্ক পৃষ্ঠ ব্যবহার করার জন্য কনফিগার করা হয়েছে।
  • এমবিআর মোডে অপারেটিং সিস্টেম বুট; কোনও ইউইএফআই বুটিং ব্যবহৃত হয় না।

আমি কি করতে চাই:

  • "উত্স" সার্ভার থেকে "গন্তব্য" সার্ভারে ব্লক স্তরে সম্পূর্ণ ওএস চিত্রটি (এটি জিপিটি পার্টিশন টেবিলের মধ্যে কেবল GRUB2 বুটলোডার, / বুট পার্টিশন, এবং / পার্টিশন সমন্বিত) অনুলিপি করে।
  • যদি সম্ভব হয় তবে অনুলিপিটি "লাইভ" হওয়া উচিত: এর অর্থ হ'ল গন্তব্যের পাশে ডিস্ক চিত্রের সঠিক ফাইলটি সংরক্ষণ করার মতো পর্যাপ্ত জায়গা আমার কাছে নেই, যদি না আমি অনুলিপি হিসাবে হার্ড ডিস্কে ডিস্ক চিত্রটি আনপ্যাক না করি unless স্থান গ্রহণ করা হয় । সার্ভারগুলির মধ্যে গিগাবিট ইথারনেট সংযোগ যথেষ্ট নির্ভরযোগ্য যে আমি এটি দিয়ে আরামদায়ক এবং আমি fsckস্থানান্তরের আগে এবং পরে ফাইল সিস্টেমটি যাচাই করতে অবশ্যই অবশ্যই উভয় প্রান্তে (উত্স এবং গন্তব্য) চালাব ।
  • যদি সম্ভব হয় তবে নেটওয়ার্কের মাধ্যমে ব্লকগুলি স্থানান্তর করবেন না, যা প্রতিটি বিভাজনে উপাদান উপাদানগুলি ব্যবহার করে না (সমস্ত পার্টিশনকে এক্সট 4 হিসাবে ফর্ম্যাট করা হয়)। এটি কারণ "উত্স" ডিস্কের 50% এরও বেশি /পার্টিশনে মুক্ত স্থান ।
  • /পার্টিশনের আকারটি সামঞ্জস্য করুন যাতে এটি অনুলিপি করা হলে গন্তব্য ডিস্কের সবেমাত্র ছোট আকারের মধ্যে ফিট করার জন্য এটির আকার পরিবর্তন করা হয়।
  • কপিটি সফল হয়ে গেলে, প্রতিটি ভলিউম মাউন্ট করুন এবং নতুন সার্ভারের আইপিগুলি প্রতিবিম্বিত করতে স্থির আইপিগুলিতে রেফারেন্সগুলি ঠিক করুন। (আর কোনও সহায়তা ছাড়াই এটি ঠিক জরিমানা করতে পারে)

আমার প্রশ্নগুলো:

  • আমি উচিত প্রথম আকার মধ্যে পার্থক্য (বাইটে) নিরূপণ /dev/sdaপ্রতিটি সার্ভারে, এবং তারপর ব্যবহার e2resizeকরতে অ ধ্বংসাত্মক আকার হ্রাস করুন /পার্টিশন উৎস পাশ যাতে এটি গন্তব্য দিকে স্থান মধ্যে মাপসই করা হবে?
  • উত্স থেকে গন্তব্য (ওভার ) পর্যন্ত আমার ddকাঁচা ব্লক ডিভাইসটি চালানো উচিত , অথবা আমি গন্তব্যস্থলে একটি সমতুল্য পার্টিশন বিন্যাস তৈরি করে প্রতিটি পার্টিশনে চালিত করব ? নোট করুন যে একবারে একটি পার্টিশন পরিচালনা করা আমাকে বুটলোডার সমস্যাটি ফেলে দেয়, তবে আমি যদি এটি একবারে কোনও পার্টিশন না করি, তবে গন্তব্যটি যতগুলি বাইট লিখতে পারে ততক্ষণে এটি ডেটা স্থানান্তর বন্ধ করা জেনে রাখা উচিত (যা আশা করা যায় যে শেষ ব্লকের পার্টিশনের একেবারে শেষ "বন্ধ হয়ে যাবে" , যা উত্সের পার্টিশন বিন্যাসের অন্যান্য সমস্ত পার্টিশনের ডানদিকে যৌক্তিকভাবে "") রয়েছে।/dev/sdasshdddd/

কয়েকটা মিস্যাক। সুনির্দিষ্ট:

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

আপনার কি ডিভাইসগুলি থেকে ব্যবহৃত ব্লকগুলি অনুলিপি করা দরকার, বা কেবল ওএস ফাইল সিস্টেম (গুলি)?
অ্যান্ড্রু

উত্তর:


6

এটি অগোছালো, তবে করণীয়।

আমি এখানে অনুমান করছি যে /এটি চালু আছে /dev/sda3এবং /bootচলছে /dev/sda1

  1. পুরানো সার্ভারে ফাইল সিস্টেমটি তার ন্যূনতম সম্ভাব্য আকারে সঙ্কুচিত করুন।

    oldserver # resize2fs -M /dev/sda3
    
  2. নতুন সার্ভারের ডিস্কটি অভিন্ন মাপের /boot, স্বাপস্পেস এবং নতুন /পার্টিশন (এবং আপনার যা কিছু প্রয়োজন) দিয়ে পার্টিশন করুন।

    newserver # parted /dev/sda
    
  3. /এবং /bootফাইল সিস্টেমগুলি অনুলিপি করুন ।

    oldserver # dd if=/dev/sda1 | ssh root@newserver "dd of=/dev/sda1"
    oldserver # dd if=/dev/sda3 | ssh root@newserver "dd of=/dev/sda3"
    

    যেহেতু নতুন সার্ভারে পার্টিশনটি পুরানো সার্ভারের চেয়ে সামান্য ছোট হবে, আপনি No space left on deviceএর শেষে একটি উত্সাহিত বার্তা পাবেন । তবে, যেহেতু আপনি প্রথম ধাপে ফাইল সিস্টেম সঙ্কুচিত করেছেন, তাই কোনও ব্যাপার নয়।

  4. পার্টিশনের আকারে নতুন সার্ভারে ফাইল সিস্টেমের আকার পরিবর্তন করুন।

    newserver # resize2fs /dev/sda3
    
  5. নতুন ডিস্কে GRUB ইনস্টল করুন।

    newserver # mount /dev/sda3 /mnt
    newserver # mount /dev/sda1 /mnt/boot
    newserver # mount -o bind /dev /mnt/dev
    newserver # mount -o proc proc /mnt/proc
    newserver # chroot /mnt /bin/bash
    
    newserver(chroot) # grub-install /dev/sda
    newserver(chroot) # exit
    
  6. আপনার বাকী ফিক্সআপগুলি শেষ করুন (আইপি ঠিকানা ইত্যাদি)।

পার্টিশনের খালি স্থানটি অনুলিপি করা এড়ানোর জন্য আপনি সম্ভবত একটি উপায় খুঁজে পেতে পারেন তবে কেবল এটি সমস্ত অনুলিপি করার চেয়ে গবেষণায় আপনাকে আরও বেশি সময় লাগবে ...


অসাধারণ! পার্টিশনের মুক্ত স্থানটি অনুলিপি করে আমি ঠিক আছি কারণ এই নির্দেশাবলী আমার সমস্ত অন্যান্য মানদণ্ডকে মেটায়। যদিও শুধু ফাইলসিস্টেম মাপ না এবং পার্টিশন নিজেই উপর oldserverসব মুক্ত স্থান কপি করতে প্রয়োজনীয়তা দূর? আমি /bootএতটা ছোট বলে সেটির বিষয়ে চিন্তা করি না , তবে /কমপক্ষে আমি ঠিক তাই করতে পারি? পার্টিশনের শেষ সেক্টরটিকে resize2fsএফএস সেক্টরের শেষের সেক্টরটি সেট করতে সমান করুন । ভাল, সেক্টর, ব্লক ... সম্ভবত ব্লক । তবে এর জন্য ধন্যবাদ! এটা অসাধারণ!
allquixotic

হ্যাঁ, আপনি যদি পার্টিশনের আকারও হ্রাস করেন তবে আপনি একগুচ্ছ অনুলিপি এড়াতে চাইবেন। এটি আপনাকে কয়েক ঘন্টা বাঁচাতে পারে ... আমি কিছুটা শিথিল রেখে দেব, যদি আমার গণিত কিছুটা দূরে থাকত।
মাইকেল হ্যাম্পটন

এটি "উত্সাহিত" ডিভাইসে কোনও স্থান বাকি থাকবে না ", কারণ এটি /dev/sda3প্রায় ১.৩ টিবিতে আকার পরিবর্তন করতে চলেছে এবং প্রায় ২.৯ টিবিআই ধরে রাখার প্রত্যাশিত গন্তব্যটির একটি বিভাগে এটি অনুলিপি করবে That
allquixotic

এটি একটি সময় নিতে করত । অনুধাবন করা হয়েছে আমার 100 গিগাবাইট / এস বরাদ্দ সহ একটি গিগাবিট বন্দর রয়েছে। বিষ্ঠা।
allquixotic

5

আমি mkfsনতুন সার্ভারে ফাইল সিস্টেমগুলি তাজা করব , তারপরে rsyncসেগুলি পুরানো সার্ভার থেকে। এটি পুনরায় আরম্ভযোগ্য, সামঞ্জস্যপূর্ণ এবং প্রতিটি ফাইল স্বতন্ত্রভাবে যাচাইযোগ্য। যেখানে আপনি ফাইল সিস্টেমের অব্যবহৃত বিভাগগুলি (ফরেনসিক অনুলিপি নয়) ত্যাগ করছেন, আমি এই পদ্ধতিটি ব্যবহার না করার কোনও কারণ দেখতে পাচ্ছি না। আপনাকে আবার GRUB চালাতে হবে, তবে এটি চ্যালেঞ্জ হওয়া উচিত নয়।

ফাইল-সিস্টেম সচেতন এমন একটি কাঁচা অনুলিপি ব্যাখ্যা করতে আমার কিছুটা সময় লাগবে, সুতরাং আমার আরএসসিএনসি সলিউশন কেন কাজ করে না সে সম্পর্কে মন্তব্য না করলে আমি নিজেই টাইপিংয়ের হাতছাড়া করব।


আমি মনে করি partimageফাইল সিস্টেম সচেতন এমন কাঁচা অনুলিপিগুলি করতে পারে তবে এটি সমর্থন করে না ext4। সুতরাং সেখানে একটি বিকল্প হিসাবে ... একটি বিকল্প rsyncহিসাবে আরও ভাল chmod
লাগছে

আমি জেফ এর উত্তর দ্বিতীয়। আপনি sfdisk -d / dev / sda | দিয়ে পার্টিশন বিন্যাসটি স্থানান্তর করতে পারেন ssh গন্তব্য "sfdisk / dev / sdb"। আপনার ফাইল সিস্টেমগুলি তৈরি করুন এবং 'rsync -a -e "ssh -c আরকফোর" / mnt / root @ গন্তব্য: / mnt /' দিয়ে স্থানান্তর করুন। এরপরে গন্তব্যটি বুটযোগ্য করতে মাইকেল হ্যাম্পটনের উত্তরের 5 ধাপ অনুসরণ করুন।
টিম হেজলে

1

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

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

আরও কিছু বিশদ অনুসরণ করুন (আমি এটি সংক্ষেপে রাখার চেষ্টা করব)।

সামগ্রী:

  • mdadmএর বিল্ড মোডের সাথে (মেটাডেটা ছাড়াই অ্যাড-হক মিরর);
  • vblade এওই নেটওয়ার্ক ডিভাইস হিসাবে ব্লক ডিভাইস রফতানির জন্য;
  • aoe-tools এওই নেটওয়ার্ক ব্লক ডিভাইস আমদানির জন্য।

আপনাকে আপনার গন্তব্য সার্ভারে পার্টিশন টেবিল তৈরি করতে হবে, তারপরে উত্সের পার্টিশনটি সঙ্কুচিত করুন যাতে এটি গন্তব্যের উপযুক্ত হবে। আপনি সহজেই আপনার নতুন এমবিআরতে GRUB ইনস্টল করতে পারেন; সদ্য নির্মিত পার্টিশন টেবিলের উপরে কেবলমাত্র পার্টিশন সিঙ্ক করা কিছুটা ত্রুটি-প্রবণ।

প্রাপ্তির দিকে আপনি আপনার পার্টিশন দিয়ে রপ্তানি করতে আছে vbladeইনস্টল করার পরে উৎস সার্ভারে, সরঞ্জামটি আপনাকে রপ্তানি ডিভাইসের দেখতে পারেন aoe-tools(রান aoe-discoverতারপর তাকান /dev/ether/ডিভাইসের জন্য)।

তারপরে আপনার উত্স ড্রাইভের সাহায্যে উত্স সার্ভারে raid1 ডিভাইসটি তৈরি করা উচিত :

mdadm --build /dev/md0 -n2 -l1 --force /dev/sda

এর পরে আপনি নতুন নির্মিত আয়না পরীক্ষা করতে পারেন:

mdadm --detail /dev/md0
cat /proc/mdstat

এই মুহুর্তে আপনি নিরাপদে এই আয়নাতে রফতানি গন্তব্য পার্টিশন সংযুক্ত করতে পারেন:

mdadm /dev/md0 --add /dev/ether/eX.Y

তারপরে কেবল সিঙ্ক্রোনাইজেশন অগ্রগতি পর্যবেক্ষণ করুন:

watch -n5 cat /proc/mdstat

সিঙ্কটি সম্পন্ন হওয়ার পরে, কেবল আয়নাটি বন্ধ করুন: mdadm --stop /dev/md0উত্স সার্ভারে, vbladeগন্তব্য সার্ভারে প্রক্রিয়া শেষ করুন, দ্বিতীয় সার্ভারে GRUB ইনস্টল করুন, আপনার আইপি ঠিকানাগুলি পরিবর্তন করুন ইত্যাদি etc.

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


পারফরম্যান্স কারণে, আমি আপনাকে আপনার লিঙ্কের এমটিইউ বৃদ্ধি করার পরামর্শ দিচ্ছি (বা সম্ভব হলে জাম্বো ফ্রেম সক্ষম করে একটি পৃথক ভিএলএএন সেটআপ করুন)।

দ্রষ্টব্য, আপনি এওইর বিকল্প হিসাবে nbd-server/ nbd-client(বা এমনকি আইএসসিএসআই, কিছুটা চাইলে) ব্যবহার করতে পারেন তবে এওই ( vblade+ aoe-tools) এর একটি খুব সাধারণ ইন্টারফেস এবং দুর্দান্ত পারফরম্যান্স রয়েছে (কোনও টিসিপি / আইপি ওভারহেড নেই),


আমি আরও যোগ করেছি যে ব্লক ডিভাইস স্তরে সিঙ্ক করা কখনও কখনও আরএসসিএন-র সাথে ফাইল-ওভার-ফাইলের চেয়ে খুব দ্রুততর হতে পারে, বিশেষত যখন আপনার সিস্টেমে কয়েক মিলিয়ন (আক্ষরিক) অপেক্ষাকৃত ছোট ফাইল থাকে।
আরটিম

mdadm? আমি হার্ডওয়্যার RAID ব্যবহার করছি। এবং এওই কী তা আমার কোনও ধারণা নেই এবং আমি কখনই আইএসসিএসআই ব্যবহার করি নি। আমি মনে করি না যে আমার সার্ভারগুলি একই সম্প্রচার ডোমেনে, ঠিক একই ডাটাবেসটারে। সার্ভারগুলির মধ্যে কমপক্ষে একটি বা দুটি স্যুইচ রয়েছে।
allquixotic

আমি মনে করি এটি একটি দুর্দান্ত ধারণা! তবে এটি বিভিন্ন আকারের ডিস্কগুলি কীভাবে মোকাবেলা করে?
টিম হেইগলে

@allquixotic, তবুও, আপনি নীচের স্কিমটি এওইর পরিবর্তে এনবিডি (নেটওয়ার্ক ব্লক ডিভাইস, সরবরাহিত nbd-serverএবং nbd-clientপ্যাকেজগুলি) দিয়ে প্রতিস্থাপন করতে পারেন । mdadmকেবল দুটি ব্লক ডিভাইস সিঙ্ক করার জন্য ব্যবহৃত হয়, কোনও মেটাডেটা buildমোডে লেখা হয় না , তাই আপনি এটি কোনও ব্লক ডিভাইসের উপরে ব্যবহার করতে পারেন (এটি প্রথমে আনমাউন্ট করতে হবে)। জিনিসটি হ'ল, আমি সাধারণত একটি ডিগ্রড এমডিএডএম রেইড 1 তে একটি নতুন সিস্টেম সেটআপ করি এমনকি আমার কাছে হার্ডওয়্যার রাইড অন্তর্নিহিত থাকলেও এইভাবে পার্টিশন আনমাউন্ট না করে বর্ণিত কৌশলটি প্রয়োগ করতে পারি, মাইগ্রেশন ডাউনটাইমকে একক পুনরায় বুট করার সময় হ্রাস করে।
আরটিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.