কোনও ভ্যাগ্র্যান্ট ভিএম-এ আমি কীভাবে ডিস্কের আকার বাড়াতে পারি?


62

আমি একটি VM দ্বারা পরিচালিত আছে দ্য ভাগ্রান্ট ব্যবহার VirtualBox একটি উবুন্টু হোস্ট সার্ভারে। আমার দ্য ভাগ্রান্ট বক্স Puppetlabs ডেবিয়ান 6.0.7 ব্যবহার basebox যার রুট পার্টিশনের LVM- র ব্যবহার করে।

ডিফল্টরূপে ডিস্কটি 8 গিগাবাইট যা আমার উদ্দেশ্যে খুব ছোট। আমি চাই:

  1. আমার ভিএম ধ্বংস না করে এবং পুনরায় তৈরি না করে এটিতে বিদ্যমান ডিস্ক এবং ফাইল সিস্টেমের আকার বাড়ান ।
  2. ভ্যাগ্র্যান্টটি কনফিগার করুন যাতে ভবিষ্যতে এটি এই প্রকল্পের জন্য আরও বড় ডিস্ক তৈরি করে।

কীভাবে কেউ এটি ব্যাখ্যা করতে পারেন?

উত্তর:


25

ব্যক্তিগতভাবে আমি মনে করি একটি অতিরিক্ত ভার্চুয়াল এইচডিডি সংযুক্ত করা এবং এটি একটি যথাযথ মাউন্ট পয়েন্টে মাউন্ট করা সহজতর হবে, উদাহরণস্বরূপ /optএবং rsyncএই বিষয়টিকে ঘিরে কাজ করার জন্য আপনার জিনিসগুলি সরিয়ে ফেলুন , সর্বোপরি, পুতুল ভিজাগর বাক্সগুলি পরীক্ষার উদ্দেশ্যে।

কারণ : VBoxManage modifyhdকেবল দেশীয় ভিডিআই চিত্রের সাথে কাজ করে। তবে, ভ্যাগ্র্যান্ট বেস বাক্সগুলি VMDKফর্ম্যাট ব্যবহার করে মূলত ওভিএফ / ওভিএ রফতানি করা হয়।

ভার্চুয়ালবক্স ডক্স দেখুন

--resize xবিকল্প (যেখানে x মেগাবাইটে নতুন মোট স্থান আকাঙ্ক্ষিত হয়) আপনি যদি একটি বিদ্যমান ইমেজ ধারণক্ষমতা পরিবর্তন করতে পারবেন; এটি শারীরিক আকারকে বেশি প্রভাবিত না করে ভার্চুয়াল ডিস্কের লজিক্যাল আকারকে সামঞ্জস্য করে [[৩ 37] এটি বর্তমানে কেবল ভিডিআই এবং ভিএইচডি ফর্ম্যাটগুলির জন্য কাজ করে এবং কেবল গতিশীলভাবে বরাদ্দকৃত রূপগুলির জন্য এবং কেবলমাত্র ক্ষমতা প্রসারিত করতে (সঙ্কুচিত নয়) ব্যবহার করা যেতে পারে।

ভ্যাগ্র্যান্ট বেস বক্সের জন্য ডিস্কের সক্ষমতা বাড়ানো

পদক্ষেপগুলি হয়

  1. এইচডিডি আকার পরিবর্তন করতে সক্ষম হতে, আপনাকে প্রথমে এটি ভিডিআইতে রূপান্তর করতে হবে, উদাহরণস্বরূপ VBoxManage clonehd in.vmdk out.vdi --format VDIএবং তারপরে এটি পুনরায় সংযুক্ত করতে হবে (জিইউআই ব্যবহার করা সহজ)।

  2. এটি ব্যবহার করে এর আকার পরিবর্তন করুন VBoxManage modifyhd box.vdi --resize 15360যা ক্ষমতাটি 15 গিগাবাইটে বৃদ্ধি করে।

  3. তবে এটি কেবল ড্রাইভের ক্ষমতা পরিবর্তন করে, তার পরে আপনাকে অতিথির জন্য ফাইল সিস্টেমটি প্রসারিত করতে হবে। উদাহরণস্বরূপ, resize2fs -p -F DEVICEext {3,4} এর জন্য ব্যবহার করুন }


3
নোট করুন যে পুনরায় আকার দেওয়ার পরে এবং আবার ভাস্বর বাক্সটি শুরু করার আগে আপনাকে ভার্চুয়ালবক্স স্টোরেজ কনফিগারেশনটিও আপডেট করতে হবে যাতে এটি নতুন ভিডিআই ব্যবহার করে মূল ভিএমডিকে: ভার্চুয়ালবক্স> স্টোরেজ> বিদ্যমান হার্ড ডিস্কটি সরান> হার্ড ডিস্ক যুক্ত করুন (বিদ্যমান নির্বাচন করুন) এবং নতুন ভিডিআই চিত্রের দিকে নির্দেশ করুন)
স্টিভ সুইসবার্গ

