অ্যামাজন ইবিএস ভলিউমের আকার সঙ্কুচিত করা হচ্ছে


25

আমি এই উত্তরটি ইবিএসের ক্রমবর্ধমান সংখ্যার জন্য দেখেছি , তবে আমি একটি সঙ্কুচিত করতে চাই।

ডিফল্ট উবুন্টু সার্ভার চিত্রগুলি 15 গিগাবাইটের সময় আমার সত্যিকার অর্থে মাত্র 2 গিগাবাইট প্রয়োজন (আমি ডেটার জন্য পৃথক ভলিউম ব্যবহার করি)। ভলিউমের আকার সঙ্কুচিত করার কোনও উপায় আছে?

উত্তর:


27

আপনার মত আমারও একই প্রশ্ন ছিল, তাই এটি কীভাবে করব তা নিয়ে আমি কাজ করেছি।

প্রথমত, আমি ইউএস-পূর্ব অঞ্চল থেকে উবুন্টু 32-বিট ইবিএস-সমর্থিত অমি থেকে এটি করেছি, অন্যান্য ওএস বা চিত্রগুলি ভিন্নভাবে কাজ করতে পারে। তবে, আমি সন্দেহ করি যে আপনারা ঠিকঠাক হওয়া উচিত, যতক্ষণ আপনি একটি এক্সট * ফাইল সিস্টেম ব্যবহার করছেন। এটি অন্যান্য ফাইল সিস্টেমে কাজ করতে পারে তবে এগুলি কীভাবে নিজের আকারে পরিবর্তন করতে হয় তা আপনাকে খুঁজে বের করতে হবে।

পদক্ষেপগুলি মূলত:

  1. একটি চলমান উদাহরণে দুটি ভলিউম সংযুক্ত করুন, প্রথমটি আপনি সঙ্কুচিত করতে চান এমন স্ন্যাপশটের উপর ভিত্তি করে এবং দ্বিতীয়টি একটি ফাঁকা ভলিউম যাতে আপনি সঙ্কুচিত করতে চান নতুন আকারের।

  2. প্রথম ভলিউমের ফাইল সিস্টেমটি পরীক্ষা করুন এবং কোনও ত্রুটি মেরামত করুন।

  3. প্রথম ভলিউমে ফাইল সিস্টেম সঙ্কুচিত করুন যাতে এটি কেবল ডেটা ধরে রাখার মতো বড়।

  4. প্রথম ভলিউম থেকে দ্বিতীয়টিতে ফাইল সিস্টেমটি অনুলিপি করুন।

  5. ফাইল সিস্টেমটিকে দ্বিতীয় আকারে এটি সর্বাধিক আকারে প্রসারিত করুন।

  6. ত্রুটির জন্য দ্বিতীয় ভলিউম পরীক্ষা করে নিশ্চিত হয়ে নিন যে সবকিছু ভাল দেখাচ্ছে।

  7. দ্বিতীয় খণ্ডের একটি স্ন্যাপশট নিন।

  8. আপনি সবেমাত্র নেওয়া দ্বিতীয় ভলিউমের স্ন্যাপশটের ভিত্তিতে একটি মেশিন চিত্র তৈরি করুন।

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

কার্নেল আইডি কিয়া-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স দেখতে লাগে এবং স্ন্যাপশট আইডিটি স্ন্যাপ-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স এবং র‌্যামডিস্ক আইডি দেখতে আরআইএ-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স like

এর পরে, একটি লিনাক্স উদাহরণ চালু করুন। আমি একটি উবুন্টু উদাহরণ চালু করেছি। আপনি চাইলে একটি t1.micro উদাহরণ ব্যবহার করতে পারেন। এই পরবর্তী পদক্ষেপগুলি করতে খুব বেশি শক্তি লাগে না।

মেশিনটি চলার পরে, প্রথম ধাপ থেকে আপনি লিখেছেন এমন স্ন্যাপশট সংযুক্ত করুন। আমার ক্ষেত্রে, আমি এটিকে / dev / sdf এর সাথে সংযুক্ত করেছি

