Solusi 1:
Saya tahu itu pertanyaan lama, tetapi saya menemukannya saat mencari solusi di Google dan berharap dapat membantu orang lain.
Untuk hari ini adalah mungkin untuk mengubah ukuran hard drive pada mesin. Saya telah menemukan cara kerja di sini:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
Langkah-langkah berikut harus dilakukan:
-
Temukan nama file dan nama perangkat KVM dari hard drive yang ingin Anda ubah ukurannya:
[email protected]:/data# virsh dumpxml test | xpath -e /domain/devices/disk Found 2 nodes in stdin: -- NODE -- <disk type="file" device="disk"> <driver name="qemu" type="qcow2" /> <source file="/data/test.img" /> <backingStore /> <target dev="vda" bus="virtio" /> <alias name="virtio-disk0" /> <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" /> </disk> -- NODE -- <disk type="file" device="cdrom"> <driver name="qemu" type="raw" /> <source file="/data/images/debian-8.2.0-amd64-netinst.iso" /> <backingStore /> <target dev="hda" bus="ide" /> <readonly /> <alias name="ide0-1-1" /> <address type="drive" controller="0" bus="1" target="0" unit="1" /> </disk>
Yang menarik bagi kami adalah disk. Anda harus mencari source
dan alias
blok. Bagi saya nama file adalah test.img
dan nama aliasnya adalah virtio-disk0
. Untuk nama ini, Anda perlu menambahkan drive-
untuk mendapatkan nama drive qemu.
-
Sekarang kami benar-benar mengubah ukuran drive menggunakan qemu monitor:
virsh qemu-monitor-command test block_resize drive-virtio-disk0 100G --hmp
Perhatikan bahwa nama file digunakan tanpa ekstensi .img dan drive- ditambahkan ke alias disk. 100G adalah hasil ukuran drive yang ingin kita miliki
-
Masuk ke mesin dan periksa apakah ukuran sebenarnya telah diubah:
[email protected]:~# fdisk -l Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x7e6e7f71 Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 499711 497664 243M 83 Linux /dev/vda2 501758 167770111 167268354 79.8G 5 Extended /dev/vda5 501760 167770111 167268352 79.8G 8e Linux LVM
Itu dia! Sekarang Anda dapat membuat partisi baru atau mengubah ukuran partisi yang sudah ada.
Solusi 2:
AFAIK, ini tidak mungkin - Anda dapat menambahkan gambar disk baru, dan seperti yang Anda tunjukkan, Anda juga dapat menambahkan gambar baru ke volume LVM, tetapi untuk mengubah ukuran gambar disk aktif yang dapat di-boot, Anda harus dapat menutupnya bawah dan edit partisi.
Inilah penjelasan yang bagus untuk memperluas gambar. Meskipun memerlukan shutdown, Anda mungkin dapat lolos hanya dengan beberapa menit waktu henti, terutama jika Anda menghindari opsi gambar --nonsparse dan menambahkan disk gparted ke file iso dan memasang tamu KVM Anda terlebih dahulu. Semoga ini bisa membantu.
Solusi 3:
Saya pikir Anda terjebak melakukan apa yang Anda sebutkan jika Anda ingin melakukannya tanpa mematikan mesin.
Mengapa tidak memberikan LUN mesin virtual langsung dari SAN dan mengelola ruang di sana? Ini berfungsi lebih baik jika Anda ingin menggunakan fitur seperti migrasi langsung.
KVM didasarkan pada QEMU sehingga semua dukungan format gambarnya berasal dari proyek itu. Inilah cara yang bagus untuk mengubah ukuran berbagai format yang didukung Qemu/KVM. Namun forum Qemu akan menjadi tempat yang baik untuk menanyakan pertanyaan ini jika Anda tidak mendapatkan jawaban yang pasti di sini.
Opsi lain yang mungkin tidak ideal adalah menggunakan qcow2 yang sangat besar atau format gambar jarang lainnya untuk drive. Jadi Anda bisa memberi setiap mesin drive kecil untuk OS dan gambar jarang yang besar untuk data di bawah LVM. Ini setidaknya akan menjaga jumlah drive/gambar virtual yang harus Anda kelola. Namun penyediaan yang tipis ini bisa menjadi masalah jika Anda melakukan ini pada 1000 mesin dan semua orang menggunakan ruang kosong yang mereka lihat.
XEN Saya percaya memiliki batasan yang sama saat ini.
Solusi 4:
Dimungkinkan untuk memindahkan sistem Linux antar disk saat sedang berjalan. Batasannya adalah Anda tidak dapat mengubah partisi pada disk yang memiliki partisi sedang digunakan.
Untuk melakukan ini, sistem file root Anda harus menggunakan LVM, ini sering kali berarti Anda harus memiliki sistem file boot terpisah (namun, ini tidak penting, ini hanya membuat semuanya lebih mudah)
Setelah memasukkan disk baru, Anda menambahkannya ke LVM dengan vgextend, gunakan pvmove untuk memindahkan rootfs ke disk baru, gunakan lvextend dan resize2fs masing-masing untuk memperluas volume logis dan sistem file kemudian gunakan vgreduce untuk menghapus disk lama dari volume kelompok. Setelah dihapus, volume lama dapat dicabut.
Untuk kasus sederhana, Anda memiliki disk kecil untuk sistem file boot yang tidak perlu Anda sentuh. Tapi kalau sendiri itu mudah untuk melepasnya cabut, pasang yang baru dan bangun kembali boot disk tanpa menghentikan sistem. (jangan mogok saat Anda melakukannya)
Catatan:resize2fs juga dapat mengecilkan sistem file.