ডেবিয়ান ব্যবহারকারীদের জন্য, আমি এই পোস্টটি দেখার পরামর্শ দিচ্ছি: blog.lenss.nl/2012/09/resize-a-vagrant-vmdk-drive । আমি যখন ৩ য় ধাপে পৌঁছেছিলাম তখন এটি চলার মতো সহজ ছিল না resize2fs। শুভকামনা!
ফিরসাইবার

1
আমি শুধু এই একটি একীকৃত নির্দেশিকা লিখেছিলেন: medium.com/@phirschybar/...
phirschybar

31

আমি এই সমস্যাটি সমাধান করার সহজতম উপায়টি পেয়েছি:

  • এই প্লাগইনটি ইনস্টল করুন: vagrant plugin install vagrant-disksize

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

    Vagrant.configure('2') do |config|
      ...
      config.vm.box = 'ubuntu/xenial64'
      config.disksize.size = '50GB'
      ...
    end
    
  • vagrant halt && vagrant up

    • দ্রষ্টব্য: এটি দিয়ে কাজ করবে না vagrant reload

2
কবজির মতো কাজ করেছেন। আমি জুড়ে আসা সবচেয়ে সহজ সমাধান বলে মনে হচ্ছে। ধন্যবাদ জনাব.
রিকো

1
একটি ডেবিয়ান 9 বাক্সের জন্য এটি কাঁচা ডিস্কের আকার বাড়ায় তবে দেবিয়ান ইনস্টলেশন দ্বারা ব্যবহৃত প্রকৃত পার্টিশনটি নয়। বর্ধিত ডিস্কের আকার সরাসরি ব্যবহারযোগ্য নয়।
টোনিন

@ টনিন আপনি কি সমাধান খুঁজে বের করার ব্যবস্থা করেছেন?
মেলকোর

1
আমি সমস্ত নতুন উপলব্ধ স্পেসে sudo cfdisk /dev/sdaআমার /dev/sda1পার্টিশনটিকে পুনরায় আকার দেওয়ার জন্য সরঞ্জামটি ব্যবহার করেছি । তারপরে আমি আমার ফাইল sudo resize2fs -p -F /dev/sda1
সিস্টেমকে

14

আমি আমার ভ্যাগ্র্যান্টফাইলে ডিস্কটি স্বয়ংক্রিয়ভাবে সংযুক্ত করেছি:

Vagrant.configure("2") do |config|
    ...
    file_to_disk = File.realpath( "." ).to_s + "/disk.vdi"

    if ARGV[0] == "up" && ! File.exist?(file_to_disk) 
       puts "Creating 5GB disk #{file_to_disk}."
       vb.customize [
            'createhd', 
            '--filename', file_to_disk, 
            '--format', 'VDI', 
            '--size', 5000 * 1024 # 5 GB
            ] 
       vb.customize [
            'storageattach', :id, 
            '--storagectl', 'SATA Controller', 
            '--port', 1, '--device', 0, 
            '--type', 'hdd', '--medium', 
            file_to_disk
            ]
   ...
   config.vm.provision "shell", path: "scripts/add_new_disk.sh"
   ...
end

যেখানে add_new_disk.shশেল স্ক্রিপ্টটি দেখতে এটির মতো দেখাচ্ছে:

set -e
set -x

if [ -f /etc/disk_added_date ]
then
   echo "disk already added so exiting."
   exit 0
fi


sudo fdisk -u /dev/sdb <<EOF
n
p
1


t
8e
w
EOF

pvcreate /dev/sdb1
vgextend VolGroup /dev/sdb1
lvextend /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_root

date > /etc/disk_added_date

এই স্ক্রিপ্টটি একটি সেন্টোস 6.4 বাক্সের জন্য, তবে সহজেই উবুন্টুতে মানিয়ে নেওয়া যায়।

ডিস্ক যুক্ত করার পরিবর্তে অন্যান্য বিকল্পের মধ্যে রয়েছে:

  • বড় ডিস্কের সাথে একটি বাক্স ব্যবহার করা যেমন ওপস্কোড বেন্টো যা 40 জিবি ডিস্ক রয়েছে
  • প্যাকার ব্যবহার করে আপনার নিজের বাক্স তৈরি করুন । আপনি ওপস্কোড বক্সগুলির প্যাকার সংজ্ঞাটিকে একটি বিন্দু হিসাবে ব্যবহার করতে পারেন

হাই, আমি আপনার সমাধানটি চেষ্টা করে দেখতে চাই। আপনি কি ভ্যাগ্র্যান্ট ফাইলটিতে কোডের এই বিভাগটি যুক্ত করেছিলেন তা নিশ্চিত করতে পারেন? দয়া করে শুভেচ্ছা
রুডি স্ট্রিডম

@ রূডিস্ট্রিডম আমি উত্তরটি আপডেট করেছি - আশা করি এটি এখন আরও সার্থক হয়ে উঠবে।
ক্রিস স্নো