তারপরে, আপনি চান আকারটি রেখে একটি নতুন ভলিউম তৈরি করুন। আমার ক্ষেত্রে, আমি একটি 5 জিবি ভলিউম তৈরি করেছি, যে আকারটি আমি এটি সঙ্কুচিত করতে চেয়েছিলাম। স্ন্যাপশট থেকে এই নতুন ভলিউম তৈরি করবেন না। আমাদের একটি নতুন ফাঁকা ভলিউম দরকার। এরপরে, এটি চলমান উদাহরণের সাথে সংযুক্ত করুন, আমার ক্ষেত্রে আমি এটিকে / dev / sdg হিসাবে সংযুক্ত করি

এর পরে, মেশিনে ssh করুন তবে সংযুক্ত ভলিউমগুলি মাউন্ট করবেন না।

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

$ sudo e2fsck -f /dev/sdf

এরপরে, আমি ফাইল সিস্টেমটিকে বৃহত পরিমাণে পুনরায় আকার দিয়েছি যাতে এটি কেবলমাত্র ডিস্কের ডেটার মতোই বড় হয়:

$ sudo resize2fs -M -p /dev/sdf

-M এটি সঙ্কুচিত করে এবং -p অগ্রগতি মুদ্রণ করে।

আকার পরিবর্তন 2fs আপনাকে জানাতে হবে যে সংকুচিত ফাইল সিস্টেমটি কত বড়। আমার ক্ষেত্রে এটি আমাকে 4 কে ব্লকে আকার দিয়েছে।

আমরা এখন নতুন ডিস্কে সঙ্কুচিত ফাইল সিস্টেমটি অনুলিপি করি। আমরা 16 এমবি খণ্ডগুলিতে ডেটা অনুলিপি করতে যাচ্ছি, সুতরাং আমাদের কপি করার জন্য কতগুলি 16MB খণ্ড দরকার তা নির্ধারণ করতে হবে। এই যেখানে সঙ্কুচিত ফাইল সিস্টেমের আকার হ্যান্ডে আসে।

আমার ক্ষেত্রে, সঙ্কুচিত ফাইল সিস্টেমটি মাত্র 1 জিবি-র উপরে ছিল, কারণ আমি স্ন্যাপশট নেওয়ার আগে বেসিক উবুন্টু সিস্টেমে প্রচুর অন্যান্য প্রোগ্রাম ইনস্টল করেছিলাম। আমি সম্ভবত ফাইল সিস্টেমের আকারটি নিকটতম 16MB পর্যন্ত কপি করে বেরিয়ে যেতে পারতাম, তবে আমি এটি নিরাপদে খেলতে চেয়েছিলাম।

সুতরাং, 128 বার 16 এমবি খণ্ড = 2 জিবি:

$ sudo dd if=/dev/sdf ibs=16M of=/dev/sdg obs=16M count=128

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

এরপরে আমাদের কেবলমাত্র নতুন ভলিউমে অনুলিপি করা ফাইল সিস্টেমের আকার পরিবর্তন করতে হবে যাতে এটি ভলিউমের সমস্ত উপলব্ধ স্থান ব্যবহার করে।

$ sudo resize2fs -p /dev/sdg

অবশেষে, এটি যাচাই করুন, সবকিছু ঠিক আছে তা নিশ্চিত করার জন্য:

$ sudo e2fsck -f /dev/sdg

এই মেশিনে আমাদের যা করা দরকার তা হ'ল, যদিও এটি পরীক্ষা হিসাবে নতুন ভলিউমটি মাউন্ট করতে পারে না। তবে, এই পদক্ষেপটি প্রায় অবশ্যই alচ্ছিক, কারণ ই 2fsck এর কোনও সমস্যা হওয়া উচিত।

আমাদের এখন নতুন ভলিউম স্ন্যাপশট তৈরি করতে হবে এবং এর ভিত্তিতে একটি এএমআই তৈরি করতে হবে। আমরা মেশিনটি দিয়ে শেষ করেছি, সুতরাং আপনি যদি চান তবে এটি শেষ করতে পারেন।

আপনি যদি এটি মাউন্ট করেন তবে ছোট ভলিউমটি আনমাউন্ট হয়েছে তা নিশ্চিত করুন এবং তারপরে একটি স্ন্যাপশট নিন। আবার, আপনি পরিচালনা কনসোলে এটি করতে পারেন।

