একটি বিদ্যমান প্যারাভিচুয়াল লিনাক্স এএমআই থেকে একটি এডাব্লুএস এইচভিএম লিনাক্স এএমআই তৈরি করুন


38

বিদ্যমান প্যারাচুয়াল (পিভি) এএমআই থেকে একটি হার্ডওয়্যার ভার্চুয়াল মেশিন (এইচভিএম) এএমআই তৈরি করা কি সম্ভব?

আমার প্রাথমিকভাবে ভেবেছিল একটি নতুন পিভি উদাহরণ শুরু ec2-create-imageকরা এবং এইচভিএমটিকে ভাইরালাইজেশনের ধরণ হিসাবে উল্লেখ করার সময় একটি নতুন চিত্র তৈরি করতে কমান্ডটি ব্যবহার করা উচিত । তবে ec2-create-imageভার্চুয়ালাইজেশন ধরণ নির্দিষ্ট করার জন্য কোনও কমান্ড লাইন প্যারামিটার নেই।

এটি করার অন্য উপায় আছে?

উত্তর:


22

হালনাগাদ

এডাব্লুএস ইসি 2 এপিআইতে এই বৈশিষ্ট্যটি সক্ষম করেছে। এটি নতুন বোটো ভিত্তিক অ্যাডস্কলিতে --virtualization-typeবিকল্প হিসাবে উপলব্ধ aws ec2 register-image

আসল উত্তর

হ্যাঁ! দুর্ভাগ্যক্রমে, এটি করার সরাসরি কোনও উপায় নেই। এছাড়াও, কিছু পিভি উদাহরণগুলির জন্য কার্নেল এবং বুটলোডার পরিবর্তন প্রয়োজন হতে পারে।

  1. আপনার বিদ্যমান পিভি এএমআই থেকে একটি ভলিউম তৈরি করুন। এটি যদি আপনার নিজের পিভি এএমআই হয় তবে আপনি স্ন্যাপশট থেকে একটি ভলিউম তৈরি করতে পারেন। এটি যদি তৃতীয় পক্ষের এএমআই হয় তবে আপনার একটি উদাহরণ চালু করতে হবে এবং একটি স্ন্যাপশট নেওয়া দরকার।
  2. যে কোনও এএমআইয়ের সাথে এইচভিএম উদাহরণ চালু করুন।
  3. এইচভিএম দৃষ্টান্তটি বন্ধ করুন।
  4. সেই উদাহরণ থেকে মূল ভলিউম আলাদা করুন।
  5. পিভি ভলিউমকে HVM উদাহরণের সাথে মূল ভলিউম (/ dev / sda1 বা / dev / sda পার্টিশন করা থাকলে) হিসাবে সংযুক্ত করুন।
  6. ec2-create-imageএইচভিএম উদাহরণে চালান Run
  7. আপনার নতুন এইচভিএম এএমআই এর সাথে অন্যান্য দৃষ্টান্ত চালু করুন।

যদি এটি কাজ করে না, তবে 5 তম পদক্ষেপের আগে, আপনাকে এই ভলিউমটি চলমান দৃষ্টান্তের সাথে সংযুক্ত করতে হবে, ক্রুট সেট আপ করতে হবে এবং আপনার বিতরণের জন্য একটি কার্নেল এবং বুটলোডার ইনস্টল করতে হবে। আপনি লগগুলি এবং যে কোনও ক্লাউড-ইন ক্যাশে সাফ করতে চাইতে পারেন।


2
আমি 1-5 পদক্ষেপ চেষ্টা করেছি এবং এটি আমার পক্ষে কার্যকর হয়নি, উদাহরণটি কয়েক সেকেন্ড পরে থামার পরে। কেউ কীভাবে ক্রুট সেট আপ করতে এবং কার্নেল এবং বুটলোডার ইনস্টল করবেন সে সম্পর্কে বিস্তারিত ব্যাখ্যা করতে পারেন? পুরানো এবং নতুন দুটি উদাহরণই এএমআই লিনাক্স। ধন্যবাদ।
টোলগ্যামর্ফ