2
config.vm.provider :virtualbox do |vb|বিষয়গুলিকে আরও পরিষ্কার করার জন্য
বিটি

1
যদি আপনি "কোনও আকার বা lvextendlvextend -l +100%FREE /dev/VolGroup/lv_root
প্রসারিত

1
আপনার উদাহরণটি একটি 5 টিবি ডিস্ক তৈরি করবে (- সাইজ ইউনিটটি এমবি, ভার্চুয়ালবক্স.আর / ম্যানুয়াল/ch08.html#vboxmanage-createvdi দেখুন )।
backflip

7

আপনি প্লাগইনটি ব্যবহার করতে পারেন যা আপনাকে ডিস্ক আকার https://github.com/sprotheroe/vagrant-disksize নির্দিষ্ট করতে সক্ষম করবে


এটি আমার ডিস্কটিকে পুনরায় আকার দিয়েছে এবং কনফিগারেশনের এক লাইনেই পার্টিশনটি প্রসারিত করেছে। খুব চতুর!
ব্যবহারকারী 1026263

0

দাবি অস্বীকার: কেবলমাত্র রেলের মতো লজিক্যাল ভলিউম ম্যানেজমেন্ট ব্যবহার করে ডিস্ট্রোদের ক্ষেত্রে সম্ভবত সম্ভবত উত্তরটি প্রয়োগ করা হবে যার জন্য নিম্নলিখিত ব্যবহারের ক্ষেত্রে প্রয়োগ করা হয়েছে:

আমি সরকারী রেড হ্যাট এন্টারপিস 7.2 ভ্যাব্রেন্ট বক্সটি আনুষ্ঠানিকভাবে লাল টুপি দ্বারা সরবরাহ করে ব্যবহার করছি ।

(আপনার জন্য একটি রেল বিকাশকারী অ্যাকাউন্ট প্রয়োজন হবে যা আপনি বিনামূল্যে তৈরি করতে পারেন)

ইনস্টলেশন শেষে আমি কেবল 8 গিগাবাইটেরও উপলব্ধ ছিল তা দেখে সমস্যায় পড়েছি:

sudo df -h
[vagrant@rhel-cdk ~]$ sudo df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-root   8G  2,5G   6,5G  28% /
devtmpfs                     234M     0  234M   0% /dev
tmpfs                        245M     0  245M   0% /dev/shm
tmpfs                        245M  4,3M  241M   2% /run
tmpfs                        245M     0  245M   0% /sys/fs/cgroup
/dev/sda2                    297M  134M  164M  45% /boot
tmpfs                         49M     0   49M   0% /run/user/1000

এবং আপনি দেখতে পাচ্ছেন বেশিরভাগ জায়গা ইতিমধ্যে রেল ইনস্টলেশন দ্বারা গ্রাস করা হয়েছিল।

তবে আমি আবিষ্কার করেছি যে /dev/mapper/VolGroup00-rootফাইল সিস্টেমের সাথে সম্পর্কিত ভলিউম গ্রুপের অতিরিক্ত স্থান রয়েছে (যা আমি মনে করি ভার্চুয়াল বাক্সের ক্ষেত্রে ডায়নামিক্যালি বরাদ্দ ছিল)

sudo vgdisplay VolGroup00
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  11
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               39,70 GiB
  PE Size               4,00 MiB
  Total PE              10164
  Alloc PE / Size       7872 / 30,75 GiB
  Free  PE / Size       2292 / 8,95 GiB
  VG UUID               JBVwpl-13KX-HbQw-FqUa-CA9w-swpF-dF6glm

সুতরাং কেবলমাত্র কাজগুলি হ'ল:

) 10 জি বলে আমাদের লজিক্যাল ভলিউমের আকার বাড়ান

sudo lvextend -L+10G /dev/VolGroup00/root

এবং

) আপনার মূল ফাইল সিস্টেমটি আপডেট করুন যাতে এটি এই পরিবর্তনের বিষয়ে সচেতন হয়

sudo xfs_growfs /dev/mapper/VolGroup00-root

(প্লিজ নোট করুন যে কমপক্ষে hel.২ এর resize2fsজন্য এই উদ্দেশ্যে কাজ করবে না)।

এর পরে, আমার ফাইল সিস্টেমে অতিরিক্ত স্থান উপলব্ধ ছিল:

sudo df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-root   18G  2,5G   16G  14% /
devtmpfs                     234M     0  234M   0% /dev
tmpfs                        245M     0  245M   0% /dev/shm
tmpfs                        245M  4,3M  241M   2% /run
tmpfs                        245M     0  245M   0% /sys/fs/cgroup
/dev/sda2                    297M  134M  164M  45% /boot
tmpfs                         49M     0   49M   0% /run/user/1000

... ভার্চুয়ালবক্স স্তরে কোনও হস্তক্ষেপ নেই

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