Computer >> कंप्यूटर >  >> सॉफ्टवेयर >> आभासी मशीन

VMDK वर्चुअल हार्ड डिस्क को Amazon Elastic Compute Cloud (EC2) AMI फॉर्मेट में कैसे कन्वर्ट करें

मैं कुछ पलों के लिए Amazon Elastic Compute Cloud (EC2) कॉन्सेप्ट पेश करता हूं। Amazon EC2 एक वेब सेवा है जिसे दुनिया भर के उपयोगकर्ताओं को तत्काल आकार बदलने योग्य, स्केलेबल कंप्यूटिंग क्षमता प्रदान करने के लिए डिज़ाइन किया गया है। यह बड़े पैमाने पर वर्चुअलाइजेशन ग्रिड है, जो बड़े पैमाने पर अमेज़ॅन खेतों के भीतर स्थित है, जो सीपीयू चक्र और हार्ड डिस्क स्थान प्रदान करता है, जिसकी उन्हें आवश्यकता हो सकती है, मक्खी पर। केवल एक चीज जो आपको करनी है वह है भुगतान, और वास्तव में उतना नहीं।

वास्तव में उपयोगी होने के लिए, अमेज़ॅन एक बहुत ही किफायती मूल्य टैग के साथ सेवा प्रदान करता है, जिसकी तुलना में आपको अपने स्वयं के बुनियादी ढांचे को खरीदने और बनाए रखने पर खर्च करना पड़ सकता है। घरेलू उपयोगकर्ताओं के लिए, यह सबसे तात्कालिक आवश्यकता की तरह प्रतीत नहीं हो सकता है, लेकिन लचीली मांगों वाले छोटे से मध्यम व्यवसाय निश्चित रूप से हार्डवेयर स्वतंत्र स्वतंत्रता की संभावना को पसंद करेंगे।

आप में से कुछ लोगों को यह विचार पसंद आएगा, तो कुछ इससे नफरत करेंगे। व्यक्तिगत रूप से, मुझे लगता है कि यह एक महान परियोजना है, खासकर जब से अमेज़ॅन क्लाउड लिनक्स पर आधारित है और मुख्य रूप से लिनक्स का समर्थन करता है, लिनक्स बाजार के विकास के लिए जबरदस्त अवसर पैदा करता है। मार्क शटलवर्थ को आगामी उबंटू रिलीज में अमेज़ॅन की कार्यक्षमता को शामिल करने के अपने इरादे के लिए काफी आलोचना का सामना करना पड़ा, लेकिन मुझे लगता है कि यह एक बुद्धिमानी भरा कदम है, क्योंकि डेस्कटॉप और वेब के बीच जरूरतों का विलय एक "ईथर" लचीलेपन के लिए केवल उपलब्ध है। बादल।

VMDK वर्चुअल हार्ड डिस्क को Amazon Elastic Compute Cloud (EC2) AMI फॉर्मेट में कैसे कन्वर्ट करें

घर पर...

घर पर, आपको विरले ही क्लासिक वर्चुअलाइजेशन प्रदान करने वाले से अधिक की आवश्यकता होगी। लेकिन जब भी लिविंग रूम में 16 जीबी रैम के साथ अपना खुद का डेटाबेस सर्वर रखने का प्राइस टैग आएगा तो आप शायद अमेज़ॅन पर विचार करना शुरू कर देंगे।

यदि कभी ऐसा होता है, तो आप जानना चाहेंगे कि Amazon EC2 का उपयोग कैसे करें। एक पूर्ण ट्यूटोरियल निश्चित रूप से इस आलेख के दायरे से बाहर है; आपके पास इसके लिए आधिकारिक दस्तावेज हैं।

इसके बजाय, मैं प्रदर्शित करने जा रहा हूं, लेकिन पूरी योजना का एक हिस्सा, हालांकि शायद सबसे महत्वपूर्ण है जो घरेलू उपयोगकर्ता के सामने आ सकता है - अमेज़ॅन वर्चुअल मशीन छवियों का निर्माण। मैं आपको दिखाने जा रहा हूं कि VMware उत्पादों द्वारा उपयोग की जाने वाली होम-ब्रूड वर्चुअल हार्ड डिस्क को अमेज़ॅन-संगत छवियों में कैसे परिवर्तित किया जाए जिसे आप EC2 के साथ उपयोग कर सकते हैं।