চূড়ান্ত পদক্ষেপে কমান্ডলাইন ec2 সরঞ্জাম প্রয়োজন।

সম্পাদনা করুন:

যেহেতু এই উত্তরটি পোস্ট করা হয়েছিল এডাব্লুএস কনসোল আপনাকে স্ন্যাপশটটিতে ডান ক্লিক করতে এবং স্ন্যাপশট থেকে চিত্র তৈরি করুন নির্বাচন করতে দেয়। আপনার এখনও উপযুক্ত কার্নেল আইডি নির্বাচন করতে হবে। যদি এটি তালিকায় উপস্থিত না হয় তবে নিশ্চিত করুন যে আপনি উপযুক্ত স্থাপত্যটি নির্বাচন করেছেন।

আপনি সদ্য তোলা স্ন্যাপশটের উপর ভিত্তি করে একটি এএমআই রেজিস্ট্রেশন করতে আমরা ইসি 2-রেজিস্ট্রার অ্যাপ্লিকেশনটি ব্যবহার করি, সুতরাং আপনি যে স্ন্যাপশটটি নিয়েছিলেন তা থেকে স্ন্যাপ-এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স মানটি লিখুন।

তারপরে আপনার একটি কমান্ড ব্যবহার করা উচিত:

ec2-register -C cert.pem -K sk.pem -n The_Name_of_Your_New_Image
-d Your_Description_of_This_New_AMI --kernel aki-xxxxxxxx
-b "/dev/sda1=snap-xxxxxxxx" --root-device-name /dev/sda1

আপনার অবশ্যই শুরুতে যেটি লিখেছিলেন তার সাথে কার্নেল আইডি এবং আগের ধাপে আপনি যেটি তৈরি করেছেন তার সাথে স্ন্যাপশট আইডি প্রতিস্থাপন করতে হবে। আপনাকে এটিকে উপরের আপনার গোপন কীতে (sk.pem বলা হয়) এবং আপনার x509 সার্ট (જેને cert.pem বলা হয়) এও নির্দেশ করতে হবে। আপনি অবশ্যই নাম এবং বর্ণনার জন্য যা চান তা চয়ন করতে পারেন।

আশাকরি এটা সাহায্য করবে.


ধন্যবাদ, যে সাহায্য করেছে! বড় পরিমাণে (1 টিবি-এর মতো) মাইক্রো উদাহরণস্বরূপ এই পদ্ধতিটি দীর্ঘ সময় নেয়। আমি no-fsck, rsync- ভিত্তিক ভলিউম অনুলিপিটি দেখেছি (যেমন এখানে ubuntuforums.org/showpost.php?p=9866025&postcount=27 ), তবে ডিডি-ভিত্তিক পদ্ধতিটি অনেক বেশি নির্ভরযোগ্য মনে হয়, এমনকি মূল-অ-ভলিউমের জন্যও।
ক্রানোস

sudo e2fsck -f /dev/sdfপুনরায় আকার দেওয়ার আগে প্রথম কমান্ডটি প্রয়োজনীয় পদক্ষেপ হতে পারে (এটি আমার নির্দিষ্ট উদাহরণে ছিল, একটি অ্যামাজন লিনাক্স এএমআই)।
notacouch

1
সুস্পষ্ট হওয়া উচিত তবে এডাব্লুএস ডক্স অনুযায়ী ভলিউম (/ ফেসপাম) এ একটি ফাইল সিস্টেম তৈরি করতে ভুলবেন না sudo mkfs -t ext4 /dev/sdg
notacouch

1

হ্যাঁ, আমি এটাও ভাবছি। নিম্নলিখিত টিউটোরিয়ালটি ওভারকিল, তবে আমি মনে করি এটিতে প্রয়োজনীয় সরঞ্জামগুলি রয়েছে: http://www.linuxconfig.org/Howto_CREATE_BUNDLE_UPLOAD_and_ACCESS_custom_Deban_AMI_ using_ubuntu

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

আরো কিছু পটভূমির জন্য এই ব্লগ-পোস্ট কটাক্ষপাত, বিশেষ করে freremark মন্তব্য নিন: http://alestic.com/2010/01/public-ebs-boot-amis-for-ubuntu-on-amazon-ec2

