আমি সেন্টস কেভিএম হোস্টে প্রাথমিকভাবে 6 গিগাবাইট ডিস্ক স্পেস সহ একটি উবুন্টু গেস্ট সেটআপ করি। কমান্ড লাইন থেকে আমি উবুন্টু অতিথির ডিস্কের স্থান বাড়ানোর বিষয়ে কীভাবে যেতে পারি?
সম্পাদনা # 1: আমি একটি ডিস্ক চিত্র ফাইল (qemu) ব্যবহার করছি।
আমি সেন্টস কেভিএম হোস্টে প্রাথমিকভাবে 6 গিগাবাইট ডিস্ক স্পেস সহ একটি উবুন্টু গেস্ট সেটআপ করি। কমান্ড লাইন থেকে আমি উবুন্টু অতিথির ডিস্কের স্থান বাড়ানোর বিষয়ে কীভাবে যেতে পারি?
সম্পাদনা # 1: আমি একটি ডিস্ক চিত্র ফাইল (qemu) ব্যবহার করছি।
উত্তর:
qemu-img resize vmdisk.img +10G
10 জিবি দ্বারা চিত্রের আকার বাড়াতে চালানstart the VM, resize the partitions and LVM structure within it normally
এটা কিভাবে করতে হবে? দয়া করে এটি ব্যাখ্যা করুন।
আরও ভাল বা আরও খারাপের জন্য, টার্গেট ভার্চুয়াল ডিস্ক মাউন্ট করা থাকলেও নীচের কমান্ডগুলি চলবে। এটি এমন পরিবেশে কার্যকর হতে পারে যেখানে ডিস্কটি আনমাউন্ট করা যায় না (যেমন একটি রুট পার্টিশন), ভিএম অবশ্যই অবিরত থাকে এবং সিস্টেমের মালিক ডেটা দুর্নীতির ঝুঁকি ধরে নিতে রাজি হন । এই ঝুঁকিটি অপসারণ করতে, আপনাকে ভিএম-এ লগ ইন করতে হবে এবং প্রথমে টার্গেট ডিস্কটি আনমাউন্ট করতে হবে, এমন কিছু যা সর্বদা সম্ভব নয়।
কেভিএম হাইপারভাইজার থেকে নিম্নলিখিতটি সম্পাদন করুন।
ডিস্ক ইমেজ ফাইলের আকার নিজেই বাড়ান (বাড়ানোর পরিমাণটি নির্দিষ্ট করুন):
qemu-img resize <my_vm>.img +10G
লিবারভিট শেলের মাধ্যমে ভার্টিও ডিভাইসের নাম পান ( drive-virtio-disk0
এই উদাহরণে):
virsh qemu-monitor-command <my_vm> info block --hmp
drive-virtio-disk0: removable=0 io-status=ok file=/var/lib/libvirt/images/<my_vm>.img ro=0 drv=raw encrypted=0
drive-ide0-1-0: removable=1 locked=0 tray-open=0 io-status=ok [not inserted]
নতুন আকার সনাক্ত করতে ভারিটিও ড্রাইভারকে সিগন্যাল করুন (মোট নতুন ক্ষমতা নির্দিষ্ট করুন):
virsh qemu-monitor-command <my_vm> block_resize drive-virtio-disk0 20G --hmp
তারপরে ভিএম-এ লগইন করুন। চলমান dmesg
রিপোর্ট করা উচিত যে ভার্টিও ডিস্ক একটি ক্ষমতা পরিবর্তন সনাক্ত করেছে। এই মুহুর্তে, এগিয়ে যান এবং আপনার পার্টিশন এবং প্রয়োজন অনুযায়ী LVM কাঠামোটি পুনরায় আকার দিন।
এই সার্ভারফাল্ট প্রশ্নগুলি একই, তবে আরও নির্দিষ্ট, কেভিএম অনলাইন ডিস্কের আকার পরিবর্তন করে? & সেন্টোস জেন ডোমু পার্টিশন এবং ভলিউম গ্রুপকে পুনরায় আকার দিচ্ছে । 1 ম কোনও কেভিএম গেস্ট অনলাইনে কীভাবে বাড়ানো যায় সেই প্রশ্নটি জিজ্ঞাসা করে, যখন দ্বিতীয়টি এলভিএম ব্যবহার করে এক্সইএন নির্দিষ্ট করে। কেভিএম অফলাইন থাকাকালীন এটি কীভাবে সম্পন্ন করবেন আমি জিজ্ঞাসা করছি।
দ্রষ্টব্য: এই লিঙ্কটি মেথড # 1 এর জন্য দরকারী ছিল এবং কেভিএমের ডিস্ক স্পেস (এক্সট3 ভিত্তিক) কীভাবে বাড়ানো যায় তা দেখায়, হাওটো: একটি কেভিএম ভার্চুয়াল মেশিন চিত্রের আকার পরিবর্তন করুন ।
কেভিএম অতিথির সাথে সচেতন হওয়ার একটি বিষয় হ'ল তারা যে পার্টিশনগুলি ভিতরে ব্যবহার করছে তা তাদের ডিস্কের স্থান বাড়ানোর জন্য কোন পদ্ধতিটি ব্যবহার করতে পারে তা কার্যকর করতে পারে।
পদ্ধতি # 1: পার্টিশনগুলি ext2 / ext3 / ext4 ভিত্তিক
এই পদ্ধতির বাদামগুলি নিম্নরূপ:
# 1. stop the VM
# 2. move the current image
mv mykvm.img mykvm.img.bak
# 3. create a new image
qemu-img create -f raw addon.raw 30G
# 4. concatenate the 2 images
cat mykvm.img.bak addon.raw >> mykvm.img
এখন হাতে থাকা বৃহত্তর mykvm.img ফাইলটি সহ, বুট জিপিআর্ট করুন এবং বিদ্যমান পার্টিশনটি নতুন যুক্ত ডিস্কের জায়গায় প্রসারিত করুন । এই শেষ পদক্ষেপটি ওএস পার্টিশনটি মূলত প্রসারিত করে যাতে এটি অতিরিক্ত স্থান ব্যবহার করতে পারে।
পদ্ধতি # 2: পার্টিশনগুলি এলভিএম ভিত্তিক
অভ্যন্তরীণভাবে LVM ব্যবহার করা একটি কেভিএম অতিথির আকার পরিবর্তন করতে আমি মোটামুটি অনুসরণ করেছি।
ভিএম এর ভিতরে fdisk চালান এবং LVM পার্টিশনটি মুছুন ও পুনরায় তৈরি করুন
% fdisk /dev/vda
...
Device Boot Start End Blocks Id System
/dev/vda1 * 1 13 104391 83 Linux
/dev/vda2 14 3263 26105625 8e Linux LVM
Command (m for help): d
Partition number (1-4): 2
Command (m for help): p
Disk /dev/vda: 48.3 GB, 48318382080 bytes
255 heads, 63 sectors/track, 5874 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/vda1 * 1 13 104391 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (14-5874, default 14): 14
Last cylinder or +size or +sizeM or +sizeK (14-5874, default 5874):
Using default value 5874
Command (m for help): p
Disk /dev/vda: 48.3 GB, 48318382080 bytes
255 heads, 63 sectors/track, 5874 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/vda1 * 1 13 104391 83 Linux
/dev/vda2 14 5874 47078482+ 83 Linux
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/vda: 48.3 GB, 48318382080 bytes
255 heads, 63 sectors/track, 5874 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/vda1 * 1 13 104391 83 Linux
/dev/vda2 14 5874 47078482+ 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or
resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
%
ভিএম পুনরায় বুট করুন
LVM শারীরিক ভলিউমের আকার পরিবর্তন করুন
% pvdisplay
--- Physical volume ---
PV Name /dev/vda2
VG Name VolGroup00
PV Size 24.90 GB / not usable 21.59 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 796
Free PE 0
...
% pvresize /dev/vda2
% pvdisplay
--- Physical volume ---
PV Name /dev/vda2
VG Name VolGroup00
PV Size 44.90 GB / not usable 22.89 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 1436
Free PE 640
...
LVM লজিকাল ভলিউমকে পুনরায় আকার দিন
% lvresize /dev/VolGroup00/LogVol00 -l +640
Extending logical volume LogVol00 to 43.88 GB
Logical volume LogVol00 successfully resized
ফাইল সিস্টেম বাড়ান
% resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 11501568 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 11501568 blocks long.
উপরেরটি আমার উদাহরণ, তবে আমি এই ওয়েবসাইটে পদক্ষেপগুলি অনুসরণ করেছি
virt-manager
নতুন সংস্করণে (সেন্টোস 5 -> সেন্টোস 6) মাইগ্রেট করার আগে আমি # 1 এবং # 2 পদ্ধতিটি ব্যাপকভাবে ব্যবহার করেছি এবং ব্যবহার করেছি। আমি এখন qemu-img resize
পদ্ধতিটিও ব্যবহার করি ।
lvextend /dev/Volgroup/lvname /dev/vda2
(সমস্ত এক লাইনে, যেখানে / dev / vda2 আপনার শারীরিক আয়তন হবে)। অন্য কোনও বিকল্প ছাড়াই এটি that ভলিউম গ্রুপে সর্বাধিক আকার ব্যবহার করবে।
অভ্যন্তরীণ পার্টিশনগুলির এক ধাপে পুনরায় আকার দিন এবং প্রসারিত করুন
আমার একটি উবুন্টু হোস্ট ছিল একটি কিউকিও 2 অতিথি ফাইলের ইমেজ সহ এবং ডিস্কটি আকার পরিবর্তন করতে এবং উপযুক্ত পার্টিশনগুলি এক ধাপে প্রসারিত করতে চেয়েছিলাম। এটি আপনাকে libvirt গেস্ট ফাইল সিস্টেমের ইউটিলিটিগুলি সেট আপ করা প্রয়োজন, তবে সেগুলি যে কোনও উপায়ে থাকা কার্যকর।
এখান থেকে অনুপ্রেরণা: http://libguestfs.org/virt-resize.1.html
এখানে মূল কমান্ডটি হ'ল: virt-resize
প্রস্তুতি:
* Install libvirt file system utilities package
* sudo apt-get install libguestfs-tools
* Test to see if it works (it won't) -- you need to see "===== TEST FINISHED OK =====" at the bottom:
* sudo libguestfs-test-tool
* If you don't see "===== TEST FINISHED OK =====" at the bottom then repair it:
* sudo update-guestfs-appliance
* Run the test again and verify it works
* sudo libguestfs-test-tool
এখন নিম্নলিখিতগুলি করুন:
1) অতিথি বন্ধ:
২) বর্তমান আকার পরিবর্তন করুন এবং আপনি যে অংশবিশেষের নামটি libvirt ইউটিলিটি ব্যবহার করে প্রসারিত করতে চান তা দেখুন:
sudo virt-filesystems --long --parts --blkdevs -h -a name-of-guest-disk-file
3) নতুন (40 জি) আউটপুট ডিস্ক তৈরি করুন:
qcow: sudo qemu-img create -f qcow2 -o preallocation=metadata outdisk 40G
img: sudo truncate -s 40G outdisk
4) উপযুক্ত পার্টিশনটি প্রসারিত করার সময় পুরানোটিকে নতুনটিতে অনুলিপি করুন (ধাপ ২ থেকে আপনার ডিস্ক পার্টিশনটি ধরেছিলেন / dev / sda1):
sudo virt-resize --expand /dev/sda1 indisk outdisk
৫) ইনডিস্ক ফাইলটিকে একটি ব্যাকআপ হিসাবে নামকরণ করুন, আউটডিস্কের নাম বদলে রাখুন (বা অতিথির এক্সএমএল পরিবর্তন করুন)
6) অতিথিকে পুনরায় বুট করুন এবং মূল ফাইলটি মুছার আগে নতুন ডিস্ক ফাইলটি সাবধানে পরীক্ষা করুন
7) লাভ!
-o preallocation=metadata
একটি বিচ্ছিন্ন ফাইল তৈরি করে। এই বিকল্পের সাথে এটি পুরো আকারটিকে পূর্বনির্ধারিত করে।
-o preallocation=metadata
এবং যদি না করেন তবে আপনার এই truncate
পদক্ষেপটিও এড়ানো উচিত নয় । virt-resize
যাইহোক উপযুক্ত হিসাবে ফাইল বৃদ্ধি করা হবে।
আপনি যদি ভিএম এর মধ্যে এলভিএম ব্যবহার করেন তবে এই ওয়াউডটি করার সহজ উপায়টি হ'ল ভিএম-তে একটি নতুন ভার্চুয়াল ডিস্ক যুক্ত করা এবং এতে ভলিউম গ্রুপ এবং লজিক্যাল ভলিউম প্রসারিত করা।
আপনি এলভিএম রান ব্যবহার করছেন কিনা তা যাচাই করতে sudo pvs; sudo vgs; sudo lvs
আপনি এই জাতীয় কিছু পাবেন:
PV VG Fmt Attr PSize PFree
/dev/vda1 vgWWW lvm2 a- 30.00g 0
VG #PV #LV #SN Attr VSize VFree
vgWWW 1 2 0 wz--n- 30.00g 0
LV VG Attr LSize
root vgWWW -wi-ao 28.80g
swap vgWWW -wi-ao 1.19g
যদি ভিএম এর ওএস এলভিএম ব্যবহার করে থাকে। উপরের উদাহরণে ভিএম-এর একটি 30 জিবিটি ভিডিস্ক রয়েছে, একটি ভলিউম গ্রুপ যার সাথে দুটি লজিকাল ভলিউম রয়েছে, একটি অদলবদলের জন্য এবং অন্য সব কিছুর জন্য একটি ভলিউম গ্রুপ এলভিএম ব্যবহার করে কনফিগার করা হয়েছে।
যদি ভিভিতে এলভি ব্যবহার হয়:
sudo pvcreate /dev/vdb
sudo vgextend vgWWW /dev/vdb
sudo lvextend --extents +100%FREE /dev/vgWWW/root
(বা sudo lvextend --size +8G /dev/vgWWW/root
আপনি যদি পুরোপুরি এটি বাড়তে না চান তবে এই উদাহরণটি ভলিউমে 8 গিগাবাইট যোগ করবে)resize2fs /dev/vgWWW/root
দ্রষ্টব্য: উপরেরটি ধরে নেওয়া হয়েছে যে ভিজি / এলভি নামগুলি আমার উদাহরণ হিসাবে একই, যা সম্ভাবনা নেই, যথাযথ পরিবর্তন করুন, এছাড়াও যদি ভিএম এর vdb
মধ্যে নতুন একটি নামক ভার্চুয়াল ড্রাইভটি থাকে তবে এটি অন্য কিছু হবে ( vdc
এবং আরও কিছু )
দ্রষ্টব্য: resize2fs
কেবলমাত্র ext2, ext3 এবং ext4 ফাইল সিস্টেমে কাজ করবে। আপনি যদি অন্য কিছু ব্যবহার করে থাকেন তবে এটি ত্রুটি করবে এবং কিছুই করবে না।
দ্রষ্টব্য: আপনি যখন একটি লাইভ ফাইল সিস্টেমের আকার পরিবর্তন করছেন তখন কোনও resize2fs
চালিত ফাইল সিস্টেমের মতো আপনাকে fsck
প্রথমে চালনার অনুরোধ জানাবে না , এটি কেবল এগিয়ে যাবে। আপনি কেবল পঠনযোগ্য ফাইল সিস্টেম চেক চালাতে চাইতে পারেন এগিয়ে যাওয়ার আগে কোনও সমস্যা নেই।
অনলাইন আকার পরিবর্তন করা সম্ভব। libvirtd এটিকে স্থানীয়ভাবে সমর্থন করে:
ব্লক ডিভাইসের নামটি সন্ধান করুন। "ভিডিএ" এর মতো কিছু হওয়া উচিত
$ virsh domblklist <libvirtd_vm_name>
ভার্চুয়াল ডিভাইসটিকে পুনরায় আকার দিন:
$ virsh blockresize --domain <libvirtd_vm_name> --path <block_device_name> --size <new_size>
এখানে একটি উদাহরণ ছিল আমি প্রসারিত হয় vda
থেকে ডিস্ক 50GB
থেকে 51GB
জন্য undercloud
VM- র।
[root@gss-rhos-4 ~]# virsh domblklist undercloud
Target Source
------------------------------------------------
vda /home/images/undercloud.qcow2
এখন .QCO2 চিত্র ফাইলের বিশদটি একবার দেখুন:
[root@gss-rhos-4 ~]# qemu-img info /home/images/undercloud.qcow2
image: /home/images/undercloud.qcow2
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 38G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
এখন ভিডিএ ব্লক ডিভাইসটির আকার পরিবর্তন করুন:
[root@gss-rhos-4 ~]# virsh blockresize undercloud vda 51G
Block device 'vda' is resized
এবং নিশ্চিত করুন:
[root@gss-rhos-4 ~]# qemu-img info /home/images/undercloud.qcow2
image: /home/images/undercloud.qcow2
file format: qcow2
virtual size: 51G (54760833024 bytes)
disk size: 38G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
[root@gss-rhos-4 ~]#
তারপরে আপনি এই স্ক্রিপ্টটি ব্লক ডিভাইস এবং fs: র আকার পরিবর্তন করতে কমান্ডগুলি দেখানোর জন্য ভিএম এর অভ্যন্তরে ব্যবহার করতে পারেন: https://github.com/mircea-vutcovici/scriptts/blob/master/vol_resize.sh ।
আপনি যদি ভিটিও ড্রাইভ এবং এলভিএম ব্যবহার করে থাকেন তবে ভিএম রিবুট না করে আপনার ভিএম এর ডিস্কের আকার বাড়ানোর সম্ভাবনা রয়েছে।
(Alচ্ছিক) / dev / vdb1 পেতে fdisk সহ একটি প্রাথমিক পার্টিশন তৈরি করুন, তারপরে পার্টিশন টেবিলটি পুনরায় পড়তে kpartx -a / dev / vdb ব্যবহার করুন
Vgextend vg_name / dev / vdb1 (অথবা আপনি যদি একটি পার্টিশন তৈরি না করেন তবে / dev / vdb) ব্যবহার করুন
তুমি করেছ.
আপনি যে পার্টিশনটি চান তা প্রসারিত করতে পারেন:
# see what partitions you have?
virt-filesystems --long -h --all -a olddisk
truncate -r olddisk newdisk
truncate -s +5G newdisk
# Note "/dev/sda2" is a partition inside the "olddisk" file.
virt-resize --expand /dev/sda2 olddisk newdisk
আরও উদাহরণ দেখুন এখানে ।
এটি করার আরেকটি উপায়
truncate -s +2G vm1.img
একটি ডিস্ক পুনর্নির্মাণ করুন এবং আপনি আপনার lvm আকার পরিবর্তন করতে পারেন পরে যান।
আপনার ভিএম এ যদি আপনার এলভিএম থাকে তবে এটি পাগল সহজ এবং দ্রুত।
sudo system-config-lvm
টার্মিনাল টাইপ করুন ) *।আমি জিইউআইকে বেশ স্বজ্ঞাত পেয়েছি, তবে আপনার যদি সমস্যা হয় তবে পরবর্তী পদক্ষেপগুলি অনুসরণ করুন।
বিঃদ্রঃ! কমপক্ষে CentOS 6 এ LVM GUI ডিফল্টরূপে ইনস্টল করা হয়নি তবে আপনি এটি দিয়ে ইনস্টল করতে পারেন yum install system-config-lvm
।
চিত্র পুনরায় আকার দিন:
qemu-img resize vmdisk.img +16G
16 জিবি দ্বারা চিত্রের আকার বৃদ্ধি করে।
যদি আপনার ছবিতে জিপিটি (জিআইডি পার্টিশন টেবিল) থাকে তবে জিপিটিতে ব্যবহৃত ড্রাইভের আকারটি নতুন আকারের থেকে পৃথক হবে, আপনাকে এটিকে এটি ঠিক করতে হবে gdisk
:
MY_DRIVE=/dev/vda
gdisk $MY_DRIVE <<EOF
w
Y
Y
EOF
বা সাথে parted
:
parted $MY_DRIVE print Fix
কোনও কারণে parted
যখন কোনও টিটিটি উপস্থাপন না করা হয় ঠিক করা কাজ করছে না (উদাহরণস্বরূপ ভ্যাগ্র্যান্টের সাথে প্রভিশন দেওয়ার সময়) তাই আমি ব্যবহার করি gdisk
।
সমস্ত উপলব্ধ স্থান পূরণ করার জন্য পার্টিশনের আকার বাড়ান:
MY_PARTITION_GUID=$(
gdisk $MY_DRIVE <<EOF | sed -n -e 's/^Partition unique GUID: //p'
i
EOF
)
MY_PARTITION_FIRST_SECTOR=$(
gdisk $MY_DRIVE <<EOF | sed -n -e 's/^First sector: \([0-9]\+\).*/\1/p'
i
EOF
)
gdisk $MY_DRIVE <<EOF
d
n
$MY_PARTITION_FIRST_SECTOR
x
a
2
c
$MY_PARTITION_GUID
w
Y
EOF
x a 2 <Enter>
অংশ ঐচ্ছিক এবং আপনি যদি উত্তরাধিকার BIOS- র ব্যবহার করছেন প্রয়োজন হয়।
MY_PARTITION_GUID=...
এবং c $MY_PARTITION_GUID
অংশগুলি optionচ্ছিক এবং শুধুমাত্র তখনই প্রয়োজন হয় যদি আপনি /etc/fstab
বা অন্য কোথাও পার্টিশন ইউআইডি ব্যবহার করেন ।
পুনরায় বুট করুন অথবা পার্টিশন পুনরায় পাঠ partx -u $MY_DRIVE
বা partprobe
।
পার্টিশন প্রসারিত করুন, উদাহরণস্বরূপ ext2
, ext3
বা ext4
:
MY_PARTITION="${MY_DRIVE}1"
resize2fs $MY_PARTITION
আপনি জিপিআর্টেড মাউন্টযুক্ত সলাস ভিএম ব্যবহার করতে পারেন। একবার জিপিআরটি ব্যবহার করা হলে আপনি সহজেই সিস্টেমটি বুট করতে পারেন এবং স্থানটি সামঞ্জস্য করতে পারেন। আপনার সঠিক বুট অগ্রাধিকার সেট রয়েছে তা নিশ্চিত করুন। একটি রেফারেন্স হিসাবে দয়া করে নীচের url উল্লেখ করুন যা কার্যকর হতে পারে। https://greencloudvps.com/knowledgebase/11/How-to-Extend-the-Hard-drive-on-KVM-after-upgrading-VPS.html