सबसे पहले Amazon इमेज क्यों नहीं बनाते या मौजूदा बिल्ड का इस्तेमाल क्यों नहीं करते?

अच्छा सवाल है! अमेज़ॅन आपको अपने शुरुआती बिंदु के रूप में स्क्रैच से छवियां बनाने या मौजूदा टेम्पलेट्स (जैसे एसयूएसई, उबंटू, रेडहैट, आदि) में से एक का उपयोग करने की अनुमति देता है। हालाँकि, चित्र बनाना थोड़ा जटिल है। और हो सकता है कि मौजूदा टेम्प्लेट का उपयोग वह न हो जो आप चाहते हैं। उदाहरण के लिए, आप एक विशेष, कस्टम-कॉन्फ़िगर डिस्ट्रो चलाना चाह सकते हैं या आप एक निजी, डिजिटल रूप से हस्ताक्षरित छवि का उपयोग करना चाह सकते हैं जो आपके अलावा किसी के लिए भी उपलब्ध नहीं है। आप कुल नियंत्रण चाहते हैं और आप दूसरों को आपके लिए चित्र बनाने नहीं दे सकते।

उद्देश्य:घर पर इमेज बनाएं, फिर Amazon पर अपलोड करें

मैं इस ट्यूटोरियल को एक बहुत विशिष्ट विषय तक सीमित कर रहा हूं, जो मुझे काफी महत्वपूर्ण लगता है। आप एक निजी छवि चाहते हैं, जिसके अपने प्रमाण पत्र हों। आप इसे घर पर, खाली समय में, अपने समय और खर्च पर बनाना चाहते हैं, बैंडविड्थ पर पैसा बर्बाद किए बिना और कॉन्फ़िगरेशन के लंबे समय तक। एक बार जब यह तैयार हो जाता है, तो आप इसे रूपांतरित कर सकते हैं और इसे अमेज़ॅन स्टोरेज में अपलोड कर सकते हैं, जिसे अमेज़ॅन सिंपल स्टोरेज सर्विस (S3) कहा जाता है।

नोट:इस ट्यूटोरियल के निर्देशों को किसी भी उपयोग में लाने से पहले आपके पास एक वैध Amazon EC2 खाता होना चाहिए। इसके अलावा, आपको ट्यूटोरियल का सफलतापूर्वक पालन करने के लिए लिनक्स का उपयोग करना होगा। यहां उपयोग किए जाने वाले कुछ उपकरण केवल लिनक्स के लिए उपलब्ध हैं - आश्चर्य की बात नहीं है, यह देखते हुए कि अमेज़ॅन लिनक्स पर चलता है।

पहला सवाल:किससे कन्वर्ट करें?

एक और अच्छा सवाल। कई डेस्कटॉप वर्चुअलाइजेशन प्रारूप उपलब्ध हैं। हालांकि, अगर आप घर पर वर्चुअलाइजेशन चलाते हैं, तो इस बात की अच्छी संभावना है कि आप वीएमवेयर उत्पादों में से किसी एक का उपयोग कर रहे हैं। VMware अपने वर्चुअल हार्ड डिस्क के लिए .vmdk स्वरूप का उपयोग करता है। यह हमारा सोर्स फॉर्मेट है, जिसे हम Amazon Machine Image (AMI) में बदलना चाहते हैं।

हालाँकि, आप VMDK वर्चुअल डिस्क को सीधे AMI में नहीं बदल सकते। आपको यह दिखाने के लिए कि क्या करने की आवश्यकता है, मैंने यह ट्यूटोरियल लिखा है। चलो शुरू करें।

चरण 1:सुनिश्चित करें कि आपके पास वह सब कुछ है जिसकी आपको आवश्यकता है