যদি আপনার একটি কার্যকরী পিভি উদাহরণ থাকে তবে আপনি aws ec2 register-imageপিভি চিত্রের স্ন্যাপশটে - ভার্চুয়ালাইজেশন-জাতীয় পতাকা দিয়ে চালিয়ে এইচভিএমতে রূপান্তর করতে পারেন । দেখুন aws ec2 register-image helpবিস্তারিত জানার জন্য।
জেফ স্ট্রানক

2
আমি আমার পিভি উদাহরণটি ব্যবহার করে এইচভিএম চিত্র তৈরি করেছি aws ec2 register-image। তারপরে আমি সেই চিত্রটি থেকে একটি নতুন এইচভিএম উদাহরণ চালু করেছি। তবে সিস্টেম বুট করবে না।
টোলগ্যামর্ফ

অ্যাউস ই সি 2 ফোরামটি খননের পরে, আমি একটি সমাধান নিয়ে এসেছি যাতে ফাইলগুলি ম্যানুয়ালি প্রতিস্থাপনের মাধ্যমে রূপান্তরটি সম্পন্ন করা হয়। আমি শীঘ্রই একটি উত্তর লিখব।
টোলগ্যামর্ফ

@ টোলগ্যামর্ফ আপনার কি মনে আছে? আমারও একই সমস্যা হচ্ছে।
দিমিত্রি মিনকভস্কি

13

আমার ক্ষেত্রে, রূপান্তরটি আমাকে নিজেই করতে হয়েছিল যেহেতু আমি যে উদাহরণটি ব্যবহার aws ec2 register-imageকরেছিলাম তা বুট হয়নি। আমার সমাধান এডব্লিউএস ইসি 2 ফোরামে এই পোস্টের উপর ভিত্তি করে ।

প্রস্তুতি

নিশ্চিত করুন যে সমস্ত খণ্ড একই প্রাপ্যতা জোনে রয়েছে।

  1. আপনি যে পিভি মেশিন থেকে মাইগ্রেট করতে চান এবং সমস্ত আপডেট প্রয়োগ করতে চান তার জন্য এসএসএইচ, তারপরে লগ আউট করুন।

  2. এডাব্লুএস কনসোলে যান এবং পিভি সিস্টেমটি তৈরি করা হয়েছে এমন একই বেস এএমআই নির্বাচন করে একটি নতুন এইচভিএম উদাহরণ চালু করুন (আমার ক্ষেত্রে, আমাজন -৪-বিট লিনাক্স এএমআই)।

  3. এই নতুন উদাহরণটিতে এসএসএইচ করুন এবং সমস্ত আপডেট প্রয়োগ করুন, তারপরে লগ আউট করুন।

  4. AWS কনসোল এ যান এবং পিভি দৃষ্টান্তটি বন্ধ করুন। রুট ডিভাইসের একটি স্ন্যাপশট নিন এবং SOURCE VOLUMEএই স্ন্যাপশট থেকে একটি নতুন ভলিউম ( ) তৈরি করুন ।

  5. এইচভিএম উদাহরণ বন্ধ করুন। নতুন উদাহরণে রুট ডিভাইসের একটি স্ন্যাপশট নিন এবং TARGET VOLUMEএই স্ন্যাপশট থেকে একটি নতুন ভলিউম ( ) তৈরি করুন ।

  6. এডাব্লুএস কনসোল ব্যবহার করে:

    • SOURCE VOLUMEনতুন উদাহরণ হিসাবে সংযুক্ত করুন /dev/xvdf
    • TARGET VOLUMEনতুন উদাহরণ হিসাবে সংযুক্ত করুন /dev/xvdg