একটি চূড়ান্ত নোটে, euca2ools ইক্য 2-অমি-সরঞ্জামগুলির জন্য দুর্দান্ত প্রতিস্থাপনের মতো মনে হচ্ছে - ইউকা 2 পুলগুলিতে প্রকৃত ম্যানপেজ অন্তর্ভুক্ত রয়েছে! তাদের কেবল ইউকা-উপসর্গের সাথে ইক্য 2- * কমান্ডের মতো একই নাম রয়েছে। http://open.eucalyptus.com/wiki/Euca2oolsUsing


0

আমি একটি সাধারণ ইসি 2 উদাহরণ ব্যবহার করে ভলিউমের আকার হ্রাস করতে চেয়েছিলাম। আমি এখানে অন্যান্য উত্তরের অনুরূপ পদক্ষেপগুলি অনুসরণ করেছি তবে একটি ইস্যুতে ছুটে এসেছি। আমার শিকড়ের আয়তন সঙ্কুচিত করতে এখানে আমাকে যা করতে হয়েছিল তা এখানে ...

এডাব্লুএস কনসোলে

 1. Stop the source EC2 instance
 2. Create a snapshot of the volume you want to shrink
 3. Use the snapshot to create a new 'source' volume
 4. Created a new volume with smaller size (made sure it was big enough for the data on source)
 5. Attached both volumes to any EC2 instance (mine were /dev/sdf = source & /dev/sdg = target)
 6. Start the EC2 instance

ইসি 2 উদাহরণে

 7. sudo su -   (everything from here is run as root)
 8. mkdir /source /target
 9. mount -t ext4 /dev/sdf /source
 10. mkfs.ext4 /dev/sdg
 11. mount -t ext4 /dev/sdg /target
 12. rsync -aHAXxSP /source/ /target 
     ** notice that there is no trailing '/' after target if 
       you put one there your data will be copied to 
       /target/source and you will have to move it up a directory
 13. cat /boot/grub/grub.conf  (indicated that grub is using root=LABEL=/)
 14. cat /source/etc/fstab (indicated that fstab was also using LABEL=/)
 15. e2label /dev/sdg /
 16. umount /source
 17. umount /target

এডব্লিউএস কনসোলে ফিরে আসুন

 18. Stop the instance
 19. Detach ALL volumes from the instance
 20. Attach the 'target' volume to the instance using /dev/sda1 as the device
 21. Start the instance

এখানেই আমরা এমন সমস্যায় পড়েছিলাম যা আমি খুঁজে পেতে পারি না mentioned দৃষ্টান্তটি সূক্ষ্ম শুরু হয়েছিল, দুর্দান্ত! তবে আমি যখন উদাহরণটিটিতে চেষ্টা করার চেষ্টা করেছি তখন আমি সংযুক্ত হতে পারিনি। উপরের পদক্ষেপের অনেকগুলি পরিবর্তনের পরে অবশেষে আমি নতুনভাবে কাটা ইসি 2 উদাহরণ থেকে রুট ভলিউমটি ব্যবহার করার চেষ্টা করার সিদ্ধান্ত নিয়েছি।

এডাব্লুএস কনসোলে

 1. Create a new EC2 instance with the right sized root volume
 2. Stop the new instance
 3. Detach the /dev/sda1 volume from the new instance
    ** used the 'source' volume from before & the new volume we just detached
 4. Attached both volumes to the original EC2 instance (/dev/sdf & /dev/sdg)
 5. Start the instance with the attached volumes

ইসি 2 উদাহরণে

 1. sudo su - 
 2. mkdir /source /target (only need to do this if you don't already have these directories)
 3. mount -t ext4 /dev/sdf /source
 4. mount -t ext4 /dev/sdg /target (no need to create a file system because it is already there)
 5. rsync -aHAXxSP /source/ /target 
 6. umount /source
 7. umount /target

এডব্লিউএস কনসোলে ফিরে আসুন

 1. Stop the instance
 2. Detach the 'source' and 'target' volumes from instance
 3. Attach the 'target' volume to the instance from step 1 using /dev/sda1 as the device
 4. Start the instance
 5. ** we use an elastic IP so we just reassigned the IP to the new instance

আশা করি এটি কাউকে সাহায্য করবে


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