इससे पहले कि हम शुरू करें, कुछ (काफी कुछ) बहुत महत्वपूर्ण चीजें हैं जिन पर ध्यान देने से पहले इसे और उसे परिवर्तित करने से पहले विचार किया जाना चाहिए।

इसके अलावा, इससे पहले कि आप पढ़ना शुरू करें, मुझे आपको यह महसूस करने की आवश्यकता है कि Amazon EC2 प्रोजेक्ट अभी भी अपनी प्रारंभिक अवस्था में है, इसलिए यहां दी गई सिफारिशें भविष्य के सेटअपों पर केवल आंशिक रूप से लागू हो सकती हैं - या बिल्कुल भी नहीं। जबकि मैं आमतौर पर अपने निष्कर्षों को विनम्र नहीं करता, इस विशेष मामले में, नाजुक चर की बहुत बड़ी संख्या के कारण, मैं इस प्रयास के साथ सफलता की पुष्टि नहीं कर सकता। हालाँकि, इस छोटे से प्रवेश को आपको निराश न होने दें! मेरे पीछे आओ।

Amazon की सामान्य आवश्यकताएं (VMware पर ध्यान दिए बिना):

ज़ेन आवश्यकताएं

इससे पहले कि आप इसे परिवर्तित कर सकें और अमेज़ॅन पर इसका उपयोग कर सकें, आपको अपने वितरण को भी जेनिफाय करना होगा। इसका क्या मतलब है? खैर, अमेज़ॅन वर्चुअल इंफ्रास्ट्रक्चर ज़ेन पर आधारित है, जो वीएमवेयर, केवीएम या अन्य वर्चुअलाइजेशन उत्पादों के समान ओपन-सोर्स हाइपरविजर है। अमेज़ॅन वर्चुअल मशीनों को इस प्लेटफ़ॉर्म पर चलने में सक्षम होने के लिए विशिष्ट कर्नेल और कर्नेल मॉड्यूल की आवश्यकता होती है। आपको उपयुक्त ज़ेन कर्नेल डाउनलोड करना होगा, इसे निकालना होगा, ज़ेन मॉड्यूल स्थापित करना होगा, और GRUB मेनू को अपडेट करना होगा।

अधिक विस्तार से, अपने पसंदीदा वितरण की वेबसाइट / सॉफ्टवेयर रिपॉजिटरी पर जाएं और अपने संस्करण से मेल खाते हुए संबंधित कर्नेल को डाउनलोड करें। संग्रह को निकालें और उसमें मौजूद फाइलों को /boot और /lib में रखें। आपका अगला कदम प्रासंगिक मॉड्यूल फ़ाइलें बनाना है:

depmod -F /boot/System.map-<कर्नेल>-xenU -a <कर्नेल>-xenU

जहाँ कर्नेल आपके पास मौजूद संस्करण से मेल खा रहा है (uname -r)।

एक बार यह हो जाने के बाद, जांचें कि मॉड्यूल /lib/modules/-xenU निर्देशिका के अंतर्गत मौजूद हैं। अंत में, GRUB menu.lst कॉन्फ़िगरेशन फ़ाइल को अपडेट करें ताकि इसमें एक Xen कर्नेल प्रविष्टि हो। यह प्रविष्टि (श्लोक) डिफ़ॉल्ट रूप से बूट होनी चाहिए। GRUB के बारे में अधिक जानकारी के लिए, कृपया मेरा व्यापक ट्यूटोरियल देखें।

विभाजन की आवश्यकताएं

एक और पेचीदा। अमेज़ॅन वर्चुअल मशीन में एक बहुत ही विशिष्ट विभाजन लेआउट होना चाहिए। आपका /etc/fstab ट्री इस तरह दिखना चाहिए:

/dev/sda1   /           ext3    डिफ़ॉल्ट        1    1
कोई नहीं        /dev/pts    devpts  gid=5,mode=620  0    0
कोई नहीं        /dev/shm    tmpfs   डिफ़ॉल्ट        0    0
कोई नहीं
कोई नहीं        /sys        sysfs   डिफ़ॉल्ट        0    0