রূপান্তর প্রক্রিয়া

  1. নতুন উদাহরণে এসএসএইচ করুন এবং রুট অ্যাক্সেস পান:

    sudo su
    
  2. উত্স এবং টার্গেট ড্রাইভগুলি মাউন্ট করুন।

    mkdir -p /mnt/source && mount /dev/xvdf /mnt/source
    mkdir -p /mnt/target && mount /dev/xvdg1 /mnt/target
    

    আমার ক্ষেত্রে, ডিভাইসগুলি ছিল /dev/xvdf(উত্স) এবং /dev/xvdg1(লক্ষ্য)। পার্টিশনের সংখ্যা এবং যেখানে আপনি সেগুলি সংযুক্ত করেছেন তার উপর ভিত্তি করে এগুলি আপনার কনফিগারেশনে পরিবর্তন হতে পারে (প্রস্তুতির in ধাপ দেখুন)। ls -al /dev/xvd*ড্রাইভগুলি দেখতে ব্যবহার করুন ।

  3. ব্যাকআপ /lib/modules/*(যদি পিভি অ্যামির কার্নেলটি নতুন এইচভিএম মেশিনের থেকে পৃথক হয় This তবে এই মডিউলটি এডাব্লুএসের কয়েকটি পরিষেবা ব্যবহার করে))

  4. /bootলক্ষ্য ভলিউমে সমস্ত কিছু মুছুন :

    cd /mnt/target && ls | grep -v boot | xargs rm -Rf
    
  5. /bootউত্স ভলিউমে মুছুন :

    rm -Rf /mnt/source/boot
    
  6. সমস্ত বৈশিষ্ট্য সংরক্ষণ করে লক্ষ্য ভলিউমে উত্স ভলিউমের ডেটা অনুলিপি করুন:

    rsync -aAXHPv /mnt/source/ /mnt/target
    
  7. পার্টিশনের /mnt/target/etc/fstabজন্য সম্পাদনা করুন /, যাতে এটি TARGET VOLUMEচূড়ান্ত স্থানে (8) মাউন্ট করার সময়টিকে উল্লেখ করে । হয় লেবেল ব্যবহার করুন বা কেবল কিছু সহ:

    /dev/xvda1 /     ext4    defaults,barrier=0 1 1
    

তারপরে /lib/modules/এটিকে পুনরুদ্ধার করুন 3. ধাপে back

  1. সিস্টেম বন্ধ করুন এবং এডাব্লুএস কনসোলটি ব্যবহার করে সমস্ত ভলিউম আলাদা করুন। TARGET VOLUMEনতুন উদাহরণটি এটিকে সংযুক্ত করুন /dev/xvda

    আসল রুট ডিভাইসটি কোথায় মাউন্ট করা হয়েছে তা অবশ্যই লক্ষ্য করুন। বেশিরভাগ ক্ষেত্রে, এটি হওয়া উচিত /dev/xvda

  2. আপনার এইচভিএম উদাহরণ শুরু করুন। এটি এখন আপনার পিভি সিস্টেমের হুবহু নকল হওয়া উচিত। যদি সবকিছু ঠিকঠাক দেখাচ্ছে তবে আপনি এখন আপনার পিভি উদাহরণটিও মুছতে পারেন SOURCE VOLUME


1
আপনি কেবল একটি rm -f /bootএবং না কেন cp -a /mnt/source/boot /mnt/target?
মিশেলেম

@ মিশেলেম যদি আমি সঠিকভাবে মনে রাখি, আমি প্রথমে এটি করার চেষ্টা করেছি। যন্ত্রটি বুট করেনি।
টোলগ্যামর্ফ

1
@ টলগ্যামারফ উত্তরটি আপডেট করার কোনও সুযোগ এটি প্রতিফলিত করার জন্য?
ড্যান টেনেনবুম

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

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

10

TLDR:

ec2-register -a x86_64 -d '3.15.7-200.fc20.x86_64' -n 'Fedora_20_HVM_AMI'  --sriov simple --virtualization-type hvm -s snap-b44feb18 --root-device-name /dev/sda1 

বিস্তারিত পদক্ষেপ:

পদক্ষেপগুলি সহজ করার জন্য জেফ স্ট্রানকের প্রতিক্রিয়ার উপর ভিত্তি করে আরও উত্তর দেওয়া এবং ই 2 রেজিস্টার চিত্রটিতে আরও কিছু বিশদ দেওয়া:

  1. পিভি ইমেজ ব্যবহার করে ইনস্ট্যান্স তৈরি করুন। আপনি চান যে কোনও পরিবর্তন করুন / আপডেট করুন।

  2. উপরের উদাহরণ থেকে চিত্র তৈরি করুন।

  3. ইসি 2> ইলাস্টিক ব্লক স্টোর> ইসি 2 কনসোলে স্ন্যাপশটের অধীনে উপরের এএমআই দ্বারা ব্যবহৃত স্ন্যাপশট আইডিটি সন্ধান করুন।

    বা আপনার যদি ই সি 2 এপিআই সরঞ্জাম সেটআপ থাকে:

    ec2- বিবরণ-চিত্রগুলি ami-id_of_above_created_ami

    এবং অ্যামির স্ন্যাপশট আইডিটি সন্ধান করুন

    .. আরও পদক্ষেপের জন্য অনুমান: আপনার ec2 কী এবং এপিআই সরঞ্জাম সেট এবং ব্যবহারের জন্য প্রস্তুত:

  4. উপরের স্ন্যাপশটটি ব্যবহার করে একটি নতুন এইচভিএম এএমআই নিবন্ধন করুন: উদাহরণ:

ec2- রেজিস্টার -a x86_64 -d '3.15.7-200.fc20.x86_64' -n 'ফেডোরা_20_HVM_AMI' --sriov সরল - ভার্চুয়ালাইজেশন-প্রকার hvm -s স্ন্যাপ-বি 44feb18 - রুট-ডিভাইস-নাম / দেব / sda1

কোথায়

  • -d হ'ল এএমআই বর্ণনা
  • -n এএমআই নাম
  • -s পদক্ষেপ 3 থেকে স্ন্যাপশট আইডি।
  • - একটি আর্কিটেকচার
  • এইচভিএম তৈরির জন্য ভার্চুয়ালাইজেশন-প্রকারের প্রয়োজন
  • --sriov বর্ধিত নেটওয়ার্কিং সক্ষম করার জন্য, যদিও এটি অপ্রয়োজনীয় হতে পারে, নিশ্চিত নয়।

আরও তথ্যের জন্য:


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

@ ম্যাটবেকম্যান আমি এএমআই সীমাবদ্ধতার চেয়ে অন্তর্নিহিত কার্নেল / বুটলোডার সমর্থন সম্পর্কে মনে করি। উপরে ফেডোরার জন্য কাজ করে তবে অ্যামাজন লিনাক্সের জন্য নয়। জেফ স্ট্রঙ্ক মৌলিকের পরামর্শ অনুসারে আপনাকে সেখানে যেতে হবে।
আনশু প্রীতেক


2

আপনি এডাব্লুএস ওয়েব ইন্টারফেসের ভিতরে থেকে এটি করতে পারেন। স্ন্যাপশটগুলিতে নেভিগেট করুন, আপনি hvm এ রূপান্তর করতে চান এমন স্ন্যাপশট ক্লিক করুন এবং ক্রিয়াতে ক্লিক করুন এবং তারপরে চিত্র তৈরি করুন । তৈরি চিত্রের উইজার্ডের ড্রপডাউনটিতে এইচভিএম নির্বাচন করুন ।


9
আমি কেবল এটি চেষ্টা করেছি, তবে এটি দেখে মনে হচ্ছে উদাহরণটি সঠিকভাবে বুট হবে না। এটি কেবল বন্ধ হয়ে যাওয়া অবস্থায় চলে আসে, আমি এটি শুরু করার কয়েক মুহুর্ত পরে।
ওভি

1

এখানে সমস্ত পরামর্শ দেওয়ার চেষ্টা করেছিলাম, যার মধ্যে কোনটিই আমার পক্ষে কাজ করে নি, আমি https://www.opswat.com/blog/aws-2015-why-you-need-switch- এ এই বিষয়ে একটি দুর্দান্ত ব্লগ এন্ট্রি পেয়েছি I PV-hvm

পদ্ধতির উপাদানগুলি (বিশদ) হ'ল:

  1. grubস্থানান্তরিত হওয়ার জন্য পিভি ইনস্টলসে ইনস্টল করুন (উত্স উদাহরণ)।

  2. উত্স উদাহরণে রুট ভলিউমের একটি সতর্কতামূলক স্ন্যাপশট তৈরি করুন (উত্স ভলিউম, এসভি)।

  3. একটি অস্থায়ী এইচভিএম উদাহরণ তৈরি করুন যা ভলিউমটি স্থানান্তর করবে।

    1. আমি একটি অ্যামাজন লিনাক্স উদাহরণ ব্যবহার করেছি
  4. একটি গন্তব্য ভলিউম (ডিভি) তৈরি করুন এবং অস্থায়ী দৃষ্টান্তের সাথে এটি এবং এসভি উভয়ই সংযুক্ত করুন।

    1. ডিভি কমপক্ষে এসভি হিসাবে বড় হওয়া উচিত।

    2. এসভি হিসাবে /dev/{sd,xvd}f, এবং ডিভি হিসাবে সংযুক্ত করুন /dev/{sd,xvd}g

    3. ডিভি পার্টিশন:

    parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'

    partprobe /dev/xvdg

    udevadm settle

  5. ন্যূনতম আকারের এসভি এর এফএস আকারে করুন এবং ddএটি ডিভিতে চিত্রটি ব্যবহার করুন ।

    1. উত্স ভলিউমের FS সাফ করুন: e2fsck -f /dev/xvdf

    2. একই হ্রাস করুন: resize2fs -M /dev/xvdf

    3. আকার পরিবর্তন 2fs (যেমন Resizing the file system on /dev/xvdf to 269020 (4k) blocks) থেকে আউটপুটটি পর্যবেক্ষণ করুন এবং পরবর্তী পদক্ষেপের জন্য এটি নোট করুন note

    4. ডিভিতে নকল এসভি: dd if=/dev/xvdf of=/dev/xvdg1 bs=<block size from previous step, here 4k> count=<use block count from last step, here 269020>

    5. নতুন পার্টিশনে এফএস প্রসারিত করুন: resize2fs /dev/xvdg1

  6. grubডিভির বুট ব্লকে ইনস্টল করুন

    1. ডিভিতে অস্থায়ীভাবে ডিভাইস ফাইলগুলি তৈরি করুন: mount /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/

    2. গ্রাব ফাইল ইনস্টল করুন:

    rm -f /mnt/boot/grub/*stage*

    cp /mnt/usr/*/grub/*/*stage* /mnt/boot/grub/

    rm -f /mnt/boot/grub/device.map

    1. ক্রুট পরিবেশে গ্রাব ইনস্টল করুন:

    cat << ARNIE | chroot /mnt grub --batch

    device (hd0) /dev/xvdg

    root (hd0,0)

    setup (hd0)

    ARNIE

  7. গন্তব্য ভলিউমে কিছু অন্যান্য ছোটখাটো পরিবর্তন করে ভলিউম স্ন্যাপ করুন এবং এটি থেকে একটি এএমআই করুন।

    1. অস্থায়ী ডিভাইস ফাইলগুলি পরিষ্কার করুন: rm -f /mnt/dev/xvdg /mnt/dev/xvdg1

    2. ইন /mnt/boot/grub/grub.conf, কার্নেল লাইনে পরিবর্তন root (hd0)করুন root (hd0,0), যুক্ত করুন (বা প্রতিস্থাপন করুন console=*) console=ttyS0, এবং প্রয়োজনে কার্নেল লাইনের root=*সাথে প্রতিস্থাপন করুনroot=LABEL=/

    3. ইন /mnt/etc/fstab, রুট এফএস এর লাইনে লেবেলযুক্ত রেফারেন্স রয়েছে তা নিশ্চিত করুন eg

    LABEL=/ / ext4 defaults,noatime 1 1

    1. এর সাথে নতুন রুট এফএস লেবেল করুন e2label /dev/xvdg1 /

    2. অস্থায়ী উদাহরণ থেকে ডিভি আনমাউন্ট করুন, অস্থায়ী উদাহরণ থেকে এসভি এবং ডিভি উভয়কে আলাদা করুন।

    3. ডিভি স্ন্যাপ করুন এবং সেই স্ন্যাপ থেকে একটি এএমআই চিত্র তৈরি করুন।

  8. সেই এইচএমআই থেকে একটি এইচভিএম উদাহরণ চালু করুন। এটি আপনার স্থানান্তরিত উদাহরণ।

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