यदि आप अपने स्वयं के स्वैप और /mnt माउंटपॉइंट का उपयोग कर रहे हैं, तो उन्हें /etc/fstab से हटा दें, क्योंकि मशीन इंस्टेंस चलाते समय Amazon स्वयं का उपयोग करेगा।

सामान्य तौर पर, कृपया कई लोगों के लिए एएमआई दस्तावेज़ बनाना पढ़ें, आपकी वर्चुअल मशीन कैसी दिखनी चाहिए, इसके बारे में अजीब विवरण। डेटा की अत्यधिक बहुतायत से चिंतित न हों, क्योंकि अधिकांश सामग्री हमारे परीक्षण मामले के लिए अप्रासंगिक है। आपको कर्नेल मॉड्यूल, विभाजन लेआउट और नेटवर्किंग कॉन्फ़िगरेशन पर ध्यान देने की आवश्यकता है।

डिफ़ॉल्ट रनलेवल और सेवाएं

इसके अलावा, वास्तव में अपने अमेज़ॅन मशीन से कनेक्ट करने में सक्षम होने के लिए, आपको एसएसएच इनकमिंग कनेक्शन और स्वाभाविक रूप से, एसएसएच सेवा को आपके डिफ़ॉल्ट रनलेवल में सक्षम करने के लिए फ़ायरवॉल सेवा को या तो अक्षम या कॉन्फ़िगर करना होगा। डिफ़ॉल्ट रूप से, SSH TCP पोर्ट 22 का उपयोग करता है।

रनलेवल की बात करें तो, ज़ेन मशीनें आमतौर पर अप्रयुक्त रनलेवल 4 में बूट होती हैं, इसलिए आपको अपनी /etc/inittab फ़ाइल को संपादित करना होगा और अप्रयुक्त रनलेवल 4 को अनकमेंट करना होगा और इसे डिफ़ॉल्ट रनलेवल के रूप में सेट करना होगा। दूसरा, आपको प्रासंगिक सेवाओं को सक्षम करना होगा। दुर्भाग्य से मेरे पास सिफारिश करने के लिए जादू सेट नहीं है।

इसी तरह, आप एक्स को अमेज़ॅन (अभी तक) में नहीं चला सकते हैं, इसलिए रनलेवल 5 सवाल से बाहर है। यदि आपको विभिन्न रनलेवल में चलाने के लिए सेवाओं को कॉन्फ़िगर करने में सहायता की आवश्यकता है, तो मेरे Linux सेवा ट्यूटोरियल पर एक नज़र डालें।

नेटवर्क इंटरफेस

आपको DHCP के माध्यम से IP पता पट्टे पर देने के लिए अपने नेटवर्क डिवाइस को कॉन्फ़िगर करना होगा और IPv6 प्रोटोकॉल को अक्षम करना होगा। ज्यादातर मामलों में, यह डिफ़ॉल्ट सेटिंग है, इसलिए आपको यहां ज्यादा मेहनत नहीं करनी पड़ेगी।

अतिरिक्त महत्वपूर्ण नोट्स:

VMware उत्पाद आपको गतिशील रूप से विस्तार योग्य छवियां बनाने की अनुमति देते हैं जो डेटा से भरे जाने पर बढ़ती हैं। इसलिए, एक 40GB वर्चुअल डिस्क का वजन केवल 700MB हो सकता है, यदि इसमें केवल 700MB डेटा हो। आकार को पूर्व-आवंटित करना भी संभव है, जिस स्थिति में डिस्क को उसके पूर्ण 40GB आकार में फुलाया जाएगा। हालांकि, हार्ड डिस्क स्थान को बचाने के लिए, कई उपयोगकर्ता पहले विकल्प - डायनेमिक हार्ड डिस्क का उपयोग करने का विकल्प चुनेंगे।

जब VMDK को RAW में बदलने की बात आती है, तो गतिशील विस्तार से प्राप्त कोई भी लाभ खो जाता है। डिस्क छवि को उसके वास्तविक आकार में फुलाया जाएगा। इसलिए वर्चुअल मशीन बनाते समय सावधान रहें और डिस्क के आकार पर ध्यान दें।

दूसरे, अमेज़न वर्तमान में केवल 10GB तक की छवियों का समर्थन करता है। इसका मतलब है कि आपका VMDK 10GB से अधिक नहीं होना चाहिए। अन्यथा, आप एएमआई नहीं बना पाएंगे। बहुत बड़ी छवि का उपयोग करें और आपको एक त्रुटि मिलेगी:

त्रुटि:निर्दिष्ट छवि फ़ाइल <कुछ>.कच्चा बहुत बड़ा है

एक उदाहरण छवि:

तीसरा, आपको अपने लिनक्स मशीन पर जावा और रूबी स्थापित करने की आवश्यकता होगी। और हाँ, आपको इस ट्यूटोरियल के चरण 3 के लिए एक लिनक्स मशीन की आवश्यकता होगी। अपने पलायन पर जाने से पहले सुनिश्चित करें कि आप इन सभी मांगों को पूरा करते हैं।

चरण 2:VMDK को RAW में बदलें

अब जबकि हमें पता है कि हमें क्या चाहिए, हम रूपांतरण के लिए QEMU का उपयोग करेंगे। क्यूईएमयू, विंडोज और लिनक्स दोनों के लिए उपलब्ध है, बल्कि एक शक्तिशाली, जैक-ऑफ-ऑल-ट्रेड एम्यूलेटर/इमेज यूटिलिटी है, जो आपको वीएमडीके फाइलों को रॉ प्रारूप में बदलने की अनुमति देता है।

मैंने बहुत पहले अपने VMware प्लेयर लेख में QEMU को वर्चुअल हार्ड डिस्क बनाने के लिए एक बेहतरीन टूल के रूप में पेश किया था। आप इसे अन्य डिस्क से संबंधित कार्यों, जैसे रूपांतरण के लिए भी उपयोग कर सकते हैं।

अब, आपको VMware डिस्क को रॉ फॉर्मेट में बदलना होगा। Essentially, this will strip the hard disk image of any smart VMware algorithms and expand it into a sector-by-sector disk image.

QEMU does this well. In fact, you can use QEMU for all sorts of conversions. But currently, we're interested in vmdk> raw. To convert, simply locate the relevant .vmdk file and run the following qemu-img command:

qemu-img convert -O raw source.vmdk target.raw

Let the process run. Depending on your machine specs and the image size, it can take quite a while.

Step 3:Bundle the image with AMI tools

Amazon offers two bundles of tools for work with their EC2 service. One is the set of API tools, a client interface for the EC2 service. The other is the set of AMI tools, a collection of command utilities used to create, bundle and upload AMI to Amazon S3.

We need the AMI tools. Download and extract them, preferably inside your home directory. Now, you will have to run a long and tedious conversion command that will look something like this:

./ec2-bundle-image -i -r -c ->
-> -k --user

Let's explain the options:

  • -i - This is your RAW file.
  • -r - This is the architecture of your virtual machine (i386, x86_64, etc).
  • -c - This is the certificate you received from Amazon. You should keep them in the home directory or the same directory against which you're running the command, because the ec2-bundle-image command does not permit trailing slashes in the path to certificate. I don't know why this is, it just is. If you do use it, you'll get an error like this one:
--prefix has invalid value 'cert.pem':'/' character not allowed.

Here's an actual screenshot of such an error (output manipulated for clarity):

  • -k - Your private key. Again, the same rules apply as for the certificate.
  • --user - Your Amazon user ID.

Requirements

But this is not enough. Even if you follow the command to the letter, the ec2-bundle-image will complain. Something like this:

ec2-bundle-image:line 3:EC2_HOME:Neither of EC2_AMITOOL or EC2_HOME environment variables are set

This means you will have to export a few environment variables before using the utility.

BASH

On Bash, you will use the export command, like this:

export EC_HOME=
export EC_AMITOOL_HOME=

TCSH

TCSH does not support export. So instead, you will have to use setenv:

setenv EC_HOME 
setenv EC_AMITOOL_HOME 

The paths should correspond to the following:

  • EC_HOME - your home directory or perhaps an ec2 sub-directory inside it, most likely. Do not use the /tmp filesystem as EC_HOME might complain about an insecure, world-readable directory.
  • EC_AMITOOL_HOME - the directory where you extracted the AMI tools.

You may also want to export/setenv other variables, which makes the process of typing them manually rather boring. To make things more efficient, you may want to create a file, contain all your variables and their values and then source it when you need to run the AMI tools. Something like this:

source file-containing-all-exports

Now, we're ready. Hit Enter against your long conversion command. And wait. After a while, the process should complete successfully. The emphasis is on the word should, as you have to complete a series of delicate preparations for the thing to work.

If you did successfully convert the VMDK> RAW> AMI, then you're ready to upload the file. The indication that your conversion was successful will be a list of files in the /tmp directory and an XML manifest file. This is the default output directory.

This concludes the actual conversion process. Your next step is the upload, but this is beyond the scope of this article. We'll talk about this on another occasion. Amazon is here to stay and you're likely to see several more articles on the subject on Dedoimedo in the future.

निष्कर्ष

As you can see, the task is not that simple, but it is manageable and will save you quite a bit of time, bandwidth and ultimately money. Being able to convert images offers you freedom beyond the specific needs of the Amazon EC2 service. We've already seen how to use VMware Converter to this end. Now, QEMU is another power tool we can use to enhance our virtualization needs.

You must satisfy quite a few rules though, especially in regard to AMI tools. You must make sure the image is not too big, not to use the trailing slash in front of the certificate and private key paths, make sure the environment variables are exported, and in general, not to place the Amazon tools in "unsafe" directories. Now, have fun walking on clouds.

In the sequel articles, we will talk about Kiwi, a handsome component of the powerful SUSE Build Service and see how it can be used to create Xen or even AMI images from custom distributions or even your own physical installation, offering similar capabilities to VMware Converter - and then some. To this end, we'll play with Image Creator and Product Creator. We will also talk about SUSE Studio and many other exciting, revolutionary concepts, ideas and projects.

Markus, you asked about an AMI tutorial? Here you go. आनंद लेना।

प्रोत्साहित करना।

  1. वर्चुअलबॉक्स में डिस्क क्लोन कैसे करें - ट्यूटोरियल

    यदि आप व्यवसाय या आनंद के लिए वर्चुअलाइजेशन का उपयोग कर रहे हैं, तो हो सकता है कि आपको वर्चुअलबॉक्स मिल गया हो, एक बहुत ही शक्तिशाली, अत्यधिक बहुमुखी मुफ्त समाधान जो डेस्कटॉप उपयोगकर्ताओं को ऑपरेटिंग सिस्टम को तैनात करने की बात आने पर अत्यधिक लचीलेपन की अनुमति देता है, किसी भी तरह से। और यदि आप शौ

  1. वर्चुअल मशीन को VMware कन्वर्टर से कन्वर्ट करें

    वर्चुअलाइजेशन सॉफ़्टवेयर के परीक्षण और डिबगिंग का एक उत्कृष्ट तरीका है, एक ही डेस्कटॉप पर एक साथ विभिन्न ऑपरेटिंग सिस्टम के कई उदाहरण चलाना, हार्डवेयर की लागत को कम करना और मॉड्यूलरिटी और दक्षता में वृद्धि करना। यह शक्तिशाली उपयोगकर्ताओं को समय और पैसा बचाने और उन कार्यों को करने की अनुमति देता है ज

  1. VMware सर्वर में वर्चुअल मशीन का क्लोन कैसे बनाएं

    यदि आप वर्चुअलाइजेशन के प्रशंसक हैं, तो देर-सवेर आप VMware सर्वर से परिचित होंगे। सर्वर एक नि:शुल्क समाधान है जो आपको अपने मौजूदा डेस्कटॉप के शीर्ष पर विभिन्न ऑपरेटिंग सिस्टम के कई उदाहरण चलाने की अनुमति देता है, जिससे आपके सामने दक्षता, उत्पादकता, प्रतिरूपकता, परीक्षण और ट्वीकिंग की दुनिया खुल जाती